韓兆福,楊明緒
(海軍航空大學,山東 青島 266041)
某型飛機空艦導彈供電系統是為YJ-××空艦導彈供電的大功率專用電源系統。由于機上無相應的故障監控設備[1],故研制了空艦導彈供電系統檢測儀。該檢測儀主要用于原位檢測供電系統滿負載能力和紋波電壓,從而判別供電系統的供電品質。由于在檢測過程中需高速采集產生大量測量數據,其速率遠高于實際的傳輸、顯示和實時分析處理的能力。尤其是導彈發射啟動階段,過程相當短,必須有足夠的采集點。如何實現可靠的高速傳輸,同時滿足實時性要求是一個必須解決的問題[1]。
軟件開平臺選用美國國家儀器公司的LabVIEW+RT模塊+現場可編輯門陣列(field programmable gate array,FPGA)模塊[2]。依據檢測儀的硬件組成,其應用軟件主要包括觸摸屏式計算機虛擬儀器(touch pad computer virtual instrument,TPC VI)軟件、實時虛擬儀器(real time virtual instrument,RT VI軟件)和可編程邏輯門陣列虛擬儀器(field programmable gate array virtual instrument,FPGA VI)軟件三部分[3]。為便于編程控制,將檢測儀的整體工作狀態分為6個狀態,并由3個事件進行控制。檢測儀狀態轉換關系如圖1所示。

圖1 檢測儀狀態轉換關系圖
檢測儀可分為6個工作狀態。
①單機狀態,即cRIO系統與觸摸屏計算機TPC尚未完成TCP通信連接。一旦TCP通信連接成功,系統自動轉入狀態2。
②雙機連接成功,但檢查通道未加電的狀態,提示“未加電”。一旦檢查通道加電,系統自動轉入狀態3。
③實時監控檢查通道的電壓,提示“準備好”,等待用戶觸發“開始”事件。
④模擬啟動狀態,此階段接通附加負載和穩定負載。當計時器的計時時間大于啟動時間,自動轉入狀態4。
⑤模擬穩定狀態,此階段斷開附加負載。
⑥退出應用程序。
檢測儀的狀態主要由3個事件來控制。
①“開始”事件。首先判斷檢測儀是否處于準備好狀態,并且電壓在規定范圍內。如滿足條件,則接通附加負載和穩定負載,并轉入狀態4;否則,不做任何動作。
②“停止”事件。當檢測儀處于負載啟動或穩定階段,斷開附加負載和穩定負載,但仍然實時監控檢查通道的電壓,轉入狀態3。
③“退出”事件。無論檢測儀處于什么狀態,都將檢測儀恢復到未加負載狀態,同時關閉應用軟件。
檢測儀狀態的合理劃分,可有效控制檢測儀的狀態,有利于軟件開發、多人合作、設計相互轉換之間的信息交換。檢測儀的軟件整體可劃分為初始化、等待(狀態1)、低速采集(狀態2)和高速采集(狀態3)4種狀態。各狀態之間的相互轉換關系如圖2所示。
根據檢測流程,采用模塊化設計,方便應用軟件的設計和多人合作開發。軟件采用原型系統方法進行設計,待某一功能完全調試成功后,再逐步進行新的功能開發。檢測儀的工作狀態通過連接自檢模擬電源進行測試,其過程與最終的機上檢測完全相同。

圖2 檢測儀狀態轉換關系圖
為解決高速傳輸帶來的傳輸量大的難題,采用了變速率采樣-緩沖式存傳輸技術[3]。由于啟動階段的關鍵是測量采集,穩定階段的采集周期可適當加長,以重點保證此前測量數據的傳輸。為此,將測量采集和傳輸的過程分為4個階段,采用非常規的方式達到實時傳輸的目的。各階段的具體任務如圖3所示。

圖3 測量各階段的具體任務圖
啟動電流脈沖的寬度不超過100 ms,為確保達到200點以上的采樣點,則最長的采樣周期為500 μs,而硬件模塊所允許的最短周期為18.5 μs(16 μs+2.5 μs)。如果采樣周期的取值太靠近所允許的最短周期,勢必會帶來大數據量的傳輸問題。為此,實際的采樣周期采取折中方案,可取100 μs。
第一階段:連續高速采樣,不發送數據,持續時間大約為120 ms。
第二階段:連續中速采樣,不發送數據,持續時間大約為120 ms。
第三階段:低速采樣,定長發送數據,直至所有的測量數據被發送出去。
第四階段:低速采樣,逐點發送測量數據,實時更新。
硬件上,通過cRIO模塊完成被測信號與FPGA機箱的連接,然后由FPGA機箱采集相應的信號。采集數據的傳輸包括2個步驟[4]:FPGA→RT的DMA FIFO傳輸和RT→TPC的TCP傳輸。傳輸的數據主要有各采集點相對于采集開始點的時間,兩路負載端電壓的采集值以及兩路與負載電流成比例的霍爾傳感器輸出電壓采集值,每個傳輸幀都包含有這5個數據,即:
Framei={Ti,UA,UB,IA,IB}
式中:Framei為傳輸幀;Ti為當前時間;UA為A路負載端電壓;UB為B路負載端電壓;IA為A路電流;IB為B路電流。
由于傳輸數據類型的不同,所產生傳輸幀的長度也不同,因此,應選擇合適的數據類型,盡可能縮短傳輸幀長度,以減少傳輸的時間。傳輸幀中的5個數據共有3種類型[5]。
①當前時間。
當前時間,Ti對應于計時器的輸出,其單位有刻度、微秒和毫秒3種選項。根據采集速率的要求,計時器的計時單位選定為微秒;數據類型為無符號32位整型U32。
②電壓采集值。
模擬量采集模塊NI 9221的電壓采集數據格式為字長16位、整數為7位的帶符號定點數據格式FXP(16,7)。
③電流采集值。
模擬量采集模塊NI 9205的電壓采集數據格式為字長26位、整數為5位的帶符號定點數據格式FXP(26,5)。
定點格式具有結構緊湊、空間小的優點,但也存在讀取麻煩的不足。由于FPGA模塊不支持浮點運算,且需要轉換的3種類型數據格式各不相同,而DMA FIFO傳輸必須采用統一的數據格式??紤]到采用FXP(16,5)也可滿足電流采集值的精度要求,為此DMA FIFO傳輸數據格式最終采用不帶符號的16位整型格式U16。定點格式如圖4所示。

圖4 定點格式示意圖
在數據采集、傳輸的過程中,若采用U32進行傳輸,則需要4個U32(當前時間占用1個U32,兩路電壓合用1個U32,兩路電流各占用1個U32),共128位。在設計的過程中,采用U16格式[6],一個傳輸幀有6個U16,總共96位,與U32格式相比,可節省25%的傳輸時間。
傳輸前各類數據需要作出相應的變換,從而獲得統一的不帶符號16位整型格式的數據。
當前時間Ti:計時器的輸出數據無符號32位整型U32通過格式轉換分成兩組U16傳輸,前16位為一組U16高位,后16位為一組U16低位。
電壓采集值U:采集模塊NI 9221采集電壓模擬量,數據格式為FXP(16,7)共有16位其中整數部分為7位,其余為小數部分,可以直接采用U16格式進行傳輸。
電流采集值I:采集模塊NI 9205采集電流模擬量,數據格式為FXP(26,5),共有26位。其中:整數部分為5位,21位小數部分。在傳輸過程中,應采取傳輸格式為U32,按照精度需求將其進行變換,后將數據右移10位,將數據轉化成為FXP(16,5)共16位。其中:5位整數位,其余位數為小數位,用U16格式可以進行傳輸。
此時的傳輸幀為:
Feamei={U16TH,U16TL,U16UA,U16UB,U16IA,U16IB}
式中:Framei為傳輸幀;U16TH為當前時間的高16位;U16TL為當前時間的低16位;U16UA為轉換后的A路負載端電壓;U16UB為轉換后的B路負載端電壓;U16IA為轉換后的A路電流;U16IB為轉換后的B路電流。
通過直接內存存取(direct memory access,DMA)方式進行數據的接收,可以最大限度節省處理器資源;先入先出(first in first out,FIFO)是數據接收和解析中常見的一種數據結構,它的優點是可以有效地隔離數據的接收、解析之間的耦合關系,從而簡化處理方式。
采數據采集過程中,存在高速采集與低速采集兩種具體的情況。為滿足數據采集的實時性要求,兼顧低速采集時能及時發送數據和高速采集時TCP數據幀長度。在軟件設計過程中,采取如下解決辦法:僅當時間大于100 ms或DMA FIFO緩沖區中的數據超過200幀時,一次性讀取DMA FIFO緩沖區中的數據[7]。通過這樣的程序設計,在數據傳輸過程中一旦接收到數據,將立即通過TCP發送到TPC。
TPC不斷讀取經TCP轉換來自RT的數據幀后,得到雙精度浮點格式數據。
當前時間:接收到的兩組U16整型數據經過格式轉換重新轉換成一組U32整型數據,最后轉換成雙精度浮點格式數據。
①電壓:接收到兩組U16整型數據A路負載電壓VA、B路負載電壓VB經過格式轉換轉換成數據格式為FXP(16,7)的整型數據,最后轉換成雙精度浮點格式數據。
②電流:接收到的兩組U16整型數據A路電流IA、B路電流IB經過格式轉換轉換成數據格式為FXP(16,5)的整型數據,最后轉換成雙精度浮點格式數據。
該檢測儀通過采集數據的傳輸設計,實現了采集數據可靠的高速傳輸,同時滿足了實時性要求。該設備具有運行可靠、智能化程度高、通用性強、便攜性好等特點,不僅適用外場使用,而且還便于機動轉場保障,有效解決了某型飛機空艦導彈供電系統性能難以檢測的難題。其檢測平臺只需軟件升級和改變部分連接電纜,即可將該檢測儀推廣應用到其他主戰機型,可避免面向機型設計帶來的重復投資現象,具有顯著的經濟效益和推廣應用前景。