韓兆福,楊明緒
(海軍航空大學(xué),山東 青島 266041)
某型飛機(jī)空艦導(dǎo)彈供電系統(tǒng)是為YJ-××空艦導(dǎo)彈供電的大功率專用電源系統(tǒng)。由于機(jī)上無(wú)相應(yīng)的故障監(jiān)控設(shè)備[1],故研制了空艦導(dǎo)彈供電系統(tǒng)檢測(cè)儀。該檢測(cè)儀主要用于原位檢測(cè)供電系統(tǒng)滿負(fù)載能力和紋波電壓,從而判別供電系統(tǒng)的供電品質(zhì)。由于在檢測(cè)過(guò)程中需高速采集產(chǎn)生大量測(cè)量數(shù)據(jù),其速率遠(yuǎn)高于實(shí)際的傳輸、顯示和實(shí)時(shí)分析處理的能力。尤其是導(dǎo)彈發(fā)射啟動(dòng)階段,過(guò)程相當(dāng)短,必須有足夠的采集點(diǎn)。如何實(shí)現(xiàn)可靠的高速傳輸,同時(shí)滿足實(shí)時(shí)性要求是一個(gè)必須解決的問(wèn)題[1]。
軟件開(kāi)平臺(tái)選用美國(guó)國(guó)家儀器公司的LabVIEW+RT模塊+現(xiàn)場(chǎng)可編輯門(mén)陣列(field programmable gate array,FPGA)模塊[2]。依據(jù)檢測(cè)儀的硬件組成,其應(yīng)用軟件主要包括觸摸屏式計(jì)算機(jī)虛擬儀器(touch pad computer virtual instrument,TPC VI)軟件、實(shí)時(shí)虛擬儀器(real time virtual instrument,RT VI軟件)和可編程邏輯門(mén)陣列虛擬儀器(field programmable gate array virtual instrument,F(xiàn)PGA VI)軟件三部分[3]。為便于編程控制,將檢測(cè)儀的整體工作狀態(tài)分為6個(gè)狀態(tài),并由3個(gè)事件進(jìn)行控制。檢測(cè)儀狀態(tài)轉(zhuǎn)換關(guān)系如圖1所示。
圖1 檢測(cè)儀狀態(tài)轉(zhuǎn)換關(guān)系圖
檢測(cè)儀可分為6個(gè)工作狀態(tài)。
①單機(jī)狀態(tài),即cRIO系統(tǒng)與觸摸屏計(jì)算機(jī)TPC尚未完成TCP通信連接。一旦TCP通信連接成功,系統(tǒng)自動(dòng)轉(zhuǎn)入狀態(tài)2。
②雙機(jī)連接成功,但檢查通道未加電的狀態(tài),提示“未加電”。一旦檢查通道加電,系統(tǒng)自動(dòng)轉(zhuǎn)入狀態(tài)3。
③實(shí)時(shí)監(jiān)控檢查通道的電壓,提示“準(zhǔn)備好”,等待用戶觸發(fā)“開(kāi)始”事件。
④模擬啟動(dòng)狀態(tài),此階段接通附加負(fù)載和穩(wěn)定負(fù)載。當(dāng)計(jì)時(shí)器的計(jì)時(shí)時(shí)間大于啟動(dòng)時(shí)間,自動(dòng)轉(zhuǎn)入狀態(tài)4。
⑤模擬穩(wěn)定狀態(tài),此階段斷開(kāi)附加負(fù)載。
⑥退出應(yīng)用程序。
檢測(cè)儀的狀態(tài)主要由3個(gè)事件來(lái)控制。
①“開(kāi)始”事件。首先判斷檢測(cè)儀是否處于準(zhǔn)備好狀態(tài),并且電壓在規(guī)定范圍內(nèi)。如滿足條件,則接通附加負(fù)載和穩(wěn)定負(fù)載,并轉(zhuǎn)入狀態(tài)4;否則,不做任何動(dòng)作。
②“停止”事件。當(dāng)檢測(cè)儀處于負(fù)載啟動(dòng)或穩(wěn)定階段,斷開(kāi)附加負(fù)載和穩(wěn)定負(fù)載,但仍然實(shí)時(shí)監(jiān)控檢查通道的電壓,轉(zhuǎn)入狀態(tài)3。
③“退出”事件。無(wú)論檢測(cè)儀處于什么狀態(tài),都將檢測(cè)儀恢復(fù)到未加負(fù)載狀態(tài),同時(shí)關(guān)閉應(yīng)用軟件。
檢測(cè)儀狀態(tài)的合理劃分,可有效控制檢測(cè)儀的狀態(tài),有利于軟件開(kāi)發(fā)、多人合作、設(shè)計(jì)相互轉(zhuǎn)換之間的信息交換。檢測(cè)儀的軟件整體可劃分為初始化、等待(狀態(tài)1)、低速采集(狀態(tài)2)和高速采集(狀態(tài)3)4種狀態(tài)。各狀態(tài)之間的相互轉(zhuǎn)換關(guān)系如圖2所示。
根據(jù)檢測(cè)流程,采用模塊化設(shè)計(jì),方便應(yīng)用軟件的設(shè)計(jì)和多人合作開(kāi)發(fā)。軟件采用原型系統(tǒng)方法進(jìn)行設(shè)計(jì),待某一功能完全調(diào)試成功后,再逐步進(jìn)行新的功能開(kāi)發(fā)。檢測(cè)儀的工作狀態(tài)通過(guò)連接自檢模擬電源進(jìn)行測(cè)試,其過(guò)程與最終的機(jī)上檢測(cè)完全相同。
圖2 檢測(cè)儀狀態(tài)轉(zhuǎn)換關(guān)系圖
為解決高速傳輸帶來(lái)的傳輸量大的難題,采用了變速率采樣-緩沖式存?zhèn)鬏敿夹g(shù)[3]。由于啟動(dòng)階段的關(guān)鍵是測(cè)量采集,穩(wěn)定階段的采集周期可適當(dāng)加長(zhǎng),以重點(diǎn)保證此前測(cè)量數(shù)據(jù)的傳輸。為此,將測(cè)量采集和傳輸?shù)倪^(guò)程分為4個(gè)階段,采用非常規(guī)的方式達(dá)到實(shí)時(shí)傳輸?shù)哪康?。各階段的具體任務(wù)如圖3所示。
圖3 測(cè)量各階段的具體任務(wù)圖
啟動(dòng)電流脈沖的寬度不超過(guò)100 ms,為確保達(dá)到200點(diǎn)以上的采樣點(diǎn),則最長(zhǎng)的采樣周期為500 μs,而硬件模塊所允許的最短周期為18.5 μs(16 μs+2.5 μs)。如果采樣周期的取值太靠近所允許的最短周期,勢(shì)必會(huì)帶來(lái)大數(shù)據(jù)量的傳輸問(wèn)題。為此,實(shí)際的采樣周期采取折中方案,可取100 μs。
第一階段:連續(xù)高速采樣,不發(fā)送數(shù)據(jù),持續(xù)時(shí)間大約為120 ms。
第二階段:連續(xù)中速采樣,不發(fā)送數(shù)據(jù),持續(xù)時(shí)間大約為120 ms。
第三階段:低速采樣,定長(zhǎng)發(fā)送數(shù)據(jù),直至所有的測(cè)量數(shù)據(jù)被發(fā)送出去。
第四階段:低速采樣,逐點(diǎn)發(fā)送測(cè)量數(shù)據(jù),實(shí)時(shí)更新。
硬件上,通過(guò)cRIO模塊完成被測(cè)信號(hào)與FPGA機(jī)箱的連接,然后由FPGA機(jī)箱采集相應(yīng)的信號(hào)。采集數(shù)據(jù)的傳輸包括2個(gè)步驟[4]:FPGA→RT的DMA FIFO傳輸和RT→TPC的TCP傳輸。傳輸?shù)臄?shù)據(jù)主要有各采集點(diǎn)相對(duì)于采集開(kāi)始點(diǎn)的時(shí)間,兩路負(fù)載端電壓的采集值以及兩路與負(fù)載電流成比例的霍爾傳感器輸出電壓采集值,每個(gè)傳輸幀都包含有這5個(gè)數(shù)據(jù),即:
Framei={Ti,UA,UB,IA,IB}
式中:Framei為傳輸幀;Ti為當(dāng)前時(shí)間;UA為A路負(fù)載端電壓;UB為B路負(fù)載端電壓;IA為A路電流;IB為B路電流。
由于傳輸數(shù)據(jù)類型的不同,所產(chǎn)生傳輸幀的長(zhǎng)度也不同,因此,應(yīng)選擇合適的數(shù)據(jù)類型,盡可能縮短傳輸幀長(zhǎng)度,以減少傳輸?shù)臅r(shí)間。傳輸幀中的5個(gè)數(shù)據(jù)共有3種類型[5]。
①當(dāng)前時(shí)間。
當(dāng)前時(shí)間,Ti對(duì)應(yīng)于計(jì)時(shí)器的輸出,其單位有刻度、微秒和毫秒3種選項(xiàng)。根據(jù)采集速率的要求,計(jì)時(shí)器的計(jì)時(shí)單位選定為微秒;數(shù)據(jù)類型為無(wú)符號(hào)32位整型U32。
②電壓采集值。
模擬量采集模塊NI 9221的電壓采集數(shù)據(jù)格式為字長(zhǎng)16位、整數(shù)為7位的帶符號(hào)定點(diǎn)數(shù)據(jù)格式FXP(16,7)。
③電流采集值。
模擬量采集模塊NI 9205的電壓采集數(shù)據(jù)格式為字長(zhǎng)26位、整數(shù)為5位的帶符號(hào)定點(diǎn)數(shù)據(jù)格式FXP(26,5)。
定點(diǎn)格式具有結(jié)構(gòu)緊湊、空間小的優(yōu)點(diǎn),但也存在讀取麻煩的不足。由于FPGA模塊不支持浮點(diǎn)運(yùn)算,且需要轉(zhuǎn)換的3種類型數(shù)據(jù)格式各不相同,而DMA FIFO傳輸必須采用統(tǒng)一的數(shù)據(jù)格式??紤]到采用FXP(16,5)也可滿足電流采集值的精度要求,為此DMA FIFO傳輸數(shù)據(jù)格式最終采用不帶符號(hào)的16位整型格式U16。定點(diǎn)格式如圖4所示。
圖4 定點(diǎn)格式示意圖
在數(shù)據(jù)采集、傳輸?shù)倪^(guò)程中,若采用U32進(jìn)行傳輸,則需要4個(gè)U32(當(dāng)前時(shí)間占用1個(gè)U32,兩路電壓合用1個(gè)U32,兩路電流各占用1個(gè)U32),共128位。在設(shè)計(jì)的過(guò)程中,采用U16格式[6],一個(gè)傳輸幀有6個(gè)U16,總共96位,與U32格式相比,可節(jié)省25%的傳輸時(shí)間。
傳輸前各類數(shù)據(jù)需要作出相應(yīng)的變換,從而獲得統(tǒng)一的不帶符號(hào)16位整型格式的數(shù)據(jù)。
當(dāng)前時(shí)間Ti:計(jì)時(shí)器的輸出數(shù)據(jù)無(wú)符號(hào)32位整型U32通過(guò)格式轉(zhuǎn)換分成兩組U16傳輸,前16位為一組U16高位,后16位為一組U16低位。
電壓采集值U:采集模塊NI 9221采集電壓模擬量,數(shù)據(jù)格式為FXP(16,7)共有16位其中整數(shù)部分為7位,其余為小數(shù)部分,可以直接采用U16格式進(jìn)行傳輸。
電流采集值I:采集模塊NI 9205采集電流模擬量,數(shù)據(jù)格式為FXP(26,5),共有26位。其中:整數(shù)部分為5位,21位小數(shù)部分。在傳輸過(guò)程中,應(yīng)采取傳輸格式為U32,按照精度需求將其進(jìn)行變換,后將數(shù)據(jù)右移10位,將數(shù)據(jù)轉(zhuǎn)化成為FXP(16,5)共16位。其中:5位整數(shù)位,其余位數(shù)為小數(shù)位,用U16格式可以進(jìn)行傳輸。
此時(shí)的傳輸幀為:
Feamei={U16TH,U16TL,U16UA,U16UB,U16IA,U16IB}
式中:Framei為傳輸幀;U16TH為當(dāng)前時(shí)間的高16位;U16TL為當(dāng)前時(shí)間的低16位;U16UA為轉(zhuǎn)換后的A路負(fù)載端電壓;U16UB為轉(zhuǎn)換后的B路負(fù)載端電壓;U16IA為轉(zhuǎn)換后的A路電流;U16IB為轉(zhuǎn)換后的B路電流。
通過(guò)直接內(nèi)存存取(direct memory access,DMA)方式進(jìn)行數(shù)據(jù)的接收,可以最大限度節(jié)省處理器資源;先入先出(first in first out,FIFO)是數(shù)據(jù)接收和解析中常見(jiàn)的一種數(shù)據(jù)結(jié)構(gòu),它的優(yōu)點(diǎn)是可以有效地隔離數(shù)據(jù)的接收、解析之間的耦合關(guān)系,從而簡(jiǎn)化處理方式。
采數(shù)據(jù)采集過(guò)程中,存在高速采集與低速采集兩種具體的情況。為滿足數(shù)據(jù)采集的實(shí)時(shí)性要求,兼顧低速采集時(shí)能及時(shí)發(fā)送數(shù)據(jù)和高速采集時(shí)TCP數(shù)據(jù)幀長(zhǎng)度。在軟件設(shè)計(jì)過(guò)程中,采取如下解決辦法:僅當(dāng)時(shí)間大于100 ms或DMA FIFO緩沖區(qū)中的數(shù)據(jù)超過(guò)200幀時(shí),一次性讀取DMA FIFO緩沖區(qū)中的數(shù)據(jù)[7]。通過(guò)這樣的程序設(shè)計(jì),在數(shù)據(jù)傳輸過(guò)程中一旦接收到數(shù)據(jù),將立即通過(guò)TCP發(fā)送到TPC。
TPC不斷讀取經(jīng)TCP轉(zhuǎn)換來(lái)自RT的數(shù)據(jù)幀后,得到雙精度浮點(diǎn)格式數(shù)據(jù)。
當(dāng)前時(shí)間:接收到的兩組U16整型數(shù)據(jù)經(jīng)過(guò)格式轉(zhuǎn)換重新轉(zhuǎn)換成一組U32整型數(shù)據(jù),最后轉(zhuǎn)換成雙精度浮點(diǎn)格式數(shù)據(jù)。
①電壓:接收到兩組U16整型數(shù)據(jù)A路負(fù)載電壓VA、B路負(fù)載電壓VB經(jīng)過(guò)格式轉(zhuǎn)換轉(zhuǎn)換成數(shù)據(jù)格式為FXP(16,7)的整型數(shù)據(jù),最后轉(zhuǎn)換成雙精度浮點(diǎn)格式數(shù)據(jù)。
②電流:接收到的兩組U16整型數(shù)據(jù)A路電流IA、B路電流IB經(jīng)過(guò)格式轉(zhuǎn)換轉(zhuǎn)換成數(shù)據(jù)格式為FXP(16,5)的整型數(shù)據(jù),最后轉(zhuǎn)換成雙精度浮點(diǎn)格式數(shù)據(jù)。
該檢測(cè)儀通過(guò)采集數(shù)據(jù)的傳輸設(shè)計(jì),實(shí)現(xiàn)了采集數(shù)據(jù)可靠的高速傳輸,同時(shí)滿足了實(shí)時(shí)性要求。該設(shè)備具有運(yùn)行可靠、智能化程度高、通用性強(qiáng)、便攜性好等特點(diǎn),不僅適用外場(chǎng)使用,而且還便于機(jī)動(dòng)轉(zhuǎn)場(chǎng)保障,有效解決了某型飛機(jī)空艦導(dǎo)彈供電系統(tǒng)性能難以檢測(cè)的難題。其檢測(cè)平臺(tái)只需軟件升級(jí)和改變部分連接電纜,即可將該檢測(cè)儀推廣應(yīng)用到其他主戰(zhàn)機(jī)型,可避免面向機(jī)型設(shè)計(jì)帶來(lái)的重復(fù)投資現(xiàn)象,具有顯著的經(jīng)濟(jì)效益和推廣應(yīng)用前景。