周明進,盧再奇
(1.陸軍裝備部裝備質量審價中心,北京 100072;2.國防科技大學自動目標識別國家重點實驗室,湖南 長沙 410073)
某型裝備隨裝配置的文件記錄設備,可實時記錄裝備工作和狀態信息,用于事后分析評估裝備操作和性能,類似飛機的黑匣子。因該設備存在存儲器容量小(記錄時間短)、數據易丟失、無通用數據輸出接口、事后判讀分析數據依賴人工(周期長)等弊端,極大地妨礙了裝備能力的發揮。為提高數據記錄可靠性和實時掌握裝備技術狀態,研制了嵌入式系統,對該設備進行信息化改造。研制過程中需考慮:(1)電氣兼容及信號時序;(2)聯機檢查;(3)實時數據傳輸和海量存儲;(4)關鍵數據記錄完整性;(5)輸出信息實時解析(另文涉及)等問題。針對上述問題進行了系統方案設計和實現,經實裝使用,該系統達到了設計要求。
FPGA(Field-Programmable Gate Array)由于使用的靈活性,功能可重構,接口配置可在線修改,已越來越多地用于系統原型機開發和嵌入式系統中。ARM微處理器已被廣泛用于許多嵌入式系統中,具有功能全面、設計開發資源眾多、性價比高的優點。ARM微處理器與嵌入式操作系統配套,可以完成板上獨立功能系統,不需要外部控制,即可以自主實現任務規劃[1]。本設計采用FPGA+ARM的體系結構,配以必要的外部器件,構成了嵌入式系統,實現了數據的完整正確錄取處理。其總體結構如圖1所示,包括電源部分、FPGA電路、嵌入式處理模塊和上位機等。

Figure 2 Signal timing sequence of data reads and writes by chipscope圖2 chipscope觀察數據讀寫時的信號時序關系

Figure 1 System structure diagram圖1 系統總體結構框圖
來自裝備的電源向嵌入式系統和備用電池供電。在電源非正常中斷時,掉電保護控制電路打開備用電池,維持嵌入式系統供電一段時間,確保裝備數據完整存儲。FPGA模塊對輸入信號進行采樣、整形處理;內置數據緩存模塊用于系統聯機檢查及數據收發;內置測試單元,方便系統開發過程中參數測試和故障定位。嵌入式處理模塊上運行嵌入式操作系統,完成輸入數據的本地存儲處理、遠程網絡交互等工作。上位機實現系統控制、數據分析和可視化處理。
針對系統資源要求,ARM芯片選擇了基于ARM920T內核的S3C2440微處理器[2],FPGA芯片選定VIRTEX-II系列的XC2V250[3]。
隨裝記錄設備接口由數百根引線組成,包括多種類型電源線、數據信號線、控制信號線等。由于缺乏設備接口詳細的參數資料,因此需要通過在線測試才能確定設備接口各管腳的功能和時序。
對于數據線和控制信號線,為了掌握其在各種邏輯狀態下的相互關系,搞清楚其功能作用,需要對其時序進行分析。傳統上,我們利用示波器或者邏輯分析儀測試,在幾百根信號線中測試,信號接線實非易事。另外,也不可能同時測量各種工作條件下信號之間的時序關系。使用chipscope在線邏輯分析儀軟件,無需進行任何的外部探測或修改便可獲取FPGA中任意的內部節點或I/O 引腳的狀態,在整個設計過程中以零成本和系統級的速度實時捕獲和顯示FPGA中的信號,對系統進行觀測和調試[4]。使用chipscope觀察的部分信號之間的關系如圖2所示。圖2a是chipscope顯示的裝備讀取存儲器數據時的部分總線信號波形,圖2b是chipscope顯示的裝備寫存儲器時的部分總線信號波形。
我們利用chipscope軟件,通過在線測試,獲取了大量的波形和數據,為掌握接口信號之間的時序關系、數據的正確錄取打下了良好基礎。
裝備的接口電路由分立元器件和小規模集成電路組成,與隨裝數據記錄設備通過線纜連接。從測量結果看,信號受噪聲影響大,波形畸變嚴重、時間擺幅大。為保證研制設備正確接收數據,設計與裝備信號電平兼容的接口驅動電路,根據測試結果在FPGA中研制信號采樣整形和時序電路。信號采樣整形包括輸入輸出信號的正確采樣成形;時序電路保證數據記錄時,與裝備交互邏輯正確。輸入信號采樣要求正確采集到輸入信號的穩定電平,形成適合FPGA內部處理的邏輯電平和寬度,排除由于信號畸變和噪聲引起的信號誤判。這里采用雙邊沿檢測方式,只有符合一定寬度的輸入脈沖才被FPGA采樣,形成有效信號;輸出信號的形成需要保持正確的時序,且時序余量保證在設備允許的偏差范圍之內。因此,使用FPGA產生時序信號時,要留有足夠的時序余量,適應原設備的時序偏差,同時又要保證數據傳輸正確。數據記錄設備時序操作包括工作和檢查狀態下讀寫存儲器、記錄和讀寫當前存儲器地址、存儲器檢查、存儲器空滿指示等。
根據各輸入輸出信號之間的時序關系,部分信號的狀態機如圖3所示。

Figure 3 State machine of interface control signals圖3 接口控制信號狀態機
該狀態機在FPGA內部實現,完成裝備與記錄設備之間的信息交互和數據的輸入輸出。對于有效數據,將按序存儲,同時更新服務單元地址內容;對于測試數據,按序存儲但不更新服務單元地址內容。
分為多個狀態,各狀態功能如下:
(1)memidle:判斷雙沿檢測電路中是否送來有效脈沖,進行狀態切換;
(2)ho_state:檢測WR信號,高時進入寫狀態;低時,準備好地址和使能信號,進入讀狀態;
(3)write_mem:準備好地址、數據、控制信號,進行數據緩存寫操作;
(4)pabtest:在PAB為高電平時,為工作狀態,更新服務單元;為低時,為檢查狀態,返回到memidle狀態;
(5)write_surv:工作狀態時,將當前地址寫入服務單元;
(6)read_hold:當檢測為讀數據狀態時,將緩沖存儲器的地址和控制信號延遲1個脈沖周期送出;
(7)read_mem:讀FPGA中緩存內容,更新輸出寄存器;
(8)addr_state:當地址計數脈沖信號到來時,更新地址寄存器,存儲器滿指示信號及半滿指示信號依據地址寄存器數據更新;
(9)send:數據有效信號,向設備指示有效數據已輸出到數據線上。
通過測試和功能分析可知,裝備聯機檢查分為存儲器自檢和記錄功能檢查兩個部分。首先,裝備輸出互補的固定數據填充存儲器每一位,然后回讀比較存儲器數據,如一致,則裝備接口控制電路向中心計算機報告存儲器正常;第二步,在存儲器正常的情況下,中心計算機發出特定編碼數據組到存儲器,回讀并譯碼該信息,中心計算機確認時間及內容無誤后,向系統發出記錄設備正常指示。研制設備必須兼容該過程,以保證與中心計算機進行有效的數據交換。隨裝記錄設備的存儲器容量為幾十KB,在每次開機前可做到每位檢查。研制設備將數據實時輸出,外接存儲器已擴展為海量存儲器。故中心計算機已不可能對擴展后的存儲器每一位進行檢查,也沒有必要。因此,在FPGA中開辟一塊緩存區,用于裝備數據記錄功能正確性檢查。該塊緩沖區的設置考慮了FPGA芯片存儲資源和數據流特點,為保證輸入和輸出互相不影響,緩存區設置為FIFO(First Input First Output)模式。
研制設備除保留原系統的數據存儲功能外,信息化改造過程中,還增加了實時輸出、遠程網絡輸出和海量存儲功能。鑒于研制系統各組成部分數據傳輸速率差別大,從數據傳輸穩定性和提高系統工作效率考慮,將數據傳輸模式設計為非同步模式,不同速率數據流采用存儲器緩存結構實現連接。為適應多級傳輸速率需求,系統使用了多個數據緩存區。數據緩存模塊包括:中心計算機與FPGA的數據緩存模塊;FPGA與ARM的數據緩存模塊;FPGA中串口收發數據緩存模塊;網絡傳輸數據緩存模塊;USB(Universal Serial Bus)存儲器和板載固態存儲器NAND flash數據緩存模塊等。如圖4所示。

Figure 4 Distribution of data storage圖4 數據存儲分布圖
圖4中,FIFO為裝備聯機檢查及實時數據輸出緩存區。聯機檢查時,FIFO用于裝備數據傳輸及存儲正確性檢查。工作時,當FIFO檢測到數據輸入時,通過串口實時輸出數據;FPGA中的雙口存儲器,一端接裝備總線,一端接ARM數據總線。雙口存儲器劃分為兩個數據緩沖區,采用乒乓訪問機制,當一個緩存區數據寫滿時,通知ARM取數,同時,裝備寫另外一個緩存區。FIFO和雙口存儲器的設置解決了裝備和研制系統數據傳輸速率不一致的矛盾,實現了數據操作隔離,提高了傳輸可靠性。由于串口和ARM讀取數據速率大于裝備平均輸出數據速率,因此能夠保證存取數據邏輯正確進行,不會丟失數據;ARM內部的數據緩存區也設置為雙口存儲器形式,作為USB海量存儲器和遠程網絡輸出的數據緩存,USB存儲和網絡傳輸均按幀操作,一幀數據量設計為雙口存儲器乒乓操作一次數據輸出量。當雙口存儲器數據量達到一幀后,驅動USB接口存儲數據及網絡傳輸。NAND flash存儲器為板載大容量非易失存儲器,可根據需要存儲設備數據,事后讀取。SDRAM(SynchronousDRAM)用于大數據量存儲和系統擴展。
圖4中,串口輸出模塊與網絡和USB接口控制模塊一起,構成研制系統數據輸出的3個通用接口。串口輸出模塊在FPGA中實現,獨立于ARM系統。當ARM系統由于某種原因造成網絡和USB模塊不能正常工作時,還能夠保證裝備數據通過串口正常錄取,極大地保證了研制設備的應急使用能力。
由于設備輸出為18 bit的數據格式,串口將18 bit數據分成三次發送。該串口實現狀態機如圖5所示。

Figure 5 State machine of transmit-receive data of UART圖5 串口收發狀態機
各狀態功能如下:
(1)uartidle:等待狀態。當檢測到從計算機傳輸過來的數據時,進入通信測試狀態,當檢測到FIFO非空時,啟動FIFO中傳數過程。
(2)get:通信測試狀態。用于串口通信調試和測試,具有校驗和傳輸測試功能,正常時,向計算機返回功能狀態碼。
(3)fetch:取數狀態。從FIFO口中取出18 bit數據,進入數據組裝狀態。
(4)muxdata:多段數據準備狀態。由于輸入數據為18 bit,需要3次才能傳輸完一個數據,根據次序碼,進行數據區段設置。當次序碼為11時停止數據傳輸。
(5)segtrans:判斷次序碼內容,觸發UART傳輸數據。
當裝備非正常斷電時,有時意味出現嚴重問題,斷電時刻的數據是正確有效分析裝備故障原因的重要保證。原設備采用干電池供電,當電池電量不足或者接觸不良將導致存儲器數據丟失。我們設計了斷電保護電路,在供電中斷時,仍然能夠為研制設備提供超過15 s的供電時間,用于數據存儲和傳輸。斷電保護電路中的備用電池采用大容量法拉電容模組實現,使用壽命長,可靠性高,直接焊接于電路板上。當設備工作時,在線向法拉電容模組充電,解決了原設備電池容量下降和接觸不良的問題。
掉電保護電路框圖如圖6示。當供電中斷時,切換到備用電池供電狀態。此時,FPGA檢測到處于備用電池供電狀態,產生中斷信號,觸發中斷服務程序,完成緩存區數據存儲。

Figure 6 Principle diagram of power-fail protection圖6 掉電保護電路原理圖
圖6中,掉電保護電路分為掉電檢測、電源切換、備用電池控制、數據保存等幾個功能部分。當電壓比較電路檢測到VCC-IN下降到閾值電壓時,輸出掉電信號到FPGA。此時,DC-DC輸入端切換到大容量電容供電階段,保證在備用電池供電前,DC-DC模塊正常工作。在FPGA中,掉電信號通過整形及與其他信號邏輯合成,形成備用電源切換命令及到ARM的數據保存中斷信號。收到電源切換命令后,備用電池與DC-DC模塊連通。ARM識別到中斷信號后,將緩存中數據及時傳輸轉存。經測試,大容量電容有效放電時間約200 ms左右,滿足電源切換時間要求;備用電池能夠提供15 s以上的有效供電時間,保證系統將數據安全轉存。
嵌入式處理模塊由硬件平臺和相應的嵌入式操作系統及應用軟件組成,硬件平臺基于ARM920T內核的S3C2440A微處理器設計,外置相應的數據和程序存儲器及其他外圍器件。嵌入式操作系統移植了U-Boot[5],應用軟件實現了USB和網絡接口及其他功能。嵌入式處理模塊組成如圖7示。

Figure 7 Block diagram of embedded processing modules圖7 嵌入式處理模塊組成框圖
本系統在U-Boot的基礎上采用以無限循環輪轉形式運行的管理調度程序作為后臺程序,以中斷方式來發送數據準備就緒信號,通過調用中斷服務程序ISR(Interrupt Service Routine)來處理具體應用的操作模式,保證系統的實時性,如圖8示。

Figure 8 Software working flow chart圖8 軟件工作流程圖
軟件開發主要包括以下幾個方面工作[6 - 8]:
(1)U-boot移植;
(2)USB主機接口;
(3)網絡傳輸。
利用模擬板模擬裝備數據輸出過程,測試研制設備功能是否正確。這里使用兩套系統測試數據記錄和系統聯網功能,系統連接如圖9所示。圖9中,每套系統由數據模擬板和主板組成,主板上連接USB存儲器、網線及串口數據線。兩套系統的網絡線連接到一臺上位機上。

Figure 9 Picture of real products in the network test圖9 聯網測試實物圖
實驗結果顯示在上位機上,如圖10所示。

Figure 10 Data receive results圖10 數據接收結果顯示
圖10a顯示設備工作狀態及工作時間,顯示U盤和數據接收正常;圖10b為記錄的數據文件,通過分析比較,文件命名規則與要求一致,文件內容與模擬電路發送數據一致,表明研制設備數據記錄功能正確,設備滿足聯網要求。
實裝測試包括接口電氣兼容性測試和數據記錄完整性測試兩個部分。研制設備與裝備的122針輸出電纜連接,裝備加電,確認裝備能夠正常啟動;裝備開機進入工作前檢查狀態,存儲器自檢燈和記錄設備檢查燈亮,顯示研制設備電氣兼容性測試和功能檢查通過。
裝備先后與原記錄設備和研制設備連接,設定相同的測試程序和測試數據;將兩者記錄的數據進行比較,記錄數據個數和數據判讀結果均一致。這表明研制設備在功能上可完全取代原設備。
通過實驗室和使用單位實裝測試,表明研制設備完全達到了信息化改造目標,實現了多裝備輸出數據的實時、可靠錄取和傳輸存儲。
本文針對某裝備信息化改造的特殊要求,結合ARM和FPGA 各自的優勢,研制成功嵌入式實時數據記錄處理系統。該系統實現了接口靈活可靠、數據傳輸格式多樣、數據掉電保存等功能,保證了數據的正確錄取和傳輸。該系統已應用于實裝,完全達到了設計要求。其中,數據輸出通道冗余設計和掉電保護電路在系統出現意外情況下的數據保全中發揮了突出作用。文中相關設計思想對已有設備的信息化改造工作具有參考意義。