劉躍澤,熊繼軍,洪應平
(中北大學 儀器科學與動態(tài)測試教育部重點實驗室,山西 太原 030051)
隨著測試技術的發(fā)展,飛行器狀態(tài)的測試手段更豐富,數據更詳細,記錄器需要記錄的數據量不斷增大,這對記錄器的記錄速度及容量提出了更高的要求[1?3]??垢哌^載千兆以太網數據記錄器是針對于飛行器運行過程中傳感數據進行實時記錄、存儲,并在打擊完成后,將數據進行回讀。傳統(tǒng)記錄器采用LVDS、422等接口芯片,只能滿足低速數據接收需要[4?7]。為了能更快地記錄數據,已有研究采用千兆以太網接口[8?9],在和控制系統(tǒng)交互指令的同時也可以高速接收數據。采用eMMC作存儲單元,與傳統(tǒng)記錄器內的NAND FLASH相比,單片容量更高且體積更小,便于進行抗高過載防護[10?13]。
本文提出了一種基于eMMC、采用以太網接收數據并通過DDR緩存的抗高過載千兆以太網數據記錄器設計方案。eMMC作為一種新型存儲介質,內部集成了NAND FLASH和控制器,由控制器對NAND FLASH進行讀寫控制,同時還具備壞塊管理、損耗均衡以及ECC校驗等較為復雜的功能。相對于NAND FLASH,eMMC容量大、讀寫速度快,高性能eMMC芯片在HS400模式下讀寫速度高達400 MB/s,能夠滿足抗高過載沖擊信號記錄儀高速、大容量、低功耗和小型化等要求。
針對記錄器設計時高速存儲的難點要求,本文設計了一款可滿足高速存儲的新型記錄器。該記錄器采用模塊化設計,整體系統(tǒng)的設計框圖如圖1所示,分為FPGA主控模塊、以太網接口模塊、DDR緩存模塊、電源管理模塊、數據模擬設備以及eMMC存儲單元等六部分。本文主要對一些主要模塊的選型和設計進行介紹,各主要模塊的選型如下:FPGA主控模塊選用Xilinx公司的具有4 GB的容量緩存數據XC7K160T?1FBG484I芯片;以太網模塊選用Marvell公司的88E1111千兆網傳輸芯片;存儲單元選用三星公司的KLMCG2KERM?B041,具備64 GB的存儲容量用于存儲數據;DDR緩存模塊選用MT41K256M16JT?125,滿足本系統(tǒng)需要長時間記錄的要求。
圖1 記錄器設計框圖
整個系統(tǒng)上電后,采用數據模擬設備發(fā)送數據和指令,保證模擬速率穩(wěn)定,同時能發(fā)送編幀后數據,方便回讀數據時判讀,也可通過該裝置回讀數據到計算機端判讀數據。
數據記錄系統(tǒng)關鍵技術主要為以下三點:以太網數據處理、編幀;高速數據通過DDR3緩存處理;eMMC數據存儲邏輯設計。本文主要對這幾個模塊的關鍵技術進行敘述。
以太網模塊選用Marvell公司的88E1111千兆網傳輸芯片,FPGA通過以太網模塊對數據的收發(fā)進行控制,主要包含數據緩存進程、ARP地址綁定進程及數據處理三部分。數據緩存用于數據接收和發(fā)送;ARP地址綁定進程,通過ARP地址解析協(xié)議綁定MAC地址、IP地址,保證通信順利進行;數據處理在UDP協(xié)議層對數據進行解析提取。以太網模塊的整個通信原理如圖2所示。
圖2 以太網通信原理圖
以太網控制模塊采用PHY倍頻生成的125 MHz的時鐘作為主控時鐘,首先通過ARP綁定地址后,模擬信號源收到ARP回復,開始發(fā)送模擬數據,模擬幀格式如圖3所示,總長256 B,選用遞加數便于分析是否有數據誤碼。數據處理進程判斷解析UDP報文同時校驗后,提取整包數據,并提取UDP協(xié)議內數據長度和UDP協(xié)議內的包計數寫入幀尾,組成方便后期解析、判讀數據,判斷是否有誤碼、丟數及丟包。編幀后以太網數據包如圖4所示。
圖3 模擬幀格式
圖4 編幀后以太網數據包
緩存模塊用DDR3緩存,因寫入讀取數據寬度、時鐘速率不同,采用異步FIFO實現跨時鐘域處理和數據位寬轉換,其原理圖如圖5所示。以太網解碼模塊采用同步于以太網PHY芯片倍頻產生的125 MHz時鐘作為驅動時鐘,提取UDP數據幀中的有效數據寫入同步FIFO,將DDR3的寫入位寬設置為128 bit,FIFO無法直接將8 bit轉化成128 bit數據,所以采用一個同步FIFO預先將數據轉化為16 bit,同步FIFO的讀使能保持拉高,將讀數據有效接入下一異步FIFO的寫使能,保證讀數據有效時直接寫入下一FIFO。因DDR3芯片讀寫共用地址數據總線,無法實現同步讀寫,所以DDR3控制需要設置優(yōu)先等級,控制邏輯圖如圖6所示??刂屏鞒讨饕?個觸發(fā)信號,最高優(yōu)先級觸發(fā)信號為DDR3忙,DDR3 IP在工作過程中Rdy信號及Wdf_rdy信號會隨時拉低,這時DDR無法響應讀寫命令,所以狀態(tài)要切入空閑狀態(tài),等DDR3結束忙狀態(tài)。第二優(yōu)先級為FIFO1半滿,首先要保證FIFO1不會被寫滿導致丟數,因DDR3的帶寬遠遠大于以太網的數據帶寬,所以正常的控制邏輯圖中,FIFO1永遠不會被寫滿。當前兩個觸發(fā)條件沒有達成時,只要DDR3內有數據,且FIFO2沒有被寫滿,就執(zhí)行寫FIFO2操作。
圖5 DDR緩存模塊原理圖
圖6 DDR控制邏輯狀態(tài)圖
圖7為用XILINX Vivado軟件抓取的實時信號讀寫時序。
圖7 DDR讀寫時序
存儲單元選用三星公司的KLMCG2KERM?B041芯片,該芯片具備64 GB的存儲容量,在HS400模式下存儲速度最大可達到400 MB/s,但時鐘速率太高,必定會增大功耗和邏輯資源的消耗。本文記錄器為保證抗高過載,將存儲單元外掛,減小存儲模塊占用空間,實物圖如圖8所示。為了兼顧長線傳輸及結構設計,保證數據信號質量及數據寫入速度,記錄器采用雙沿傳輸,50 MHz傳輸時鐘(High Speed DDR模式)。在兼顧各方面需求的情況下,存儲速度在滿速時,瞬時存儲速度達到100 MB/s,但因eMMC特性上有寫入等待時間及命令字寫入時間,平均速率可以保證大于60 MB/s。任務指標UDP通信速率最大為500 Mb/s,將數據包設置為最大包1 500時的最大通信數據速度約為57 MB/s,所以記錄器滿足實際記錄以太網UDP數據包的能力。
圖8 存儲單元實物圖
存儲模塊的初始化流程如圖9所示。系統(tǒng)上電后,首先用400 kHz的低速時鐘對eMMC存儲芯片進行初始化,包括器件識別、容量識別和相關寄存器配置等。本系統(tǒng)將eMMC器件配置為High Speed DDR模式,該模式下最大時鐘為52 MHz,設置總線數據為8 bit,I/O電壓為1.8 V,最大數據速度為104 MB/s。
圖9 初始化流程
初始化完成后,eMMC進入傳輸狀態(tài),該狀態(tài)下存儲單元可以響應讀、寫、擦命令。因任務要求,本系統(tǒng)分為4種模式:常規(guī)監(jiān)控記錄模式、硬啟動模式、數據擦除模式及回讀模式,工作模式流程如圖10所示。存儲單元初始化完成后處于傳輸狀態(tài),等待外部控制系統(tǒng)發(fā)送記錄模式指令進入記錄模式,在記錄模式實時記錄以太網數據,存滿循環(huán)記錄,便于隨時回讀以太網數據。
記錄模式的詳細工作流程為:首先發(fā)送CMD23設計多塊存儲塊數,eMMC芯片每塊容量為512 B,每次申請后,需要寫入足夠申請的數據才可以開始存儲。因eMMC芯片特性,寫入時間存在延時,所以每次申請的塊數越多,存儲速度越接近最大速度。本系統(tǒng)申請存儲塊數為2 048塊,也就是每次申請1 MB存儲空間;之后發(fā)送CMD24命令,設置存儲起始地址,每完成一次存儲,起始地址遞加,存入接下來的2 048塊地址。當沒有外部其他命令輸入,存儲器一直停留在循環(huán)記錄狀態(tài)。
擦除模式下,eMMC芯片也是依據塊地址進行擦除。在配置階段,可以從寄存器中獲取該芯片的容量,得到該芯片的最大地址。本系統(tǒng)不需要進行部分擦除,所以接收到擦除指令后,進行全空間擦除。首先發(fā)送CMD35將起始設置為0地址,發(fā)送CMD36將結束地址設置為最大地址,發(fā)送CMD38執(zhí)行全空間擦除操作,擦除完成退出該模式。
硬啟動模式是任務要求的特殊模式,在飛行器發(fā)射前5 min啟動,將全空間擦除,進入記錄模式,保證系統(tǒng)準確記錄飛行器發(fā)射前及發(fā)射過程中的傳感數據,保證記錄器回收時可以得到整個飛行器飛行過程前后實時傳感數據。
回讀模式下,主要用于模擬測試時及記錄器回收時對數據進行回讀。與存儲模式相似,首先發(fā)送CMD16設置讀取塊數;再發(fā)送CMD18設置讀取起始地址,同時通過LVDS接口芯片將數據輸出到計算機,用于數據判讀。如果外部控制命令一直存在,系統(tǒng)會讀取所有容量的數據;當控制命令不存在,則退出回讀模式。
為驗證記錄器的可靠性和數據記錄的準確性,本文采用地面信號源作為模擬數據設備,模擬數據格式如圖3所示,發(fā)送速率為526 Mb/s,在記錄模式下持續(xù)寫入數據,通過地面回讀設備回讀數據,原始數據見圖11。將單次申請存儲容量設置為1 MB,即1 048 576 B,將幀長設置為1 048 576 B,幀頭對齊,可通過數據軟件直觀查看。經數據分析軟件第1次拆解,分析數據幀頭計數值連續(xù),并去掉幀頭,拆解出以太網打包數據,格式見圖4,拆解后數據見圖12。因每包含數據1 024 B和幀尾8 B,所以將幀長設置為1 032,可以看到幀尾內的幀計數、幀長度、隔離碼。經數據分析軟件驗證后,確定以太網包計數連續(xù)沒有出現丟包情況,做第2次拆包,提取出實際數據。實際數據如圖3所示,拆解后數據見圖13。因數據為連續(xù)輸入,且?guī)睬鞍嫈担洈祿治鲕浖炞C后,無誤碼。驗證了本系統(tǒng)記錄數據的準確性。本記錄器連續(xù)做大于100次地面試驗,在記錄模式下每次記錄容量大于30 GB,同時驗證硬啟動模式。經數據軟件判讀,無錯誤出現。
圖11 原始數據
圖12 第1次拆解數據
圖13 第2次拆解數據
本文介紹了抗高過載千兆以太網數據記錄器設計,實現了單路千兆網數據記錄,記錄速率為526 Mb/s。
該記錄器能夠準確地回收數據、拆解出原始數據,通過型號項目驗證,其具備60 MB/s的平均存儲速度。將存儲單元與主板分離適用于彈上狹小空間,有利于設計抗高過載結構,可抵抗高過載沖擊,能夠滿足彈上的以太網數據記錄及測試要求。