韋翠榮,顏學龍,尚玉玲
(桂林電子科技大學電子工程與自動化學院,廣西桂林541004)
邊界掃描測試生成與故障診斷的研究與實現(xiàn)
韋翠榮,顏學龍,尚玉玲
(桂林電子科技大學電子工程與自動化學院,廣西桂林541004)
隨著電子技術(shù)的日益發(fā)展,電子電路系統(tǒng)的集成度和復雜性越來越高,邊界掃描技術(shù)應(yīng)用越來越廣泛。在研究邊界掃描基本結(jié)構(gòu)和測試原理的基礎(chǔ)上,給出互連測試矢量生成與故障診斷算法,對互連測試矢量生成和故障診斷進行研究與實現(xiàn)。使用VS2008軟件作為平臺開發(fā)邊界掃描測試系統(tǒng),采用走步1算法和改良計數(shù)算法進行矢量的生成,并根據(jù)W步自適應(yīng)算法進行故障診斷。結(jié)果表明,系統(tǒng)自動生成的測試矢量測試時間短,效果好,故障診斷能力強,診斷部分能夠消除征兆混淆和征兆誤判現(xiàn)象,對設(shè)置的故障能夠精確地定位和隔離。
邊界掃描;測試矢量;互連測試;故障診斷;測試系統(tǒng)
隨著微電子技術(shù)、微封裝技術(shù)和印制板制造技術(shù)的不斷發(fā)展,印制電路板變得越來越小,密度越來越大,復雜程度越來越高[1],傳統(tǒng)的測試方法難以為繼,一種新的測試方法——邊界掃描技術(shù)應(yīng)運而生。邊界掃描技術(shù)作為標準化的數(shù)字電路測試及可測性方法[2]能夠有效地解決傳統(tǒng)測試方法的不足,在工業(yè)界得到普遍的認同和支持?;ミB測試是邊界掃描技術(shù)的主要內(nèi)容之一,它能夠?qū)﹄娐钒逯g的互連線進行測試,主要檢測電路板級的開路、短路或者呆滯型等故障[3]。影響邊界掃描互連測試效率的關(guān)鍵之一是測試矢量的生成與故障診斷能力。因此如何縮短測試矢量生成時間,提高故障診斷能力,是目前亟需解決的問題。
本文對邊界掃描互連測試矢量生成與故障診斷進行研究與實現(xiàn),使用VS2008軟件作為平臺開發(fā)邊界掃描測試系統(tǒng),并采用走步1算法和改良計數(shù)算法進生成測試矢量,最后根據(jù)W步自適應(yīng)算法進行故障診斷。走步1算法故障診斷能力強[4],改良計數(shù)算法緊湊性指標高,而 W 步自適應(yīng)算法靈活性好。
2.1 邊界掃描技術(shù)的基本原理
邊界掃描測試的基本思想是在靠近器件的每一個輸入/輸出管腳處增加一個移位寄存器單元[5]。在正常工作期間,這些附加的移位寄存器單元是透明的,不影響電路板的正常工作。在測試期間,這些寄存器單元用于控制輸入管腳的狀態(tài),并讀出輸出管腳的狀態(tài),這樣就可測試出電路板中器件的好壞及相互連接的正確性[6]。IEEE1149.1標準[7-8]給出了邊界掃描測試的基本結(jié)構(gòu),如圖1所示。
圖1 邊界掃描基本結(jié)構(gòu)
測試存取端口(Test Access Port,TAP)、TAP控制器、指令寄存器和測試數(shù)據(jù)寄存器組是IEEE1149.1標準分成的4類基本硬件單元。測試存取通道有1條輸出連接線和4條輸入連接線分別是:測試數(shù)據(jù)輸出線(Test Data Output,TDO),測試數(shù)據(jù)輸入線(Test Data Input,TDI),測試測試方式選擇輸入線,時鐘輸入線,測試復位輸入線。
2.2 互連測試原理
互連測試主要是指對電路板上器件之間互連線的測試。BS器件里的掃描單元就像虛擬探針,要測試BS器件之間的連線是否正常,可以通過給輸出型掃描單元賦值,從輸入型掃描單元捕獲這個值的方法進行判斷[3]。圖2所示為互連測試的一個簡單例子。
圖2 互連測試示例
輸入3組測試矢量(1,1,1,0)、(0,1,0,1)和(1,0,0,1),從接收掃描單元得到3組測試響應(yīng)(1, 1,1,0),(0,0,0,0)和(0,0,0,0)。根據(jù)一定的故障診斷算法就可以檢測到圖2中Net1和Net2存在邏輯與的橋接短路故障,Net4存在固定為0的呆滯型故障[9]。
邊界掃描測試系統(tǒng)是在VS2008編程軟件環(huán)境下運用C++語言進行編程。軟件部分可大致劃分為4個模塊:文本編譯模塊,測試矢量生成模塊,測試運行模塊和故障診斷模塊。如圖3所示為互連測試系統(tǒng)框圖。
圖3 互連測試系統(tǒng)框圖
文本編譯模塊主要是對網(wǎng)表文件和BSDL文件進行編譯,并將編譯好的數(shù)據(jù)保存到數(shù)據(jù)庫里;測試矢量生成模塊主要是對文本編譯模塊提取的電路板信息進行分析處理形成測試鏈路,并結(jié)合各種測試矢量算法形成互連測試矢量;測試運行模塊主要是對電路板測試激勵進行驅(qū)動和測試響應(yīng)的回收;故障診斷模塊主要是對測試運行的結(jié)果進行分析,判斷電路有無故障,若存在故障,則對故障進行精確定位。
3.1 測試文件分析
測試矢量生成需要由BSDL文件和網(wǎng)表文件提供相應(yīng)的被測板信息。文本編譯模塊部分主要是對這2種文件的信息進行提取,它根據(jù)研究對象BSDL文件以及Protel網(wǎng)表文件自身結(jié)構(gòu)特點,運用flex軟件與bison軟件實現(xiàn)詞法分析、語法分析、信息儲存等功能,最后能夠?qū)δ繕宋募M行全面、快速、準確的解析。系統(tǒng)掃描編譯BSDL文件,形成了有關(guān)BSDL器件庫的信息,包括器件引腳信息、掃描單元信息、封裝信息和器件支持的指令集以及指令編碼;系統(tǒng)掃描編譯網(wǎng)表文件,形成了有關(guān)電路板網(wǎng)絡(luò)連接的信息,具體到一個網(wǎng)絡(luò)由哪一些器件-引腳組成[10]。
3.2 互連測試矢量生成算法
進行矢量生成最關(guān)鍵的還是算法的確定,算法的選擇主要考慮2個方面的指標,即緊湊性指標和完備性指標。經(jīng)典的測試生成算法主要包括2種類型:一種單純考慮測試向量集的緊湊性指標,以改良記數(shù)序列算法為代表;另一種單純考慮測試向量的故障診斷能力,以走步1算法為代表[11]?;ミB測試矢量常用的算法有走步1算法、走步0算法、改良記數(shù)序列算法、記數(shù)/補償、等權(quán)值算法等[3]。可以根據(jù)被測電路的規(guī)模和不同的測試需求選用不同的基本算法。
采用走步1算法和改良計數(shù)算法生成矢量,下面對這2種算法進行簡單介紹,假設(shè)待測網(wǎng)絡(luò)數(shù)為n。
走步1算法:緊湊性指標為n,其測試向量集為n階單位矩陣,如下所示:
改良計數(shù)算法:緊湊性指標為p=lb(n+2),其測試矩陣如下所示:
以上矩陣為n行、p列。
3.3 互連測試矢量生成
生成互連測試矢量的流程如圖4所示。
圖4 互連測試矢量生成流程
具體步驟如下:
(1)提取被測電路板上所有BS器件的基本信息,形成掃描粗鏈。再提取每一個BS器件的7段碼信息,結(jié)合粗鏈形成掃描細鏈。
(2)提取網(wǎng)絡(luò)信息,將可測網(wǎng)絡(luò)提取出來并判斷它們的網(wǎng)絡(luò)類型,采用適當?shù)臏y試算法對這些網(wǎng)絡(luò)產(chǎn)生初始的測試矢量。
(3)將初始測試矢量在掃描鏈上展開即給掃描單元賦值,得到整個掃描鏈的并行測試矢量(Parallel Test Vector,PTV)集和對應(yīng)的并行期望響應(yīng)矢量(Parallel Expect Response Vector,PERV)集。
3.4 故障診斷
系統(tǒng)進行故障診斷即可得出互連測試結(jié)果。生成矢量采用的算法不同則診斷的方法也不同。采用走步1算法生成矢量,直接就可以分析出結(jié)果;采用改良計數(shù)算法,則使用W步自適應(yīng)算法進行故障診斷[12]。2種方法各有優(yōu)缺點,采用走步1算法生成矢量,其故障診斷能力強直接可以分析出結(jié)果,但是緊湊性指標低;采用改良計數(shù)算法,緊湊性指標高,但是若初級測試后還存在征兆誤判或混淆現(xiàn)象,那么還需要追加W步由走步1生成的矢量到被測電路板上,故障診斷能力弱。圖5所示為故障診斷流程。
圖5 故障診斷流程
具體的故障診斷步驟如下:
(1)判斷矢量生成采用何種算法。若采用改良計數(shù)算法就加載lb(n+2)個并行測試矢量(PTV)到被測板上,若采用走步1算法就加載n個并行測試矢量到被測板上。
(2)得到響應(yīng)結(jié)果后,將并行響應(yīng)矩陣中的向量與并行期望響應(yīng)矩陣中的向量進行異或運算,如下式所示。
(3)當f(vx)=00…0H時電路無故障,當f(vx)≠00…0H時電路存在故障。
(4)若步驟(3)分析得出電路無故障,進入步驟(6)。若電路存在故障,記錄f(vx)中矢量位為字符“1”的位置(設(shè)為y),判斷矢量的值。當00…0H時,是固定為 0的呆滯型故障,進入步驟(6)。當時,是固定為1的呆滯型故障,進入步驟(6)。當且時,進入步驟(5)。是串行響應(yīng)矩陣中的向量。
(5)若測試采用的是走步1算法,是橋接故障,進入步驟(6)。若測試采用的是W步自適應(yīng)算法,檢測測試響應(yīng)矩陣中與相同的串行響應(yīng)矢量數(shù)目k。若k=1,是橋接故障,進入步驟(6);若k>1,可能存在征兆混淆或誤判現(xiàn)象,識別出具備相同SRV的網(wǎng)絡(luò)子集R,令W=|R|。加載W個由走步1算法生成的矢量到被測板上,進入步驟(2)。
(6)給出故障診斷報表。
測試中采用一塊實驗板作為被測對象,搭建了一個簡單的測試系統(tǒng)。該實驗板主要由sn74bct8244和sn74bct8374兩塊邊界掃描芯片構(gòu)成,如圖6所示。為了方便對電路故障進行模擬,在測試板上設(shè)置了4個開關(guān),調(diào)節(jié)開關(guān)F1、F3即可以完成對互連測試產(chǎn)生的故障進行模擬。
圖6 實驗板電路結(jié)構(gòu)
由于電路比較簡單,因此采用走步1算法就能很快進行測試和診斷。走步1算法得到的初始測試矢量在掃描鏈上展開后得到的并行測試矢量PTV和并行期望響應(yīng)矢量PERV都保存到數(shù)據(jù)庫中,如圖7所示為存入數(shù)據(jù)庫的矢量集,其中,X代表任意值。
圖7 生成的測試矢量
調(diào)節(jié)開關(guān) F1,使得網(wǎng)絡(luò) NetU1_16和網(wǎng)絡(luò)NetU1_17橋接短路,調(diào)節(jié)開關(guān)F3,使得網(wǎng)絡(luò)NetU1_ 15與地短路。在 EXTEST指令有效狀態(tài)下,進入Shift_DR狀態(tài),將測試矢量(PTV)從TDI端輸入,通過邊界掃描通路將測試矢量串行加到sn74bct8244和sn74bct8374的邊界掃描單元中,進入Update_DR狀態(tài),sn74bct8244和sn74bct8374邊界掃描單元中的數(shù)據(jù)鎖存輸出到輸出管腳上,進入Capture_DR狀態(tài),sn74bct8374把輸入管腳的數(shù)據(jù)捕捉到相應(yīng)的邊界掃描單元,進入 Shift_DR狀態(tài),sn74bct8244和sn74bct8374邊界掃描單元中的數(shù)據(jù)從TDO端串行輸出。
最后得出的結(jié)果分析如表1所示,由于版面有限只列出前3組。
表1 矢量結(jié)果比較
通過故障診斷算法快速檢測到網(wǎng)絡(luò)NetU1_16和網(wǎng)絡(luò)NetU1_17橋接短路,網(wǎng)絡(luò)NetU1_15與地短路,結(jié)果和假設(shè)的一樣。結(jié)果如圖8所示。
圖8 故障診斷結(jié)果
上述驗證結(jié)果表明,測試系統(tǒng)生成矢量快速,測試時間短,故障檢測率高。相對于傳統(tǒng)的測試系統(tǒng),該系統(tǒng)嵌入數(shù)據(jù)庫提高了數(shù)據(jù)提取和處理速度,采用的測試算法故障診斷能力強,消除了許多算法不能消除的征兆混淆現(xiàn)象和誤判現(xiàn)象,故障檢測率高達100%。與傳統(tǒng)的診斷算法相比,本文采用的診斷算法靈活性強,根據(jù)不同的測試生成算法,能夠采取不同的診斷方法。
本文給出互連測試矢量生成與診斷算法,能夠?qū)嶒灠孱A設(shè)故障進行檢測與定位,快速地完成測試任務(wù)。實驗結(jié)果表明,該方法具有測試成本低、生成矢量故障覆蓋率高及操作簡便等優(yōu)點。系統(tǒng)實現(xiàn)采用VS2008軟件開發(fā)平臺,運用模塊化和面向?qū)ο笤O(shè)計的方法,為建立具有擴展性和復用性的自動測試系統(tǒng)提供有力手段,實現(xiàn)系統(tǒng)的自動高效檢測。
[1] 孫媛媛.FPGA的邊界掃描測試方法研究[D].哈爾濱:哈爾濱工程大學,2004.
[2] 賈 勇.FPGA連線資源的自適應(yīng)診斷算法研究[D].哈爾濱:哈爾濱工程大學,2005.
[3] 張學斌.基于JTAG的互連測試技術(shù)[J].今日電子, 2004,(4):5-6.
[4] 張學斌.基于邊界掃描技術(shù)的互連測試[J].電子元器件應(yīng)用,2005,7(3):45-46.
[5] 潘小龍.基于邊界掃描技術(shù)的測試系統(tǒng)的研究與應(yīng)用[D].南京:南京航空航天大學,2008.
[6] 彭喜元,俞 洋,孫 寧.邊界掃描技術(shù)的板級實現(xiàn)方法研究[J].電子測量與儀器學報,2004,(z1):17-20.
[7] IEEE.IEEE Std 1149.1-1990 IEEE Standard Test Access Port and Boundary——Scan Architecture[S]. 1990.
[8] IEEE.IEEE Std 1149.1-2001 IEEE Standard Test Access Port and Boundary Scan Architecture[S].2001.
[9] 王新玲,王 紅,封錦琦.基于邊界掃描的互連測試技術(shù)實現(xiàn)[J].測控技術(shù),2012,31(z1):245-247.
[10] 羅秋明.基于BSDL和Protel網(wǎng)表的BST向量生成軟件[J].計算機應(yīng)用與軟件,2008,20(1):66-68.
[11] 胡 政,錢彥嶺,溫熙森.邊界掃描測試優(yōu)化算法——極小權(quán)值-極大相異性算法[J].測控技術(shù),2000, 19(9):9-11.
[12] 周清林.基于電路板互連的自適應(yīng)測試生成算法研究與實現(xiàn)[D].桂林:桂林電子科技大學,2003.
編輯 顧逸斐
Research and Implementation of Boundary Scan Test Generation and Fault Diagnosis
WEI Cuirong,YAN Xuelong,SHANG Yuling
(School of Electronic Engineering and Automation,Guilin University of Electronic Technology,Guilin 541004,China)
With the development of electronic technology,integration and complexity of electronic circuit system are increasingly higher.Boundary scan technology is more and more widely applied in electronic circuit system test.Based on the basic structure and principle of the boundary scan,this paper gives the algorithm of interconnect test vector generation and fault diagnosis,to research and implement interconnect test vector generation and fault diagnosis.In the paper, VS2008 software as a platform is used to develop a boundary scan test system,Walk-1 algorithm and MCSA algorithm are used to generate the vector,and the W step adaptive algorithm is used for fault diagnosis.Experimental results show that the test vector generated by system automatically has a short test time and a good test effect and its ability of fault diagnosis is strong.Diagnosis part can eliminate the confusion and misjudgment phenomenon,and the set fault can be accurate location and isolation.
boundary scan;test vector;interconnect test;fault diagnosis;test system
1000-3428(2015)01-0303-06
A
TP274
10.3969/j.issn.1000-3428.2015.01.057
國家自然科學基金資助項目(61102012)。
韋翠榮(1987-),女,碩士,主研方向:邊界掃描技術(shù),計算機輔助測試;顏學龍、尚玉玲,教授。
2014-02-24
2014-03-22 E-mail:1163511219@qq.com
中文引用格式:韋翠榮,顏學龍,尚玉玲.邊界掃描測試生成與故障診斷的研究與實現(xiàn)[J].計算機工程,2015,41(1): 303-308.
英文引用格式:Wei Cuirong,Yan Xuelong,Shang Yuling.Research and Implementation of Boundary Scan Test Generation and Fault Diagnosis[J].Computer Engineering,2015,41(1):303-308.