摘 要: 詳細(xì)介紹了基于多P89C668單片機的組合邏輯電路自動測試" title="自動測試">自動測試診斷系統(tǒng)的設(shè)計,包括硬件結(jié)構(gòu)設(shè)計和軟件設(shè)計。該自動測試診斷系統(tǒng)采用USB接口實現(xiàn)計算機與診斷平臺的通信,,其移動式結(jié)構(gòu)便于在現(xiàn)場進行測試,,且設(shè)備成本低、操作簡單,。
關(guān)鍵詞: 自動測試診斷系統(tǒng) 多單片機 P89C668 USB
隨著IT產(chǎn)業(yè)和通信技術(shù),、電子技術(shù)、計算機技術(shù)的高速發(fā)展,,大量的生產(chǎn)裝備和產(chǎn)品的電子化,、數(shù)字化、自動化,、智能化的程度越來越高,,與之配套的電子測量設(shè)備必須適應(yīng)這種形勢。因此,,綜合測量技術(shù),、電子技術(shù),、自動化技術(shù)和計算機技術(shù)于一體的自動測試系統(tǒng)發(fā)展日益完善,在一些高度電子化產(chǎn)品,、航空航天和軍用武器裝備中以及工業(yè)自動化,、通信、光學(xué),、能源等諸多領(lǐng)域中得到了廣泛應(yīng)用,。
一般意義的自動測試系統(tǒng)是指采用計算機控制,能實現(xiàn)自動化測試的系統(tǒng),。這類系統(tǒng)通常是在標(biāo)準(zhǔn)的測控總線或儀器總線(CAMAC,、GPIB、VXI,、PXI,、CAN等)的基礎(chǔ)上組建而成的。目前,,通用串行總線(Universal Serial Bus,,即USB)以其方便的即插即用和熱插拔特性及較高的傳輸速率,成為PC機領(lǐng)域廣為應(yīng)用的外設(shè)連接規(guī)范,。本文介紹的自動測試診斷系統(tǒng)是以五片P89C668單片機為核心組成故障診斷平臺,,采用基于FT245BM USB芯片的通信卡建立計算機與測試診斷平臺通信的橋梁,使其能對需要檢測的組合邏輯數(shù)字電路板進行測試,,并可以根據(jù)標(biāo)準(zhǔn)診斷數(shù)據(jù)庫對產(chǎn)生故障的電路板進行自動故障定位,。目前該系統(tǒng)能夠?qū)Χ喾N不含有不受控制的部件如CPU、存儲元件,、晶振,、阻容式單穩(wěn)態(tài)等的數(shù)字電路板進行自動測試及故障診斷,可測試的電路板邊緣連接器的最大引腳數(shù)為96個,。
1 硬件結(jié)構(gòu)
該測試診斷系統(tǒng)的硬件主要由以下部分組成:
·計算機
·USB通信電纜
·USB通信卡
·多MCU" title="MCU">MCU系統(tǒng)測試診斷平臺
·微型開關(guān)電源
·散熱風(fēng)扇
·通道連接適配器板等
1.1 計算機
計算機的主要功能是通過USB接口控制測試診斷平臺,,進而完成測試平臺系統(tǒng)自檢、通道輸入/輸出的定義,、發(fā)送測試激勵數(shù)據(jù),、接收響應(yīng)數(shù)據(jù)、數(shù)據(jù)計算與分析等工作,。
1.2 USB通信卡
USB通信卡是連接計算機與測試平臺的橋梁,。它的主要功能一方面是將計算機發(fā)送的控制命令、數(shù)據(jù)送到測試平臺的主MCU,,使測試平臺完成各種測試任務(wù),;另一方面是將測試平臺中多MCU系統(tǒng)的自檢信息和測試結(jié)果送往計算機,以供計算機進行判斷與分析,。
USB通信卡是基于FTDI公司的FT8U245BM芯片組成的,具有數(shù)據(jù)傳送速率高(達(dá)8Mb/s)和即插即用等優(yōu)點,。
1.3 多MCU系統(tǒng)構(gòu)成的測試平臺
多MCU系統(tǒng)由一個主MCU和四個從MCU組成,。所有的MCU均采用PHILIPS公司的P89C668單片機芯片,其內(nèi)部有可ISP/IAP編程的64KB Flash程序存儲器和8KB RAM,每個機器周期可采用六個時鐘周期,,是傳統(tǒng)單片機(80C51)的兩倍,。在其全雙工增強型UART中具有幀錯誤檢測和自動地址識別功能,另外還具有可編程的時鐘輸出功能及可編程的計數(shù)器陣列(PCA)等,,是PHILIPS公司MCU家族中較為高端的產(chǎn)品,。多MCU系統(tǒng)構(gòu)成的測試平臺如圖1所示。
在本文設(shè)計的多MCU系統(tǒng)中,,各個MCU的功能如下:
(1) 主機MCU的功能
·負(fù)責(zé)與PC機的通信,。通信采用目前流行的USB總線通訊方式,一方面接收來自于PC機的命令與數(shù)據(jù),,另一方面向PC機發(fā)送測試數(shù)據(jù)和自檢信息,。
·解釋來自PC機的命令,并向所有從機或者相應(yīng)的從機發(fā)送,。對來自PC機的數(shù)據(jù)進行分類,,并發(fā)送給相應(yīng)的從機。對自身的RAM進行自檢,。
·負(fù)責(zé)與四個從機的通信。通信為多機主-從方式,,利用MCU的RxD和TxD端以全雙工UART串行模式進行通信,,并使用幀錯誤檢測和自動地址識別功能。
·管理四個從機進行同步測試,。主MCU利用P1口的低四位(P1.4,、P1.5、P1.6,、P1.7)向四個從機發(fā)送同步控制信號,,使得多個從機在測試過程中能夠保持同步性。
(2) 從機MCU1~MCU4的功能
·通過RxD端口,,以串行通信方式接收來自主MCU的與自己相關(guān)的命令和數(shù)據(jù),。
·每個從機的24路I/O端口P0.0~P0.7、P1.0~P1.7和P2.0~P2.7共計96路分別與測試通道Port1~Port96相連接,。根據(jù)I/O端口的設(shè)置情況,,向定義的輸出通道輸出測試激勵信號,從相應(yīng)的輸入通道讀入測試結(jié)果并存入相應(yīng)的RAM單元,。
·在被測試電路板的一個輸出通道測試完畢后,,將測試的結(jié)果發(fā)送到主MCU的RAM存儲區(qū),并由主MCU發(fā)往計算機,。
·負(fù)責(zé)自身數(shù)據(jù)存儲區(qū)RAM的自檢工作,。當(dāng)接收到主MCU的自檢命令時,,對自身的RAM進行自檢,并將自檢結(jié)果發(fā)送到主MCU,。
1.4 測試通道適配接口卡
普通的被測數(shù)字電路板是不能直接插到測試平臺的測試接口上的,,需要有特制的測試通道適配接口卡才能進行連接。本系統(tǒng)提供的接口卡是96路通道的總線結(jié)構(gòu)的接口卡,,可與適用于本設(shè)計的數(shù)字電路板進行連接,。如果要測試其它類型的數(shù)字電路板,則需要專門定做與其配套的測試通道適配接口卡,。
2 軟件設(shè)計
2.1 測試平臺程序設(shè)計
本系統(tǒng)測試平臺程序采用模塊化設(shè)計,,是基于Keil系統(tǒng)開發(fā)軟件和TKS-668開發(fā)硬件,采用C語言與匯編語言編寫的,。模塊化程序設(shè)計的思想就是要把一個復(fù)雜的程序按整體功能劃分成若干相對獨立的程序模塊,,各模塊可以單獨設(shè)計、編程,、調(diào)試和查錯,,然后裝配起來進行聯(lián)調(diào),最終成為一個有實用價值的程序,。本系統(tǒng)的測試平臺軟件主要由系統(tǒng)的主程序,、通信程序、測試程序和自檢程序等模塊組成,。
2.1.1 主程序設(shè)計
主,、從MCU的主程序設(shè)計流程圖分別如圖2、圖3所示,。本系統(tǒng)中的四個從MCU具有相同的功能,,因此其主程序設(shè)計是一樣的。主,、從MCU在初始化中要設(shè)置的相關(guān)參數(shù)包括:串行口的方式,、波特率、定時器的方式,、中斷等,。
2.1.2 自檢程序設(shè)計
主從MCU的自檢是為了保證每個單片機都能正常工作,即USB和主MCU,、主MCU和從MCU之間的通訊正常,,并且保證每個單片機的RAM沒有損壞。
主MCU和從MCU之間的通訊是否正常的自檢是:先由主單片機向從單片機發(fā)一串?dāng)?shù)據(jù),,然后再由從單片機把接收到的數(shù)據(jù)發(fā)回主單片機,,判斷兩串?dāng)?shù)據(jù)的個數(shù)和內(nèi)容是否一致,一致的話則說明通訊正常。同理,,USB和主MCU之間通訊自檢的原理也是如此,。
MCU的RAM自檢的原理是:對于每一個RAM的存儲單元,先把一個數(shù)據(jù)寫入該RAM的單元,,然后再從該單元里讀出一個數(shù)據(jù),,判斷兩者是否一致,如果一致則說明該RAM單元沒有損壞,。
2.1.3 通訊程序設(shè)計
系統(tǒng)的通訊程序包括:主MCU與USB之間的通訊程序,、主MCU與從MCU之間的通訊程序以及從MCU對被檢測電路板的掃描程序。
主MCU和USB是通過USB的管腳D0~D7和主MCU的管腳P0.0~P0.7傳遞數(shù)據(jù)的,??刂浦饕峭ㄟ^USB的四個管腳: RXF、TXE,、WR,、/RD和主MCU的四個管腳:P1.4、P1.5,、P1.6,、P1.7進行的。當(dāng)TXE為低且WR從0變?yōu)?時,,數(shù)據(jù)寫入USB,;當(dāng)RXF為低且/RD從1變?yōu)?時,數(shù)據(jù)從USB讀到主MCU,。主MCU通過P1.4和P1.5對USB的RXF和TXE進行判斷,,然后通過P1.6和P1.7對USB的WR和/RD進行控制傳遞數(shù)據(jù)。
主MCU與從MCU之間利用MCU的RxD和TxD端以全雙工UART串行模式進行通信,,串行通訊通過中斷實現(xiàn),使用了幀錯誤檢測和自動地址識別功能,。本系統(tǒng)的主MCU采用廣播通訊方式,,由特殊寄存器SADEN 和SADDR邏輯或產(chǎn)生從機的廣播地址,利用地址自動識別功能,,通過發(fā)送廣播地址,,同時發(fā)命令與四個從MCU進行通訊。當(dāng)主MCU只和單個從MCU通訊時,,采用點點通訊方式,,由SADEN和SADDR相與產(chǎn)生的特定地址來確認(rèn)哪些從機被選中與主機進行通訊,不需要再進行軟件查詢,。
從MCU對被檢測電路板的掃描程序采用的是功能測試技術(shù),。為了檢測某一組合邏輯電路板是否存在故障,首先把該電路板插到診斷插槽上,由于每個輸出端口只是與該電路板所有端口中的幾個有邏輯關(guān)系,,所以掃描程序只需對與某個輸出端口有邏輯關(guān)系的電路板的輸入端口進行從全0到全1的電平激勵(比如有五個輸入端口,,一共有25=32組激勵)。對于有邏輯關(guān)系的輸入超過七個以上時,,由于工作量很大,,不實行從全0到全1的激勵,而是從中選擇128組激勵進行類似抽查的檢測,,然后讀取輸出端口,,把輸出結(jié)果傳輸?shù)接嬎銠C內(nèi),和標(biāo)準(zhǔn)數(shù)據(jù)庫中的仿真結(jié)果進行分析與比較,,判斷是否一致,,如果出現(xiàn)不一致的情況,則說明電路板存在故障,。
2.2 應(yīng)用系統(tǒng)軟件設(shè)計
安裝在計算機上的自動測試診斷系統(tǒng)軟件采用Visual C 6.0語言編程,,其主要作用是使計算機向USB接口通信卡發(fā)送測試激勵數(shù)據(jù)、接收響應(yīng)數(shù)據(jù),、進行數(shù)據(jù)計算與分析等,。
2.3 標(biāo)準(zhǔn)診斷數(shù)據(jù)庫的軟件產(chǎn)生方法
建立標(biāo)準(zhǔn)診斷數(shù)據(jù)庫的目的是為了進行自動故障定位。本系統(tǒng)可用兩種方法建立標(biāo)準(zhǔn)診斷數(shù)據(jù)庫:第一種方法是根據(jù)被測數(shù)字電路板的原理圖,,在一些EDA軟件環(huán)境如Protel,、Foudation、MaxplusⅡ中通過仿真功能生成標(biāo)準(zhǔn)診斷數(shù)據(jù)庫,。第二種是測試功能正常的數(shù)字電路板,,在特定的激勵下記錄該電路板的響應(yīng)數(shù)據(jù),由軟件自動追加到相應(yīng)的數(shù)據(jù)庫中,,作為今后測試該電路板的標(biāo)準(zhǔn)診斷數(shù)據(jù)庫,。
由于本系統(tǒng)所要測試診斷的電路板端口數(shù)較多,采用第二種方法不但工作量非常大,,而且還要確保所測數(shù)字電路板在測試過程中功能正常,,因此本系統(tǒng)采用第一種方法??紤]到所測的電路板為組合邏輯數(shù)字電路板,,所以本系統(tǒng)采用Xilinx公司的Foundation F3.1i軟件環(huán)境,在原理圖編輯器(Schematic Editor)中輸入被測數(shù)字電路板的原理圖,,然后在功能仿真器(Functional Simulation)的Script Editor中利用軟件自帶的仿真命令自動生成標(biāo)準(zhǔn)診斷數(shù)據(jù)文件,,再由應(yīng)用系統(tǒng)軟件將數(shù)據(jù)導(dǎo)入相應(yīng)的數(shù)據(jù)庫。
目前一般的自動測試診斷系統(tǒng)通常是在標(biāo)準(zhǔn)的測控總線或儀器總線(CAMAC,、GPIB,、VXI,、PXI、CAN等)的基礎(chǔ)上組建而成的,,其成本較高,、體積龐大、操作復(fù)雜,,在測試過程中顯得非常不方便,,難以滿足現(xiàn)代科技工作者的需要。本文介紹的自動測試診斷系統(tǒng)是以五片P89C668單片機為核心組成故障診斷平臺,,采用基于FT245BM USB芯片的通信卡實現(xiàn)計算機與測試診斷平臺的通信,。該系統(tǒng)的便攜式結(jié)構(gòu)特別適合于現(xiàn)場測試,具有成本低,、體積小,、重量輕、結(jié)構(gòu)緊湊,、自動化程度高等優(yōu)點,;系統(tǒng)的操作比較簡單,只要掌握計算機的一般操作,,具有一定的數(shù)字電路技術(shù)基礎(chǔ),,能夠看懂一般的數(shù)字電路原理圖,經(jīng)過簡單的技術(shù)培訓(xùn),,詳細(xì)閱讀并理解本系統(tǒng)的使用說明后就可以進行操作,;系統(tǒng)硬件模塊的標(biāo)準(zhǔn)化和軟件模塊的可復(fù)用性使系統(tǒng)具有很強的擴展能力。目前該測試診斷系統(tǒng)已經(jīng)投入使用,,效果良好,,完全達(dá)到了預(yù)期的設(shè)計目的。
參考文獻(xiàn)
1 何立民.MCS-51系列單片機應(yīng)用系統(tǒng)設(shè)計系統(tǒng)配置與接口技術(shù).北京:北京航空航天出版社,,2001
2 許永和.8051單片機USB接口程序設(shè)計(上,、下). 北京:北京航空航天出版社,2004
3 P89C668單片機使用指南. 廣州周立功單片機發(fā)展有限公司,2001