宋壯壯,馬游春,郭鑫,陳韶康
(1.中北大學 電子測試技術國家重點實驗室,太原 030051;2.中北大學 信息與通信工程學院,太原 030051)
機載雷達主要用于對目標的方位、距離、速度等狀態參數的探測,不論是在軍用中還是民用中都發揮著重要作用。在軍事上,雷達主要用于控制和制導武器,實施空中警戒、偵察,保障準確航行和飛行安全;在民用上,雷達主要用于氣象檢測、地質探測和無人駕駛等。但無論是軍用還是民用,都需要從雷達回波信號中提取有用的信息,由此可見雷達數據存儲系統的重要性[1]。
隨著機載雷達數據傳輸速度以及數據量的不斷增加,要求存儲系統具有存儲容量大、存儲速度快、存儲數據完整度高等特點[2]。因此為了滿足存儲系統日益增長的需求,近些年來對雷達數據存儲系統進行了眾多研究。其中大部分以FPGA+存儲介質的架構,但是這種架構系統復雜并且開發維護困難。
基于以上研究,本文設計了一款基于ZYNQ 的eMMC 雷達數據存儲系統。通過對所存儲數據的讀取分析,為下一步性能完善及故障排除等工作提供科學的數據支持。
本系統的主控芯片采用的是賽靈思集團開發的ZYNQ-7000 系列芯片,是一種把高性能ARM 處理器與高性能FPGA 在單個芯片里集合的芯片[3]。芯片中的PS 端(ARM 處理器側)能夠把FAT32 文件管理系統進行移植,所以可以通過調用API 函數來控制eMMC 芯片;另一端的PL 端(FPGA 側)因為邏輯資源豐富,所以可以進行高速數據的并行處理與傳輸[4]。系統根據此款芯片軟硬件協同工作的這種特性[5],可以將采集到的雷達數據與GPS 數據高速率的存儲到eMMC 芯片中。系統總體設計框圖如圖1 所示。

圖1 系統總體框圖Fig.1 Overall block diagram of the system
模塊化設計方法是指把總體設計劃分為幾個小模塊,使設計復雜程度得到簡化。本論文設計的eMMC 雷達數據存儲系統,主要完成雷達數據與GPS 數據接收,數據預處理與組幀,組幀數據緩存,eMMC 芯片內部文件創建與數據存儲等功能。按系統原理及設計功能可劃分為6 個單元。①雷達模塊:接收雷達信號轉化為10 路LVDS 信號;②LVDS接口模塊:將10 路LVDS 差分信號轉為單端信號傳輸到PL 端;③GPS 模塊:接收衛星信號產生GPS 數據傳輸到PL 端;④數據處理模塊:接收10 路LVDS信號和GPS 數據并進行預處理與組幀;⑤緩存模塊:負責對組幀完成的數據進行處理,并緩存在PS端的DDR3 內存內;⑥存儲模塊:移植FAT32 文件管理系統,使用API 函數把DDR3 緩存的數據按照.bin 文件數據格式儲存到eMMC 芯片中。主要模塊的連接圖如圖2 所示。

圖2 系統模塊連接圖Fig.2 System module connection diagram
LVDS 接口模塊的選擇是DS90LV048A,把LVDS差分信號變換成單端信號的接口[6]。DS90LV048A 為4 路高速差分接收器,本課題選擇了3 片來實現數據轉換,其中2 片用來接收8 位數據信號,另一片用來接收使能信號及時鐘信號。GPS 模塊主要是通過天線從衛星上接收信號并輸入到GPS 芯片中解算處理,然后輸出解算結果,系統所選GPS 芯片為U-blox 公司NEO-M8T 芯片,具有高性能、高靈敏度、低功耗、小型化等優勢[7];NEO-M8T 既能接收BDS 信號,又能接收其它GNSS 信號,利于提高定位精度,數據輸出速率采用配套軟件U-CENTER 設定115200 b/s,更新速率10 Hz,數據輸出格式UBX。
數據處理模塊在PL 側工作,主要實現雷達數據的接收,GPS 數據的接收以及預處理與組幀。該系統以UBX 幀格式預處理所發100 字節GPS 數據,提取其時間、經緯度及高度信息,與雷達數據組幀處理,幀格式包括幀頭、幀計數、GPS 數據、雷達數據及幀尾;收到雷達數據之后,存儲8 位雷達數據信號至數據處理FIFO 中緩存,數據處理FIFO 的數據容量超過1 KB,則觸發使能信號組幀;再將幀頭、幀計數、GPS 數據、1 KB 雷達數據以及幀尾按順序寫入數據處理FIFO,再發送至緩存模塊中的FIFO1中,發送完畢幀計數加1。數據處理模塊的工作流程如圖3 所示。

圖3 數據模塊工作流程Fig.3 Work flow chart of data module
緩存模塊用于對PL 一側接收數據整理后傳送至PS 一側DDR 中緩存。PL 側與PS 側之間的數據交互需采用AXI4 總線[8]。AXI4 是一種高性能、高帶寬、低延遲的片內總線[9]。與AXI4 總線的兩端相連的主、從設備,以握手信號方式建立聯系[10]。
為提高系統的工作效率,采用乒乓緩存技術與AXI4 總線結合的方式,實現了接收、緩存與存儲的同步運行。乒乓緩存在數據流控制中經常被用來處理數據流,它能夠節省存儲單元資源,實現數據流無縫處理[11]。它由2 個FIFO、輸入數據選擇單元和輸出數據選擇單元組成,其工作原理如圖4 所示。輸入數據選擇單元向2 個FIFO 依次寫入數據,在FIFO 寫完后,輸出數據選擇單元讀取數據。所述輸入數據選擇單元與所述輸出數據選擇單元依據周期互相配合,將輸入數據流毫無停頓地進行輸出。

圖4 FIFO 乒乓緩存示意圖Fig.4 Schematic diagram of FIFO ping-pong cache
當組幀完成的數據發送過來后,先存入FIFO1中,將FIFO1 寫滿后,數據開始存入FIFO2 中,此時通過AXI4 總線把FIFO1 中存儲的數據傳輸到PS端的DDR 中進行緩存。當把FIFO2 也寫滿后,將上述操作進行重復。當DDR 中緩存的數據量達到設定的值之后,通知PS 端的存儲模塊進行數據的存儲。
準確無誤地保存接收數據,是本系統的設計宗旨。該系統以存儲容量64 GB 的eMMC 芯片MTFC6 4GAPALBH 作為存儲介質。eMMC 使用統一的MMC 標準接口,將高密度NAND Flash 和Flash 控制器包裝于一個BGA 芯片中。與NAND Flash 直接與Host 端連接相比,eMMC 阻斷了NAND Flash 的物理特性,降低了Host 端軟件復雜度,使Host 端集中精力應用,免去對NAND Flash 的特殊處理。與此同時,eMMC 還通過采用Cache 和Memory Array 來實現讀寫性能,這遠優于NAND Flash,還因為eM MC 使用了統一MMC 標準接口能夠像運行SD 卡那樣運行eMMC,但是它的連接性能更可靠、讀寫速率更快[12]。
為在eMMC 芯片上建立文件以保存數據,本文把文件管理系統用于系統設計中。文件管理系統可以對數據進行長期保存,同時向用戶提供了基于文件目錄的數據訪問機制,而且易于在嵌入式系統上進行移植,所占資源較小,能夠完成有效的數據讀寫工作,為操作數據提供了極大的方便[13]。FATFS 文件系統是一個完全免費并且開源的FAT 文件系統模塊,此系統給應用程序開發提供統一的、標準的API 函數,具有良好的可維護性和移植性[14]。賽靈思公司的SDK 軟件平臺移植了FATFS 文件系統,所以在SDK 中移植了xilffs 庫后,就可以在程序中使用FATFS 中的API 函數來操作eMMC 芯片。
當系統啟動之后,PS 側就開始調用API 函數在eMMC 芯片中創建一個.bin 文件,當緩存模塊把一定數量的數據緩存到DDR3 后,觸發中斷信號來通知存儲模塊啟動。存儲模塊將剛建立好的文檔打開并開始寫入數據,寫入完成后將文檔關閉并對文檔時間進行修改。eMMC 芯片寫數據程序設計流程如圖5 所示。

圖5 eMMC 芯片程序設計流程Fig.5 Flow chart of eMMC chip programming
為了驗證系統硬件電路的可行性和軟件的邏輯功能是否達到預期,對FPGA 邏輯模塊進行功能仿真以及進行系統的功能測試。
系統設計的核心部分為FPGA 邏輯部分,所以在程序編寫完成之后利用vivado 軟件進行了功能的仿真,邏輯仿真截圖如圖6 所示。從波形圖可以得知,數據接收功能、提取GPS 有效信息功能、組幀然后進行數據發送功能均設計正確。

圖6 FPGA 邏輯仿真圖Fig.6 FPGA logic simulation diagram
系統平臺搭建完成后,將存儲數據從上位機中讀出并保存為.bin 文件,然后通過HexEdit 軟件打開對數據進行完整性分析,第1 列和第2 列為幀頭,在幀頭EB90 之后的幀計數遞增,GPS 數據通過于當地數據對比也吻合,沒有出現數據丟失或錯誤現象,整個系統工作過程穩定可靠,數據截圖如圖7所示。
本文對基于ZYNQ 的eMMC 雷達數據存儲系統設計進行了詳細的介紹,以ZYNQ-7000 芯片為系統主芯片,運用AXI4 總線與乒乓緩存相結合的技術以及Fat32 文件管理系統,搭配eMMC 芯片作為存儲介質完成了整體設計,同時對FPGA 邏輯部分進行了時序仿真,并對系統設計進行了驗證,實現了對30 MB/s 的并行LVDS 雷達數據的采集以及組幀,并達到了60 MB/s 的存儲速度。
綜上所述,本文設計的基于ZYNQ 的eMMC 雷達數據存儲系統存儲容量大、速度快,性能可靠穩定,能夠很好地滿足雷達數據的實時存儲要求,為高速雷達數據的采集存儲提供了一種全新的實現方法。