黨曉軍
(水利部發(fā)展研究中心,北京 100053)
過去的幾十年內(nèi),我國從國外引進(jìn)了一些自動化系統(tǒng)和設(shè)備,其中軍方和火力發(fā)電廠是主要的引進(jìn)單位。這些設(shè)計芯片自成體系,典型的以微處理器 1806BM 系列為核心,總線收發(fā)器、鎖存器、中斷控制器等形成自己獨立的通信和控制設(shè)備。隨著時間的推移,備件也幾乎耗盡,為了維護(hù)系統(tǒng)的正常運行,必須進(jìn)行板級的替代,替代板量很大,由不同的單位完成,而一些核心、加解密設(shè)備又只能由總裝單位管理,因此如何保證替代板的研制正確率,如何測試替代板是一個迫切的問題。
對批量生產(chǎn)的廠家而言,即使有1套完整的設(shè)備,可是如果每個人研制的替代板都要上設(shè)備插拔,一是影響其它人的測試,二是如果有錯誤會產(chǎn)生誤動作,影響設(shè)備壽命。因此,有1套直接測試的簡易設(shè)備,以自己的固定序列形成測試庫是很有必要的。
目前我們國家仍然引進(jìn)不少的設(shè)備,這些設(shè)備仍然堅持自己的芯片和系統(tǒng),因此將來還存在板級、芯片的替代,研制的數(shù)字電路板測試診斷系統(tǒng)(以下簡稱 TE3)仍然有使用空間。
TE3主要針對中小規(guī)模數(shù)字邏輯芯片構(gòu)成的電路板,實現(xiàn)組合和時序等邏輯網(wǎng)絡(luò)的邏輯功能正確性的測試檢查,為專業(yè)技術(shù)人員診斷數(shù)字電路板故障,查找故障元件提供多種技術(shù)手段。
TE3主要針對特定的數(shù)字電路板(中小規(guī)模芯片)進(jìn)行設(shè)計,由自動測試設(shè)備(ATE)、測試程序集(TPS)和測試運行環(huán)境(TE)3個主要部分組成[1]。
ATE 主要用于提供一個實現(xiàn)電路板功能測試和故障診斷的自動化平臺,作用是通過針對被測對象編寫專門的測試程序和運行環(huán)境來完成的。ATE 由PC 計算機、通信接口、自動測試控制部件和管理程序組成。PC 計算機通過通信口與自動測試控制部件交換信息[2]。自動測試控制部件接受 PC 機的命令,測試數(shù)據(jù)流,生成測試向量,將測試向量輸出到標(biāo)準(zhǔn)版和故障板;接受標(biāo)準(zhǔn)版和故障板的輸出向量回送給 PC 機[3]。測試程序集由測試診斷程序、引導(dǎo)測試操作和 TPS 執(zhí)行文檔組成[4]。
測試運行環(huán)境包括 TPS 結(jié)構(gòu)說明、測試編程手段,以及測試診斷向量設(shè)計需求的標(biāo)準(zhǔn)描述格式和測試方案信息。
TE3采用功能測試法,直接利用電路板的輸入和輸出端口作為激勵和響應(yīng)點,對測試和標(biāo)準(zhǔn)2種樣本在相同的環(huán)境下使用相同的測試序列同時進(jìn)行測試,并回收兩者的輸出序列,用計算機比對兩者輸出,以判定被測試樣本的邏輯功能是否正確。設(shè)備連接關(guān)系如圖1所示。
圖1 設(shè)備連接關(guān)系圖
PC 程序采用 VC 和 VB 混合編程,底層通信程序使用 VC[5],界面使用 VB[6]。界面是編輯波形序列,通過點擊波形使其在 0,1之間進(jìn)行取舍。界面容量可以達(dá)20000個時序[7]。通過人工編輯可以形成測試向量庫,并形成測試經(jīng)驗庫[8]。VC 主要完成和單片機之間的雙向通信程序,通信的順序如下:選擇測試向量→形成測試流→采用乒乓方式通信→測試設(shè)備序列→形成顯示。其中乒乓通信保證了發(fā)送方和接受方的實時切換。顯示內(nèi)容放在1個大的緩沖區(qū)中,緩沖區(qū)在充滿后實時寫入硬盤。乒乓通信方式實現(xiàn)原理如下:設(shè) A 和 B 兩個緩沖區(qū),在發(fā)送 A 緩沖區(qū)的數(shù)據(jù)之后,立即讀取 B 緩沖區(qū)的數(shù)據(jù),此時單片機處理 A 區(qū)的數(shù)據(jù)形成測試向量加載,讀單片機 B 的同時,A 區(qū)也寫滿了加載向量的測試結(jié)果。乒乓機制必須保證1個讀寫的啟動,形成一種兵乓連續(xù)的讀寫機制,保證測試數(shù)據(jù)的發(fā)送和接收的準(zhǔn)實時[9]。
讀寫機理:初始化 A,B;發(fā) A,B,循環(huán)開始讀 A,發(fā) A,讀 B,發(fā) B,最后讀 B 即可。
通信協(xié)議格式如圖2所示。
圖2 通信協(xié)議格式
數(shù)據(jù)生成主要由主界面完成,在主界面上可以對相應(yīng)位上、通道上的測試序列進(jìn)行點擊修改,并作為測試文件保留在歷史庫,測試文件以時間到秒命名并保留。
VB 程序完成數(shù)據(jù)矢量的編輯和測試結(jié)果的顯示[10]。
系統(tǒng)主界面可以對時序信號點擊編輯,隨時讓某個時間點的輸入信號變化,也可以選擇某列使整個列的信號變化。界面以外的信號可以通過滾動條觀察,使用比較方便。界面可以單步設(shè)置斷點,對某個時間界面上的信號持續(xù)觀察,也可以循環(huán)對1段信號連續(xù)發(fā)送觀察,適合電路板的調(diào)試。
單片機采用 CF8051F120系列單片機。該單片機提供 USB 驅(qū)動,并有豐富的 I/O 接口,可以保證對外部設(shè)備的擴展。對 I/O 口采用統(tǒng)一編址的方法,逐一讀取其 I/O 上的電平,并進(jìn)行輪詢。工作過程中為了保證電源加載安全,給出上述協(xié)議中類型位為 0和 1,分別是電源的加載和去載。每次完成測試,都有這個過程。形成測試結(jié)果送 PC 機顯示保存。
目前 TE3已經(jīng)用于某型系統(tǒng)國內(nèi)板級仿制測試。為了安全考慮,不能對仿制、替代的電路板直接運行系統(tǒng)調(diào)試,必須在對仿制板的線下測試可靠后,才允許上機替代。TE3可為線下測試提供可靠的保障。
未來以 TE3測試設(shè)備為基礎(chǔ),建立以 PC 為基本測試點的網(wǎng)絡(luò)測試系統(tǒng),可形成遠(yuǎn)程故障和診斷系統(tǒng),如圖3所示。
圖3 網(wǎng)絡(luò)測試結(jié)構(gòu)圖
中心站通過通用網(wǎng)絡(luò),建立各個測試點的測試和反饋向量數(shù)據(jù)庫,并在一定的時段向測試點發(fā)出測試指令,檢查測試點上傳的向量,對測試點板級設(shè)備進(jìn)行診斷,實時了解遠(yuǎn)程設(shè)備的運行情況。
網(wǎng)絡(luò)點之間協(xié)議交換格式如圖4所示。
圖4 網(wǎng)絡(luò)點之間協(xié)議交換格式
接收方根據(jù)目的地址,判定自己是否是節(jié)后指令,并提取檢測次數(shù)和開始時間,根據(jù)檢測序列號對設(shè)備進(jìn)行檢測,檢測后的結(jié)果存入用戶根據(jù)歷次測試形成的分類庫,該庫由系統(tǒng)自動生成,用戶只要按存入按鍵即可,并通過網(wǎng)絡(luò)上報中心節(jié)點。
上報中心節(jié)點協(xié)議交換格式,交換以大文件的方式上傳,如圖5所示。
圖5 網(wǎng)絡(luò)上報傳輸測試結(jié)果楨結(jié)構(gòu)圖
本測試診斷系統(tǒng),目前主要針對數(shù)字和通信系統(tǒng)測試,對于模擬系統(tǒng)尚未展開,以后可以進(jìn)行擴充,現(xiàn)在正在用 PCI-E 總線替代 USB,這樣測試?yán)碚撍俾士蛇_(dá) G 級。運用本系統(tǒng)可以對任意序列組合進(jìn)行單步和循環(huán)的發(fā)送,直接對結(jié)果在標(biāo)準(zhǔn)電路板和測試電路板間進(jìn)行比對,給出故障信號的來源,大大提高了電路板設(shè)計和調(diào)試的效率,可以推廣應(yīng)用在各個電子設(shè)計領(lǐng)域。目前已經(jīng)在工信部第十五研究所應(yīng)用,效果良好,現(xiàn)正在和水利信息領(lǐng)域的專家接洽,希望在水利領(lǐng)域推廣。
長江微電子技術(shù)(大連)股份有限公司針對FPGA(現(xiàn)場可編程門陣列)電路板的測試和仿真、邏輯判斷技術(shù)先進(jìn),已經(jīng)取得國家發(fā)明專利,但缺少系統(tǒng)可編輯的序列輸入,不能滿足設(shè)計者根據(jù)自己的邏輯反復(fù)測試和試驗的要求。
數(shù)字電路板測試診斷系統(tǒng)有待完善的地方:FPGA CPLD 等大規(guī)模邏輯電路,基于 Verilog 語言的設(shè)計,可以針對其 Verilog 程序的編譯系統(tǒng)在系統(tǒng)內(nèi)加入,這樣根據(jù)其綜合生成邏輯門級電路,可以將信號逐級傳送,推導(dǎo)各個點直至出口信號,形成真正的職能診斷系統(tǒng)。
[1] Cygnal Integrated Products,Inc.C8051F 單片機應(yīng)用解析[M].北京:北京航空航天大學(xué)出版社,2002: 43-49.
[2] 潘琢金,施國君.C8051Fxxx 高速 soc 單片機原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2002: 52-63.
[3] 閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].5版.北京:高等教育出版社,2006: 70-100.
[4] 賴麒文.8051單片機 C 語言軟件設(shè)計的藝術(shù)[M].北京:科學(xué)出版社,2002: 87-95.
[5] Jan Axelson.USB 開發(fā)大全[M].李鴻鵬,鄭瑞霞,陳香凝,等譯.北京:人民郵電出版社,2011: 30-50.
[6] CSDN gaokaji16.VC 下 USB 編程[EB/OL].[2013-04-15].http://download.csdn.net/detail/v200x/4133499.
[7] CSDN weirdyouyang.USB2.0協(xié)議 (英文版)[EB/OL].[2013-04-15].http://download.csdn.net/detail/lingess/3500079.
[8] 龔正虎.測試序列生成的形式方法[J].計算機工程與應(yīng)用,1996(2): 1-2.
[9] CSDN bloghome.VC 多線程編程技術(shù)資料集[EB/OL].[2013-04-15].http://download.csdn.net/detail/bloghome/1169588.
[10] CSDN manjixingkong.VB 界面設(shè)計[EB/OL].[2013-04-15].http://download.csdn.net/detail/manjixingkong/437095.