黃順福
?。ㄉ虾X悹柟煞萦邢薰荆虾?201206)
摘要:針對(duì)目前在生產(chǎn)測(cè)試平臺(tái)中廣泛使用的高密度VXI PXI Digital I/O板卡容易損壞且故障定位困難、不便維修和維護(hù)的情況,開(kāi)展了對(duì)其進(jìn)行故障定位的診斷算法研究。研究了包括各種可能出現(xiàn)的錯(cuò)誤模型及其相互關(guān)系,以及檢測(cè)和定位這些錯(cuò)誤模型的相應(yīng)算法,并應(yīng)用相應(yīng)的算法成功地開(kāi)發(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)一的測(cè)試平臺(tái),以滿足紛繁復(fù)雜的不同系列產(chǎn)品的需要,如3G CDMA的BTS數(shù)字系統(tǒng)測(cè)試平臺(tái)(DTP),射頻系統(tǒng)測(cè)試平臺(tái)(RTP),4G LTE BTS的公共測(cè)試平臺(tái)(CTP)。這些測(cè)試平臺(tái)中的核心部分都使用了VXI或PXI設(shè)備,其中對(duì)于生產(chǎn)測(cè)試最關(guān)鍵的模塊設(shè)備是VXI或PXI Digital I/O板卡模塊。
由于生產(chǎn)制造平臺(tái)產(chǎn)量大,當(dāng)VXI或PXI Digital I/O板卡某一線不良時(shí),如不能及時(shí)排除故障,將造成該測(cè)試平臺(tái)停產(chǎn),嚴(yán)重影響產(chǎn)能。平臺(tái)上的VXI或PXI Digital I/O線往往都超過(guò)90線以上,屬于高密度,如果僅僅是用人工置1或置0的方法,不僅檢測(cè)時(shí)間長(zhǎng),實(shí)際上很難精確找出哪一線有問(wèn)題,很多情況下的檢測(cè)都呈現(xiàn)出無(wú)故障的現(xiàn)象,但實(shí)際上又不能使用,這給平臺(tái)維護(hù)人員的維修診斷造成巨大困難。高密度VXI或PXI Digital I/O板卡價(jià)格昂貴,大量購(gòu)買新的VXI或PXI Digital I/O板卡來(lái)更換,會(huì)給公司造成很大的經(jīng)濟(jì)壓力。鑒于此,本文開(kāi)展了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板卡的抽象模型簡(jiǎn)介
VXI或PXI高密度Digital I/O結(jié)構(gòu)框圖見(jiàn)圖1(a)。不同廠家的具體產(chǎn)品的電路會(huì)有所不同,但其原理是相同的。其主要由0~N個(gè)端口(Port)及端口選擇控制器(Port Control)所組成。端口連到被測(cè)系統(tǒng)BTS的BBS(基帶部分),其作用是采集相應(yīng)位數(shù)的數(shù)字信號(hào),或發(fā)出相應(yīng)位數(shù)的指令,讀回相應(yīng)的響應(yīng)。端口選擇控制器用于選擇相應(yīng)的端口。診斷時(shí)需要每次讀/寫(xiě)1位,由控制器發(fā)出,通過(guò)Data BUS總線送到端口。例如:Port0為8位,發(fā)出對(duì)Port0 D1位置1的指令0000 0001;發(fā)出對(duì)Port0 D2位置2的指令0000 0010,依次類推。由此可見(jiàn),當(dāng)每次讀/寫(xiě)1位指定位時(shí),VXI或PXI高密度Digital I/O電路可以抽象為圖1(b)所示結(jié)構(gòu)模型[1-3]。
從圖1(b)中可看出,對(duì)指定1位的讀寫(xiě)可看成是D1~D8的列與Port 0~Port N的行的交點(diǎn)的讀寫(xiě)。對(duì)于選擇Port 0~Port N中的哪一行,相當(dāng)于是行譯碼器的行為模型;選擇D1~D8列中的哪一列,相當(dāng)于是列譯碼器的行為模型;而交點(diǎn)相當(dāng)于一個(gè)元件單元,實(shí)際上還應(yīng)該包含讀/寫(xiě)電路、線驅(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í)就無(wú)法檢測(cè)出Port 0 D7的故障。下面敘述幾種主要的錯(cuò)誤模型。
1.2卡死錯(cuò)誤模型
卡死錯(cuò)誤定義為某單元或線總是0(SA0)或1(SA1);它總是在狀態(tài)0或狀態(tài)1,不能改變到其相反的狀態(tài)。如圖2(a)所示,單元狀態(tài)原來(lái)為0,當(dāng)置0時(shí),還是回到0狀態(tài);當(dāng)置1時(shí),其還是到0狀態(tài),所以為SA0錯(cuò)誤。如圖2(b)所示,單元狀態(tài)為原來(lái)為1,當(dāng)置1時(shí),為1;當(dāng)置0時(shí),仍然為1,故為SA1錯(cuò)誤。對(duì)于卡死錯(cuò)誤檢測(cè)必須滿足:所有的單元必須通過(guò)讀一次0和讀一次1進(jìn)行檢測(cè)。
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,沒(méi)有遷移到S1,所以為T(mén)F<↑/0>錯(cuò)誤。實(shí)際遷移模型見(jiàn)圖2(d),原來(lái)Q狀態(tài)為0,在觸發(fā)器的S端置1時(shí),Q端應(yīng)翻轉(zhuǎn)為1,但仍舊是0,所以把它歸類為T(mén)F<↑/0>。之所以不把遷移錯(cuò)誤歸入卡死錯(cuò)誤,是因?yàn)槠渌e(cuò)誤形式(如耦合錯(cuò)誤)可以使它翻轉(zhuǎn)。對(duì)于遷移錯(cuò)誤的檢測(cè)必須滿足:所有的單元必須進(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模型見(jiàn)圖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ò)誤的檢測(cè)必須滿足:對(duì)于所有被耦合單元,通過(guò)觸發(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)換的例子,見(jià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),這說(shuō)明發(fā)生了0或1耦合錯(cuò)誤。即當(dāng)j從0遷移到1(↑)時(shí),i強(qiáng)制為1,即為<↑;1>。
與上述遷移引起的耦合錯(cuò)誤模型不同的是橋接耦合錯(cuò)誤模型和狀態(tài)耦合模型。這兩種耦合是由于邏輯電平的原因造成的,與遷移無(wú)關(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代表基本單元,基本單元表示正在測(cè)試的單元。稱不包含基本單元的鄰近單元為已消除基本單元的鄰近單元,簡(jiǎn)稱為已消基鄰近單元。鄰近單元感應(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è)地址沒(méi)有單元可訪問(wèn);(2)沒(méi)有某單元可訪問(wèn)的地址;(3)某個(gè)單元多個(gè)地址可被訪問(wèn);(4)某個(gè)單元可被多個(gè)地址訪問(wèn);(5)以上四種類型的任意組合。在VXI或PXI高密度Digital I/O板卡中的端口選擇的電路邏輯就相當(dāng)于地址譯碼模型。
2VXI或PXI高密度Digital I/O板卡的診斷算法
2.1診斷算法簡(jiǎn)介
診斷算法就是根據(jù)VXI或PXI高密度Digital I/O板卡的特點(diǎn),結(jié)合上述錯(cuò)誤模型,選取最能檢測(cè)出相關(guān)錯(cuò)誤模型的方法。每種具體型號(hào)的板卡的電路結(jié)構(gòu)可能不同,但有些錯(cuò)誤模型是普遍發(fā)生的,如卡死錯(cuò)誤模型、遷移錯(cuò)誤模型、耦合錯(cuò)誤模型、地址譯碼錯(cuò)誤模型。根據(jù)具體電路結(jié)構(gòu)來(lái)決定是否需要鄰近單元感應(yīng)錯(cuò)誤模型的檢測(cè)算法。診斷算法有:行程算法、0-1算法、棋盤(pán)算法、步行和快步0/1算法等。
2.2行程算法的概念
行程算法是由一定數(shù)量的有限的行程單元序列所組成的。行程單元是對(duì)高密度Digital I/O的每個(gè)單元診斷操作的序列。行程方向可以按地址方向向上行進(jìn),用↑表示;行程方向可以按地址方向向下行進(jìn),用↓表示;地址無(wú)關(guān)用表示。置0為(w0),置1為(w1)。讀期望值0為(r0),讀期望值1為(r1)。行程測(cè)試算法{↑(r0,w1);↓(r1:w0)}是由行程單元{↑(r0,w1)}和{↓(r1:w0)}所組成的。行程算法的類型很多,功能很強(qiáng),有針對(duì)各種錯(cuò)誤模型的解決方法,但算法比較復(fù)雜,其能檢測(cè)到故障但不一定能定位到故障。行程算法的主要類型為:MATS+:主要檢測(cè)卡死錯(cuò)誤模型;行程C-:檢測(cè)無(wú)關(guān)聯(lián)的0或1耦合錯(cuò)誤模型;行程A:檢測(cè)相關(guān)聯(lián)的0或1耦合錯(cuò)誤模型;行程B:檢測(cè)相關(guān)聯(lián)的遷移錯(cuò)誤模型和遷移錯(cuò)誤模型。
2.30-1算法
最小測(cè)試是由置0和置1所組成。算法分為4個(gè)步驟:(1)對(duì)所有單元置0;(2)對(duì)所有單元讀;(3)對(duì)所有單元置1;(4)讀所有單元。0-1算法特點(diǎn)為:(1)不是所有的地址譯碼錯(cuò)誤能被檢測(cè)到;(2)卡死錯(cuò)誤可以被檢測(cè)到和定位(條件是地址譯碼正確);(3)不是所有的遷移錯(cuò)誤能被檢測(cè)到;(4)不是所有的耦合錯(cuò)誤能被檢測(cè)到。其算法表示為:{↑(w0);↑(r0);↑(w1);↑(r1)},優(yōu)點(diǎn)是算法占用時(shí)間短和能夠定位。
2.4棋盤(pán)算法
棋盤(pán)算法把所有單元分成2組,即單元組1和單元組2,由此形成棋盤(pán)圖式。其算法分為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ò)誤能被檢測(cè)到;(2)卡死錯(cuò)誤可以被檢測(cè)到和定位(條件是地址譯碼正確);(3)不是所有的遷移錯(cuò)誤能被檢測(cè)到;(4)不是所有的耦合錯(cuò)誤能被檢測(cè)到。該算法的優(yōu)點(diǎn)是占用時(shí)間短和能夠定位。該算法主要針對(duì)鄰近單元的短路檢測(cè)(條件是地址譯碼正確)。
2.5步行和快步0/1算法
步行和快步0/1算法是相似的,只是讀基本單元時(shí)的行為有些差異。步行算法是所有其他單元讀過(guò)之后才讀基本單元;快步0/1算法是每次讀其他單元后,讀基本單元。具體算法如圖5所示。
步行和快步0/1算法的特點(diǎn)是:(1)能檢測(cè)和定位所有的地址譯碼錯(cuò)誤。地址譯碼錯(cuò)誤將造成基單元不能在步驟2進(jìn)行置位,算法從而在步驟5或7能夠定位故障。同樣,其他的單元在步驟2置位,在步驟4和步驟6定位故障。(2)能檢測(cè)和定位所有的卡死錯(cuò)誤,因?yàn)樵诨締卧诓襟E2置位,在步驟5和7進(jìn)行讀(0和1)檢測(cè)和定位。(3)能檢測(cè)和定位所有的遷移錯(cuò)誤。因?yàn)樵诓襟E5和步驟7的讀操作后,基本單元在步驟2有一次↑和↓的遷移動(dòng)作。(4)能檢測(cè)和定位所有的耦合錯(cuò)誤。在步驟2,可以探測(cè)<↑;1>、<↓;0>、<↑;↑>、<↓;↓>耦合錯(cuò)誤(根據(jù)步驟1中的0或1),在步驟4和6進(jìn)行定位故障。在步驟3,可以探測(cè)<↓;1>、<↑;0>、<↓;↑>、<↑;↓>耦合錯(cuò)誤,在步驟4和6進(jìn)行定位故障。該算法的定位地址譯碼錯(cuò)誤和耦合錯(cuò)誤是十分精確的。因?yàn)樵谥梦获詈蠁卧?,算法立即進(jìn)行讀操作,所以它十分清楚哪個(gè)單元耦合給哪一個(gè)。步行和快步0/1算法在實(shí)際工程中得到了廣泛應(yīng)用。
3VXI或PXI高密度Digital I/O板卡的診斷算法應(yīng)用舉例
在AlcatelLucnt公司的3G CDMA測(cè)試平臺(tái)中使用了4塊Agilent VXI Chanel Digital I/O E1458A,快速和精確定位故障是選擇診斷算法的基本要求。綜合各種算法特點(diǎn),根據(jù)2.5節(jié)的描述,步行0/1算法是比較適合本例。本例用NI LabWindows CVI[5]軟件開(kāi)發(fā)了E1458A的測(cè)試診斷程序,測(cè)試程序界面見(jiàn)圖6,其涉及步行0/1算法的部分代碼(由于篇幅有限,只用部分代碼做演示)見(jiàn)圖7。如圖6所示,SELF BIT BY TEST REVIEW表格(位于界面的下半部分)用來(lái)顯示采用了步行0/1算法的診斷結(jié)果。表格的第1行是通道號(hào)(Channel),第2行是測(cè)試置0的結(jié)果,第3行是測(cè)試置1的結(jié)果。如果測(cè)試結(jié)果在第2行(置0行)的某格顯示出1或-1,則表示該格所對(duì)應(yīng)的通道置0出錯(cuò);如果測(cè)量結(jié)果在第3行(置1行)的某格顯示出0或-1,則表示該格所對(duì)應(yīng)的通道置1出錯(cuò),這樣可以即精確又方便地報(bào)告故障所在的位置,即哪一端口的哪一線出錯(cuò)及出錯(cuò)的類型。
4結(jié)論
通過(guò)對(duì)VXI PXI高密度Digital I/O建立抽象模型,引入了對(duì)其錯(cuò)誤模型和算法的研究和討論,從而得出了合適的算法即步行0/1算法,并應(yīng)用此算法成功地開(kāi)發(fā)了VXI PXI高密度Digital I/O自動(dòng)化診斷系統(tǒng),解決了大規(guī)模生產(chǎn)的實(shí)際維護(hù)問(wèn)題。當(dāng)然,可以應(yīng)用此思路,改進(jìn)或發(fā)展這些算法并應(yīng)用到其他類似模型的電路結(jié)構(gòu)中,從而能更好、更多地解決實(shí)際問(wèn)題,開(kāi)發(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.
?。?] JHA N, GUPTA S.數(shù)字系統(tǒng)測(cè)試[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測(cè)試技術(shù)及工程應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2006.