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