0 引言
隨著超大規(guī)模集成電路(VLSI)、表面安裝器件(SMD)、多層印制電路板(MPCB)等技術(shù)的發(fā)展,使得統(tǒng)一測控系統(tǒng)綜合基帶印制電路板上電路節(jié)點的物理可訪問性正逐步惡化,電路和系統(tǒng)的可測試性急劇下降,常規(guī)測試面臨挑戰(zhàn)。通過研究VLSI芯片資料表明,大多數(shù)VLSI芯片都帶邊界掃描結(jié)構(gòu),如果將邊界掃描技術(shù)應(yīng)用到板級測試中,無疑將對電路板的連接故障和器件失效的準(zhǔn)確診斷起到非常重要的作用。邊界掃描測試主控系統(tǒng)是實現(xiàn)這一技術(shù)必不可少的硬件系統(tǒng)。從JTAG(Joint Test Action Group)提出該技術(shù)至今的十幾年中,邊界掃描測試技術(shù)已得到了一些應(yīng)用,并將有廣闊的應(yīng)用前景。本設(shè)計在分析邊界掃描測試受控系統(tǒng)工作機制的基礎(chǔ)上提出一種基于USB總線的邊界掃描測試主控系統(tǒng)的設(shè)計方案和實現(xiàn)電路。此方案具有結(jié)構(gòu)簡單、成本低、便攜性的特點。
1 邊界掃描結(jié)構(gòu)及基本原理
1.1 邊界掃描技術(shù)的基本原理
邊界掃描技術(shù)的主要思想是通過在芯片管腳和芯片內(nèi)部邏輯電路之間增加由移位寄存器構(gòu)成的邊界掃描單元,實現(xiàn)對芯片管腳狀態(tài)的串行設(shè)定和讀取,使管腳具有可控性和可觀測性。由于移位寄存器允許測試數(shù)據(jù)移位、更新溯試和捕獲鎖存,因此它不僅可以用來測試單獨的一個芯片,而且可以對電路板進(jìn)行互連測試。圖1給出了邊界掃描通路示意圖。其中,邊界掃描單元在主IC的測試數(shù)據(jù)輸入端(TDI)和測試數(shù)據(jù)輸出端(TDO)之間形成了一個掃描通道,當(dāng)IC處于正常工作狀態(tài)時,輸入輸出信號自由通過邊界掃描單元,從正常數(shù)據(jù)輸入端(NDI)到正常數(shù)據(jù)輸出端(TDO)。圖1邊界掃描通路示意圖
1.2 邊界掃描物理結(jié)構(gòu)
邊界掃描測試的基礎(chǔ)是邊界掃描測試總線和設(shè)計在器件內(nèi)的邊界掃描結(jié)構(gòu),邊界掃描測試總線由TDI(測試數(shù)據(jù)輸入)、TDO(測試數(shù)據(jù)輸出)、TMS(測試模式選擇)、TCK(測試時鐘)、TRST(測試復(fù)位)5條線構(gòu)成,主要完成測試向量輸入、測試響應(yīng)向量輸出和測試控制功能。器件內(nèi)邊界掃描結(jié)構(gòu)主要由TAP測試存取口、TAP控制器和必需的寄存器組成。TAP控制器接受來自邊界掃描測試總線的命令,控制邊界掃描單元的行動,實現(xiàn)對器件管腳狀態(tài)的設(shè)定、讀取和隔離。
1.2.1 寄存器
JTAG邊界掃描寄存器至少應(yīng)包括邊界掃描寄存器(DR)、指令寄存器(IR)和旁路寄存器。
(1) 邊界掃描寄存器。邊界掃描寄存器用于存放測試數(shù)據(jù)和測試響應(yīng)數(shù)據(jù),它由串行移位級和并行鎖存級組成。邊界掃描寄存器的工作方式為:加載到TDI的測試數(shù)據(jù)在TCK的上升沿串行移人邊界掃描寄存器,寄存器原來內(nèi)容在TCK的下降沿被串行移出到TDO,移入移位寄存器的數(shù)據(jù)可以被鎖存到并行輸出鎖存器中;對應(yīng)于輸出引腳的并行鎖存器可并行輸出到器件的引腳,移位寄存器可以并行捕獲到器件的邏輯輸出;對應(yīng)于輸入引腳的并行鎖存器可以并行輸出到器件的內(nèi)部邏輯,移位寄存器可捕獲輸入引腳信息。
(2) 指令寄存器。指令寄存器由串行移位級和并行鎖存級組成,其位數(shù)由芯片生產(chǎn)廠家定義。常用的指令包括EXTEST、BYPASS、SAMPL-E、INTEST等。TAP控制器根據(jù)指令寄存器中選擇的指令不同選擇將指定的寄存器連接到TDI和TDO之間。
(3) 旁路寄存器。旁路寄存器由一位移位寄存器組成,當(dāng)其被選通時,直接連接到器件的TDI和TDO之間從而獲得最短的掃描路徑。旁路寄存器的主要作用有:a.當(dāng)集成電路IC不需要數(shù)據(jù)寄存器的掃描存取時將其從掃描鏈上脫離從而縮短邊界掃描結(jié)構(gòu)的掃描通路長度;b.在測試期間,使集成電路IC脫離某種工作模式。
1.2.2 TAP控制器
TAP控制器控制整個邊界掃描機制的操作,其核心是16個工作狀態(tài)轉(zhuǎn)換機制,狀態(tài)轉(zhuǎn)換由TCK采樣TMS的值來實施。
2 硬件設(shè)計
控制器硬件可分為兩部分:一部分是USB控制芯片,另一部分是JTAG主控芯片,控制器利用USB控制芯片實現(xiàn)USB協(xié)議與PC機進(jìn)行通信,同時通過操作JTAG主控芯片,使其輸出到JTAG總線上的數(shù)據(jù)符合IEEE1149.1標(biāo)準(zhǔn),從而達(dá)到由PC機控制JTAG總線的目的??刂破饔布Y(jié)構(gòu)如圖2所示。
公司生產(chǎn)的EZ-USBFX2芯片CY7C68013是一種USB接口控制芯片,CY7C68013芯片包括一個加強型的8051處理器、一個串口引擎(SIE)、一個USB2.0收發(fā)器、8.5kB片上RAM、4kB的FIFO存儲器以及一個通用可編程接口(GPIF)。其GPIF可與任何ASIC或DSP進(jìn)行連接,它還支持現(xiàn)行所有通用總線標(biāo)準(zhǔn)。本系統(tǒng)USB接口芯片既作為數(shù)據(jù)傳輸?shù)闹薪?,同時完成和便攜式計算機間的控制信息的交換和控制過程的執(zhí)行。傳輸模式:在USB協(xié)議定義的4種傳輸模式中,批量傳輸和等時傳輸?shù)乃俣容^快。但批量傳輸具有差錯校驗,可以保證數(shù)據(jù)傳輸?shù)恼_性。在本方案中,因為對數(shù)據(jù)的準(zhǔn)確性要求較高,故采用批量傳輸方式。采用從PC端下載8051運行代碼的方式。這樣系統(tǒng)軟件修改和功能升級更加靈活,也省掉了外接ROM,使電路更加簡潔、可靠。
選擇TI公司專門針對系列DSP的邊界掃描芯片ACT8990。ACT8990的內(nèi)部結(jié)構(gòu)主要由隊列管理模塊、主機模塊、串行模塊、事件管理器、計數(shù)器、命令管理以及讀寫總線組成。
3 軟件設(shè)計
本控制器的軟件設(shè)計包括:固件程序、驅(qū)動程序和CPLD邏輯代碼以及CY7C68013的配置芯片EEPROM的代碼。軟件部分包括測試向量生成及分析模塊、邊界掃描測試運行模塊和USB數(shù)據(jù)傳輸驅(qū)動三部分。測試驅(qū)動程序作為下位機程序駐留在邊界掃描控制器中。邊界掃描測試運行模塊和測試向量生成及分析模塊作為上位機程序主要包括:測試文件分析、測試向量生成、上下位機通訊、響應(yīng)向量分析和輔助功能模塊。
3.1 測試文件分析
測試軟件運行時首先檢測文件庫中芯片邊界掃描描述文件是否齊全,然后進(jìn)行測試文件加載。測試執(zhí)行時將被測板網(wǎng)絡(luò)表文件(Protel軟件在設(shè)計電路圖時生成的標(biāo)準(zhǔn)文件)加載到系統(tǒng)中,分析該文件并生成測試板芯片信息文件和芯片間管腳互連網(wǎng)絡(luò)節(jié)點文件。根據(jù)芯片在邊界掃描鏈路上的順序?qū)⑿酒Q、封裝形式列入到測試板芯片信息文件中。網(wǎng)絡(luò)節(jié)點文件中則給出兩個芯片間的網(wǎng)絡(luò)節(jié)點列表以及對應(yīng)該節(jié)點的兩個芯片管腳號碼,并根據(jù)邊界掃描描述文件中的定義將互連節(jié)點中的TMS、TCK、TDI、TDO節(jié)點剔除。生成的這兩個文件是供測試向量生成和響應(yīng)向量分析模塊使用。邊界掃描描述文件由IEEE1149.1標(biāo)準(zhǔn)定義,就一般測試而言分析該文件主要獲得芯片物理管腳號碼和邊界掃描寄存器位置的對應(yīng)關(guān)系(邊界掃描寄存器中靠近TDO的那一位定義為第0位)、邊界掃描測試的各種指令、指令寄存器和邊界掃描寄存器的描述以及芯片管腳的輸入輸出類型。
3.2 測試向量生成
進(jìn)行邊界掃描測試時首先應(yīng)當(dāng)檢驗邊界掃描鏈路連接和工作狀態(tài)是否正常;邊界掃描鏈上的芯片是否正確安裝,即執(zhí)行完整性測試。完整性測試通過后才能允許執(zhí)行進(jìn)一步的測試內(nèi)容。完整性測試是通過捕獲掃描鏈路芯片在TMS狀態(tài)機經(jīng)過CAPTURE-IR狀態(tài)時裝載到指令寄存器中的數(shù)據(jù)以及讀取標(biāo)志寄存器里的芯片ID碼與邊界掃描描述文件的正確代碼進(jìn)行比較來完成的,在讀取指令寄存器捕獲值的同時可以通過TDI將下一步的測試指令寫入,以節(jié)省測試步驟。圖3給出了測試軟件的流程圖。
電路板芯片間的互連測試是邊界掃描測試技術(shù)的主要測試內(nèi)容,主要用來檢測測試板上各個網(wǎng)絡(luò)連接是否正常,是否存在固定邏輯故障、開路故障、橋接短路故障和其他特殊故障。根據(jù)測試需要,兼顧測試時間和測試精度兩方面的要求,在軟件中采用了5種不同的測試向量生成算法(分別為改良計數(shù)序列算法、計數(shù)補償算法、移位—算法、等權(quán)值抗誤判算法、極小權(quán)值—極大相異性算法)。根據(jù)主界面選擇的測試要求,將掃描鏈上不需要進(jìn)行測試的芯片送入旁路指令,而被測試芯片則送入外測試指令。以此準(zhǔn)則生成互聯(lián)測試指令代碼,串行加載到鏈路芯片的指令寄存器上。互連測試向量則需要根據(jù)主界面選擇的算法和芯片互連網(wǎng)絡(luò)節(jié)點文件生成。為了保證生成的測試向量能夠準(zhǔn)確地加載到互連網(wǎng)絡(luò)節(jié)點上,需要對生成的初級測試代碼進(jìn)行處理。變換思想是根據(jù)芯片物理管腳和邊界掃描單元的對應(yīng)關(guān)系,將生成的對應(yīng)網(wǎng)絡(luò)節(jié)點管腳的測試數(shù)據(jù)填入到其在邊界掃描鏈路中對應(yīng)的位置,形成可加載到掃描鏈上的測試向量。器件的功能測試主要包括對具有邊界掃描結(jié)構(gòu)的芯片或電路板進(jìn)行功能測試以及對不具有邊界掃描結(jié)構(gòu)的器件進(jìn)行簇測試。其測試數(shù)據(jù)和測試響應(yīng)數(shù)據(jù)都是根據(jù)芯片邏輯定義好的。對于簇測試芯片,需要用它周圍的具有邊界掃描結(jié)構(gòu)的芯片的邊界掃描單元作為簇測試芯片的虛擬邊界掃描單元,來進(jìn)行測試數(shù)據(jù)的加載和捕獲。因此網(wǎng)絡(luò)節(jié)點文件不能通過查找網(wǎng)絡(luò)表文件自動生成,需要自己定義,其格式與執(zhí)行互連測試時生成的文件相同。讀取文件中預(yù)先定義的測試向量并變換成能最終加載到鏈路上的測試向量的方法也與互聯(lián)測試相同。其他進(jìn)行采樣測試、機內(nèi)自檢測試時只需要輸入測試指令分析測試結(jié)果,并不需要生成額外的測試數(shù)據(jù)。
3.3 測試響應(yīng)分析及故障診斷
測試響應(yīng)分析及故障診斷模塊對測試響應(yīng)數(shù)據(jù)進(jìn)行分析,以確定目標(biāo)電路板有無故障、故障位置和故障類型,并將分析結(jié)果送給主界面進(jìn)行顯示。進(jìn)行故障分析時首先要對測試響應(yīng)向量進(jìn)行初處理,剔除垃圾數(shù)據(jù),然后將有效的響應(yīng)數(shù)據(jù)代入故障診斷函數(shù)進(jìn)行分析。進(jìn)行完整性測試故障診斷時,利用芯片列表信息文件和邊界掃描描述文件中的定義將響應(yīng)向量中對應(yīng)于各個芯片的CAPTURE-IR值和IDCODE值分析出來與標(biāo)準(zhǔn)值進(jìn)行比較分析,就可以給出故障判斷。進(jìn)行互聯(lián)測試故障診斷時,需要根據(jù)芯片物理管腳和邊界掃描單元的對應(yīng)關(guān)系將對應(yīng)于網(wǎng)絡(luò)節(jié)點文件中網(wǎng)絡(luò)管腳的測試數(shù)據(jù)從響應(yīng)向量中提取出來。然后根據(jù)分析規(guī)則和輸入的測試向量分析出存在固定邏輯故障、開路故障、橋接短路故障和特殊故障的網(wǎng)絡(luò)號碼及其對應(yīng)的互連芯片管腳號碼,并分析給出可能存在的誤判或混淆的網(wǎng)絡(luò)。器件的邏輯功能故障診斷和簇測試故障診斷方式與互聯(lián)測試基本相同,也需要把對應(yīng)測試管腳的響應(yīng)向量從整個測試響應(yīng)向量中提取出來,與標(biāo)準(zhǔn)的測試結(jié)果進(jìn)行比較從而確定器件的邏輯功能是否正常。
4 測試結(jié)果
(1) 掃描鏈路的測試。先用移位指令命令將取樣預(yù)加載指令(SAMPLE/PRELOAD)送出,然后用移位數(shù)據(jù)命令將一系列1010…10測試矢量序列掃入到掃描鏈路中,同時將其掃回到主控計算機進(jìn)行比較,判斷掃描鏈路是否完好;
(2)獲取器件標(biāo)識。用移位指令命令對兩片支持邊界掃描測試功能的芯片發(fā)器件標(biāo)志代碼(IDCODE)指令,或?qū)σ黄珻PLD發(fā)旁路指令(BY-PASS),另一片發(fā)器件標(biāo)志代碼(IDCODE)指令,然后用移位數(shù)據(jù)命令將32位器件標(biāo)志從器件標(biāo)志寄存器掃出,以獲得被測器件的器件標(biāo)志;
(3)互連測試。先用移位指令命令將取樣預(yù)加載指令(SAMPLE/PRELOAD)送出,然后用移位數(shù)據(jù)命令將用于互連測試的測試矢量送人芯片1中,隨后用移位指令命令將外測試指令(EXTEST)送出,再用移位數(shù)據(jù)命令將測試響應(yīng)從芯片2中掃回到主控計算機中,并與正確的響應(yīng)進(jìn)行比較,以對所模擬的四路短路故障、開路故障進(jìn)行診斷并定位。上述測試均得到了正確的結(jié)果,此外,在進(jìn)行掃描鏈路的測試中,還對FIFO模塊支持不間斷全速掃描進(jìn)行了充分的驗證。
5 結(jié)束語
邊界掃描機制的出現(xiàn)是測試及可測試性設(shè)計思想的一次飛躍,它提供了一種完整的、標(biāo)準(zhǔn)化的VLSI電路可測試性設(shè)計方法。它不僅能對傳統(tǒng)的測試問題提供標(biāo)準(zhǔn)和有效的解決方案;同時還能提高系統(tǒng)各級的可測試性。隨著邊界掃描技術(shù)的發(fā)展以及日益廣泛的應(yīng)用,開發(fā)邊界掃描測試系統(tǒng)具有很高的現(xiàn)實意義和市場價值。而邊界掃描測試軟件作為邊界掃描測試系統(tǒng)的操作部分更需要通過合理的設(shè)計使測試過程自動化、測試對象通用化、診斷結(jié)果精確可靠,更好地發(fā)揮邊界掃描測試技術(shù)的優(yōu)點,推動邊界掃描測試技術(shù)的推廣和應(yīng)用。