黃剛
摘 要:為滿足無(wú)線通信設(shè)備回放工作過(guò)程數(shù)據(jù)文件的要求,設(shè)計(jì)了一種實(shí)時(shí)高速的數(shù)據(jù)回放系統(tǒng)。系統(tǒng)采用固態(tài)硬盤作為存儲(chǔ)介質(zhì),將Aurora高速串行總線和以太網(wǎng)作為數(shù)據(jù)傳輸接口,實(shí)現(xiàn)海量數(shù)據(jù)的高速實(shí)時(shí)存儲(chǔ)和回放。系統(tǒng)已經(jīng)在工程中進(jìn)行應(yīng)用驗(yàn)證,性能良好。
關(guān)鍵詞:數(shù)據(jù)回放;固態(tài)硬盤;SATA 3.0;高速總線;Aurora;以太網(wǎng)
中圖分類號(hào):TP39;TN91文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2019)06-00-03
0 引 言
在過(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)設(shè)計(jì)
2.1 硬件設(shè)計(jì)
2.1.1 Aurora接口電路設(shè)計(jì)
Aurora總線是Xilinx公司開發(fā)的一種輕量級(jí)點(diǎn)對(duì)點(diǎn)鏈路層協(xié)議[4],與SRIO和PCle高速串行總線相比,它具有簡(jiǎn)潔、開銷小、鏈路數(shù)量和速率選擇靈活等特點(diǎn)。因此,本文采用一路雙向Aurora X4總線實(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.5 Gbps,VPX連接器傳輸速率高達(dá)6.25 Gbps,單lane的Aurora總線速率配置為5 Gbps,因此系統(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開發(fā)環(huán)境將SATA IP核掛載到AXI總線上,通過(guò)這種方式EDK便可以靈活定制MicroBlaze的外設(shè)。
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所示。
3 性能評(píng)估
在實(shí)驗(yàn)室環(huán)境下,回放系統(tǒng)設(shè)備上電后實(shí)測(cè)結(jié)果如下:
(1)數(shù)據(jù)回放系統(tǒng)最大存儲(chǔ)速度為1 200 MB/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ù)速度約為98 MB/s,最大導(dǎo)出數(shù)據(jù)速度約為70 MB/s。
(3)如果按照600 MB/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ù)回放的要求。
參 考 文 獻(xiàn)
[1]黃俊,陳春輝,陳亞駿.高速雷達(dá)數(shù)據(jù)回放系統(tǒng)的實(shí)現(xiàn)[J].信息技術(shù),2007(2):91-94.
[2]張寧,王言章.便攜式動(dòng)態(tài)心電記錄儀及數(shù)據(jù)回放系統(tǒng)設(shè)計(jì)[J].長(zhǎng)春理工大學(xué)學(xué)報(bào),2006,29(4):16-18.
[3]梁言,郎兵.超高壓可控并聯(lián)電抗器錄波回放系統(tǒng)設(shè)計(jì)[J].工業(yè)儀表與自動(dòng)化裝置,2012(4):53-56.
[4]李維明,陳建軍,陳星锜.基于Aurora協(xié)議的高速通信技術(shù)的研究[J].電子技術(shù)應(yīng)用,2013,39(12):37-40.
[5]陳長(zhǎng)林,邱兆坤.Rocket I/O及其在高速數(shù)據(jù)傳輸中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(11):25-28.
[6]韋宏,付友濤,孔凡鵬,等.基于FPGA的千兆以太網(wǎng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(18):56-59.
[7]徐俊. 基于FPGA的嵌入式TCP/IP協(xié)議棧的實(shí)現(xiàn)[D].上海:華東師范大學(xué),2008.
[8]王紅兵,強(qiáng)景,周珍龍.Xilinx MIG IP核的研究及大容量數(shù)據(jù)緩沖區(qū)的實(shí)現(xiàn)[J]. 電子產(chǎn)品世界,2016(8):43-46.
[9]楊宇光.SSD技術(shù)及應(yīng)用[J].信息技術(shù)與標(biāo)準(zhǔn)化,2010(4):17-20.
[10]吳從中,但德東,劉盛中.SATA3.0協(xié)議物理層握手模塊設(shè)計(jì)與驗(yàn)證[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,37(5):6041-608.
[11]楊亞濤,張松濤,李子臣,等.SATA 3.0物理層設(shè)計(jì)與FPGA實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2017,53(20):38-42.