古 月,姜 威,劉躍澤,洪應平
(1.中國運載火箭技術研究院 研究發(fā)展部,北京 100076;2.北京宇航系統(tǒng)工程研究所,北京 100076;3.中北大學 儀器科學與動態(tài)測試教育部重點實驗室,山西 太原 030051)
隨著測試技術的發(fā)展,飛行器在飛行狀態(tài)中需要記錄的傳感信息也更加復雜多樣,記錄器需要記錄的數(shù)據(jù)量不斷增多,對記錄的速度和時間等要求也不斷提高[1-4]。傳統(tǒng)航天、航空記錄器應用的RS485、RS422、CAN等總線已無法適應高速數(shù)據(jù)記錄以及傳輸?shù)纫骩5-7],且常規(guī)的存儲介質(zhì)如NAND Flash裸片、SPI Flash等,也無法滿足高速存儲需求。為了能更快、更準確地記錄數(shù)據(jù),本系統(tǒng)提出一種新型可靠解決方案,選用高速的千兆以太網(wǎng)接口,應用TCP作為通信協(xié)議[8-11],即保證數(shù)據(jù)通信的完整性和可靠性,又具備高速數(shù)據(jù)傳輸功能;同時選用eMMC作為存儲介質(zhì),該存儲介質(zhì)與傳統(tǒng)記錄器的NAND Flash 相比,具備更大的存儲容量、存儲速度,可完成長時間高速記錄[12-13]。豐富航天航空領域高速傳感信息數(shù)據(jù)記錄手段,為高過載下提供了可行性解決方案。
本系統(tǒng)需要對飛行器的大量傳感數(shù)據(jù)進行實時記錄,飛行過程中任何傳感信息都會對后期設備的優(yōu)化和改良提供重要依據(jù),所以對數(shù)據(jù)完整性、準確性的要求極高,必須保證無丟幀、誤碼等異常情況。所以本系統(tǒng)采用可靠性極高的基于以太網(wǎng)的TCP交互協(xié)議,通過不斷的握手、校驗信息,保證每幀數(shù)據(jù)準確接收。常規(guī)存儲器采用FPGA作為主要控制器,無法應付TCP協(xié)議的復雜交互進程,所以本系統(tǒng)選用異構ARM+FPGA體系處理器,應用ARM處理器保證TCP協(xié)議交互正常,同時具備高性能FPGA,滿足后續(xù)處理高速、大量數(shù)據(jù),并可滿足嚴苛時序約束用以驅(qū)動高速存儲芯片。
筆者設計了一種基于ZYNQ的千兆以太網(wǎng)數(shù)據(jù)記錄器,在兼容性能和成本需求下,本系統(tǒng)選用了Xilinx公司推出的一款低成本、低功耗的ZYNQ7020系統(tǒng)處理方案。該芯片內(nèi)集成了ARM處理器及FPGA,也就是PS(Process System)端及PL(Progarmmable Logic)端,采用PS端實時處理TCP數(shù)據(jù)流,發(fā)揮ARM嵌入式平臺處理優(yōu)勢。PL端做高速數(shù)據(jù)編碼、寫入操作,為系統(tǒng)高速時序處理提供性能保障。兩端共享DDR3作為數(shù)據(jù)緩存單元,用于數(shù)據(jù)高速交互;選用eMMC作為存儲單元,其內(nèi)部集成了 NAND Flash 和控制器,由控制器對NAND Flash進行讀寫控制,同時,還具備壞塊管理、損耗均衡以及ECC校驗等較為復雜的功能,相對于傳統(tǒng)存儲介質(zhì),eMMC容量大、讀寫速度快,能夠滿足本系統(tǒng)千兆以太網(wǎng)數(shù)據(jù)流的高速存儲需求。
系統(tǒng)采用電腦上位機模擬數(shù)據(jù)源,直接向記錄器寫入數(shù)據(jù),并通過軟件實時監(jiān)控寫入數(shù)據(jù)流情況。同樣采用以太網(wǎng)接口回讀數(shù)據(jù),通過軟件查看數(shù)據(jù),驗證數(shù)據(jù)準確性。預期可完成任務,為航天航空領域傳感信息數(shù)據(jù)記錄提供可靠方案[14-16]。
針對記錄器存儲需求及TCP千兆網(wǎng)高速傳輸?shù)入y點要求,設計了一款可滿足TCP千兆以太網(wǎng)傳輸及高速數(shù)據(jù)存儲的新型記錄器。記錄器設計如圖1所示,因TCP協(xié)議用FPGA純邏輯實現(xiàn)會浪費大量資源,且實現(xiàn)效果不理想,所以本記錄器選用Xilinx 公司的ZYNQ7020芯片作為主控,其內(nèi)部集成了ARM Cortex-A9處理器,其內(nèi)部包含以太網(wǎng)硬核協(xié)議棧,可以保證高速、可靠地實現(xiàn)千兆以太網(wǎng)TCP通信,同時該芯片內(nèi)部還包含基于Artix-7的邏輯資源,實現(xiàn)eMMC的高速時序控制。
圖1 記錄器設計框圖
系統(tǒng)采用模塊化設計,分為存儲模塊、緩存模塊、主控模塊、穩(wěn)壓模塊和以太網(wǎng)接口模塊,如圖2所示。為保證存儲單元的抗過載要求,將主板與存儲單元分離,采用小型化設計便于保護存儲單元,在記錄器經(jīng)過載沖擊后回收存儲單元,讀取數(shù)據(jù)。同時采用PCIE作為存儲介質(zhì)接口,在保證系統(tǒng)傳輸穩(wěn)定的情況下,可更靈活地更換存儲單元,更方便在測試時和后期回收時進行操作。以太網(wǎng)模塊選用Microchip Technology公司的KSZ9031千兆網(wǎng)PHY芯片;存儲單元選用三星公司的KLMCG2KERM-B041,具備64 GB的存儲容量用于數(shù)據(jù)存儲;DDR緩存模塊選用具備512 MB緩存的MT41K256M16JT-125芯片,為本系統(tǒng)長時間記錄提供了可靠保障。
圖2 實物圖
兼容存儲單元穩(wěn)定性及小型化設計的需要,如圖2所示,存儲單元尺寸設計為4.3 mm×3 mm。設計卡槽用于固定線纜,同時將過載結構設計為橢圓,用以抵抗更高的沖擊,抗過載結構實物如圖3所示。在灌封后可經(jīng)受高強度過載,為試驗過程中和試驗后的數(shù)據(jù)回收提供強有力的保障。
圖3 抗過載結構實物圖
系統(tǒng)上電后,首先由主控處理器對底層PHY芯片復位,并通過系統(tǒng)與以太網(wǎng)PHY芯片實現(xiàn)交互,確定MAC及IP地址,并協(xié)商通信速度,保證PHY芯片在千兆模式下正常工作。
通信鏈路建立完成后,通過PHY芯片接收以太網(wǎng)數(shù)據(jù)信息,直接用PS端調(diào)用LwIP庫,實現(xiàn)傳輸層通信。系統(tǒng)解幀處理后判斷數(shù)據(jù)類型,當收到存儲指令,將內(nèi)部數(shù)據(jù)信息提取經(jīng)DMA直接操作存入DDR3緩存單元中,并等待寫完成中斷,中斷觸發(fā)后開始存入下一幀數(shù)據(jù)。因存儲器存在寫入時間延遲特性,所以采用DDR3作為中介緩存,保證不會因為后級溢出導致丟數(shù)。因PS與PL可以獨立運行,當PL端判斷出緩存單元內(nèi)有數(shù)據(jù),且后級緩存單元數(shù)據(jù)沒有滿,則將數(shù)據(jù)通過DMA提取出DDR3,編幀寫入eMMC存儲控制單元的FIFO,用以數(shù)據(jù)位寬轉(zhuǎn)換和跨時鐘域處理,保證寫入存儲單元數(shù)據(jù)準確、有效。寫控制流程如圖4所示。
圖4 千兆以太網(wǎng)接收數(shù)據(jù)存儲流程圖
回讀流程與存儲流程相似,當PS端接收到回讀指令后,通過AXI總線向PL端發(fā)送回讀指令,將eMMC切換到回讀狀態(tài),通過DMA直接將數(shù)據(jù)寫入DDR3緩存單元,DMA中斷信號觸發(fā)PS端提取數(shù)據(jù)工作,數(shù)據(jù)處理后經(jīng)PHY芯片通過以太網(wǎng)接口直接傳入電腦,用于后期數(shù)據(jù)解析、判讀。如圖5所示。
圖5 千兆以太網(wǎng)數(shù)據(jù)回讀流程
存儲芯片選用三星公司的KLMCG2KERM-B041,該芯片存儲容量為64 GB,在HS400模式下工作時鐘200 MHz存儲速度最大可達到400 MB/s。時鐘速率太高必然會對鏈路信號質(zhì)量及邏輯資源消耗等提出更高要求,因本系統(tǒng)設計記錄器是為了長時間穩(wěn)定工作,考慮在兼容系統(tǒng)性能和系統(tǒng)穩(wěn)定的情況下,本記錄器選用High Speed DDR模式,該模式工作時鐘為0~52 MHz,采用雙沿數(shù)據(jù)傳輸,數(shù)據(jù)傳輸位寬8 bit,則瞬時最大傳輸速度為104 MB/s。因系統(tǒng)接收TCP數(shù)據(jù)最大速度為500 Mbit/s,數(shù)據(jù)包最大速度不超過60 MB/s,所以系統(tǒng)選擇50 MHz時鐘作為eMMC芯片的存儲時鐘。因存在寫入延遲的情況,采用DDR3作為緩存單元,用以緩存寫入的數(shù)據(jù)信息,保證數(shù)據(jù)可以及時處理寫入存儲單元。為記錄器實時記錄千兆以太網(wǎng)TCP數(shù)據(jù)包提供保障。
存儲芯片eMMC上電復位后,首先要對芯片以低速400 kHz時鐘進行初始化操作,包含識別器件、配置芯片等工作。該模式下芯片I/O工作電壓可配置為3 V、1.8 V、1.2 V,在綜合考慮器件功耗、工作性能及主控芯片的選型后,選用1.8 V為工作電壓,保證主控芯片PL端可以使用高性能Bank。初始化流程如圖6所示,配置完成后,進行總線測試,測試成功后將存儲芯片切換進傳輸模式,進行讀、寫、擦等操作。
圖6 初始化流程圖
進入傳輸模式后,芯片有3種工作模式:存儲模式、回讀模式和擦除模式。通過以太網(wǎng)收回的數(shù)據(jù)指令經(jīng)PS端處理后發(fā)送給PL端,轉(zhuǎn)化成邏輯端可以識別的指令,并將指令下發(fā)給eMMC控制模塊,通過控制指令實現(xiàn)模式切換。eMMC操作流程如圖7所示。
圖7 eMMC操作流程
在存儲模式下首先向eMMC芯片發(fā)送CMD23指令設置多塊存儲并設置單次存儲塊數(shù),因eMMC芯片每塊容量為512 B,每次發(fā)送后,需要寫入申請的多塊數(shù)據(jù)量才可以開始編譯到芯片內(nèi)部存儲空間。因eMMC芯片特性,每次編譯時間存在編譯延時,延時因器件批次及編譯區(qū)域不同導致時間不定,但基本時間相差不大。所以每次申請的塊數(shù)越多,單次編譯的數(shù)據(jù)量越大,存儲速度越接近最大速度。在考慮到寫入速度與邏輯資源消耗的情況以及緩存資源的占用情況,經(jīng)多次實際測試,本系統(tǒng)工況下將申請存儲塊數(shù)設置為2048塊,也就是每次申請1 MB存儲空間下,既可以保證寫入速度穩(wěn)定,又可以將緩存資源快速釋放,速率平均,效果最穩(wěn)定。
設置好單次存儲容量后,發(fā)送CMD24命令,設置存儲起始地址。即存儲開始地址,每次申請固定存儲塊數(shù)后,eMMC內(nèi)部存完當前的塊會自行切入下一塊空間繼續(xù)寫,所以每完成一次申請的塊數(shù)存儲后,只需將下次的寫入起始地址設置為上次寫入最后一塊地址的下一塊,再申請寫入塊數(shù),以此循環(huán)申請,保證連續(xù)存儲。配置芯片時可以讀出該芯片共有多大的地址用于存儲,當存到最后一片地址時將起始地址清零,重新開始循環(huán)記錄,本系統(tǒng)在沒有外部指令觸發(fā)的情況下,存儲器會一直停留在存儲模式下,并且循環(huán)覆蓋記錄數(shù)據(jù)。
在擦除模式工況下,eMMC芯片也是對每塊地址空間進行操作。因為在配置階段,可以從寄存器中獲取該芯片的容量,得到該芯片的最大地址,即芯片時間可用容量。本記錄器工況不需要部分擦除操作,所以接收到以太網(wǎng)擦除指令后,進行全空間擦除。首先發(fā)送CMD35將起始設置為0地址;發(fā)送CMD36將結束地址設置為最大地址;發(fā)送CMD38執(zhí)行擦除操作;擦除完成后退出該模式。
在回讀模式工況下,用電腦對記錄器直接進行回讀,與存儲模式相似。首先發(fā)送CMD16設置讀取塊數(shù),在發(fā)送CMD18設置讀取起始地址,同時將數(shù)據(jù)通過以太網(wǎng)TCP協(xié)議將數(shù)據(jù)傳回到電腦,用于數(shù)據(jù)判讀。如果外部控制命令沒有更新,系統(tǒng)會讀取所有容量的數(shù)據(jù)后自動停止,當其他控制命令輸入,則退出回讀模式。
為驗證記錄器的可靠性以及記錄數(shù)據(jù)的準確性。系統(tǒng)采用電腦上位機作為模擬數(shù)據(jù)設備,模擬數(shù)據(jù)格式00-FF循環(huán)4次,包總長1078 B,其中內(nèi)部數(shù)據(jù)量共1024 B,發(fā)送速率為500 Mbit/s,在存儲模式下持續(xù)寫入數(shù)據(jù),通過Wireshark監(jiān)控數(shù)據(jù)流,如圖8所示,可以看到電腦端發(fā)送的TCP數(shù)據(jù)包和記錄器的應答包。單幀數(shù)據(jù)信息如圖9所示,可以看到內(nèi)部數(shù)據(jù),用Wireshark實時抓取數(shù)據(jù)流,經(jīng)長時間測試,無誤碼、丟包等異?,F(xiàn)象。
圖8 數(shù)據(jù)流監(jiān)控圖
圖9 單幀數(shù)據(jù)信息圖
通過電腦回讀數(shù)據(jù),將數(shù)據(jù)存儲為.dat格式,用hexedit打開后可見如圖10所示的回讀數(shù)據(jù)。將數(shù)據(jù)幀長設置為1024,即代表單幀數(shù)據(jù)量,整體數(shù)據(jù)對齊,并通過數(shù)據(jù)判斷軟件分析,千兆以太網(wǎng)TCP數(shù)據(jù)接收無誤碼現(xiàn)象。本記錄器連續(xù)進行超過100次試驗,在記錄模式下每次記錄容量大于30 GB,均無丟包誤碼現(xiàn)象,則可驗證本系統(tǒng)記錄數(shù)據(jù)的準確性。
圖10 回讀數(shù)據(jù)圖
分別從硬件、軟件及結構方面介紹了基于ZYNQ的千兆以太網(wǎng)數(shù)據(jù)記錄器設計方法,并通過實驗驗證了系統(tǒng)的穩(wěn)定性和可靠性。實現(xiàn)了單路千兆網(wǎng)TCP協(xié)議數(shù)據(jù)記錄,以太網(wǎng)傳輸平均速率可達500 Mbit/s,并可實時將解碼后數(shù)據(jù)存入eMMC存儲單元,平均速度達到60 MB/s,瞬時最大存儲速度為100 MB/s。通過優(yōu)化硬件設計和FPGA時序約束實現(xiàn)了eMMC存儲單元的長線傳輸,為保護存儲單元提供可行的手段。
同時系統(tǒng)在測試階段可以通過TCP回傳數(shù)據(jù)到電腦端,用以數(shù)據(jù)判讀及驗證,并將存儲單元結構設計為接插模式,為記錄器在經(jīng)受高過載后主板損壞提供有效的回讀手段。在兼容成本及性能的情況下對整體系統(tǒng)進行小型化設計,同時將存儲單元與主板分離,使存儲單元更適用于彈上狹小空間安裝,有利于設計抗高過載結構,用以抵抗高過載沖擊。
綜上,系統(tǒng)滿足了航天航空飛行器的高速傳感信息數(shù)據(jù)的存儲、回收及設備抗高過載需求,為航天航空高速記錄器的設計提供了一種有效的解決方案。