李天義 耿躍華 富坤 張梅芳
(河北工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與軟件學(xué)院1,天津 300401;中國人民解放軍93642部隊(duì)2,河北 唐山 064000;河北工業(yè)大學(xué)電氣與自動(dòng)化學(xué)院3,天津 300401)
一種新型數(shù)字芯片測試儀的設(shè)計(jì)與實(shí)現(xiàn)
李天義1,2耿躍華3富坤1張梅芳1
(河北工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與軟件學(xué)院1,天津 300401;中國人民解放軍93642部隊(duì)2,河北 唐山 064000;河北工業(yè)大學(xué)電氣與自動(dòng)化學(xué)院3,天津 300401)
針對傳統(tǒng)數(shù)字芯片測試設(shè)備檢測芯片固定、PC機(jī)軟件不可擴(kuò)展、測試電路復(fù)雜等問題,設(shè)計(jì)了一種新型數(shù)字芯片測試儀。儀器設(shè)計(jì)為上位機(jī)和下位機(jī)兩部分,并著重突出了上位機(jī)的作用。對組成上位機(jī)的編譯模塊、數(shù)據(jù)管理模塊、SQLite數(shù)據(jù)庫、測試模塊和串口設(shè)置模塊進(jìn)行了研究,同時(shí)對以PL2303芯片為主的串口通信模塊和以STC89C52為控制芯片的下位機(jī)電路進(jìn)行了設(shè)計(jì)。系統(tǒng)能夠準(zhǔn)確地檢測組合邏輯芯片、定位故障點(diǎn),并能動(dòng)態(tài)生成測試集、擴(kuò)展可測組合邏輯芯片。
編譯功能 SQLite數(shù)據(jù)庫 芯片測試 測試集 結(jié)果集 故障檢測
隨著電子技術(shù)的不斷發(fā)展,組合邏輯芯片被廣泛使用在數(shù)字系統(tǒng)研究中,因其反復(fù)使用、頻繁插拔等,極易出現(xiàn)故障。為及時(shí)檢測出問題芯片、提高芯片利用率,各大高校和實(shí)驗(yàn)室紛紛推出自己的芯片測試儀器或設(shè)備[1-5]。這些測試儀器在一定程度上實(shí)現(xiàn)了對問題芯片進(jìn)行檢測的目的。然而,這些測試儀器注重對芯片測試能力的設(shè)計(jì),對適用范圍、交互能力沒有進(jìn)行充分的考慮,主要體現(xiàn)在3個(gè)方面:一是將被測芯片的測試集提前寫入檢測系統(tǒng)中,導(dǎo)致被測芯片型號(hào)固定;二是忽略了上位機(jī)軟件的擴(kuò)展開發(fā),使得測試系統(tǒng)不能夠擴(kuò)充被測芯片;三是通過撥碼開關(guān)來對芯片類型和型號(hào)進(jìn)行選擇,增加了硬件電路的復(fù)雜度。本文引入軟件編程技術(shù)、數(shù)據(jù)庫技術(shù)等,將研究重點(diǎn)放在上位機(jī)的開發(fā)上,通過增加上位機(jī)的編譯模塊和SQLite輕型數(shù)據(jù)庫管理模塊,配合下位機(jī)相應(yīng)的硬件電路,有效地解決了上述問題。
1.1 測試原理分析
數(shù)字芯片測試儀的基本測試原理是:首先,根據(jù)被測試片的邏輯功能生成測試集和結(jié)果集;然后,利用硬件電路將測試集轉(zhuǎn)換成電平信號(hào)并加載到被測芯片的輸入引腳,而后讀取被測芯片的輸出電平信號(hào);最后將采集到的輸出電平信號(hào)與結(jié)果集進(jìn)行比對,判斷出被測芯片的完整性。
上述基本原理在實(shí)際應(yīng)用過程中有2個(gè)突出問題需要解決。一是測試集和結(jié)果集的存放問題。每一芯片都有其對應(yīng)的測試集和結(jié)果集,存儲(chǔ)測試集和結(jié)果集是需要空間開銷的。如果將測試集和結(jié)果集存放在下位機(jī)的硬件存儲(chǔ)設(shè)備中,會(huì)使得原本就有限的下位機(jī)存儲(chǔ)空間更為拮據(jù),故本文將測試集和結(jié)果集存放在上位機(jī)中。二是被測數(shù)字芯片輸入輸出引腳的確立問題。每組數(shù)字芯片對其各自的引腳定義不一定相同,一些引腳是信息量輸入引腳,一些則是信息量輸出引腳,在測試開始之初便需要確立引腳的輸入輸出狀態(tài)性質(zhì)。本文通過建立上位機(jī)和下位機(jī)的通信協(xié)議、通信協(xié)議來配置上位機(jī)所傳遞的數(shù)據(jù)。
1.2 系統(tǒng)設(shè)計(jì)
通過上述分析,將系統(tǒng)總體框架設(shè)計(jì)為上位機(jī)和下位機(jī)兩部分,如圖1所示。
①上位機(jī)軟件部分主要由編譯模塊、數(shù)據(jù)管理模塊、測試模塊、串口設(shè)置模塊以及SQLite數(shù)據(jù)庫構(gòu)成,主要實(shí)現(xiàn)對被測芯片的選定、類型擴(kuò)充以及通信設(shè)置等基本操作。
②下位機(jī)則由以PL2303芯片為主的通信模塊和以STC89C52芯片為控制芯片的檢測模塊配以外圍擴(kuò)展電路組成,主要實(shí)現(xiàn)對芯片的測試信號(hào)加載以及測試結(jié)果捕捉等操作。
圖1 系統(tǒng)總體框架圖Fig.1 Framework of the whole system
系統(tǒng)工作時(shí),上位機(jī)的測試模塊將被測芯片的測試集發(fā)送到下位機(jī)通信模塊。通信模塊接收測試集并發(fā)送測試信號(hào)到下位機(jī)測試模塊,由測試模塊產(chǎn)生激勵(lì)信號(hào)對被測芯片進(jìn)行檢測,并采集被測芯片的輸出響應(yīng)。檢測模塊將輸出響應(yīng)發(fā)送到通信模塊,進(jìn)而發(fā)送到上位機(jī)的測試模塊。測試模塊將反饋信息集與被測芯片結(jié)果集進(jìn)行比對,從而判斷被測芯片的好壞。
1.3 通信格式
系統(tǒng)中上位機(jī)與下位機(jī)的通信需要有特定的格式,使上位機(jī)和下位機(jī)程序的編寫遵循一定的依據(jù),同時(shí)保證數(shù)據(jù)的完整性。上下位機(jī)間的數(shù)據(jù)通信協(xié)議具體格式如圖2所示。
圖2 上位機(jī)與下位機(jī)間的數(shù)據(jù)通信格式Fig.2 The data communication format between host computer and lower computer
上位機(jī)與下位機(jī)間的通信是通過數(shù)據(jù)幀來完成的。一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)幀分為32位:1~3位為起始位,標(biāo)示該幀數(shù)據(jù)發(fā)送開始;4~5位為標(biāo)志位,用于說明該幀數(shù)據(jù)的作用;6~29位為端口引腳的設(shè)置信息或輸入輸出情況;30~32位為結(jié)束位,標(biāo)示該幀數(shù)據(jù)發(fā)送結(jié)束。
上位機(jī)軟件使用C#語言編寫,在Microsoft Visual Studio 2005環(huán)境和DotNetBar開發(fā)工具支持下完成。系統(tǒng)具有2個(gè)特色功能:一是能夠由芯片的功能表達(dá)式生成測試集和結(jié)果集,二是芯片的測試集和結(jié)果集能夠?qū)С鰧?dǎo)入。這兩個(gè)功能均需要在上位機(jī)上實(shí)現(xiàn)。由此可見,上位機(jī)是整個(gè)系統(tǒng)的指令控制樞紐。為實(shí)現(xiàn)有效的測試數(shù)據(jù)傳輸和數(shù)據(jù)存儲(chǔ)管理,系統(tǒng)將上位機(jī)功能劃分為4個(gè)模塊。
上位機(jī)的軟件體系架構(gòu)如圖3所示。
圖3 上位機(jī)軟件體系架構(gòu)圖Fig.3 The architecture of the host computer software
①編譯模塊,為有效擴(kuò)展測試芯片,需要為每一個(gè)新增加的被測試芯片添加相應(yīng)的測試集,這里采用編譯模塊來完成該項(xiàng)工作。根據(jù)用戶輸入的芯片功能表達(dá)式,利用編譯原理的思想,結(jié)合測試集生成算法,生成被測芯片的測試集和結(jié)果集,并將測試集、結(jié)果集和被測芯片基本信息存入SQLite數(shù)據(jù)庫中。編譯模塊的作用是根據(jù)用戶要求動(dòng)態(tài)添加新的芯片測試支持。
目前,常用的測試集生成算法有臨界通路法、D-算法、FAN算法[6-9]、布爾差分法[10]等,每種算法各有其優(yōu)缺點(diǎn)。本文采用操作簡單、易于程序?qū)崿F(xiàn)的臨界通路法為數(shù)字芯片的測試集生成算法。
②數(shù)據(jù)管理模塊,主要是通過操作SQLite數(shù)據(jù)庫,完成對已存在的數(shù)字芯片的類型、基本信息及其測試集和結(jié)果集進(jìn)行查找、修改、刪除等基本數(shù)據(jù)操作。同時(shí),數(shù)據(jù)管理模塊具備整體數(shù)據(jù)的導(dǎo)入和導(dǎo)出功能,通過該功能及時(shí)更新數(shù)據(jù)庫,從而滿足用戶對被測試芯片種類的及時(shí)更新要求。
開源的關(guān)系型數(shù)據(jù)庫SQLite數(shù)據(jù)庫,支持大部分標(biāo)準(zhǔn)SQL語言[11]。它沒有獨(dú)立的數(shù)據(jù)引擎,本文使用可視化管理工具SQLite Expert Pro v3.4.17實(shí)現(xiàn)對SQLite文件的構(gòu)建和編寫。SQLite數(shù)據(jù)庫的數(shù)據(jù)文件是后綴名為.db的文件。該文件可直接由上位機(jī)程序通過API接口進(jìn)行調(diào)用,實(shí)現(xiàn)對數(shù)據(jù)庫的存取操作。
③測試模塊,是直接實(shí)現(xiàn)對數(shù)字芯片進(jìn)行檢測的關(guān)鍵模塊。測試模塊根據(jù)用戶對芯片類型的選擇信息,從SQLite數(shù)據(jù)庫中提取出對應(yīng)芯片的測試集與結(jié)果集。同時(shí),測試模塊根據(jù)串口設(shè)置模塊提供的串口傳輸信息,輸出測試集、接收反饋信息,與結(jié)果集進(jìn)行對比分析得出測試結(jié)論并顯示。
④串口設(shè)置模塊,是設(shè)置串口通信的基本配置模塊,主要是針對不同的下位機(jī)對測試的串口設(shè)置要求不同而進(jìn)行設(shè)計(jì)的。Microsoft Visual Studio 2005開發(fā)環(huán)境提供了SerialPort類,用于實(shí)現(xiàn)對串口通信的支持。通過初始化該類的實(shí)例即可完成對串口資源參數(shù)的配置。
除上述4個(gè)基本模塊功能外,為滿足用戶的多樣性要求,軟件還包括如工具軟件、快捷方式、日期提示、幫助文檔、主題風(fēng)格等多種功能。
3.1 程序流程設(shè)計(jì)
下位機(jī)是系統(tǒng)中具體的指令執(zhí)行體,負(fù)責(zé)執(zhí)行設(shè)備的控制指令,同時(shí)將測試結(jié)果反饋到上位機(jī)。下位機(jī)程序的執(zhí)行主要分為串口中斷處理程序和數(shù)據(jù)執(zhí)行程序兩部分。
①串口中斷處理程序流程圖如圖4所示。
圖4 串口中斷處理程序流程圖Fig.4 The flowchart of the serial port interrupt program
每當(dāng)下位機(jī)接收到上位機(jī)通過串口發(fā)送的指令時(shí),下位機(jī)執(zhí)行串口中斷程序。根據(jù)定義的通信協(xié)議,中斷程序首先判斷該組數(shù)據(jù)的起始位和結(jié)束位是否完全正確。若不正確,則舍棄該組數(shù)據(jù);若正確,則將數(shù)據(jù)存入getstr寄存器中,同時(shí)對數(shù)據(jù)執(zhí)行程序進(jìn)行信息反饋。
②下位機(jī)數(shù)據(jù)執(zhí)行程序流程圖如圖5所示。
圖5 數(shù)據(jù)執(zhí)行程序流程圖Fig.5 The flowchart of the data execution program
收到串口中斷程序的反饋信息后,數(shù)據(jù)執(zhí)行程序開始執(zhí)行,程序首先判斷flag和begin標(biāo)志位是否均為1。若是,則執(zhí)行測試程序;否則退出程序。
3.2 硬件設(shè)計(jì)
根據(jù)上述下位機(jī)程序的分析可知,下位機(jī)需要識(shí)別處理上位機(jī)的串口數(shù)據(jù)請求,需要有引腳與被測芯片進(jìn)行連接,并具有一定的指令執(zhí)行能力。經(jīng)過仔細(xì)分析,系統(tǒng)采用STC89C52芯片作為下位機(jī)MCU,配合其他外部設(shè)備構(gòu)成。下位機(jī)主要分為3個(gè)部分:USB轉(zhuǎn)串口通信、STC89C52芯片最小系統(tǒng)、40引腳芯片鎖緊座。
完成上位機(jī)與下位機(jī)進(jìn)行通信數(shù)據(jù)解析的USB轉(zhuǎn)串口通信電路圖如圖6所示。模塊中采用PL2303芯片作為主要的數(shù)據(jù)處理芯片,另外包含驅(qū)動(dòng)芯片工作的晶振電路以及穩(wěn)壓電路等。PL2303芯片能夠?qū)⑸衔粰C(jī)提供的5 V電壓進(jìn)行轉(zhuǎn)換,可提供3.3 V和5 V的兩種電壓型號(hào),實(shí)現(xiàn)對不同工作電壓芯片的檢測。
圖6 USB轉(zhuǎn)串口通信電路圖Fig.6 The conversion circuit of USB to serial port communication
下位機(jī)工作的STC89C52最小系統(tǒng)電路由晶振電路、開關(guān)復(fù)位電路等構(gòu)成。為使芯片的P1引腳能夠正常工作,將P1引腳進(jìn)行上拉,上拉電阻為10 kΩ。
系統(tǒng)通過40引腳芯片鎖緊座,將被測芯片與STC89C52的3組(P0、P1、P2)I/O口連接。由于被測芯片的最后一個(gè)引腳為VCC,因此本設(shè)計(jì)將最后一個(gè)引腳直接接電源,并通過STC89C52的P1.0引腳選擇是連接3.3 V還是連接5 V電源。
3.3 硬件測試
硬件測試既是對所設(shè)計(jì)的下位機(jī)硬件電路的檢測也是對上位機(jī)軟件功能的檢驗(yàn)。如對一片AT28C16芯片進(jìn)行測試,需將芯片置放于芯片放置端,用鎖緊座將其固定供電,在上位機(jī)的“其他芯片”一欄中選擇AT28C16芯片,對其雙擊進(jìn)行檢測,實(shí)現(xiàn)硬件檢測的目的。
本設(shè)計(jì)通過在上位機(jī)軟件中引入編譯功能和SQLite輕型數(shù)據(jù)庫,以及對相應(yīng)下位機(jī)硬件電路的設(shè)計(jì),實(shí)現(xiàn)了新型數(shù)字芯片測試儀。該儀器具有兩個(gè)突出特性:一是能夠檢測多種型號(hào)、不同功能的數(shù)字芯片;二是在系統(tǒng)中沒有該芯片的測試集和結(jié)果集的情況下,可以通過編譯功能實(shí)現(xiàn)測試集和結(jié)果集的生成,也可以通過數(shù)據(jù)導(dǎo)入的方式對測試芯片種類進(jìn)行更新。因此,本設(shè)計(jì)具有更強(qiáng)的適應(yīng)性和靈活性。
另外,本設(shè)計(jì)只能對24位以內(nèi)引腳數(shù)目的芯片進(jìn)行檢測,在下一步的研究中本設(shè)計(jì)會(huì)在鎖緊座引腳上引入數(shù)據(jù)鎖存器,通過分時(shí)加載測試信號(hào)的方式實(shí)現(xiàn)測試引腳數(shù)的擴(kuò)充。
[1] 尹超平,張秉仁,趙吉祥.基于VIIS-EM平臺(tái)的虛擬數(shù)字集成電路測試儀的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013(5):89-92.
[2] 江麗君.數(shù)字集成電路故障模型研究及故障注入平臺(tái)設(shè)計(jì)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.
[3] 余波,李維,吳兆耀.新型數(shù)字IC測試儀的設(shè)計(jì)[J].成都師范學(xué)院學(xué)報(bào),2013(7):122-124.
[4] 肖寶森.多功能數(shù)字芯片測試儀的設(shè)計(jì)與應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2010(12):133-136.
[5] 包本剛,劉坤,鄒帥,等.基于FPGA/DSP的數(shù)字芯片測試儀[J].儀表技術(shù)與傳感器,2010(7):42-45.
[6] 付鵬.專用電路測試方法的研究與實(shí)現(xiàn)[D].北京:北京理工大學(xué),2011.
[7] 劉剛,黎放,狄鵬.基于融合算法的測試優(yōu)化選擇問題研究[J].計(jì)算機(jī)科學(xué),2013(S1):54-57.
[8] 王紅霞,潘紅兵,葉曉慧.多故障的測試序列問題研究[J].兵工學(xué)報(bào),2011(12):1518-1523.
[9] 付欣,付帥.求解測試集優(yōu)化問題[J].科技通報(bào),2012(6):96-97,100.
[10] 孫昌愛,程慶順.基于故障的布爾表達(dá)式測試技術(shù)綜述[J].計(jì)算機(jī)科學(xué),2013(3):16-23-40.
[11] 付蔚,劉謀黎,蔡林沁.智能家居系統(tǒng)嵌入式家庭服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化與儀表,2013(4):37-40.
Design and Realization of a New Digital Chip Tester
Aiming at the problems of traditional digital chip test equipment,such as the tested chips are fixed,PC software cannot be extended,and the testing circuit is complex,etc.,a new digital chip tester has been designed.The design consists of two parts:the host computer,and the lower computer,and the role of the software in host computer is highlighted emphatically.The compositions of host computer,including compilation module,data management module,SQLite database,test module and serial port setup module are researched, in addition,the serial communication module based on PL2303 as the core,and the circuit with STC89C52 as control chip in lower computer are designed.The system can precisely detect combinational logic chip,positioning the fault point,and dynamically create test set,expand measurable combinational logic chip.
Compilation function SQLite database Chip test Test set Result set Fault detection
TP36
A
國家自然科學(xué)基金青年基金資助項(xiàng)目(編號(hào):31100711);
河北省高等學(xué)??茖W(xué)技術(shù)研究青年基金資助項(xiàng)目(編號(hào):20111122)。
修改稿收到日期:2014-02-20。
李天義(1986-),男,現(xiàn)為河北工業(yè)大學(xué)計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)在讀碩士研究生;主要從事嵌入式系統(tǒng)的研究。