王春艷,史軍軍
(1.華東電子工程研究所,合肥 230088;2.解放軍69079部隊博士后科研工作站,烏魯木齊 830013)
通過對測試結(jié)果文件的二次解析,智能分析冗余信息后歸一化處理,生成用戶易讀的精簡邊掃報告,并且提取解析結(jié)果信息與數(shù)據(jù)庫中的插件、元器件和故障信息進行比對,實現(xiàn)了故障診斷的可視化定位顯示,并將可視化結(jié)果生成到測試報表中,便于統(tǒng)計故障,提高了測試人員的快速排除故障的效率。
DOM(Document Object Module)是W3C制定的一種獨立語言和平臺的標(biāo)準(zhǔn),它提供一個可以通用于各種程序語言、操作系統(tǒng)和應(yīng)用程序的接口,定義了文檔的邏輯結(jié)構(gòu)及存取和維護文檔的方法。利用DOM中的對象,可以對XML文檔進行讀取、搜索、修改、添加和刪除等操作。DOM是對XML數(shù)據(jù)的描述體系,用樹型結(jié)構(gòu)文檔來保存XML數(shù)據(jù),包括對XML的解析和處理XML數(shù)據(jù)的API。
使用DOM對XML文件進行操作時,首先要解析文件,將文檔中的元素、屬性、注釋和處理指令都看作節(jié)點(Node),然后在內(nèi)存中以節(jié)點樹的形式創(chuàng)建XML的文件表示,通過節(jié)點樹訪問文檔的內(nèi)容,并根據(jù)需要修改文檔,這就是DOM的簡要工作原理[4]。
DOM提供了一種從其他的應(yīng)用程序中調(diào)用或管理XML數(shù)據(jù)的方法。處理方法是將一個XML文檔看作一個對象,通過固定的方法和屬性對XML文檔的不同標(biāo)記進行讀寫。DOM規(guī)范的核心就是樹模型[5],對于要解析的XML文檔,解析器會把XML文檔加載到內(nèi)存中,在內(nèi)存中為XML文件建立邏輯樹,DOM就是XML文檔的一個結(jié)構(gòu)化視圖,它將一個XML文檔看作是一棵節(jié)點樹,而其中的每一個節(jié)點代表一個可以與其進行交互的對象。樹的節(jié)點是一個個對象,通過操作這棵樹和這些對象就可以完成對XML文檔的操作,為處理文檔提供了一個完美的概念性框架。通過DOM解析器處理XML文件的優(yōu)點是效率高,但是,十分消耗系統(tǒng)的資源,比較適合復(fù)雜但相對較小的文件。概括起來,DOM解析器解析 XML 文件需要下列幾個步驟[6,7]。
(1)建立一個DOM解析工廠;
(2)通過解析工廠創(chuàng)建DOM解析器;
(3)解析指定的XML文件;
任何事情,都有前因后果,都有來龍去脈,在語句中表現(xiàn)為前項和后項。但是第一,如果我們沒有找到真正的原因,那么所找的原因就是一個任意因果的原因,而不是必然因果的原因。第二,前項和后項在語句中的完備,不能代替事實中的正確的因果關(guān)系。
(4)根據(jù)標(biāo)記名稱獲得node標(biāo)記列表;
(5)遍歷每一個node節(jié)點;
(6)獲得標(biāo)記內(nèi)容。
在DOM接口規(guī)范中,有四個基本的接口,分別是:Document、Node、NodeList和 NamedNodeMap。
Document代表整個XML文檔,提供了對文檔的數(shù)據(jù)進行訪問和操作的入口。Document節(jié)點就是DOM樹中的根節(jié)點,通過Document節(jié)點可以訪問到文檔的其他節(jié)點。
Node代表了樹中的一個節(jié)點,DOM樹中包含很多不同類型的節(jié)點均是從Node繼承過來的。Node中定義了所有不同類型的節(jié)點中都有的屬性與方法。
NodeList提供了對節(jié)點集合的抽象定義,用于表示有順序關(guān)系的一組節(jié)點。在DOM中,NodeList是動態(tài)的,即對文檔的改變會直接反映到相關(guān)的NodeList對象中去,它的每個Item都可以通過一個索引來訪問,該索引值是從0開始的。
NameNodeMap所包含的節(jié)點集中的節(jié)點是無序的,表示一組節(jié)點和其唯一名字的對應(yīng)關(guān)系,也可以通過索引來進行訪問。索引的使用方法和NodeList是一樣的。
通過以上接口可以完成對XML文檔絕大多數(shù)屬性的操作,如對XML文檔進行創(chuàng)建、加載和遍歷及對XML文檔中的元素進行添加、刪除和修改。
通過對邊界掃描測試產(chǎn)生的XML文件進行解析,智能分析冗余錯誤信息后,結(jié)合數(shù)據(jù)庫信息實現(xiàn)故障器件的拾取與故障器件位置在硬件電路板圖的匹配,通過故障原因、故障器件信息與故障器件位置的交互顯示,輔助測試人員從包含大量冗余測試結(jié)果的信息中,快速得到故障器件位置與故障原因。最終將繁瑣的邊界掃描測試結(jié)果通過圖形化交互界面和統(tǒng)一的報表呈現(xiàn)給測試人員,提高了故障檢測和維修的效率。邊界掃描解析結(jié)構(gòu)框圖,如圖1所示。
圖1 邊界掃描解析結(jié)構(gòu)框圖
根據(jù)Action類型,將整個測試流程分為五類:SPV(掃描鏈)測試、Interconnect(互連)測試、MAV(存儲器)測試、Flash測試和Macro(宏)測試。在一個測試工程中,五種測試可根據(jù)需要設(shè)計,每一種測試類型的Action可能有很多個,以Action Name區(qū)分。針對每種測試類型選擇相應(yīng)的文件解析模型。
以SPV測試解析模型為例,如圖2所示,闡述解析過程。SPV測試按照 DRSCAN → nstCapture→Bypass →IDCODE →ScanLength →USERCODE(在建立Action時這些步驟均為可選)的順序進行。
圖4(a)為將掃描鏈斷開后,產(chǎn)生的故障。該被測板的掃描鏈順序為 U7 → U8 →U1,在板上將U8 →U1處TDO→TDI斷開,即出現(xiàn)圖4(b)中的錯誤。
SPV測試是邊界掃描測試的基礎(chǔ),只有在掃描鏈測試通過時才可進行后續(xù)測試。掃描鏈測試失敗的原因有很多,如連接電纜故障、ASSET控制器故障和Scanworks軟件故障,對于這些故障,均設(shè)計了相應(yīng)的故障信息提示。
邊掃測試系統(tǒng)主要采用DOM模型對邊掃結(jié)果文件進行解析,結(jié)合數(shù)據(jù)庫中的插件信息進行故障元器件定位。通過解析xml文件,按照測試類型對冗余信息的智能分析,提取有用的信息并歸類,以文本的形式顯示。在故障判斷中,依據(jù)對故障點的進一步智能分析,將故障點的范圍由器件縮小至具體管腳。以框圖顯示可疑故障器件在電路板中的對應(yīng)位置,解決了非專業(yè)硬件人員無法讀懂邊界掃描結(jié)果的困難,通過對邊界掃描結(jié)果的解析,選取大量信息中的相關(guān)信息,以圖形化的方式直觀展現(xiàn)檢測電路板的故障器件,從而對檢測人員檢測電路板進行了引導(dǎo)。
以時域脈壓插件為例,如圖5所示。圖5(a)是SPV測試通過的演示界面,表明插件通過SPV測試,可以繼續(xù)進行后面的測試。圖5(b)是Interconnect測試未通過的演示界面,顯示相關(guān)故障信息,包括故障原因(可精確定位至故障管腳)、故障所在網(wǎng)表和故障元器件的位置。
基于DOM模型實現(xiàn)對XML文件的解析,在Visual Studio6.0平臺下將其應(yīng)用于雷達插件故障檢測系統(tǒng)中,實現(xiàn)了對第三方軟件的二次解析。在智能分析后,剔除冗余的信息,以精簡的解析報告、圖形化的人機交互界面,方便檢測人員快速排除故障和進行故障修復(fù),并將其集成到綜合電路自動化測試系統(tǒng)中。該方案已經(jīng)在某出口三型雷達自動測試系統(tǒng)中得到應(yīng)用。實踐證明,該應(yīng)用系統(tǒng)具有操作方便、定位準(zhǔn)確和執(zhí)行效率高等優(yōu)點。
[1]IEEE Std 1149.1-2001.IEEE Standard Test Access Port and Boundary Scan Architecture[S].IEEE Standard Board,2001.
[2]IEEE Std 1149.4-2001.IEEE Standard a Mixed-signal Test Bus[S].[S.1.]:Test Technology Technical Committee of the IEEE Computer Society,1999.
[3]NATANYA PITTS.XML 技術(shù)內(nèi)幕[M].徐曉梅,龔志翔,王曉云,等,譯.北京:機械工業(yè)出版社,2002.
[4]趙輝.一種基于DOM的XML解析器的設(shè)計與實現(xiàn)[D].太原:山西大學(xué),2005.
[5]楊虹,徐超強,侯華敏.基于邊界掃描技術(shù)的集成電路可測性設(shè)計[J].重慶郵電學(xué)院學(xué)報(自然科學(xué)版),2006,18(6):686-723.
[6]張華,陳朝陽,沈緒榜.基于微機的邊界掃描測試主控系統(tǒng)的設(shè)計[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2002,30(5):22-24.
[7]倪軍,楊建寧.基于邊界掃描技術(shù)的數(shù)字系統(tǒng)測試研究[J].電子技術(shù)應(yīng)用,2006(09):107-110.