大容量高速回放系統(tǒng)設(shè)計與實現(xiàn)
引 言
在過去的幾十年里伴隨著信息化的推進與無線通信技術(shù)的飛速發(fā)展,很多新的算法不斷被提出。但采用新算法的無線通信設(shè)備通常需要消耗大量資源進行外場調(diào)試和驗證,如果可以獲得大量原始數(shù)據(jù),那么在實驗室環(huán)境就可以通過原理樣機對算法進行較好的驗證和優(yōu)化。數(shù)據(jù)回放系統(tǒng)是獲取真實環(huán)境中不易得到的信號的重要手段,根據(jù)文獻[1-3] 可知, 回放系統(tǒng)已經(jīng)在雷達(dá)、醫(yī)療、電力等領(lǐng)域被大量運用。一般情況下,設(shè)備將采集的數(shù)據(jù)存儲于數(shù)據(jù)回放系統(tǒng)中,然后利用數(shù)據(jù)回放系統(tǒng)中的數(shù)據(jù)進行數(shù)據(jù)分析、算法驗證和優(yōu)化等。為了使無線通信系統(tǒng)的算法能夠方便驗證和優(yōu)化,本文設(shè)計了一種大容量高速數(shù)據(jù)回放系統(tǒng),首先分析了系統(tǒng)的整體架構(gòu)和工作原理,然后對數(shù)據(jù)回放系統(tǒng)的硬件和軟件進行設(shè)計, 最后對系統(tǒng)做出性能評估。
1 系統(tǒng)總體方案
回放系統(tǒng)整機設(shè)備示意如圖 1 所示。整機設(shè)備主要由信號處理系統(tǒng)和數(shù)據(jù)回放系統(tǒng)組成。數(shù)據(jù)回放系統(tǒng)和信號處理系統(tǒng)通過 Aurora 高速串行總線和 I2C 總線連接,同時數(shù)據(jù)回放系統(tǒng)預(yù)留以太網(wǎng)接口用于與計算機通信。數(shù)據(jù)存儲和回放指令通過 I2C 總線或者以太網(wǎng)下發(fā)給數(shù)據(jù)回放系統(tǒng),信號處理系統(tǒng)和計算機分別通過 Aurora 總線和以太網(wǎng)與數(shù)據(jù)回放系統(tǒng)進行數(shù)據(jù)傳輸。
本文設(shè)計的數(shù)據(jù)回放系統(tǒng)硬件架構(gòu)如圖 2 所示,主要由 FPGA單元、存儲單元、高速緩存單元、以太網(wǎng)單元等組成。項目選擇 XC7K325T-2FFG900 型號的 FPGA芯片作為數(shù)據(jù)回放系統(tǒng)的核心主控單元,其他高速總線、第三代雙倍數(shù)據(jù)速率同步動態(tài)隨機存儲器(DDR3)和固態(tài)硬盤(SSD) 等器件外掛在 FPGA芯片上。對于數(shù)據(jù)存儲過程,外部數(shù)據(jù)通過 Aurora總線傳輸?shù)綌?shù)據(jù)回放系統(tǒng),數(shù)據(jù)進入接收緩存FIFO,然后被搬移至 DDR3,最后通過 SATA控制器將數(shù)據(jù)存入 SSD中。數(shù)據(jù)回放過程 :SATA控制器從 SSD中取數(shù)據(jù),將數(shù)據(jù)緩存到 DDR3,再將數(shù)據(jù)存入發(fā)送緩存 FIFO中,最后通過 Aurora總線回放至信號處理系統(tǒng)或通過以太網(wǎng)回放至本地計算機。
圖 2 數(shù)據(jù)回放系統(tǒng)硬件架構(gòu)
2 數(shù)據(jù)回放系統(tǒng)設(shè)計
2.1 硬件設(shè)計
2.1.1 Aurora接口電路設(shè)計
Aurora 總線是 Xilinx 公司開發(fā)的一種輕量級點對點鏈路層協(xié)議 [4],與 SRIO和 PCle高速串行總線相比,它具有簡潔、開銷小、鏈路數(shù)量和速率選擇靈活等特點。因此,本文采用一路雙向 AuroraX4 總線實現(xiàn)數(shù)據(jù)回放系統(tǒng)和信號處理系統(tǒng)之間的數(shù)據(jù)傳輸。對于系統(tǒng)內(nèi)部,Aurora總線掛接在FPGA 的 GTX口上 ;對于系統(tǒng)外部,VPX 連接器很好地支持 Aurora 高速串行總線。XC7K325T 型號的 FPGA 的 GTX 接口支持最大速率達(dá) 12.5Gbps,VPX 連接器傳輸速率高達(dá)6.25Gbps,單 lane的 Aurora總線速率配置為 5Gbps,因此系統(tǒng)可以適應(yīng)高速數(shù)據(jù)的傳輸。
Rocket I/O 是一種內(nèi)嵌在 FPGA 內(nèi)部的高速串行收發(fā)器, 可以支持 Aurora,PCIe 等多種通信協(xié)議 [5]。本文采用基于高速串行收發(fā)器 Rocket I/O 的 Aurora IP 核實現(xiàn) Aurora 通信。Aurora 傳輸數(shù)據(jù)過程如圖 3 所示,其中 IP 核配置為流模式傳輸,通信模式為全雙工,單通道速率為 5 Gb/s,輸入系統(tǒng)的參考時鐘為 125 MHz,用戶時鐘為 250 MHz,發(fā)送和接收數(shù)據(jù)位寬為 64 bit。物理層進行了 8 B/10 B 編碼,因此單通道速率可達(dá) 4 Gbps。
2.1.2 以太網(wǎng)接口電路設(shè)計
數(shù)據(jù)回放系統(tǒng)要求通過計算機實現(xiàn)數(shù)據(jù)導(dǎo)入、導(dǎo)出以及發(fā)送控制命令。采用以太網(wǎng)技術(shù)的設(shè)備可通過 TCP/IP 協(xié)議進行數(shù)據(jù)傳輸,無需進行傳輸協(xié)議轉(zhuǎn)換,使用和維護設(shè)備簡單 [6]。系統(tǒng)采用 FPGA 外掛千兆以太網(wǎng)的方案實現(xiàn)計算機和數(shù)據(jù)回放系統(tǒng)之間的通信。千兆以太網(wǎng)采用全雙工模式,傳輸速率可選 10 Mbps/100 Mbps/1 000 Mbps,接口電氣特性遵循 IEEE802.3 標(biāo)準(zhǔn)。
通常,網(wǎng)絡(luò)傳輸協(xié)議包含 TCP 和 UDP 兩種 [7]。為保證數(shù)據(jù)的高可靠性,系統(tǒng)采用 TCP 協(xié)議傳輸數(shù)據(jù)。以太網(wǎng)實現(xiàn)框圖如圖 4 所示,其中網(wǎng)絡(luò) PHY 芯片選用 MARVELL 的88E1111 芯片,TCP/IP IP 核通過 Verilog 硬件描述語言實現(xiàn)TCP/IP 協(xié)議棧。
2.1.3 高速緩存電路設(shè)計
為防止接收的數(shù)據(jù)丟失,采用 DDR3 對接收的數(shù)據(jù)進行緩存。本文選用的 DDR3 芯片型號為 MT41K256M16HA- 125IT :E。兩片 DDR3 數(shù)據(jù)位拼接成 32 位用于數(shù)據(jù)緩存,拼接的 DDR3 接到 FPGA 的高性能 I/O 口 HP 上,最高帶寬可達(dá) 6 400 MB/s。
FPGA 和 DDR3 的通信通過 Xilinx 公司的 MIG IP 實現(xiàn)。DDR3 的 MIG IP 核包含用戶接口模塊、存儲控制模塊和物理層模塊 [8]。MIG IP 核通過物理層接口與 DDR3 連接,用戶接口與 FPGA 用戶邏輯連接,從而實現(xiàn)用戶邏輯與 DDR3 的橋接功能。
2.1.4 存儲電路設(shè)計
SSD 是以 FLASH 代替?zhèn)鹘y(tǒng)硬盤盤片作為存儲介質(zhì),使用SATA 系列類型接口的新型存儲設(shè)備 [9]。SSD 在訪問速度、功耗和可靠性等方面相比傳統(tǒng)硬盤有著明顯優(yōu)勢,因此文本采用 SSD 作為數(shù)據(jù)存儲介質(zhì)。存儲單元采用 4 個標(biāo)稱容量為1 TB 的 mini-SATA(mSATA)接口的固態(tài)硬盤來存儲信號處理系統(tǒng)采集的數(shù)據(jù)。mSATA SSD 全部外掛在 FPGA 的 GTX 高速接口上,且 mSATA SSD 與 FPGA 之間的通信采用標(biāo)準(zhǔn)的 SATA3.0 通信協(xié)議 [10]。
本文采用圖 5 所示的基于 SATA 的存儲方案,方案的核心是實現(xiàn) SATA 3.0 協(xié)議。SATA 協(xié)議由應(yīng)用層、傳輸層、鏈路層和物理層組成 [11]。應(yīng)用層主要完成命令的設(shè)置 ;傳輸層將命令層數(shù)據(jù)封裝成 FIS 幀格式的數(shù)據(jù)幀 ;鏈路層主要完成數(shù)據(jù)的 CRC 校驗和加解擾處理 ;物理層負(fù)責(zé)將上層并行數(shù)據(jù)轉(zhuǎn)換成串行碼流并傳輸出去。本項目首先通過硬核 GTX 構(gòu)建物理層高速串行收發(fā)器和 OOB 信號的檢測來實現(xiàn)物理層,然后利用 Verilog 硬件描述語言實現(xiàn) SATA 3.0 協(xié)議的鏈路層和傳輸層,最后將上述三層協(xié)議封裝成 SATA IP 核。項目利用 Xilinx 的 Vivado 軟件內(nèi)建一個 MicroBlaze 軟核,將SATA IP 核作為 MicroBlaze 的外設(shè)。系統(tǒng)利用 Xilinx 公司提供的 EDK 開發(fā)環(huán)境將 SATA IP 核掛載到 AXI 總線上,通過這種方式 EDK 便可以靈活定制 MicroBlaze 的外設(shè)。
圖 5 基于 SATA 的存儲方案圖
2.2 軟件設(shè)計
上位 PC 機軟件主要包含顯示控制程序和通信管理程序。顯示控制程序?qū)崿F(xiàn)人機交互界面,而通信管理程序則負(fù)責(zé)完成與數(shù)據(jù)回放系統(tǒng)之間的 TCP/IP 協(xié)議通信。本文設(shè)計的上位 PC 機軟件界面如圖 6 所示。
圖 6 上位 PC 機軟件界面
用戶通過上位機軟件完成對數(shù)據(jù)回放系統(tǒng)的管理,具體功能實現(xiàn)如下 :
(1) 顯示數(shù)據(jù)回放系統(tǒng)的硬件狀態(tài) ;
(2) 顯示實時存儲和回放數(shù)據(jù)的信息狀態(tài) ;
(3) 下發(fā)存儲、回放等指令給數(shù)據(jù)回放系統(tǒng) ;
(4) 下發(fā)導(dǎo)出、導(dǎo)入數(shù)據(jù)操作。
3 性能評估
在實驗室環(huán)境下,回放系統(tǒng)設(shè)備上電后實測結(jié)果如下 :
(1) 數(shù)據(jù)回放系統(tǒng)最大存儲速度為 1200MB/s,最大回放速度達(dá) 1 800 MB/s。根據(jù)信號處理系統(tǒng)的 A/D 采樣速率和后續(xù)基帶信號處理的時鐘速率,數(shù)據(jù)回放系統(tǒng)可以自適應(yīng)降速存儲和回放。
(2) 千兆以太網(wǎng)最大導(dǎo)入數(shù)據(jù)速度約為 98MB/s,最大導(dǎo)出數(shù)據(jù)速度約為 70 MB/s。
(3) 如果按照 600MB/s的速率存儲數(shù)據(jù),數(shù)據(jù)回放系統(tǒng)可以連續(xù)存儲 2 h 以上。
4 結(jié) 語
本文設(shè)計了一種大容量高速率的數(shù)據(jù)回放系統(tǒng)。采用mSATA SSD 盤作為存儲介質(zhì),Aurora 總線作為數(shù)據(jù)傳輸總線,千兆以太網(wǎng)作為數(shù)據(jù)導(dǎo)入、導(dǎo)出接口。該回放系統(tǒng)體積小、存儲容量大、存儲和回放速度高、穩(wěn)定性好。經(jīng)工程驗證, 該系統(tǒng)可以較好地滿足整機設(shè)備對數(shù)據(jù)回放的要求。