顏學(xué)龍+尹亮亮+陳壽宏
摘 要: 為解決復(fù)雜芯片的測(cè)試與調(diào)試問題,提出支持IEEE 1149.7標(biāo)準(zhǔn)的邊界掃描控制器。在對(duì)IEEE 1149.7標(biāo)準(zhǔn)和邊界掃描測(cè)試技術(shù)進(jìn)行深入研究的基礎(chǔ)上,利用上位機(jī)進(jìn)行軟件編程,通過Quartus Ⅱ平臺(tái)進(jìn)行IP核的開發(fā),成功設(shè)計(jì)出了支持IEEE 1149.7標(biāo)準(zhǔn)的邊界掃描測(cè)試控制器。實(shí)驗(yàn)結(jié)果表明,控制器能夠產(chǎn)生符合IEEE 1149.7標(biāo)準(zhǔn)的兩線星型信號(hào)和四線輸出信號(hào)。
關(guān)鍵詞: IEEE 1149.7標(biāo)準(zhǔn); USB總線; MScan掃描格式; 邊界掃描控制器
中圖分類號(hào): TN820.2?34; TN407 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)04?0147?04
Design and research on boundary scan controller according with IEEE Std 1149.7
YAN Xuelong1,2, YIN Liangliang1,2, CHEN Shouhong1,2
(1. School of Electronic Engineering and Automation, Guilin University of Electronic Technology, Guilin 541004, China;
2. Guangxi Key Laboratory of Automatic Detecting Technology and Instruments, Guilin 541004, China)
Abstract: Aiming at the test and debugging problems of complex chips, a boundary scan controller according with IEEE Std 1149.7 is proposed. On the basis of deeply studying the IEEE Std 1149.7 and boundary scan test technology, the upper computer is used to perform the software programming and the IP core is developed by means of the Quartus Ⅱ platform to design the boundary scan test controller according with IEEE Std 1149.7. The experimental results show this controller can generate the two?line star signal and four?line output signal according with IEEE Std 1149.7.
Keywords: IEEE Std 1149.7; USB bus; MScan scanning format; boundary scan controller
0 引 言
IEEE 1149.1標(biāo)準(zhǔn)自20世紀(jì)80年代提出以來(lái),在集成電路的測(cè)試和故障診斷中發(fā)揮了重要的作用,但是,隨著芯片一體化的加劇,傳統(tǒng)的測(cè)試方法已經(jīng)不能很好地滿足現(xiàn)階段對(duì)測(cè)試與調(diào)試的多方面要求。在此種情況下,可測(cè)試性總線標(biāo)準(zhǔn)委員會(huì)于2009年一致表決通過了IEEE 1149.7標(biāo)準(zhǔn),該標(biāo)準(zhǔn)兼容IEEE 1149.1所規(guī)定的所有功能,同時(shí)增加了新的功能,提供了一種全新的雙引腳測(cè)試與調(diào)試方法[1?2]。
在對(duì)IEEE 1149.7標(biāo)準(zhǔn)研究的基礎(chǔ)上,文獻(xiàn)[2]對(duì)所設(shè)計(jì)的控制器的IP核只進(jìn)行了功能仿真,沒進(jìn)行時(shí)序仿真及下載到實(shí)際FPGA芯片中,文獻(xiàn)[3]和文獻(xiàn)[4]主要實(shí)現(xiàn)了IEEE 1149.7標(biāo)準(zhǔn)兩線星型掃描的功能層級(jí)仿真,而且沒進(jìn)行實(shí)際電路的驗(yàn)證及上位機(jī)軟件研究。
目前,符合IEEE 1149.7標(biāo)準(zhǔn)的測(cè)試控制器大部分還只停留在仿真層級(jí),沒考慮實(shí)際電路中的信號(hào)延時(shí)問題。所以本文所設(shè)計(jì)的基于實(shí)際電路板的邊界掃描控制器,在技術(shù)上有了很大的進(jìn)步,對(duì)其進(jìn)一步發(fā)展具有非常重要的實(shí)際意義。
1 ZBS和MScan掃描格式
1.1 ZBS
所謂ZBS(Zero?Bit Scan),是指TAP(Test Access Port)控制器的一個(gè)DR(Data Register)掃描的狀態(tài)序列從Select?DR狀態(tài)開始,到Updata?DR狀態(tài)結(jié)束,中間不經(jīng)過Shift?DR狀態(tài)。一次完整的ZBS的產(chǎn)生有兩條路徑,第一種是從Select?DR狀態(tài)開始,然后經(jīng)過Capture?DR,Exit1?DR狀態(tài),最后到達(dá)Update?DR狀態(tài);另一種是從Select?DR狀態(tài)開始,然后經(jīng)過Capture?DR,Exit1?DR,一個(gè)或多個(gè)Pause?DR,Exit2?DR,最后到達(dá)Update?DR狀態(tài)。在狀態(tài)轉(zhuǎn)換的時(shí)候一旦經(jīng)過Shift?DR狀態(tài),控制等級(jí)即被鎖定,當(dāng)控制等級(jí)鎖定在2時(shí),表示TAP.7控制器命令。
圖1表示的是TAP控制器的16狀態(tài)機(jī),所有的狀態(tài)轉(zhuǎn)換都發(fā)生在TCK(Test Clock)的上升沿,箭頭上的0和1代表的是在TCK的上升沿采樣到的TMS(Test Mode Select)的低電平和高電平。在所有的16個(gè)狀態(tài)中,有6個(gè)穩(wěn)定的狀態(tài),它們分別是Test?Logic?Reset,Run?Test/Idle,Shift?DR,Capture?DR,Shift?IR和Capture?IR。
1.2 MScan掃描格式
MScan掃描格式是惟一一個(gè)同時(shí)支持直接分配TAP控制器地址和間接分配TAP控制器地址的掃描格式[3]。MScan掃描格式由延遲單元和掃描數(shù)據(jù)包組成,所產(chǎn)生的載荷單元有至少6個(gè)TCKC(Test Clock)信號(hào)周期,對(duì)于每個(gè)TAPC(Test Access Port Controller)狀態(tài),輸入/輸出信息流包含同樣的信息。
圖2中,MScan掃描格式的SP(Scan Packet)包包含6位信息,nTDI和TMS表示的是控制器向被測(cè)目標(biāo)發(fā)送的信息,PC0,RDY,PC1,TDO(Test Data Output)四位表示的是控制器從被測(cè)目標(biāo)讀回的數(shù)據(jù)信息。
2 控制器的設(shè)計(jì)
2.1 硬件設(shè)計(jì)
2.1.1 控制器的總體設(shè)計(jì)
邊界掃描控制器通過USB 2.0接口和上位機(jī)進(jìn)行通信,通過上位機(jī)程序調(diào)用數(shù)據(jù)庫(kù)里預(yù)先設(shè)定好的測(cè)試指令和數(shù)據(jù)發(fā)送給控制器,控制器產(chǎn)生符合IEEE 1149.7標(biāo)準(zhǔn)協(xié)議的波形信號(hào)發(fā)送給被測(cè)系統(tǒng),同時(shí)從讀取被測(cè)系統(tǒng)的測(cè)試響應(yīng)插入至數(shù)據(jù)庫(kù),方便系統(tǒng)進(jìn)行故障診斷。總體設(shè)計(jì)框圖如圖3所示。
2.1.2 1149.1邊界掃描控制器單元
1149.1邊界掃描控制器單元由Cypress公司的USB轉(zhuǎn)換芯片CY7C68013A?128AC和JTAG主控芯片ACT8990構(gòu)建而成。USB轉(zhuǎn)換芯片進(jìn)行USB協(xié)議數(shù)據(jù)的轉(zhuǎn)換,實(shí)現(xiàn)上位機(jī)和邊界掃描控制器的通信,將上位機(jī)發(fā)送的數(shù)據(jù)轉(zhuǎn)換成JTAG主控芯片能夠識(shí)別的信號(hào),通過ACT8990進(jìn)行操作之后發(fā)送給FPGA模塊,從而產(chǎn)生符合IEEE 1149.7標(biāo)準(zhǔn)的測(cè)試信號(hào)。
USB轉(zhuǎn)換芯片在向下發(fā)送測(cè)試數(shù)據(jù)和測(cè)試指令的同時(shí),將從被測(cè)系統(tǒng)返回的測(cè)試響應(yīng)傳輸給上位機(jī),方便系統(tǒng)進(jìn)行后續(xù)的故障診斷[5]。因此,它對(duì)整個(gè)測(cè)試系統(tǒng)的構(gòu)建起著舉足輕重的作用。
2.1.3 FPGA模塊
由圖3可知,F(xiàn)PGA模塊通過TDO信號(hào)線接收IEEE 1149.1邊界掃描控制器發(fā)送過來(lái)的數(shù)據(jù),對(duì)自身的各個(gè)寄存器進(jìn)行配置,產(chǎn)生符合IEEE 1149.7標(biāo)準(zhǔn)的測(cè)試信號(hào)。當(dāng)為兩線星型掃描時(shí),通過TCKC(Test Clock),TMSC(Test Mode Select)兩個(gè)信號(hào)線將數(shù)據(jù)發(fā)送給被測(cè)系統(tǒng),返回的測(cè)試響應(yīng)也打包在TMSC上傳輸給上位機(jī);當(dāng)為四線輸出測(cè)試時(shí),通過TDOC(Test Data Output)向被測(cè)系統(tǒng)發(fā)送數(shù)據(jù),TDIC(Test Data Input)接收被測(cè)系統(tǒng)返回的測(cè)試響應(yīng),TCKC和TMSC相互配合完成狀態(tài)的轉(zhuǎn)換。發(fā)送和接收過程中所有的狀態(tài)轉(zhuǎn)換均要符合圖1所示的TAP控制器狀態(tài)機(jī)的轉(zhuǎn)換機(jī)制。
FPGA模塊的開發(fā)是在Quartus Ⅱ應(yīng)用平臺(tái)上,基于Verilog語(yǔ)言進(jìn)行IP核的設(shè)計(jì),采用自頂向下的設(shè)計(jì)方法[4,6]。通過頂層模塊調(diào)用ZBS,MScan,Command等各個(gè)功能模塊,依次進(jìn)行ZBS循環(huán)鎖定控制級(jí)別命令的發(fā)送、測(cè)試數(shù)據(jù)的發(fā)送。
2.2 軟件設(shè)計(jì)
2.2.1 設(shè)備驅(qū)動(dòng)程序
設(shè)備驅(qū)動(dòng)程序是上位機(jī)和邊界掃描控制器部分進(jìn)行通信的橋梁,上位機(jī)只有通過這個(gè)硬件接口才能控制設(shè)備進(jìn)行相應(yīng)的工作,其在整個(gè)系統(tǒng)中占據(jù)十分重要的地位。本系統(tǒng)驅(qū)動(dòng)程序以WDM(Windows Driver Model)為基礎(chǔ),采用軟件開發(fā)包DDK(Device Driver Kits)進(jìn)行開發(fā),DDK為驅(qū)動(dòng)程序的開發(fā)提供了所需的資源文件、開發(fā)技術(shù)文檔、編譯連接程序等[7]。設(shè)備的驅(qū)動(dòng)程序主要包含INF文件(Device information File),固件下載驅(qū)動(dòng)。
其中,INF文件是一種純文本文件,有自己的編寫規(guī)則,每一個(gè)INF文件都是按照這些規(guī)則進(jìn)行編寫的。它是對(duì)設(shè)備信息的描述文件,其中包含了設(shè)備的描述信息或腳本信息,用于控制設(shè)備驅(qū)動(dòng)的安裝,當(dāng)USB設(shè)備連接到上位機(jī),系統(tǒng)會(huì)搜索所有INF文件中的信息,并與上位機(jī)獲取到的USB設(shè)備的接口信息或設(shè)備信息做對(duì)比,從而找到與該USB設(shè)備匹配的INF文件,繼而根據(jù)INF文件中的安裝信息,正確安裝設(shè)備的驅(qū)動(dòng)程序。
固件下載驅(qū)動(dòng)的作用是下載固件程序到USB控制芯片CY7C68013的內(nèi)部RAM(Random?Access Memory)中。本系統(tǒng)所用到的固件下載驅(qū)動(dòng)是bulkloader.sys,其生成過程是轉(zhuǎn)換用戶的固件程序?yàn)镃文件,然后用DDK軟件開發(fā)包編譯產(chǎn)生。當(dāng)邊界掃描控制器和上位機(jī)連接之后,上位機(jī)獲得INF文件中的安裝信息,加載固件下載驅(qū)動(dòng)。
2.2.2 固件程序
固件程序是寫入EROM(Erasable Read Only Memory)或E2PROM(Electrically Erasable Programmable Read?Only Memory)中的程序,它是系統(tǒng)工作的底層軟件,決定著硬件設(shè)備的質(zhì)量和性能。CY7C68013固件程序的編寫基于Cypress提供的固件框架,其主要包含fw.c和bulkloop.c兩個(gè)文件。bulkloop.c文件是固件程序的核心部分,其主要包括外圍設(shè)備操作函數(shù),在此文件中添加相應(yīng)代碼來(lái)實(shí)現(xiàn)外圍設(shè)備功能。本系統(tǒng)中,固件程序主要實(shí)現(xiàn)的功能是將上位機(jī)發(fā)送過來(lái)的數(shù)據(jù)進(jìn)行解析然后發(fā)送給JTAG控制器ACT8990相應(yīng)的寄存器,同時(shí)從ACT8990的緩沖區(qū)中讀取測(cè)試響應(yīng)。
2.2.3 上位機(jī)應(yīng)用程序
上位機(jī)應(yīng)用程序基于VC++ 6.0進(jìn)行設(shè)計(jì)開發(fā),負(fù)責(zé)從數(shù)據(jù)庫(kù)提取測(cè)試數(shù)據(jù)發(fā)送給邊界掃描控制器,同時(shí)接收返回來(lái)的響應(yīng)插入數(shù)據(jù)庫(kù)。軟件流程圖見圖4。
應(yīng)用程序主要包括對(duì)ACT8990的配置,測(cè)試數(shù)據(jù)的處理,數(shù)據(jù)的發(fā)送和接收,以及對(duì)響應(yīng)的處理等模塊,其中,主要通過設(shè)備控制函數(shù)DeviceIoControl()完成數(shù)據(jù)的發(fā)送和接收。
3 邊界掃描控制器驗(yàn)證
邊界掃描控制器經(jīng)USB 2.0接口和上位機(jī)進(jìn)行通信,通過上位機(jī)程序調(diào)用數(shù)據(jù)庫(kù)里預(yù)先設(shè)定好的數(shù)據(jù)發(fā)送給控制器,控制器根據(jù)接收到的指令和數(shù)據(jù)進(jìn)行相應(yīng)的操作,產(chǎn)生符合IEEE 1149.7標(biāo)準(zhǔn)的測(cè)試信號(hào),發(fā)送給被測(cè)系統(tǒng)。同時(shí)經(jīng)USB?Blaster傳輸線通過Quartus Ⅱ軟件里的SignalTap Ⅱ Logic Analyzer采樣控制器所產(chǎn)生的信號(hào)輸出至上位機(jī)顯示,進(jìn)行分析驗(yàn)證。
3.1 兩線星型信號(hào)分析驗(yàn)證
兩線星型掃描部分,以MScan掃描格式為例,上位機(jī)按照從低位到高位先后發(fā)送預(yù)先設(shè)定好的測(cè)試數(shù)據(jù),數(shù)據(jù)的十六進(jìn)制格式內(nèi)容如下:00 00 00 00 00 00 24 02 00 00 06 00 00 00 00 00 00 00 23 10 00 00 00 00 00 00 1A 02??刂破鞲鶕?jù)上位機(jī)所發(fā)送的配置指令數(shù)據(jù),首先進(jìn)行ZBS狀態(tài)循環(huán),進(jìn)行兩次ZBS狀態(tài)循環(huán)鎖定控制級(jí)別為2,然后發(fā)送STFMT(Store Format)命令,選擇MScan掃描格式,在前者發(fā)送的指令的基礎(chǔ)上,發(fā)送CP(Check Packet)包,最后進(jìn)行SP包數(shù)據(jù)的發(fā)送和接收。
如圖5所示,在T0時(shí)刻控制器處于Run?Test/Idle狀態(tài),之后在TCKC的上升沿依次采集到TMSC的值為“1010111”,根據(jù)狀態(tài)轉(zhuǎn)換圖,狀態(tài)經(jīng)過Select?DR,Capture?DR,Exit1?DR,Pause?DR,Exit2?DR,Update?DR,完成一次ZBS循環(huán),最后回到Select?DR狀態(tài),狀態(tài)繼續(xù)循環(huán),在T1時(shí)刻完成兩次ZBS循環(huán),T2時(shí)刻經(jīng)過Shift?DR狀態(tài),從而將控制等級(jí)鎖定在等級(jí)2,T3時(shí)刻開始發(fā)送STFMT命令,其中CP1包的內(nèi)容是00011,就是在Shift?DR狀態(tài)循環(huán)3次,CP2包的內(nèi)容是10000,在Shift?DR狀態(tài)循環(huán)16次,最后,CP檢查包的內(nèi)容是0000,代表標(biāo)準(zhǔn)協(xié)議到高級(jí)協(xié)議的轉(zhuǎn)換結(jié)束,即在T4時(shí)刻選定MScan掃描格式,T5時(shí)刻開始進(jìn)行兩線傳輸(即通過TCKC和TMSC進(jìn)行傳輸),其中MScan掃描格式的SP包包含nTDI,TMS,PC0,RDY,PC1,TDO六個(gè)位的信息,如圖5所示。
3.2 四線輸出信號(hào)分析驗(yàn)證
上位機(jī)從低位到高位先后發(fā)送十六進(jìn)制格式的數(shù)據(jù):00 00 00 00 00 00 00 00 1E FF 1E DF 1E B0 1E 92 1E 77 1E 5B 1E 33 1E 1A 00 00 00 00 00 00 00 00 2A 02 00 00 00 00 00 00 00 00 1A 02;通過SignalTap Ⅱ Logic Analyzer所采樣的時(shí)序信號(hào)中,ZBS指令部分和MScan兩線掃描部分相同,首先進(jìn)行ZBS狀態(tài)循環(huán),兩次ZBS循環(huán)后,狀態(tài)經(jīng)過Shift?DR,隨即鎖定控制級(jí)別為2;基于ZBS指令產(chǎn)生的控制級(jí)別2的基礎(chǔ)上,緊接著控制器開始向被測(cè)系統(tǒng)發(fā)送CIDA(Controller ID Allocate)指令;執(zhí)行完CIDA中的CP1和CP2后,控制器開始執(zhí)行CP3的操作,共發(fā)送35位的CP3。
如圖6所示,根據(jù)TCKC和TMSC的時(shí)序關(guān)系可知,首先進(jìn)行ZBS循環(huán),在完成兩次ZBS循環(huán)之后,在T1時(shí)刻鎖定控制等級(jí)為2,T2時(shí)刻開始發(fā)送CIDA命令。其中CIDA指令是一個(gè)三部分命令,它的作用是給每一個(gè)T3層及T3層以上的TAP.7控制器分配一個(gè)惟一的識(shí)別號(hào),這個(gè)識(shí)別號(hào)只能被單獨(dú)訪問,CIDA指令選擇列舉的掃描路徑。T3時(shí)刻開始發(fā)送CIDA命令的CP3。
4 結(jié) 語(yǔ)
所設(shè)計(jì)的邊界掃描控制器能夠成功的根據(jù)上位機(jī)發(fā)送的配置數(shù)據(jù)產(chǎn)生符合IEEE 1149.7標(biāo)準(zhǔn)的測(cè)試信號(hào),既能完成兩線星型掃描格式信號(hào)的產(chǎn)生,也能產(chǎn)生四線輸出的測(cè)試信號(hào),對(duì)于進(jìn)一步研究IEEE 1149.7 標(biāo)準(zhǔn)的測(cè)試系統(tǒng)具有非常重要的意義。
參考文獻(xiàn)
[1] IEEE. IEEE Standard for reduced?pin and enhanced?functionality test access port and boundary?scan architecture: IEEE Std 1149.7?2009 [S]. America: IEEE, 2009.
[2] 陳壽宏,顏學(xué)龍,黃新.基于IEEE 1149.7標(biāo)準(zhǔn)的CJTAG測(cè)試設(shè)計(jì)方法研究[J].測(cè)控技術(shù)與儀器儀表,2013,39(1):79?82.
[3] 楊軻,顏學(xué)龍.IEEE 1149.7標(biāo)準(zhǔn)兩線星型掃描格式研究[J].微電子學(xué)與計(jì)算機(jī),2015(10):147?150.
[4] 建珍珍,顏學(xué)龍.兩線星型掃描測(cè)試控制器設(shè)計(jì)[J].大眾科技,2012(3):63?66.
[5] 耿建平,陳林艷,尚玉玲.USB?1149.1邊界掃描控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2014(3):919?922.
[6] 高艷輝.基于FPGA的邊界掃描控制器的設(shè)計(jì)[D].鎮(zhèn)江:江蘇大學(xué),2010.
[7] 蒙智敏,陳曉敏.基于USB 2.0的邊界掃描控制器的設(shè)計(jì)[J].電子技術(shù),2011,38(5):29?31.
[8] 陳光?,潘中良.可測(cè)性設(shè)計(jì)技術(shù)[M].北京:電子工業(yè)出版社,1997.
[9] 史江義.基于IP核的SoC設(shè)計(jì)關(guān)鍵技術(shù)研究[D].西安:西安電子科技大學(xué),2007.
[10] 徐志磊,郭箏.基于IEEE 1149.7的新一代測(cè)試界接口實(shí)現(xiàn)與應(yīng)用[J].信息技術(shù),2010(8):164?166.