專利名稱:校驗(yàn)可編程邏輯器件中軟件版本的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子或通信領(lǐng)域的測(cè)試技術(shù),特別涉及一種對(duì)可編程邏輯器件(PLDProgrammable Logic Device)的軟件版本進(jìn)行檢驗(yàn)的方法。
背景技術(shù):
隨著電子或通信系統(tǒng)中功能越來越多,為實(shí)現(xiàn)所述的功能,電子或通信系統(tǒng)中電路的結(jié)構(gòu)也越來越復(fù)雜,多層板的設(shè)計(jì)越來越普遍,在所述的設(shè)計(jì)中,會(huì)用到大量的可表帖的可編程邏輯器件,所述可編程邏輯器件有的作為控制系統(tǒng)的一部分,有的則分布在系統(tǒng)的不同單板上實(shí)現(xiàn)單板的特殊功能。
由于可編程邏輯器件可以通過編程來實(shí)現(xiàn)其功能,所以當(dāng)電子或通信系統(tǒng)中單板需要增加新功能或?qū)υ瓉淼墓δ苓M(jìn)行更換時(shí),便需要對(duì)所述可編程邏輯器件中的實(shí)現(xiàn)功能的軟件進(jìn)行版本升級(jí),而一個(gè)實(shí)現(xiàn)功能的軟件的版本往往與系統(tǒng)軟件或其他模塊的功能軟件版本具有配套關(guān)系,不配套的版本可能使系統(tǒng)不能啟動(dòng)或啟動(dòng)后系統(tǒng)工作異常,因此為保證系統(tǒng)的正常工作,提高系統(tǒng)的可靠性,有必要考慮在系統(tǒng)啟動(dòng)前對(duì)系統(tǒng)的可編程邏輯器件的實(shí)現(xiàn)功能的軟件版本進(jìn)行校驗(yàn)。
現(xiàn)有技術(shù)是讓系統(tǒng)啟動(dòng)后,通過控制系統(tǒng)讀取可編程邏輯器件內(nèi)的實(shí)現(xiàn)功能的軟件版本的寄存器,控制系統(tǒng)校驗(yàn)是否是所要求的版本,如果不是則控制部分要對(duì)實(shí)現(xiàn)功能的軟件進(jìn)行升級(jí)。如果控制系統(tǒng)沒有正常啟動(dòng),那么有可能是系統(tǒng)某個(gè)實(shí)現(xiàn)功能的軟件的版本不配套或其他物理原因,這需要一個(gè)復(fù)雜的定位過程。
但是,現(xiàn)有技術(shù)方案卻存在以下問題
首先,要通過控制系統(tǒng)讀實(shí)現(xiàn)功能的軟件的版本寄存器,就須保證控制系統(tǒng)的正常工作、控制通道線路正常,另外,執(zhí)行命令的管理通道和軟件也都要正常工作,可見,此方案牽涉的模塊較多,如果某一部分故障都會(huì)影響實(shí)現(xiàn)功能的軟件的版本校驗(yàn),特別是對(duì)控制系統(tǒng)過于依賴,因此其校驗(yàn)可靠性相對(duì)不高;其次,如果可編程邏輯器件內(nèi)所加載的實(shí)現(xiàn)功能的軟件的版本與CPU的啟動(dòng)軟件有沖突,則可能會(huì)使控制系統(tǒng)的CPU不能啟動(dòng),這樣所有實(shí)現(xiàn)功能的軟件的版本的校驗(yàn)都不能執(zhí)行,從而導(dǎo)致與CPU啟動(dòng)相關(guān)的的校驗(yàn)不能執(zhí)行;最后,如果系統(tǒng)中某個(gè)可編程邏輯器件沒有CPU控制接口,則不能讀實(shí)現(xiàn)功能的軟件的版本寄存器,這樣也就無法進(jìn)行版本校驗(yàn)。
發(fā)明內(nèi)容
本發(fā)明提供一種校驗(yàn)可編程邏輯器件中軟件版本的方法,以解決現(xiàn)有技術(shù)中系統(tǒng)的PLD軟件版本校驗(yàn)的可靠性較低、以及有些情況下軟件版本不能校驗(yàn)的問題。
為解決上述技術(shù)問題,本發(fā)明提供的一種校驗(yàn)可編程邏輯器件中軟件版本的方法,包括如下步驟1)啟動(dòng)JTAG控制器并利用其采樣功能對(duì)系統(tǒng)各PLD中軟件版本進(jìn)行采樣;2)判斷各PLD中軟件版本是否與系統(tǒng)軟件或其他模塊的用以實(shí)現(xiàn)通信功能的軟件版本具有正確的配套關(guān)系;3)如果PLD的軟件版本校驗(yàn)正確,則啟動(dòng)系統(tǒng)其他部分;否則,通過JTAG控制器將PLD中軟件版本升級(jí)到正確的版本。
所述步驟1)的采樣是通過讀取PLD中軟件版本的寄存器內(nèi)容完成的。
所述步驟2)的判斷具體過程為是利用JTAG控制器將PLD中軟件版本的寄存器內(nèi)容與系統(tǒng)所要求的軟件版本信息內(nèi)容進(jìn)行比較。
所述JTAG控制器擁有JTAG總線,所述的PLD擁有JTAG接口,所述的JTAG總線和所述JTAG接口連接。
所述I/O端口與PLD中軟件版本寄存器的版本號(hào)相對(duì)應(yīng),并在PLD編程時(shí)被定義為輸出I/O端口。
所述JTAG控制器還包括具有JTAG接口的IC,通過所述JTAG總線將所述IC連接到PLD,并通過該IC的JTAG接口控制IC模擬出對(duì)PLD的軟件版本寄存器的讀操作時(shí)序。
本發(fā)明的優(yōu)點(diǎn)在于,本發(fā)明所提供的方法是在系統(tǒng)啟動(dòng)前,通過邊界掃描實(shí)現(xiàn)版本校驗(yàn),其能夠通過JTAG控制器在系統(tǒng)的被校驗(yàn)單板啟動(dòng)前對(duì)可編程邏輯器件的軟件版本進(jìn)行校驗(yàn),并在版本不一致的情況下對(duì)軟件版本升級(jí),同時(shí)也可以使版本校驗(yàn)和加載過程與被加載的單板或模塊相獨(dú)立,減少了校驗(yàn)過程對(duì)其他部分的依賴關(guān)系,提高了校驗(yàn)可靠性。此外,還可以進(jìn)行可編程邏輯器件內(nèi)所加載的軟件版本與CPU的啟動(dòng)軟件是否有沖突的校驗(yàn),同時(shí),對(duì)于沒有CPU的系統(tǒng)也能實(shí)現(xiàn)軟件版本校驗(yàn)和升級(jí)。
圖1為JTAG邊界掃描工作原理圖;圖2為系統(tǒng)中JTAG與PLD的連接關(guān)系圖;
圖3為本發(fā)明利用JTAG邊界掃描技術(shù)實(shí)現(xiàn)可編程邏輯器件軟件版本校驗(yàn)方法流程圖;圖4為JTAG控制器通過JTAG總線直接取樣PLD的特定I/O實(shí)現(xiàn)版本校驗(yàn)示意圖;圖5為JTAG控制器通過具有JTAG接口的IC讀取PLD的版本實(shí)現(xiàn)版本校驗(yàn)示意圖。
具體實(shí)施例方式
邊界掃描測(cè)試技術(shù)是基于作為解決PCB物理訪問問題的JTAG(聯(lián)合測(cè)試行動(dòng)組)接口發(fā)展起來的,這樣的問題是新的封裝技術(shù)導(dǎo)致電路板裝配日益擁擠所造成的。1988年,北美一些公司聯(lián)合成立了聯(lián)合測(cè)試行動(dòng)組(JTAGJoint Test Action Group),規(guī)范化了最初的邊界掃描(Boundary Scan)技術(shù)。1990年,IEEE(Institute of Electrical andElectronic Engineers)接受該規(guī)范成為標(biāo)準(zhǔn)1149.1。邊界掃描在芯片級(jí)層次上嵌入測(cè)試電路,以形成全面的電路板級(jí)測(cè)試協(xié)議。利用邊界掃描工業(yè)標(biāo)準(zhǔn)IEEE 1149.1可以對(duì)復(fù)雜的裝配進(jìn)行測(cè)試、調(diào)試和在系統(tǒng)設(shè)備編程,并診斷出硬件問題。通過對(duì)掃描路徑I/O的訪問,可以消除或極大地減少對(duì)電路板上物理測(cè)試點(diǎn)的需要。除了可以進(jìn)行電路板測(cè)試外,邊界掃描測(cè)試允許在PCB貼片之后,在電路板上對(duì)幾乎所有類型的PLD和閃存進(jìn)行編程和掃描。IEEE 1149.1標(biāo)準(zhǔn)規(guī)定了一個(gè)四線串行接口,該接口稱作測(cè)試訪問端口(TAP),用于訪問復(fù)雜的集成電路(IC),例如微處理器、可編程邏輯器件等。具有JTAG接口的芯片內(nèi)置功能模式寄存器或軟件版本寄存器,通過邊界掃描通道校驗(yàn)芯片的實(shí)現(xiàn)功能的軟件的版本狀態(tài)或使芯片處于某個(gè)特定的功能模式。
邊界掃描測(cè)試有兩大優(yōu)點(diǎn)一個(gè)是方便芯片的故障定位,提高測(cè)試效率;另一個(gè)是,具有JTAG接口的芯片內(nèi)置功能模式寄存器或邏輯狀態(tài)寄存器,通過邊界掃描通道校驗(yàn)芯片的邏輯狀態(tài)或使芯片處于某個(gè)特定的功能模式。當(dāng)前的可編程邏輯器件幾乎都有符合IEEE 1149.1的JTAG接口和功能,因此,可以通過JTAG邊界掃描技術(shù)對(duì)可編程邏輯器件的軟件版本進(jìn)行校驗(yàn)。
如圖1所示,邊界掃描技術(shù)通過軟件對(duì)支持邊界掃描的器件的引腳進(jìn)行完全的控制,設(shè)置或讀取其狀態(tài),其中,邏輯單元(Logic)是可編程邏輯器件內(nèi)部原本的邏輯功能模塊,可編程邏輯器件的每個(gè)引腳對(duì)應(yīng)一個(gè)邊界掃描單元,這些單元內(nèi)部連接成鏈狀。當(dāng)可編程邏輯器件正常工作時(shí),邊界掃描功能沒有打開,邊界掃描單元是“透明”的,通過器件引腳可以正常操作可編程邏輯器件內(nèi)部邏輯功能;當(dāng)使用測(cè)試時(shí)鐘(TCK)、測(cè)試模式選擇(TMS)控制可編程邏輯器件內(nèi)部專用的測(cè)試訪問接口(TAP)控制器打開邊界掃描功能后,則通過內(nèi)部邊界掃描鏈可以任意讀取或設(shè)置每一個(gè)引腳的狀態(tài)。這樣,配合專用軟件就能夠完成對(duì)可編程邏輯器件內(nèi)部或外部電路的測(cè)試。
如圖3所示,本發(fā)明利用JTAG邊界掃描技術(shù)實(shí)現(xiàn)可編程邏輯器件的軟件版本校驗(yàn)方法的具體步驟如下1)首先啟動(dòng)JTAG控制器;如圖2所示,在一個(gè)系統(tǒng)中,JTAG與PLD的連線包括帶有JTAG控制器的控制板和其他類型單板,各單板都可能有PLD器件(對(duì)于小的系統(tǒng),很可能只有一塊單板),通常只有一個(gè)主用的JTAG控制器(放在控制板上),它通過JTAG總線把各單板的PLD連起來(包括控制板本身)。控制板上電后,首先啟動(dòng)JTAG控制器,使系統(tǒng)JTAG工作,通過JTAG掃描整個(gè)系統(tǒng)各個(gè)要做版本校驗(yàn)的PLD軟件版本,當(dāng)版本校驗(yàn)正確后再啟動(dòng)系統(tǒng)其他部分,如果版本校驗(yàn)不正確,則要通過JTAG實(shí)現(xiàn)對(duì)PLD版本的升級(jí),升級(jí)成功后啟動(dòng)系統(tǒng)其他部分。
2)利用JTAG的采樣功能對(duì)系統(tǒng)各PLD中軟件版本進(jìn)行采樣;PLD版本校驗(yàn)的前提是PLD邏輯已經(jīng)加載,并有版本標(biāo)識(shí)(寄存器、I/O管腳等)。電路采樣是邊界掃描提供的一項(xiàng)重要功能,它可以對(duì)與邊界掃描單元相關(guān)的I/O引腳進(jìn)行采樣,本發(fā)明是利用JTAG的采樣功能實(shí)現(xiàn)可編程器件的版本采樣,通過讀取可編程邏輯器件的軟件版本寄存器的內(nèi)容完成的。
本發(fā)明利用JTAG的采樣(SAMPLE)指令選通串行連接在測(cè)試數(shù)據(jù)輸入(TDI)與測(cè)試數(shù)據(jù)輸出(TDO)間的邊界掃描寄存器,這個(gè)過程對(duì)芯片的正常邏輯操作沒有影響。JTAG的采樣功能在器件正常工作時(shí)對(duì)其引腳的電平狀態(tài)進(jìn)行取樣,而且,這些采樣的數(shù)據(jù)可以通過邊界掃描寄存器串行移位輸出。其工作原理是利用掃描鏈?zhǔn)紫阮A(yù)置采樣(Preload/Sample)指令,然后進(jìn)行捕獲數(shù)據(jù)(Capture-DR)和移位數(shù)據(jù)(Shift-DR)的操作,通過數(shù)據(jù)移位可以將采樣下來的數(shù)據(jù)保存起來,以便進(jìn)行數(shù)據(jù)分析。
3)判斷各PLD中軟件版本是否與系統(tǒng)軟件或其他模塊的用以實(shí)現(xiàn)通信功能的軟件版本具有正確的配套關(guān)系;本例中,判斷是利用JTAG控制器將可編程邏輯器件的軟件版本寄存器的內(nèi)容與系統(tǒng)所要求的軟件版本信息內(nèi)容進(jìn)行比較完成的,所述系統(tǒng)所要求的版本信息內(nèi)容存儲(chǔ)在CPU外圍的寄存器中。
4)如果PLD的軟件版本校驗(yàn)正確,則啟動(dòng)系統(tǒng)其他部分;5)如果PLD的軟件版本校驗(yàn)不正確,則通過JTAG將PLD中軟件版本升級(jí)到正確的版本,升級(jí)成功后啟動(dòng)系統(tǒng)其他部分。
通過JTAG實(shí)現(xiàn)PLD版本校驗(yàn)有兩種情況,一種情況是IC上沒有帶JTAG接口的,JTAG控制器的JTAG總線可以直接連接到PLD上,通過局部總線訪問PLD,通過JTAG的采樣指令采樣用于標(biāo)示版本的I/O端口;另一種情況是PLD有局部總線連接到具有JTAG接口的IC上,通過JTAG控制IC仿真出局部總線的讀操作訪問到PLD的內(nèi)部寄存器,由該IC的JTAG控制IC模擬出對(duì)PLD的軟件版本寄存器的讀操作時(shí)序,這種情況下,PLD也可以在JTAG鏈中。
如圖4所示,對(duì)于上述第一種情況的PLD版本校驗(yàn)方法,PLD預(yù)留幾個(gè)I/O腳,該I/O腳與軟件版本寄存器的版本號(hào)相對(duì)應(yīng),同時(shí)在PLD編程時(shí)把這些I/O定義為輸出。JTAG控制器啟動(dòng)后,通過JTAG邊界掃描的采樣指令采樣可編程邏輯器件的版本I/O,讀取軟件版本寄存器的內(nèi)容,從而獲得軟件版本信息,與存儲(chǔ)在CPU外圍寄存器中的系統(tǒng)要求的正確軟件版本信息進(jìn)行比較,如果可編程邏輯器件的軟件版本不正確,JTAT控制器通過JTAG接口實(shí)現(xiàn)對(duì)可編程邏輯器件的軟件版本升級(jí)。因?yàn)镴TAG的采樣指令不影響可編程邏輯器件的正常邏輯功能,因此在版本校驗(yàn)過程中,不會(huì)對(duì)可編程邏輯器件的邏輯功能有任何影響。
對(duì)于第二種情況,如圖5所示,JTAG控制器通過邊界掃描使連接PLD的IC模擬出與PLD連接的局部總線,通過模擬的局部總線把PLD的軟件版本寄存器的值讀上來,并通過JTAG輸出,與要求的版本相比較。該方法可以省去定義版本I/O,節(jié)省了PLD的I/O資源。
權(quán)利要求
1.一種校驗(yàn)可編程邏輯器件中軟件版本的方法,其特征在于,包括如下步驟1)啟動(dòng)JTAG控制器并利用其采樣功能對(duì)系統(tǒng)各PLD中軟件版本進(jìn)行采樣;2)判斷各PLD中軟件版本是否與系統(tǒng)軟件或其他模塊的用以實(shí)現(xiàn)通信功能的軟件版本具有正確的配套關(guān)系;3)如果PLD的軟件版本校驗(yàn)正確,則啟動(dòng)系統(tǒng)其他部分;否則,通過JTAG控制器將PLD中軟件版本升級(jí)到正確的版本。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟1)的采樣是通過讀取PLD中軟件版本的寄存器內(nèi)容完成的。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟2)的判斷具體過程為是利用JTAG控制器將PLD中軟件版本的寄存器內(nèi)容與系統(tǒng)所要求的軟件版本信息內(nèi)容進(jìn)行比較。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于所述JTAG控制器擁有JTAG總線,所述的PLD擁有JTAG接口,所述的JTAG總線和所述JTAG接口連接。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于所述I/O端口與PLD中軟件版本寄存器的版本號(hào)相對(duì)應(yīng),并在PLD編程時(shí)被定義為輸出I/O端口。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于所述JTAG控制器還包括具有JTAG接口的IC,通過所述JTAG總線將所述IC連接到PLD,并通過該IC的JTAG接口控制IC模擬出對(duì)PLD的軟件版本寄存器的讀操作時(shí)序。
全文摘要
本發(fā)明提供一種校驗(yàn)可編程邏輯器件中軟件版本的方法包括如下步驟1)啟動(dòng)JTAG控制器并利用其采樣功能對(duì)系統(tǒng)各PLD中軟件版本進(jìn)行采樣;2)判斷各PLD中軟件版本是否與系統(tǒng)軟件或其他模塊的用以實(shí)現(xiàn)通信功能的軟件版本具有正確的配套關(guān)系;3)如果PLD的軟件版本校驗(yàn)正確,則啟動(dòng)系統(tǒng)其他部分;否則,通過JTAG控制器將PLD中軟件版本升級(jí)到正確的版本。本發(fā)明的可編程邏輯器件軟件版本校驗(yàn)是在系統(tǒng)啟動(dòng)前完成的,使版本校驗(yàn)和加載過程與被加載的單板或模塊相獨(dú)立,減少了校驗(yàn)過程對(duì)其他部分的依賴關(guān)系,提高了校驗(yàn)可靠性。
文檔編號(hào)G06F9/445GK1855043SQ20051003432
公開日2006年11月1日 申請(qǐng)日期2005年4月19日 優(yōu)先權(quán)日2005年4月19日
發(fā)明者李占有, 王重陽, 王永生 申請(qǐng)人:華為技術(shù)有限公司