黃順福
?。ㄉ虾X悹柟煞萦邢薰?,上海 201206)
摘要:針對(duì)目前在生產(chǎn)測試平臺(tái)中廣泛使用的高密度VXI PXI Digital I/O板卡容易損壞且故障定位困難、不便維修和維護(hù)的情況,,開展了對(duì)其進(jìn)行故障定位的診斷算法研究,。研究了包括各種可能出現(xiàn)的錯(cuò)誤模型及其相互關(guān)系,以及檢測和定位這些錯(cuò)誤模型的相應(yīng)算法,,并應(yīng)用相應(yīng)的算法成功地開發(fā)了高密度VXI PXI Digital I/O板卡的自動(dòng)化診斷系統(tǒng),,大幅提高了生產(chǎn)效率,降低了維護(hù)成本,,提高了經(jīng)濟(jì)效益,。
關(guān)鍵詞:PXI;VXI,;Digital I/O;錯(cuò)誤模型,;診斷算法,;自動(dòng)化診斷系統(tǒng)
中圖分類號(hào):TP29文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674 7720.2016.20.021
引用格式:黃順福. 基于VXI PXI Digital I/O卡的診斷算法研究[J].微型機(jī)與應(yīng)用,2016,35(20):75 78.
0引言
在Alcatel-Lucent的移動(dòng)通信設(shè)備基站生產(chǎn)制造中,,廣泛采用了統(tǒng)一的測試平臺(tái),,以滿足紛繁復(fù)雜的不同系列產(chǎn)品的需要,如3G CDMA的BTS數(shù)字系統(tǒng)測試平臺(tái)(DTP),射頻系統(tǒng)測試平臺(tái)(RTP),,4G LTE BTS的公共測試平臺(tái)(CTP),。這些測試平臺(tái)中的核心部分都使用了VXI或PXI設(shè)備,其中對(duì)于生產(chǎn)測試最關(guān)鍵的模塊設(shè)備是VXI或PXI Digital I/O板卡模塊,。
由于生產(chǎn)制造平臺(tái)產(chǎn)量大,,當(dāng)VXI或PXI Digital I/O板卡某一線不良時(shí),如不能及時(shí)排除故障,,將造成該測試平臺(tái)停產(chǎn),,嚴(yán)重影響產(chǎn)能。平臺(tái)上的VXI或PXI Digital I/O線往往都超過90線以上,,屬于高密度,,如果僅僅是用人工置1或置0的方法,不僅檢測時(shí)間長,,實(shí)際上很難精確找出哪一線有問題,,很多情況下的檢測都呈現(xiàn)出無故障的現(xiàn)象,但實(shí)際上又不能使用,,這給平臺(tái)維護(hù)人員的維修診斷造成巨大困難,。高密度VXI或PXI Digital I/O板卡價(jià)格昂貴,,大量購買新的VXI或PXI Digital I/O板卡來更換,會(huì)給公司造成很大的經(jīng)濟(jì)壓力,。鑒于此,,本文開展了VXI或PXI高密度Digital I/O板卡的診斷算法研究,以便實(shí)現(xiàn)VXI或PXI Digital I/O板卡的高效自動(dòng)化診斷,。
1VXI或PXI高密度Digital I/O板卡的抽象模型及診斷模型
1.1VXI或PXI高密度Digital I/O板卡的抽象模型簡介
VXI或PXI高密度Digital I/O結(jié)構(gòu)框圖見圖1(a),。不同廠家的具體產(chǎn)品的電路會(huì)有所不同,但其原理是相同的,。其主要由0~N個(gè)端口(Port)及端口選擇控制器(Port Control)所組成,。端口連到被測系統(tǒng)BTS的BBS(基帶部分),其作用是采集相應(yīng)位數(shù)的數(shù)字信號(hào),,或發(fā)出相應(yīng)位數(shù)的指令,,讀回相應(yīng)的響應(yīng)。端口選擇控制器用于選擇相應(yīng)的端口,。診斷時(shí)需要每次讀/寫1位,,由控制器發(fā)出,通過Data BUS總線送到端口,。例如:Port0為8位,,發(fā)出對(duì)Port0 D1位置1的指令0000 0001;發(fā)出對(duì)Port0 D2位置2的指令0000 0010,,依次類推,。由此可見,當(dāng)每次讀/寫1位指定位時(shí),,VXI或PXI高密度Digital I/O電路可以抽象為圖1(b)所示結(jié)構(gòu)模型[1-3],。
從圖1(b)中可看出,對(duì)指定1位的讀寫可看成是D1~D8的列與Port 0~Port N的行的交點(diǎn)的讀寫,。對(duì)于選擇Port 0~Port N中的哪一行,,相當(dāng)于是行譯碼器的行為模型;選擇D1~D8列中的哪一列,,相當(dāng)于是列譯碼器的行為模型,;而交點(diǎn)相當(dāng)于一個(gè)元件單元,實(shí)際上還應(yīng)該包含讀/寫電路,、線驅(qū)動(dòng)電路,、鎖存電路等。由于這些電路元器件的關(guān)聯(lián)的復(fù)雜性,,使得有些故障現(xiàn)象容易被認(rèn)為是正確的結(jié)果而很難被診斷[4],。例如,Port 0 D7單元有卡死故障,其被卡死在1,。當(dāng)讀1時(shí),,其是正確的;當(dāng)置0時(shí),,由于周圍鄰居某0單元恰好在此狀態(tài)下,,又與卡死單元有某種類型的耦合,因此讀0時(shí)也是正確的,。在這種情況下,,讀0讀1都正確,這時(shí)就無法檢測出Port 0 D7的故障,。下面敘述幾種主要的錯(cuò)誤模型,。
1.2卡死錯(cuò)誤模型
卡死錯(cuò)誤定義為某單元或線總是0(SA0)或1(SA1);它總是在狀態(tài)0或狀態(tài)1,,不能改變到其相反的狀態(tài),。如圖2(a)所示,單元狀態(tài)原來為0,,當(dāng)置0時(shí),,還是回到0狀態(tài);當(dāng)置1時(shí),,其還是到0狀態(tài),所以為SA0錯(cuò)誤,。如圖2(b)所示,單元狀態(tài)為原來為1,當(dāng)置1時(shí),,為1;當(dāng)置0時(shí),,仍然為1,,故為SA1錯(cuò)誤。對(duì)于卡死錯(cuò)誤檢測必須滿足:所有的單元必須通過讀一次0和讀一次1進(jìn)行檢測,。
1.3遷移錯(cuò)誤模型
遷移錯(cuò)誤是卡死錯(cuò)誤的一種特殊情況,,它定義為當(dāng)0→1遷移時(shí),單元或線向上遷移的錯(cuò)誤,。同理,,當(dāng)1→0遷移時(shí),單元或線向下遷移的錯(cuò)誤,。向上遷移錯(cuò)誤記為:TF<↑/0>,;向下遷移錯(cuò)誤記為: TF<↓/0>。如圖2(c)所示,,當(dāng)單元或線在狀態(tài)1(S1)時(shí),,置1時(shí)為1,置0遷移到狀態(tài)0(S0)正確;當(dāng)單元或線在狀態(tài)0(S0)時(shí),,置0時(shí)為0,,置1時(shí)仍為0,沒有遷移到S1,,所以為TF<↑/0>錯(cuò)誤,。實(shí)際遷移模型見圖2(d),原來Q狀態(tài)為0,,在觸發(fā)器的S端置1時(shí),,Q端應(yīng)翻轉(zhuǎn)為1,但仍舊是0,,所以把它歸類為TF<↑/0>,。之所以不把遷移錯(cuò)誤歸入卡死錯(cuò)誤,是因?yàn)槠渌e(cuò)誤形式(如耦合錯(cuò)誤)可以使它翻轉(zhuǎn),。對(duì)于遷移錯(cuò)誤的檢測必須滿足:所有的單元必須進(jìn)行一次向上遷移和一次向下遷移以及每次遷移后的讀,。
1.4耦合錯(cuò)誤模型
耦合錯(cuò)誤是由遷移所引起,其發(fā)生在兩個(gè)單元之間,。耦合錯(cuò)誤的定義如下:在一個(gè)單元產(chǎn)生一個(gè)向上或向下遷移而引起第2個(gè)單元內(nèi)容的變化,。翻轉(zhuǎn)耦合錯(cuò)誤(CFin):在一個(gè)單元產(chǎn)生一個(gè)向上或向下遷移而引起第2個(gè)單元內(nèi)容的翻轉(zhuǎn)。CFin模型見圖3(a),,Cn為正常時(shí)鐘輸入,,Cc為額外時(shí)鐘輸入。當(dāng)Cc發(fā)生向上狀態(tài)遷移時(shí),,則翻轉(zhuǎn)了D觸發(fā)器的內(nèi)容,。單元j產(chǎn)生一個(gè)單元i的耦合錯(cuò)誤,單元j稱作耦合單元,。如果Ci為<↑;>,,則表示為單元j引起單元i一次向上或向下的遷移。對(duì)于翻轉(zhuǎn)耦合錯(cuò)誤的檢測必須滿足:對(duì)于所有被耦合單元,,通過觸發(fā)耦合元產(chǎn)生可能的各次翻轉(zhuǎn)耦合后,,讀各次翻轉(zhuǎn)耦合的被耦合單元(條件是各次翻轉(zhuǎn)耦合不能相互屏蔽)。這里討論的耦合錯(cuò)誤模型是單向的,,即j→i,,實(shí)際上可能是雙向的,即也有可能同時(shí)存在i→j,,這比較復(fù)雜,,因篇幅有限,本文不作進(jìn)一步討論,。
0或1耦合錯(cuò)誤模型定義如下:一個(gè)單元的向上或向下遷移,,強(qiáng)制第二個(gè)單元的內(nèi)容為0或1,。如圖3(b)所示,Sn是普通的置1輸入,,Sc是不想要的置1輸入,,它強(qiáng)制R/S觸發(fā)器置1,即為<↑;1>,。R/S的R端情況與S端的情況類似,,即為<↑;0>。該模型有4個(gè)可能性:<↑;0>,,<↑;1>,,<↓;0>,<↓;0>,。
這里給出一個(gè)i單元和j單元的一個(gè)0或1耦合錯(cuò)誤模型狀態(tài)轉(zhuǎn)換的例子,,見圖4(a),共有4個(gè)狀態(tài):00,、01,、10、11,,即Sij表示為S00,、S01、S10,、S11,。W0/i,W0/j表示i單元置0,,j單元置0,,狀態(tài)返回到S00狀態(tài);W1/i,,W0/j表示i單元置1,,j單元置0,狀態(tài)返回到S10狀態(tài),;W0/i,,W1/j表示i單元置0,,j單元置1,,狀態(tài)返回到S01狀態(tài);W1/i,,W1/j,,表示i單元置1,j單元置1,,狀態(tài)返回到S11狀態(tài),。在該例圖的其他狀態(tài)在一定條件下的轉(zhuǎn)換的分析,,可按照上述方法進(jìn)行。這里需要特別指出的是S00在W1/j條件下轉(zhuǎn)換到S11的情況,。正常情況下,,S00在W1/j條件下應(yīng)該轉(zhuǎn)換到S01狀態(tài),而不是S11狀態(tài),,這說明發(fā)生了0或1耦合錯(cuò)誤,。即當(dāng)j從0遷移到1(↑)時(shí),i強(qiáng)制為1,,即為<↑;1>,。
與上述遷移引起的耦合錯(cuò)誤模型不同的是橋接耦合錯(cuò)誤模型和狀態(tài)耦合模型。這兩種耦合是由于邏輯電平的原因造成的,,與遷移無關(guān),。
1.5鄰近單元感應(yīng)錯(cuò)誤模型
鄰近單元感應(yīng)錯(cuò)誤模型定義為:一個(gè)單元的內(nèi)容是由其所有另外的單元構(gòu)成的圖式所影響,這些單元構(gòu)成的圖式是由0和1所組成的,。如圖4(b)所示,,鄰近單元是指與錯(cuò)誤單元有關(guān)的所有單元包含錯(cuò)誤單元。b代表基本單元,,基本單元表示正在測試的單元,。稱不包含基本單元的鄰近單元為已消除基本單元的鄰近單元,簡稱為已消基鄰近單元,。鄰近單元感應(yīng)錯(cuò)誤模型的表示方法為:Ci,j<d0,、d1、d2,、d3:b>,,其中Ci,j為基本單元的位置,d0,、d1,、d2、d3為已消基鄰近單元,。鄰近單元感應(yīng)錯(cuò)誤模型有三種類型,,分別為主動(dòng)鄰近單元感應(yīng)錯(cuò)誤模型、被動(dòng)鄰近單元感應(yīng)錯(cuò)誤模型以及靜態(tài)鄰近單元感應(yīng)錯(cuò)誤模型,。主動(dòng)鄰近單元感應(yīng)錯(cuò)誤模型定義為:由于已消基鄰近單元的變化,,基本單元也改變了器內(nèi)容。如Ci,j<0,↓,1,1:1>,,由于d1的遷移,,使得基本單元的狀態(tài)變成1。被動(dòng)鄰近單元感應(yīng)錯(cuò)誤模型定義為:由于某種已消基鄰近單元所構(gòu)成的圖式使得基本單元的內(nèi)容不能被改變,。如Ci,j<0,0,1,1:↑/0>,,當(dāng)從d0到d3為0011時(shí),,基本單元的狀態(tài)0不能改變。靜態(tài)鄰近單元感應(yīng)錯(cuò)誤模型定義為:由于某種已消基鄰近單元所構(gòu)成的圖式使得基本單元的內(nèi)容被強(qiáng)制到某個(gè)狀態(tài),,如Ci,j<0,1,0,0,1,1,1,1;-/0>,,當(dāng)d0到d7為01001111時(shí),基本單元的內(nèi)容被強(qiáng)制到0,。
1.6地址譯碼錯(cuò)誤模型
地址譯碼錯(cuò)誤有5種類型:(1)某一個(gè)地址沒有單元可訪問,;(2)沒有某單元可訪問的地址;(3)某個(gè)單元多個(gè)地址可被訪問,;(4)某個(gè)單元可被多個(gè)地址訪問,;(5)以上四種類型的任意組合。在VXI或PXI高密度Digital I/O板卡中的端口選擇的電路邏輯就相當(dāng)于地址譯碼模型,。
2VXI或PXI高密度Digital I/O板卡的診斷算法
2.1診斷算法簡介
診斷算法就是根據(jù)VXI或PXI高密度Digital I/O板卡的特點(diǎn),,結(jié)合上述錯(cuò)誤模型,選取最能檢測出相關(guān)錯(cuò)誤模型的方法,。每種具體型號(hào)的板卡的電路結(jié)構(gòu)可能不同,,但有些錯(cuò)誤模型是普遍發(fā)生的,如卡死錯(cuò)誤模型,、遷移錯(cuò)誤模型,、耦合錯(cuò)誤模型、地址譯碼錯(cuò)誤模型,。根據(jù)具體電路結(jié)構(gòu)來決定是否需要鄰近單元感應(yīng)錯(cuò)誤模型的檢測算法,。診斷算法有:行程算法、0-1算法,、棋盤算法,、步行和快步0/1算法等。
2.2行程算法的概念
行程算法是由一定數(shù)量的有限的行程單元序列所組成的,。行程單元是對(duì)高密度Digital I/O的每個(gè)單元診斷操作的序列,。行程方向可以按地址方向向上行進(jìn),用↑表示,;行程方向可以按地址方向向下行進(jìn),,用↓表示;地址無關(guān)用表示,。置0為(w0),,置1為(w1)。讀期望值0為(r0),,讀期望值1為(r1),。行程測試算法{↑(r0,w1);↓(r1:w0)}是由行程單元{↑(r0,w1)}和{↓(r1:w0)}所組成的,。行程算法的類型很多,,功能很強(qiáng),,有針對(duì)各種錯(cuò)誤模型的解決方法,但算法比較復(fù)雜,,其能檢測到故障但不一定能定位到故障,。行程算法的主要類型為:MATS+:主要檢測卡死錯(cuò)誤模型;行程C-:檢測無關(guān)聯(lián)的0或1耦合錯(cuò)誤模型,;行程A:檢測相關(guān)聯(lián)的0或1耦合錯(cuò)誤模型,;行程B:檢測相關(guān)聯(lián)的遷移錯(cuò)誤模型和遷移錯(cuò)誤模型。
2.30-1算法
最小測試是由置0和置1所組成,。算法分為4個(gè)步驟:(1)對(duì)所有單元置0,;(2)對(duì)所有單元讀;(3)對(duì)所有單元置1,;(4)讀所有單元,。0-1算法特點(diǎn)為:(1)不是所有的地址譯碼錯(cuò)誤能被檢測到;(2)卡死錯(cuò)誤可以被檢測到和定位(條件是地址譯碼正確);(3)不是所有的遷移錯(cuò)誤能被檢測到;(4)不是所有的耦合錯(cuò)誤能被檢測到。其算法表示為:{↑(w0),;↑(r0),;↑(w1);↑(r1)},,優(yōu)點(diǎn)是算法占用時(shí)間短和能夠定位,。
2.4棋盤算法
棋盤算法把所有單元分成2組,即單元組1和單元組2,,由此形成棋盤圖式,。其算法分為4個(gè)步驟:(1)對(duì)單元組1置1,對(duì)單元組2置0,;(2)讀所有單元,;(3)對(duì)單元組1置0,對(duì)單元組2置1,;(4)讀所有單元,。其算法表示為:其中M1為單元組1,M2為單元組2,。其特點(diǎn)為:(1)不是所有的地址譯碼錯(cuò)誤能被檢測到,;(2)卡死錯(cuò)誤可以被檢測到和定位(條件是地址譯碼正確);(3)不是所有的遷移錯(cuò)誤能被檢測到,;(4)不是所有的耦合錯(cuò)誤能被檢測到,。該算法的優(yōu)點(diǎn)是占用時(shí)間短和能夠定位。該算法主要針對(duì)鄰近單元的短路檢測(條件是地址譯碼正確),。
2.5步行和快步0/1算法
步行和快步0/1算法是相似的,,只是讀基本單元時(shí)的行為有些差異。步行算法是所有其他單元讀過之后才讀基本單元,;快步0/1算法是每次讀其他單元后,,讀基本單元,。具體算法如圖5所示。
步行和快步0/1算法的特點(diǎn)是:(1)能檢測和定位所有的地址譯碼錯(cuò)誤,。地址譯碼錯(cuò)誤將造成基單元不能在步驟2進(jìn)行置位,,算法從而在步驟5或7能夠定位故障。同樣,,其他的單元在步驟2置位,,在步驟4和步驟6定位故障。(2)能檢測和定位所有的卡死錯(cuò)誤,,因?yàn)樵诨締卧诓襟E2置位,,在步驟5和7進(jìn)行讀(0和1)檢測和定位。(3)能檢測和定位所有的遷移錯(cuò)誤,。因?yàn)樵诓襟E5和步驟7的讀操作后,,基本單元在步驟2有一次↑和↓的遷移動(dòng)作。(4)能檢測和定位所有的耦合錯(cuò)誤,。在步驟2,,可以探測<↑;1>、<↓;0>,、<↑;↑>,、<↓;↓>耦合錯(cuò)誤(根據(jù)步驟1中的0或1),在步驟4和6進(jìn)行定位故障,。在步驟3,,可以探測<↓;1>、<↑;0>,、<↓;↑>,、<↑;↓>耦合錯(cuò)誤,在步驟4和6進(jìn)行定位故障,。該算法的定位地址譯碼錯(cuò)誤和耦合錯(cuò)誤是十分精確的,。因?yàn)樵谥梦获詈蠁卧螅惴⒓催M(jìn)行讀操作,,所以它十分清楚哪個(gè)單元耦合給哪一個(gè),。步行和快步0/1算法在實(shí)際工程中得到了廣泛應(yīng)用。
3VXI或PXI高密度Digital I/O板卡的診斷算法應(yīng)用舉例
在AlcatelLucnt公司的3G CDMA測試平臺(tái)中使用了4塊Agilent VXI Chanel Digital I/O E1458A,,快速和精確定位故障是選擇診斷算法的基本要求,。綜合各種算法特點(diǎn),根據(jù)2.5節(jié)的描述,,步行0/1算法是比較適合本例,。本例用NI LabWindows CVI[5]軟件開發(fā)了E1458A的測試診斷程序,測試程序界面見圖6,其涉及步行0/1算法的部分代碼(由于篇幅有限,,只用部分代碼做演示)見圖7,。如圖6所示,SELF BIT BY TEST REVIEW表格(位于界面的下半部分)用來顯示采用了步行0/1算法的診斷結(jié)果,。表格的第1行是通道號(hào)(Channel),第2行是測試置0的結(jié)果,,第3行是測試置1的結(jié)果,。如果測試結(jié)果在第2行(置0行)的某格顯示出1或-1,則表示該格所對(duì)應(yīng)的通道置0出錯(cuò),;如果測量結(jié)果在第3行(置1行)的某格顯示出0或-1,,則表示該格所對(duì)應(yīng)的通道置1出錯(cuò),這樣可以即精確又方便地報(bào)告故障所在的位置,,即哪一端口的哪一線出錯(cuò)及出錯(cuò)的類型,。
4結(jié)論
通過對(duì)VXI PXI高密度Digital I/O建立抽象模型,引入了對(duì)其錯(cuò)誤模型和算法的研究和討論,,從而得出了合適的算法即步行0/1算法,,并應(yīng)用此算法成功地開發(fā)了VXI PXI高密度Digital I/O自動(dòng)化診斷系統(tǒng),解決了大規(guī)模生產(chǎn)的實(shí)際維護(hù)問題,。當(dāng)然,,可以應(yīng)用此思路,改進(jìn)或發(fā)展這些算法并應(yīng)用到其他類似模型的電路結(jié)構(gòu)中,,從而能更好,、更多地解決實(shí)際問題,開發(fā)更多的自動(dòng)化診斷系統(tǒng),。
參考文獻(xiàn)
?。?] CHAKRAVARTY S, Gong Yiming. An algorithm for diagnosing two line bridging faults in combinational circuits[C]. 30th Conferecne on Design Automation, 1993:520-524.
[2] JHA N,, GUPTA S.數(shù)字系統(tǒng)測試[M].王新安,,蔣安平,宋春殫,,等,,譯.北京:電子工業(yè)出版社,2007.
[3] BOPPANA V, FUJITA M. Modeling the unknown! Towards model independent fault and error diagnosis[C]. IEEE International Test Conference,,1998:1094-1011.
?。?] 秦蓮?fù)?高校微機(jī)室計(jì)算機(jī)I/O設(shè)備故障分析與修復(fù)[J].微型機(jī)與應(yīng)用,2015,34(5):47-50.
[5] 王建新,楊世鳳.LabWindwos/CVI測試技術(shù)及工程應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2006.