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