宋壯壯,馬游春,郭鑫,陳韶康
(1.中北大學(xué) 電子測試技術(shù)國家重點實驗室,太原 030051;2.中北大學(xué) 信息與通信工程學(xué)院,太原 030051)
機載雷達(dá)主要用于對目標(biāo)的方位、距離、速度等狀態(tài)參數(shù)的探測,不論是在軍用中還是民用中都發(fā)揮著重要作用。在軍事上,雷達(dá)主要用于控制和制導(dǎo)武器,實施空中警戒、偵察,保障準(zhǔn)確航行和飛行安全;在民用上,雷達(dá)主要用于氣象檢測、地質(zhì)探測和無人駕駛等。但無論是軍用還是民用,都需要從雷達(dá)回波信號中提取有用的信息,由此可見雷達(dá)數(shù)據(jù)存儲系統(tǒng)的重要性[1]。
隨著機載雷達(dá)數(shù)據(jù)傳輸速度以及數(shù)據(jù)量的不斷增加,要求存儲系統(tǒng)具有存儲容量大、存儲速度快、存儲數(shù)據(jù)完整度高等特點[2]。因此為了滿足存儲系統(tǒng)日益增長的需求,近些年來對雷達(dá)數(shù)據(jù)存儲系統(tǒng)進(jìn)行了眾多研究。其中大部分以FPGA+存儲介質(zhì)的架構(gòu),但是這種架構(gòu)系統(tǒng)復(fù)雜并且開發(fā)維護(hù)困難。
基于以上研究,本文設(shè)計了一款基于ZYNQ 的eMMC 雷達(dá)數(shù)據(jù)存儲系統(tǒng)。通過對所存儲數(shù)據(jù)的讀取分析,為下一步性能完善及故障排除等工作提供科學(xué)的數(shù)據(jù)支持。
本系統(tǒng)的主控芯片采用的是賽靈思集團(tuán)開發(fā)的ZYNQ-7000 系列芯片,是一種把高性能ARM 處理器與高性能FPGA 在單個芯片里集合的芯片[3]。芯片中的PS 端(ARM 處理器側(cè))能夠把FAT32 文件管理系統(tǒng)進(jìn)行移植,所以可以通過調(diào)用API 函數(shù)來控制eMMC 芯片;另一端的PL 端(FPGA 側(cè))因為邏輯資源豐富,所以可以進(jìn)行高速數(shù)據(jù)的并行處理與傳輸[4]。系統(tǒng)根據(jù)此款芯片軟硬件協(xié)同工作的這種特性[5],可以將采集到的雷達(dá)數(shù)據(jù)與GPS 數(shù)據(jù)高速率的存儲到eMMC 芯片中。系統(tǒng)總體設(shè)計框圖如圖1 所示。
圖1 系統(tǒng)總體框圖Fig.1 Overall block diagram of the system
模塊化設(shè)計方法是指把總體設(shè)計劃分為幾個小模塊,使設(shè)計復(fù)雜程度得到簡化。本論文設(shè)計的eMMC 雷達(dá)數(shù)據(jù)存儲系統(tǒng),主要完成雷達(dá)數(shù)據(jù)與GPS 數(shù)據(jù)接收,數(shù)據(jù)預(yù)處理與組幀,組幀數(shù)據(jù)緩存,eMMC 芯片內(nèi)部文件創(chuàng)建與數(shù)據(jù)存儲等功能。按系統(tǒng)原理及設(shè)計功能可劃分為6 個單元。①雷達(dá)模塊:接收雷達(dá)信號轉(zhuǎn)化為10 路LVDS 信號;②LVDS接口模塊:將10 路LVDS 差分信號轉(zhuǎn)為單端信號傳輸?shù)絇L 端;③GPS 模塊:接收衛(wèi)星信號產(chǎn)生GPS 數(shù)據(jù)傳輸?shù)絇L 端;④數(shù)據(jù)處理模塊:接收10 路LVDS信號和GPS 數(shù)據(jù)并進(jìn)行預(yù)處理與組幀;⑤緩存模塊:負(fù)責(zé)對組幀完成的數(shù)據(jù)進(jìn)行處理,并緩存在PS端的DDR3 內(nèi)存內(nèi);⑥存儲模塊:移植FAT32 文件管理系統(tǒng),使用API 函數(shù)把DDR3 緩存的數(shù)據(jù)按照.bin 文件數(shù)據(jù)格式儲存到eMMC 芯片中。主要模塊的連接圖如圖2 所示。
圖2 系統(tǒng)模塊連接圖Fig.2 System module connection diagram
LVDS 接口模塊的選擇是DS90LV048A,把LVDS差分信號變換成單端信號的接口[6]。DS90LV048A 為4 路高速差分接收器,本課題選擇了3 片來實現(xiàn)數(shù)據(jù)轉(zhuǎn)換,其中2 片用來接收8 位數(shù)據(jù)信號,另一片用來接收使能信號及時鐘信號。GPS 模塊主要是通過天線從衛(wèi)星上接收信號并輸入到GPS 芯片中解算處理,然后輸出解算結(jié)果,系統(tǒng)所選GPS 芯片為U-blox 公司NEO-M8T 芯片,具有高性能、高靈敏度、低功耗、小型化等優(yōu)勢[7];NEO-M8T 既能接收BDS 信號,又能接收其它GNSS 信號,利于提高定位精度,數(shù)據(jù)輸出速率采用配套軟件U-CENTER 設(shè)定115200 b/s,更新速率10 Hz,數(shù)據(jù)輸出格式UBX。
數(shù)據(jù)處理模塊在PL 側(cè)工作,主要實現(xiàn)雷達(dá)數(shù)據(jù)的接收,GPS 數(shù)據(jù)的接收以及預(yù)處理與組幀。該系統(tǒng)以UBX 幀格式預(yù)處理所發(fā)100 字節(jié)GPS 數(shù)據(jù),提取其時間、經(jīng)緯度及高度信息,與雷達(dá)數(shù)據(jù)組幀處理,幀格式包括幀頭、幀計數(shù)、GPS 數(shù)據(jù)、雷達(dá)數(shù)據(jù)及幀尾;收到雷達(dá)數(shù)據(jù)之后,存儲8 位雷達(dá)數(shù)據(jù)信號至數(shù)據(jù)處理FIFO 中緩存,數(shù)據(jù)處理FIFO 的數(shù)據(jù)容量超過1 KB,則觸發(fā)使能信號組幀;再將幀頭、幀計數(shù)、GPS 數(shù)據(jù)、1 KB 雷達(dá)數(shù)據(jù)以及幀尾按順序?qū)懭霐?shù)據(jù)處理FIFO,再發(fā)送至緩存模塊中的FIFO1中,發(fā)送完畢幀計數(shù)加1。數(shù)據(jù)處理模塊的工作流程如圖3 所示。
圖3 數(shù)據(jù)模塊工作流程Fig.3 Work flow chart of data module
緩存模塊用于對PL 一側(cè)接收數(shù)據(jù)整理后傳送至PS 一側(cè)DDR 中緩存。PL 側(cè)與PS 側(cè)之間的數(shù)據(jù)交互需采用AXI4 總線[8]。AXI4 是一種高性能、高帶寬、低延遲的片內(nèi)總線[9]。與AXI4 總線的兩端相連的主、從設(shè)備,以握手信號方式建立聯(lián)系[10]。
為提高系統(tǒng)的工作效率,采用乒乓緩存技術(shù)與AXI4 總線結(jié)合的方式,實現(xiàn)了接收、緩存與存儲的同步運行。乒乓緩存在數(shù)據(jù)流控制中經(jīng)常被用來處理數(shù)據(jù)流,它能夠節(jié)省存儲單元資源,實現(xiàn)數(shù)據(jù)流無縫處理[11]。它由2 個FIFO、輸入數(shù)據(jù)選擇單元和輸出數(shù)據(jù)選擇單元組成,其工作原理如圖4 所示。輸入數(shù)據(jù)選擇單元向2 個FIFO 依次寫入數(shù)據(jù),在FIFO 寫完后,輸出數(shù)據(jù)選擇單元讀取數(shù)據(jù)。所述輸入數(shù)據(jù)選擇單元與所述輸出數(shù)據(jù)選擇單元依據(jù)周期互相配合,將輸入數(shù)據(jù)流毫無停頓地進(jìn)行輸出。
圖4 FIFO 乒乓緩存示意圖Fig.4 Schematic diagram of FIFO ping-pong cache
當(dāng)組幀完成的數(shù)據(jù)發(fā)送過來后,先存入FIFO1中,將FIFO1 寫滿后,數(shù)據(jù)開始存入FIFO2 中,此時通過AXI4 總線把FIFO1 中存儲的數(shù)據(jù)傳輸?shù)絇S端的DDR 中進(jìn)行緩存。當(dāng)把FIFO2 也寫滿后,將上述操作進(jìn)行重復(fù)。當(dāng)DDR 中緩存的數(shù)據(jù)量達(dá)到設(shè)定的值之后,通知PS 端的存儲模塊進(jìn)行數(shù)據(jù)的存儲。
準(zhǔn)確無誤地保存接收數(shù)據(jù),是本系統(tǒng)的設(shè)計宗旨。該系統(tǒng)以存儲容量64 GB 的eMMC 芯片MTFC6 4GAPALBH 作為存儲介質(zhì)。eMMC 使用統(tǒng)一的MMC 標(biāo)準(zhǔn)接口,將高密度NAND Flash 和Flash 控制器包裝于一個BGA 芯片中。與NAND Flash 直接與Host 端連接相比,eMMC 阻斷了NAND Flash 的物理特性,降低了Host 端軟件復(fù)雜度,使Host 端集中精力應(yīng)用,免去對NAND Flash 的特殊處理。與此同時,eMMC 還通過采用Cache 和Memory Array 來實現(xiàn)讀寫性能,這遠(yuǎn)優(yōu)于NAND Flash,還因為eM MC 使用了統(tǒng)一MMC 標(biāo)準(zhǔn)接口能夠像運行SD 卡那樣運行eMMC,但是它的連接性能更可靠、讀寫速率更快[12]。
為在eMMC 芯片上建立文件以保存數(shù)據(jù),本文把文件管理系統(tǒng)用于系統(tǒng)設(shè)計中。文件管理系統(tǒng)可以對數(shù)據(jù)進(jìn)行長期保存,同時向用戶提供了基于文件目錄的數(shù)據(jù)訪問機制,而且易于在嵌入式系統(tǒng)上進(jìn)行移植,所占資源較小,能夠完成有效的數(shù)據(jù)讀寫工作,為操作數(shù)據(jù)提供了極大的方便[13]。FATFS 文件系統(tǒng)是一個完全免費并且開源的FAT 文件系統(tǒng)模塊,此系統(tǒng)給應(yīng)用程序開發(fā)提供統(tǒng)一的、標(biāo)準(zhǔn)的API 函數(shù),具有良好的可維護(hù)性和移植性[14]。賽靈思公司的SDK 軟件平臺移植了FATFS 文件系統(tǒng),所以在SDK 中移植了xilffs 庫后,就可以在程序中使用FATFS 中的API 函數(shù)來操作eMMC 芯片。
當(dāng)系統(tǒng)啟動之后,PS 側(cè)就開始調(diào)用API 函數(shù)在eMMC 芯片中創(chuàng)建一個.bin 文件,當(dāng)緩存模塊把一定數(shù)量的數(shù)據(jù)緩存到DDR3 后,觸發(fā)中斷信號來通知存儲模塊啟動。存儲模塊將剛建立好的文檔打開并開始寫入數(shù)據(jù),寫入完成后將文檔關(guān)閉并對文檔時間進(jìn)行修改。eMMC 芯片寫數(shù)據(jù)程序設(shè)計流程如圖5 所示。
圖5 eMMC 芯片程序設(shè)計流程Fig.5 Flow chart of eMMC chip programming
為了驗證系統(tǒng)硬件電路的可行性和軟件的邏輯功能是否達(dá)到預(yù)期,對FPGA 邏輯模塊進(jìn)行功能仿真以及進(jìn)行系統(tǒng)的功能測試。
系統(tǒng)設(shè)計的核心部分為FPGA 邏輯部分,所以在程序編寫完成之后利用vivado 軟件進(jìn)行了功能的仿真,邏輯仿真截圖如圖6 所示。從波形圖可以得知,數(shù)據(jù)接收功能、提取GPS 有效信息功能、組幀然后進(jìn)行數(shù)據(jù)發(fā)送功能均設(shè)計正確。
圖6 FPGA 邏輯仿真圖Fig.6 FPGA logic simulation diagram
系統(tǒng)平臺搭建完成后,將存儲數(shù)據(jù)從上位機中讀出并保存為.bin 文件,然后通過HexEdit 軟件打開對數(shù)據(jù)進(jìn)行完整性分析,第1 列和第2 列為幀頭,在幀頭EB90 之后的幀計數(shù)遞增,GPS 數(shù)據(jù)通過于當(dāng)?shù)財?shù)據(jù)對比也吻合,沒有出現(xiàn)數(shù)據(jù)丟失或錯誤現(xiàn)象,整個系統(tǒng)工作過程穩(wěn)定可靠,數(shù)據(jù)截圖如圖7所示。
本文對基于ZYNQ 的eMMC 雷達(dá)數(shù)據(jù)存儲系統(tǒng)設(shè)計進(jìn)行了詳細(xì)的介紹,以ZYNQ-7000 芯片為系統(tǒng)主芯片,運用AXI4 總線與乒乓緩存相結(jié)合的技術(shù)以及Fat32 文件管理系統(tǒng),搭配eMMC 芯片作為存儲介質(zhì)完成了整體設(shè)計,同時對FPGA 邏輯部分進(jìn)行了時序仿真,并對系統(tǒng)設(shè)計進(jìn)行了驗證,實現(xiàn)了對30 MB/s 的并行LVDS 雷達(dá)數(shù)據(jù)的采集以及組幀,并達(dá)到了60 MB/s 的存儲速度。
綜上所述,本文設(shè)計的基于ZYNQ 的eMMC 雷達(dá)數(shù)據(jù)存儲系統(tǒng)存儲容量大、速度快,性能可靠穩(wěn)定,能夠很好地滿足雷達(dá)數(shù)據(jù)的實時存儲要求,為高速雷達(dá)數(shù)據(jù)的采集存儲提供了一種全新的實現(xiàn)方法。