專利名稱:一種可編程邏輯器件配置文件在線更新裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于配置文件更新技術(shù)領(lǐng)域,更為具體地講,涉及一種可編程邏輯器件配置文件在線更新裝置。
背景技術(shù):
可編程邏輯器件有兩種主要類型現(xiàn)場可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD),其規(guī)模大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍,是一種用戶根據(jù)自身特定需求而自行構(gòu)造邏輯功能的數(shù)字集成電路。可編程邏輯器件的傳統(tǒng)配置方法一般是借助集成開發(fā)軟件,生成相應(yīng)的目標文件,通過專用下載電纜完成目標芯片,即可編程邏輯器件的編程。通常這種配置方式都需要專門的配置插件和開發(fā)軟件的支持,而通過這些方法進行可編程邏輯器件的配置一般比較復(fù)雜,操作起來很不方便。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種配置簡單、操作方便的可編程邏輯器件配置文件在線更新裝置。為實現(xiàn)上述發(fā)明目的,本發(fā)明可編程邏輯器件配置文件在線更新裝置,包括上位機,上位機中包含程序封裝模塊和數(shù)據(jù)發(fā)送模塊;程序封裝模塊用于將開發(fā)環(huán)境默認產(chǎn)生的可編程邏輯器件更新配置文件按照標準測試與編程語言(STAPL)標準的要求組合封裝為.jbc格式的文件;數(shù)據(jù)發(fā)送模塊用于將程序封裝模塊組合封裝的文件,即.jbc文件通過以太網(wǎng)控制芯片轉(zhuǎn)換為網(wǎng)絡(luò)信號并發(fā)送到網(wǎng)線上;一微處理器和程序存儲器,微處理器中包括數(shù)據(jù)接收緩沖模塊、程序解析模塊和 GPIO(General Purpose Input Output,通用輸入 / 輸出)模擬 JTAG(Joint Test Action Group,聯(lián)合測試行為組織)模塊;數(shù)據(jù)接收緩沖模塊用于接收網(wǎng)線上從上位機傳來的.jbc文件,并完成數(shù)據(jù)校驗功能以確保傳輸無誤,將其存到程序存儲器里;程序解析模塊用于獲取存到程序存儲器里的.jbc文件,并使用內(nèi)部的Jam STAPL Byte-Code Player解析程序?qū)⒃?jbc文件中包含的配置信息解析為JTAG標準的數(shù)據(jù)流;GPIO模擬JTAG模塊使用微處理器的4個GPIO引腳連接到可編程邏輯器件的標準 JTAG接口,并使用這4個引腳作為配置可編程邏輯器件的JTAG信號線;GPIO模擬JTAG模塊首先接收由程序解析模塊傳遞來的JTAG標準數(shù)據(jù)流,從中獲取相對應(yīng)的JTAG電平信息,并根據(jù)電平信息調(diào)用驅(qū)動程序,控制微處理器中GPIO引腳的輸出電平,微處理器引腳的電平輸出需滿足JTAG的時序要求,可編程邏輯器件根據(jù)此電平信息實現(xiàn)配置文件的在線更新。本發(fā)明的發(fā)明目的是這樣實現(xiàn)的在上位機中,程序封裝模塊提取由開發(fā)環(huán)境默認生成的可編程邏輯器件的更新配置文件,即.pof為后綴的配置文件,并將其轉(zhuǎn)化為Jam STAPL Byte-Code Player解析程序中需要的STAPL標準輸入文件,即.jbc文件;數(shù)據(jù)發(fā)送模塊將.jbc文件轉(zhuǎn)換為網(wǎng)絡(luò)信號并發(fā)送到網(wǎng)線上;這樣便完成了上位機對可編程邏輯器件配置文件的生成、封裝和發(fā)送的工作。在本發(fā)明可編程邏輯器件配置文件在線更新裝置中,使用微處理器控制數(shù)據(jù)接收緩沖模塊接收來自網(wǎng)線的.jbc文件,并對文件進行校驗以確保在傳輸過程中沒有出現(xiàn)信息丟失,并將該文件保存到程序存儲器中;程序解析模塊提取數(shù)據(jù)存儲器中.jbc文件中的可編程邏輯器件配置信息,并通過程序解析模塊內(nèi)部的Jam STAPL Byte-Code Player程序?qū)⒖删幊踢壿嬈骷呐渲眯畔⑥D(zhuǎn)換成JTAG數(shù)據(jù)流,并將該JTAG數(shù)據(jù)流傳遞給GPIO模擬 JTAG模塊。GPIO模擬JTAG模塊使用微處理器的4個GPIO連接到可編程邏輯器件的標準JTAG 接口,并使用這4個GPIO 口作為配置的可編程邏輯器件的JTAG信號線;GPIO模擬JTAG模塊首先接收由程序解析模塊傳遞來的JTAG標準數(shù)據(jù)流,并從中獲取相對應(yīng)的JTAG電平信息,并根據(jù)電平信息調(diào)用驅(qū)動程序,控制微處理器中GPIO引腳的輸出電平,微處理器引腳的電平輸出需滿足JTAG的時序要求,可編程邏輯器件根據(jù)此電平信息實現(xiàn)配置文件的在線更新。JTAG標準包含4個必須的信號,分別是TMS、TDI、TDO和TCK ;TMS信號為輸出信號,用于控制JTAG的狀態(tài)機的轉(zhuǎn)換;TDI信號同樣為輸出信號,是JTAG掃描鏈數(shù)據(jù)輸入的接口,所有要輸入到特定寄存器的數(shù)據(jù)都是通過TDI接口一位一位串行輸入的,TDO信號是從JTAG掃描鏈返回的器件反饋信號,TCK為JTAG輸入輸出數(shù)據(jù)流的時鐘信號控制信號, TMS、TDI和TDO信號的輸入輸出功能都是由TCK信號進行直接控制的;TMS、TDI的信號需要在TCK時鐘信號的下降沿鎖存并輸出到JTAG掃描鏈,而TDO反饋信號是在TCK時鐘信號的上升沿有效;GPIO模擬JTAG模塊實現(xiàn)的關(guān)鍵在于微處理器的GPIO引腳輸出信號的輸出需要滿足JTAG配置的時序要求;本發(fā)明具有以下優(yōu)點1、使用微處理器的GPIO作為標準的JTAG接口,并通過驅(qū)動程序模擬標準JTAG的配置時序,只用到了 4個普通的微處理器的GPI0,硬件電路十分簡單,跟傳統(tǒng)可編程邏輯器件的配置方法相比,成本降低很多。2、使用Jam STAPL Player對輸入的可編程邏輯器件的配置文件進行解析,配置文件使用的是標準測試與編程語言(STAPL)語言,專門應(yīng)用于描述可編程邏輯器件的配置文件,使配置文件具有通用性,獨立于可編程邏輯器件的生產(chǎn)廠商,可以應(yīng)用于多種可編程邏輯器件的配置工作,而不只是局限于一種可編程邏輯器件的配置。本發(fā)明可編程邏輯器件配置文件在線更新裝置以微處理器為核心,使用微處理器的普通GPIO和可編程邏輯器件的JTAG引腳連接,以軟件方式實現(xiàn)了可編程邏輯器件配置文件的更新,硬件成本低,配置過程簡單、操作方便,更新速度快,可以應(yīng)用于多種可編程邏輯器件的芯片。
圖1是本發(fā)明可編程邏輯器件配置文件在線更新裝置一種具體實施方式
原理框圖;圖2是Jam Player對可編程邏輯器件進行配置的原理圖;圖3是GPIO模擬JTAG模塊的時序圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明的具體實施方式
進行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當已知功能和設(shè)計的詳細描述也許會淡化本發(fā)明的主要內(nèi)容時,這些描述在這里將被忽略。實施例圖1是本發(fā)明可編程邏輯器件配置文件在線更新裝置一種具體實施方式
原理框圖。如圖1所示,在本實施例中,簡易單總線接口轉(zhuǎn)換電路,包括上位機中包含程序封裝模塊101和數(shù)據(jù)發(fā)送模塊102,本裝置的軟件開發(fā)平臺為 QUARTUS II開發(fā)環(huán)境。程序封裝模塊101將QUARTUS II開發(fā)環(huán)境默認編譯產(chǎn)生的可編程邏輯器件配置文件,即.Pof文件按照標準測試與編程語言(STAPL)標準的要求組合封裝為.jbc格式的文件;數(shù)據(jù)發(fā)送模塊102將程序封裝模塊組合封裝的文件,即.jbc文件轉(zhuǎn)化為網(wǎng)絡(luò)電平信號,通過以太網(wǎng)控制芯片對其進行轉(zhuǎn)換處理,并最終輸出到網(wǎng)線上;微處理器采用ARM9系列主流微處理器。ARM9微處理器中包含有數(shù)據(jù)接收緩沖模塊201、程序解析模塊202、GPIO模擬JTAG模塊203 ;由ARM9微處理器控制數(shù)據(jù)接收緩沖模塊201接收來自網(wǎng)線的.jbc文件,并對文件進行校驗以確保在傳輸過程中沒有出現(xiàn)信息丟失,并將該文件保存到數(shù)據(jù)存儲器3中;程序解析模塊202提取數(shù)據(jù)存儲器中.jbc文件包含的可編程邏輯器件配置信息,并通過程序解析模塊202內(nèi)部的Jam STAPL Byte-Code Player程序?qū)⒖删幊踢壿嬈骷呐渲眯畔⑥D(zhuǎn)換成JTAG數(shù)據(jù)流,并通過GPIO模擬JTAG模塊 203接收包含JTAG數(shù)據(jù)流的可編程邏輯器件的配置信息,獲取該配置信息中相對應(yīng)的JTAG 電平信息,最后通過系統(tǒng)中的Linux驅(qū)動程序,控制ARM9微處理器的引腳輸出電平,將該 JTAG電平信號通過ARM9微處理器的4個GPIO 口傳遞給可編程邏輯器件4,并同時從ARM9 微處理器的引腳狀態(tài)中獲取從可編程邏輯器件4中獲取反饋信息,這樣便完成了對配制文件的接收、解析和配置的工作,實現(xiàn)了對可編程邏輯器件4的配置和功能更新,在不使用專門配置插件的前提下,對可編程邏輯器件的配置文件進更新,提高工作效率。在本實施例中,由Altera公司的開發(fā)環(huán)境Quartus II開發(fā)環(huán)境編譯生成.pof的配置文件,通過程序封裝模塊101轉(zhuǎn)換為.jbc格式的配置文件,并作為輸入送往數(shù)據(jù)發(fā)送模塊102。所述ARM微處理器采用Samsung公司的型號為S3C2440A的ARM9芯片。該芯片包含豐富的片上設(shè)備,并集成有一個內(nèi)存管理單元(MMU),支持多種嵌入式操作系統(tǒng)。所述程序存儲器為一片容量為256MB的K9F2G08U0A芯片,與ARM9微處理器相連。在本裝置中需要完成的開發(fā)工作包括1、基于S3C2440A處理器的嵌入式Linux操作系統(tǒng)移植包括引導(dǎo)啟動程序 u-boot、嵌入式Linux系統(tǒng)內(nèi)核、yaffs2文件系統(tǒng)和以太網(wǎng)控制器驅(qū)動的移植。U_boot、Linux內(nèi)核和yaffs2文件系統(tǒng)均儲存于程序存儲器中;2、為了實現(xiàn)可編程邏輯器件配置文件的在線更新,需要將Altera公司的Jam STAPL Byte-Code Player移植到本裝置中的Linux系統(tǒng)中;3、由于Jam STAPL Byte-Code Player運行在嵌入式Linux操作系統(tǒng)中,沒法直接訪問ARM9芯片的GPIO引腳寄存器,也無法直接操作引腳的輸入輸出功能。因此需要為用于JTAG接口的GPIO引腳編寫基于Linux的驅(qū)動程序,將這些引腳封裝為Jam Player可以讀寫的字符設(shè)備。圖2是Jam Player對可編程邏輯器件進行配置的原理圖。在嵌入式Linux的環(huán)境中,使用JTAG接口配置可編程邏輯器件,必須使用標準測試與編程語言(Standard Test And Programming Language, STAPL)標準。STAPL 是一種專門用于描述可編程邏輯設(shè)備配置文件的編程語言,標準由EIA/JEDEC組織制定。使用STAPL 描述的配置文件具有通用性,獨立于可編程邏輯器件生產(chǎn)廠商。在本實施例中,如圖2所示,程序解析模塊202為Jam解析器,使用Jam STAPL進行配置包含兩個部分Jam Player和Jam配置文件。Jam Player運行在微處理器中,讀取 Jam配置文件并解析配置文件中表達的內(nèi)容,在JTAG接口 401上產(chǎn)生用于配置的二進制數(shù)據(jù)流并讀取反饋數(shù)據(jù)。本實施例中,所述可編程邏輯器件4為ALTERA公司MAX II系列芯片EPM1270,Jam Player使用的是ALTERA公司2. 2版本的Jam STAPL Byte-Code Player,這個版本的Jam 編譯器支持Wind0WS、D0S和UNIX這三種平臺的代碼,所使用的Jam配置文件格式為.jbc。 在本實施例中,應(yīng)用平臺為嵌入式Linux,因此必須根據(jù)平臺進行相應(yīng)的定制和移植。使用Jam Player配置EPM1270的命令為” PROGRAM”,其包含的子操作有D0_ BLANK_CHECK、D0_VERIFY、D0_SECURE、D0_DISABLE_ISP_CLAMP、D0_BYPASS_CFM、D0_BYPASS_ UFM、D0_REAL_TIME_ISP、D0_READ_USERC0DE、D0_INIT_C0NFIGURATI0N,其中每個子操作都由幾個相應(yīng)的命令組成。Jam Player首先對.jbc文件中包含的內(nèi)容進行分析,根據(jù)配置的命令提取其中包含的子操作,依次將所包含的子操作轉(zhuǎn)化為STAPL的標準指令,并將該STAPL的標準指令轉(zhuǎn)化為EPM1270配置所需要的JTAG數(shù)據(jù)流信息,然后將JTAG數(shù)據(jù)流信息通過10接口函數(shù)輸出到EPM1270的JTAG接口上。EPM1270接收到JTAG數(shù)據(jù)流后,根據(jù)指令的內(nèi)容,對內(nèi)部的配置單元(CFM)和用戶單元(UFM)逐一編程,并將反饋信息通過TDO接口返回到ARM9的 GPIO中,Jam Player通過比較之前的JTAG數(shù)據(jù)流和EPM1270的反饋信息對配置的過程進行判斷和控制,并輸出當前的狀態(tài)信息。當.jbc文件中所有包含的子操作中的指令都被執(zhí)行完畢后,EPM1270配置更新完畢。圖3為GPIO模擬JTAG模塊的時序圖。JTAG標準包含4個必須的信號,分別是TMS、TDI、TDO和TCK ;TMS信號為輸出信號,用于控制JTAG的狀態(tài)機的轉(zhuǎn)換;TDI信號同樣為輸出信號,是JTAG掃描鏈數(shù)據(jù)輸入的接口,所有要輸入到特定寄存器的數(shù)據(jù)都是通過TDI接口按位串行輸入的,TDO信號是從 JTAG掃描鏈返回的器件反饋信號,TCK為JTAG輸入輸出數(shù)據(jù)流的時鐘信號控制信號,TMS、 TDI和TDO信號的輸入輸出功能都是通過TCK信號直接控制的;TMS、TDI的信號需要在TCK 時鐘信號的下降沿鎖存并輸出到JTAG掃描鏈,而TDO反饋信號是在TCK時鐘信號的上升沿有效;GPIO模擬JTAG模塊203實現(xiàn)的關(guān)鍵在于ARM9微處理器的GPIO引腳GPB5 8輸出信號的輸出需要滿足JTAG配置的時序要求;tJCP為TCK時鐘周期,必須大于55. 5ns,tJCH為TCK的高電平時間,必須大于20ns, tJCL為TCK的低電平時間,必須大于20ns,tJPSU是JTAG的端口建立時間,需要大于8ns,tJPH 是JTAG端口的保持時間,需要大于10ns,tJPZX時間表示在TCK信號有效后,TDO信號從高阻到有效時間的間隔不得超過15ns,時間表示在TCK信號有效后,TDO信號的轉(zhuǎn)換時間最高不得超過15ns,tJPXZ時間表示在TCK信號有效后,TDO信號的保持時間最高不得超過15ns,由于本裝置中使用的操作系統(tǒng)為嵌入式Linux,在應(yīng)用程序中無法直接對ARM9處理的引腳進行操作,通過編寫Linux驅(qū)動程序控制ARM處理器引腳的輸入輸出功能,并使用精確定時的功能控制輸入輸出的時序,用于控制ARM9處理器GPIO 口的輸入輸出,使其達到 EPM1270配置所要求的時序,以此完成EPM1270配置文件的更新。盡管上面對本發(fā)明說明性的具體實施方式
進行了描述,以便于本技術(shù)領(lǐng)域的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于具體實施方式
的范圍,對本技術(shù)領(lǐng)域的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護之列。
權(quán)利要求
1.一種可編程邏輯器件配置文件在線更新裝置,其特征在于,包括 上位機,上位機中包含程序封裝模塊和數(shù)據(jù)發(fā)送模塊;程序封裝模塊用于將開發(fā)環(huán)境默認產(chǎn)生的可編程邏輯器件更新配置文件按照標準測試與編程語言(STAPL)標準的要求組合封裝為.jbc格式的文件;數(shù)據(jù)發(fā)送模塊用于將程序封裝模塊組合封裝的文件,即.jbc文件通過以太網(wǎng)控制芯片轉(zhuǎn)換為網(wǎng)絡(luò)信號并發(fā)送到網(wǎng)線上;微處理器和程序存儲器,微處理器中包括數(shù)據(jù)接收緩沖模塊、程序解析模塊和GPIO模擬JTAG模塊;數(shù)據(jù)接收緩沖模塊用于接收網(wǎng)線上從上位機傳來的.jbc文件,并完成數(shù)據(jù)校驗功能以確保傳輸無誤,將其存到程序存儲器里;程序解析模塊用于獲取存到程序存儲器里的.jbc文件,并使用內(nèi)部的JamSTAPL Byte-Code Player解析程序?qū)⒃?jbc文件中包含的配置信息解析為JTAG標準的數(shù)據(jù)流; GPIO模擬JTAG模塊使用微處理器的4個GPIO引腳連接到可編程邏輯器件的標準JTAG 接口,并使用這4個引腳作為配置可編程邏輯器件的JTAG信號線;GPIO模擬JTAG模塊首先接收由程序解析模塊傳遞來的JTAG標準數(shù)據(jù)流,從中獲取相對應(yīng)的JTAG電平信息,并根據(jù)電平信息調(diào)用驅(qū)動程序,控制微處理器中GPIO引腳的輸出電平,微處理器引腳的電平輸出需滿足JTAG的時序要求,可編程邏輯器件根據(jù)此電平信息實現(xiàn)配置文件的在線更新。
2.根據(jù)權(quán)利要求1所述的可編程邏輯器件配置文件在線更新裝置,其特征在于,所述的微處理器為ARM9芯片,并在其中移植嵌入式Linux操作系統(tǒng)包括引導(dǎo)啟動程序 u-boot、嵌入式Linux系統(tǒng)內(nèi)核、yaffs2文件系統(tǒng)和以太網(wǎng)控制器驅(qū)動的移植,其中引導(dǎo)啟動程序U-boot、入式Linux系統(tǒng)內(nèi)核、yaffs2文件系統(tǒng)均儲存于程序存儲器中;將Jam STAPL Byte-Code Player移植到Linux操作系統(tǒng)中;并為用于JTAG接口的GPIO 引腳編寫基于Linux的驅(qū)動程序,將這些引腳封裝為Jam Player可以讀寫的字符設(shè)備。
全文摘要
本發(fā)明公開了一種可編程邏輯器件配置文件在線更新裝置,在上位機中,程序封裝模塊提取更新配置文件并將其轉(zhuǎn)化為Jam STAPL Byte-Code Player解析程序中需要的STAPL標準輸入文件;數(shù)據(jù)發(fā)送模塊將其轉(zhuǎn)換為網(wǎng)絡(luò)信號并發(fā)送到網(wǎng)線上。然后數(shù)據(jù)接收緩沖模塊接收來自網(wǎng)線的.jbc文件,對文件進行校驗并保存到程序存儲器中;程序解析模塊提取數(shù)據(jù)存儲器中.jbc文件中的可編程邏輯器件配置信息,并通過程序解析模塊內(nèi)部的Jam STAPL Byte-Code Player程序?qū)⒖删幊踢壿嬈骷呐渲眯畔⑥D(zhuǎn)換成JTAG數(shù)據(jù)流,并傳遞給GPIO模擬JTAG模塊。由于使用微處理器的GPIO作為標準的JTAG接口,并通過驅(qū)動程序模擬標準JTAG的配置時序,只用到了4個普通的微處理器的GPIO,硬件電路十分簡單,跟傳統(tǒng)可編程邏輯器件的配置方法相比,成本降低很多。
文檔編號G05B19/05GK102436385SQ20111036194
公開日2012年5月2日 申請日期2011年11月15日 優(yōu)先權(quán)日2011年11月15日
發(fā)明者師奕兵, 張偉, 李焱駿, 王志剛, 高文輝 申請人:電子科技大學(xué)