袁 榮,張子明,李金猛,劉良勇,周勇軍
(1.中國(guó)人民解放軍第5720工廠,安徽 蕪湖 241007;2.安徽省航空設(shè)備測(cè)控與逆向工程實(shí)驗(yàn)室,安徽 蕪湖 241007)
隨著晶體管和集成電路技術(shù)的不斷發(fā)展,航空電子設(shè)備的電路板集成度越來(lái)越高,因此對(duì)其進(jìn)行狀態(tài)監(jiān)測(cè)和故障診斷的難度也越來(lái)越大,特別是在缺乏電路原理圖以及相關(guān)資料的情況下,要完成其健康狀態(tài)監(jiān)測(cè)與故障診斷更是難上加難,給航空維修單位帶來(lái)了很大的壓力[1]。
VI(voltage-intensity)曲線測(cè)試是一種不加電的故障診斷技術(shù),在線路節(jié)點(diǎn)之間注入一定幅度和頻率的周期信號(hào),在顯示坐標(biāo)上形成一條電流隨電壓變化的關(guān)系曲線,即VI曲線。VI曲線的形狀由被測(cè)節(jié)點(diǎn)之間的特性阻抗所決定,通過(guò)比較好、壞電路板(器件)上相同節(jié)點(diǎn)之間的VI曲線,可發(fā)現(xiàn)特性阻抗發(fā)生改變的節(jié)點(diǎn),其通常為器件故障所引發(fā)。對(duì)選定的電路節(jié)點(diǎn),激勵(lì)條件確定時(shí),其響應(yīng)是唯一確定的;響應(yīng)如有變異,意味著電路節(jié)點(diǎn)特性的變異,這必然是電路元器件損傷或電路結(jié)構(gòu)變化(短路或斷路)所致,通過(guò)這種測(cè)試?yán)砟钆c方法可以幫助維修人員快速找出已經(jīng)損傷或即將損傷的元器件。
目前對(duì)VI曲線測(cè)試的研究主要還是集中在基于現(xiàn)有設(shè)備的測(cè)試應(yīng)用上,包括通過(guò)對(duì)VI測(cè)試海量數(shù)據(jù)的轉(zhuǎn)換與壓縮來(lái)完成對(duì)電路板的自動(dòng)狀態(tài)監(jiān)測(cè)與故障診斷[1]、對(duì)復(fù)雜機(jī)載電路板件進(jìn)行測(cè)試與故障定位[2-3]、針對(duì)大型貨架VI設(shè)備進(jìn)行軟件開(kāi)發(fā)實(shí)現(xiàn)測(cè)試功能[4-5]等。但是以上這些方法主要應(yīng)用于內(nèi)場(chǎng)大設(shè)備進(jìn)行電路板故障診斷的情況,針對(duì)外場(chǎng)應(yīng)用的便攜式的VI曲線測(cè)試儀雖然也有少量研究[6],但是其激勵(lì)源頻率和幅度要預(yù)先設(shè)置好,還有比較大的技術(shù)提升空間,尚不能滿足外場(chǎng)環(huán)境測(cè)試的需要。
FPGA(field programmable gate array)以其集成度高、開(kāi)發(fā)靈活等特點(diǎn),滿足航空電子裝備電路板高度集成、結(jié)構(gòu)標(biāo)準(zhǔn)化、功能軟件化的發(fā)展要求[7],在航空領(lǐng)域的便攜式設(shè)備研制方面得到了廣泛的應(yīng)用。如某型導(dǎo)彈的快速測(cè)試[8]、高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[9]、以及多通道航空總線檢測(cè)[10]等。本文提出的便攜式VI曲線電路板測(cè)試裝置也是基于FPGA設(shè)計(jì)開(kāi)發(fā)的。
由于電信號(hào)的采集工作中往往針對(duì)電壓信號(hào)進(jìn)行,為了得到電流信號(hào),可以采用圖1中的方法,在輸出端口和輸入端口之間設(shè)置內(nèi)阻R,這樣在測(cè)試器件時(shí)會(huì)有電流流過(guò),此時(shí)輸出端口和輸入端口之間會(huì)因?yàn)榇嬖趦?nèi)阻而產(chǎn)生壓降,通過(guò)計(jì)算輸出與輸入之間的壓差,再除以內(nèi)阻的方法,就可以得到電流信號(hào)的值。
圖1 VI曲線測(cè)試原理
根據(jù)圖1所示的測(cè)試原理,設(shè)計(jì)了VI曲線測(cè)試模塊的總體框架,包括上下位機(jī)兩部分。其中下位機(jī)負(fù)責(zé)正弦激勵(lì)信號(hào)的產(chǎn)生及濾波輸出、輸出與輸入端口間內(nèi)阻的配置、信號(hào)的回采及處理、與上位機(jī)的USB通訊傳輸?shù)?,為完成以上功能要求,設(shè)置了FPGA核心控制器及其最小系統(tǒng)、DA電路、輸出處理電路、內(nèi)阻配置電路、輸入處理電路、AD電路、JTAG/CONFIG電路、USB通訊電路等,其中DA電路及輸出處理電路、AD電路及輸入處理電路均設(shè)置為2路,為便于2路信號(hào)同時(shí)測(cè)量進(jìn)行對(duì)照;上位機(jī)的開(kāi)發(fā)主要集中在用戶軟件上,該軟件用于人機(jī)交互和VI曲線的圖形化顯示等,主要的功能包括通過(guò)USB接口接收測(cè)試模塊上傳的數(shù)據(jù)、進(jìn)行電壓電流數(shù)據(jù)的解算、通過(guò)繪制點(diǎn)圖顯示電壓電流之間的函數(shù)關(guān)系等,目前上位機(jī)軟件采用Python語(yǔ)言編程。
VI曲線測(cè)試模塊總體框架如圖2所示。
圖2 VI曲線測(cè)試模塊總體框架
本項(xiàng)目中無(wú)論是AD、DA芯片的轉(zhuǎn)換速率,還是數(shù)據(jù)傳輸速率均達(dá)到了比較高的程度,需要保證微控制器的運(yùn)行速率;另外因?yàn)樗K較多,對(duì)控制器的IO資源也提出了比較大的要求。在各種微控制器中,F(xiàn)PGA以其并行結(jié)構(gòu)的特點(diǎn)占有很大的速度優(yōu)勢(shì),同時(shí)擁有大量的可配置外設(shè)接口,因此經(jīng)過(guò)反復(fù)調(diào)研論證,選擇FPGA作為微控制器最終選型方案。在本項(xiàng)目中選用CycloneⅢ系列的EP3C5E144C,該芯片在之前的項(xiàng)目中已有比較廣泛的應(yīng)用,技術(shù)成熟,性價(jià)比高。FPGA微控制器最小系統(tǒng)用于控制產(chǎn)生正弦激勵(lì)信號(hào)、采集測(cè)量信號(hào)、控制與上位機(jī)通信等,包括FPGA控制核心的時(shí)鐘電路、復(fù)位電路、電源電路、配置芯片電路等。
DA電路用于將FPGA控制核心產(chǎn)生的激勵(lì)信號(hào)由數(shù)字型轉(zhuǎn)換為模擬型,并向測(cè)量段發(fā)送,產(chǎn)生所需的電壓掃描信號(hào)。
由于要產(chǎn)生可調(diào)頻率的正弦波,因此本項(xiàng)目對(duì)DA轉(zhuǎn)換速率要求較高,普通DA芯片無(wú)法勝任本項(xiàng)目需求。經(jīng)過(guò)調(diào)研和試驗(yàn)驗(yàn)證,選用AD9764芯片作為DA電路的轉(zhuǎn)換芯片,該芯片為14路并行DA轉(zhuǎn)換器,轉(zhuǎn)換速率可達(dá)到125 MSPS,模擬信號(hào)輸出峰峰值范圍為600 mV~6 V,完全可以滿足項(xiàng)目要求。
由于AD模塊產(chǎn)生的信號(hào)為差分信號(hào),因此需要設(shè)計(jì)輸出處理電路用于將差分信號(hào)調(diào)理為單端信號(hào),另外還設(shè)計(jì)了7階橢圓無(wú)源LC濾波器和后級(jí)信號(hào)放大器,用來(lái)擴(kuò)大正弦波輸出帶寬和信號(hào)強(qiáng)度。
配置內(nèi)阻兩端的壓降是求出測(cè)試點(diǎn)電流信號(hào)的重要依據(jù),因?yàn)楸粶y(cè)元件的阻抗不確定,因此需要根據(jù)被測(cè)元件的阻抗自適應(yīng)配置內(nèi)阻,本項(xiàng)目采用的方式為采用多種阻值并聯(lián)的形式,每種阻值串聯(lián)跳線帽,通過(guò)跳線確定參與并聯(lián)的電阻,可靈活改動(dòng)內(nèi)阻的大小。
輸入處理電路包括使用衰減和偏移電路對(duì)輸入信號(hào)進(jìn)行調(diào)理,將差分信號(hào)轉(zhuǎn)換為適合AD芯片處理的較小單端信號(hào)形式。
AD電路用于將測(cè)量到的電壓信號(hào)由模擬型轉(zhuǎn)換為數(shù)字型,并向FPGA微控制器發(fā)送。同DA電路,本項(xiàng)目要求AD采樣速率較高,經(jīng)過(guò)調(diào)研和試驗(yàn)驗(yàn)證,選用AD9226芯片搭建AD電路進(jìn)行信號(hào)采集和轉(zhuǎn)換,AD9226芯片為12位高速AD轉(zhuǎn)換器,采用多級(jí)差分流水線架構(gòu),最大采樣速率達(dá)到65 MSPS,可滿足本項(xiàng)目需求。
包括用于對(duì)下位機(jī)FPGA進(jìn)行開(kāi)發(fā)調(diào)試的JTAG電路和最終下位機(jī)程序的下載固化的CONFIG電路,其配置芯片選用EPCS16串行存儲(chǔ)器。
USB通信電路用于將VI數(shù)據(jù)傳輸至上位機(jī)以供進(jìn)一步處理,選擇FT245芯片作為USB傳輸協(xié)議芯片。該芯片最快傳輸速率1 MB/s,可將8位并行數(shù)據(jù)與USB信號(hào)進(jìn)行相互轉(zhuǎn)換,實(shí)際是將串口數(shù)據(jù)按照USB的格式進(jìn)行發(fā)送,免驅(qū)動(dòng)安裝,對(duì)Windows7、Ubuntu16.04等各類(lèi)操作系統(tǒng)的支持度高,開(kāi)發(fā)操作簡(jiǎn)便。
系統(tǒng)代碼開(kāi)發(fā)主要含兩個(gè)部分,包括在下位機(jī)FPGA運(yùn)行的代碼以及在上位機(jī)運(yùn)行的軟件。
3.1.1 頂層文件
FPGA中運(yùn)行頂層代碼采用BDF文件,使用Verilog HDL語(yǔ)言編寫(xiě)各模塊并例化后,在頂層文件中用線相互連接編譯形成。包括PLL時(shí)鐘模塊、DA控制模塊、AD仿真模塊、USB控制模塊等,完成激勵(lì)信號(hào)產(chǎn)生、測(cè)試信號(hào)采集以及與上位機(jī)通信等功能。頂層文件如圖3所示。
圖3 FPGA頂層文件
3.1.2 PLL時(shí)鐘模塊
FPGA工作頻率為硬件電路連接的有源晶振產(chǎn)生的50 MHz,而本項(xiàng)目選用的AD和DA芯片分別最高可工作在65 MHz和130 MHz,并且USB芯片的最高傳輸頻率為1 MB/s,因此可以用PLL模塊產(chǎn)生這些芯片工作的頻率。
3.1.3 DA控制模塊
DA控制模塊主要負(fù)責(zé)將預(yù)定波形的信號(hào)按照一定的頻率發(fā)送給DA芯片,其框架如圖4所示。主要做法是將波形的信號(hào)編碼值按照4 096的分辨率保存在FPGA的內(nèi)部ROM中,通過(guò)查表的形式給地址依次輸出對(duì)應(yīng)的電壓值,查表的更新速度決定了輸出波形的頻率。
在本項(xiàng)目中,采用key_con模塊產(chǎn)生地址信號(hào)的步進(jìn)值fre_k,然后add_32bit模塊中將32位計(jì)數(shù)器通過(guò)加上步進(jìn)值,取計(jì)數(shù)器的前12位作為地址信號(hào)傳送到查找表,然后取出對(duì)應(yīng)的值再送給DA芯片,通過(guò)公式(1)可以計(jì)算得到輸出波形的頻率FOUT。
(1)
在本例中,F(xiàn)PGA工作頻率為50 MHz,若fre_k取8 590,則可以計(jì)算輸出波形的頻率為100 Hz。
3.1.4 AD仿真模塊
該模塊將AD芯片轉(zhuǎn)換后的數(shù)字量輸出,同時(shí)配合輸出AD轉(zhuǎn)換頻率,可以在Quartus軟件的Signal TapⅡLogic Analyzer工具實(shí)時(shí)查看這些變換的數(shù)據(jù),該模塊用于未配備數(shù)據(jù)傳輸模塊時(shí)查看AD轉(zhuǎn)換是否成功,在調(diào)試過(guò)程中有比較大的幫助,在AD調(diào)試成功,確保轉(zhuǎn)換功能沒(méi)有問(wèn)題后可以不再使用。
圖4 DA控制模塊
3.1.5 USB控制模塊
因?yàn)镕T245一次只能發(fā)送8個(gè)字節(jié),而輸出和采集的電壓值數(shù)字量為12個(gè),在數(shù)據(jù)傳輸時(shí)要準(zhǔn)確識(shí)別出數(shù)據(jù)的意義,因此需要編排輸出、采集的電壓值信號(hào),控制FT245按照如表1所示的規(guī)則循環(huán)發(fā)送這些數(shù)據(jù)。
FT245在發(fā)送USB數(shù)據(jù)時(shí),有以下的控制信號(hào)時(shí)序關(guān)系:在TXE信號(hào)為低時(shí),將數(shù)據(jù)準(zhǔn)備好,輸送到FT245的并行口上,將WR信號(hào)置高并保持50 ns以上,然后將WR信號(hào)置低,在這個(gè)邊沿處芯片將并口的數(shù)據(jù)準(zhǔn)備發(fā)到USB接口,下降沿后的5~25 ns時(shí)間內(nèi)TXE信號(hào)將變?yōu)楦撸藭r(shí)表示正在傳送數(shù)據(jù),在這個(gè)過(guò)程中不要進(jìn)行寫(xiě)操作,即WR保持為低電平,一直到TXE信號(hào)變?yōu)榈停瑪?shù)據(jù)發(fā)送結(jié)束,此時(shí)可以將WR信號(hào)置高以進(jìn)行下一個(gè)數(shù)據(jù)的發(fā)送。使用FT245進(jìn)行USB數(shù)據(jù)發(fā)送的控制信號(hào)時(shí)序見(jiàn)圖5。
表1 數(shù)據(jù)傳輸編碼規(guī)則
圖5 使用FT245進(jìn)行USB數(shù)據(jù)發(fā)送控制時(shí)序
3.2.1 概況
上位機(jī)軟件的主要功能包括接收下位機(jī)通過(guò)USB發(fā)送的數(shù)據(jù)、通過(guò)計(jì)算求解出電壓和電流的值、將求解出的值以點(diǎn)圖的形式顯示到計(jì)算機(jī)屏幕等,在本項(xiàng)目中,使用Python語(yǔ)言編寫(xiě)了上位機(jī)程序。
在Python語(yǔ)言中,可以非常方便地調(diào)用matplotlib(類(lèi)似MATLAB的繪圖)、pyserial(USB形式的串口)等各種資源包,同時(shí)具有程序簡(jiǎn)潔、代碼量少、開(kāi)發(fā)方便等優(yōu)點(diǎn),已經(jīng)廣泛應(yīng)用于深度學(xué)習(xí)乃至人工智能領(lǐng)域,已經(jīng)成長(zhǎng)為最受歡迎的編程語(yǔ)言之一。為了緊跟行業(yè)發(fā)展動(dòng)向,同時(shí)充分利用其便利因素,在本項(xiàng)目中也開(kāi)始了對(duì)Python語(yǔ)言開(kāi)發(fā)的應(yīng)用嘗試。
3.2.2 軟件開(kāi)發(fā)思路
總的下位機(jī)軟件流程見(jiàn)圖6所示。
圖6 下位機(jī)軟件流程
首先導(dǎo)入“matplotlib.pyplot(plt)”、“serial”等后面需要用到的資源包,然后定義主函數(shù)。
主函數(shù)中的最開(kāi)頭需要定義USB接口,因?yàn)镕T245芯片將該接口識(shí)別為串口(COM口),因此可以使用函數(shù)serial.Serial,參數(shù)為串口號(hào)和波特率,以上信息可以通過(guò)資源管理器查看,如圖7所示。然后使用函數(shù)serial.isOpen函數(shù)判斷串口是否打開(kāi)成功,并將結(jié)果打印顯示。
圖7 串口參數(shù)查看
USB接口打開(kāi)后,開(kāi)始圖的初始化,包括確定圖的總標(biāo)題、x軸名稱、y軸名稱等。
然后進(jìn)行數(shù)據(jù)接收與處理工作,包括使用serial.inWaiting函數(shù)查詢USB接收數(shù)據(jù)待處理個(gè)數(shù)count,然后使用serial.read函數(shù)將count個(gè)數(shù)據(jù)讀取出來(lái),在這些數(shù)據(jù)中依次查詢,如果四個(gè)連續(xù)數(shù)據(jù)按照表1中的規(guī)則依次讀出,則證明這是一組有效數(shù)據(jù),分別存入輸出電壓高6位(vout_h)、輸出電壓低6位(vout_l)、輸入電壓高6位(vin_h)、輸入電壓低6位(vin_l)等4個(gè)列表中。然后進(jìn)行數(shù)據(jù)處理,首先將數(shù)據(jù)組合得到輸出電壓(vout)和輸入電壓(vin)的數(shù)字量值,然后通過(guò)公式(2)、(3)分別計(jì)算電流、電壓的實(shí)際模擬量值。
(2)
v=(vout-2 048)*Voutpp/4 096
(3)
公式(2)、(3)中,vout表示當(dāng)前輸出的電壓數(shù)字量,vin表示當(dāng)前采集的電壓數(shù)字量,Vinmax表示所有采集電壓數(shù)字量中的最大值,Voutpp表示輸出電壓的模擬量峰峰值,Rin表示輸出電壓端與輸入電壓端之間的內(nèi)阻。
電流、電壓模擬量值計(jì)算完畢后,通過(guò)voltage.append、current.append兩個(gè)函數(shù)存儲(chǔ)到voltage、current兩個(gè)列表中,在這一次USB接收的數(shù)據(jù)全部處理完后,plt.plot函數(shù)確定圖中x、y坐標(biāo)的單數(shù)分別為voltage、current兩個(gè)列表中的值,并確定點(diǎn)的形狀、顏色等屬性,最后使用plt.draw函數(shù)繪制點(diǎn)圖,并使用plt.pause函數(shù)暫停一段時(shí)間以接收新的USB數(shù)據(jù)。
分別選擇某電路板上的阻性和容性器件進(jìn)行測(cè)試實(shí)驗(yàn)。
對(duì)板件上的某電阻器件進(jìn)行測(cè)試,該器件用于板件上FPGA復(fù)位電路中復(fù)位信號(hào)的限流,一旦出現(xiàn)異常將導(dǎo)致FPGA無(wú)法正常復(fù)位、異常重啟等問(wèn)題,板件將喪失功能。
電阻器件的阻抗特性上應(yīng)該呈現(xiàn)電壓與電流的比例關(guān)系。如圖8所示在測(cè)試中可以觀察到輸出的圖像顯示R3器件的VI特性呈一條直線,與理論分析結(jié)果一致。
圖8 阻性器件試驗(yàn)VI特性曲線
對(duì)板件上的某電容器件進(jìn)行測(cè)試,該器件與另一個(gè)電容器件并聯(lián)放置在LMS1117-3.3 V輸入端,用于5 V向3.3 V電源轉(zhuǎn)換的輸入端濾波,如果出現(xiàn)異常可能引發(fā)電源供電不穩(wěn),影響3.3 V的正常輸出,而3.3 V電源在板件中是很多器件的供電來(lái)源,如果該電源出現(xiàn)問(wèn)題板件將發(fā)生異常重啟、器件功能缺失等嚴(yán)重錯(cuò)誤。
由于該器件節(jié)點(diǎn)處為兩個(gè)電容并聯(lián),因此該節(jié)點(diǎn)的測(cè)試實(shí)際為對(duì)純?nèi)菪宰杩固匦?,電壓與電流變化關(guān)系呈積分關(guān)系,由于激勵(lì)為正弦波,因此如圖9所示,C32器件的電壓電流特性為橢圓形,與理論分析一致。
圖9 容性器件試驗(yàn)VI特性曲線
本文基于FPGA設(shè)計(jì)了一種便攜式VI曲線航空電路板測(cè)試裝置,裝置結(jié)構(gòu)小巧、操作簡(jiǎn)單、便于使用,可應(yīng)用于在外場(chǎng)環(huán)境的航空電路板測(cè)試與維修。開(kāi)發(fā)中充分利用了FPGA的靈活性,同時(shí)軟件的設(shè)計(jì)采用了Python語(yǔ)言,軟硬件都具有比較強(qiáng)的發(fā)展性,后續(xù)的維護(hù)非常便利,另外可以針對(duì)不同的需求進(jìn)行升級(jí)和開(kāi)發(fā)。