王平安,吳 衛(wèi),于志偉,陳文攀
(中國(guó)船舶重工集團(tuán)公司第七二四研究所,南京 211153)
基于SERDES的雷達(dá)數(shù)據(jù)高速傳輸?shù)膶?shí)現(xiàn)與應(yīng)用
王平安,吳衛(wèi),于志偉,陳文攀
(中國(guó)船舶重工集團(tuán)公司第七二四研究所,南京 211153)
摘要:針對(duì)寬帶高速數(shù)據(jù)傳輸需求,提出了一種利用FPGA內(nèi)部SelectIO資源實(shí)現(xiàn)SERDES高速傳輸?shù)慕鉀Q方法。通過對(duì)OSERDES和ISERDES原語的使用來實(shí)現(xiàn)對(duì)數(shù)據(jù)的并串轉(zhuǎn)換和串并轉(zhuǎn)換。在實(shí)際工程應(yīng)用中實(shí)現(xiàn)了對(duì)32個(gè)通路、每路400 Mb/s的穩(wěn)定傳輸,驗(yàn)證了系統(tǒng)的有效性與可靠性,滿足了項(xiàng)目需求。該設(shè)計(jì)易于移植,對(duì)于高速、多路數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)具有一定參考意義。
關(guān)鍵詞:數(shù)據(jù)傳輸;串行器/解串器;現(xiàn)場(chǎng)可編程門陣列;高速
0引言
現(xiàn)代高速密集數(shù)字處理技術(shù)和計(jì)算技術(shù)的發(fā)展,使得對(duì)多通道大帶寬數(shù)據(jù)進(jìn)行實(shí)時(shí)處理成為可能。在相控陣體制雷達(dá)系統(tǒng)中,往往有幾十路甚至成百上千路的實(shí)時(shí)數(shù)據(jù)。如此龐大數(shù)據(jù)的高速、實(shí)時(shí)傳輸對(duì)系統(tǒng)設(shè)計(jì)來說是一個(gè)挑戰(zhàn)。傳統(tǒng)的單端互聯(lián)設(shè)計(jì)方式由于易受干擾、噪聲的影響,傳輸速率最高只能達(dá)到200~250 Mb/s/Line。在更高速率的接口設(shè)計(jì)中,多采用包含有源同步時(shí)鐘的差分串行傳輸方式[1]。高速串行技術(shù)不僅能夠帶來更高的性能、更低的成本和更簡(jiǎn)化的設(shè)計(jì),克服了并行的速度瓶頸,還節(jié)省了I/O資源,使印制板的布線更簡(jiǎn)單,因此被越來越廣泛地應(yīng)用于各種系統(tǒng)設(shè)計(jì)中。
本文采用SERDES串行傳輸方法,對(duì)接收到的多路雷達(dá)數(shù)據(jù)在兩片F(xiàn)PGA之間實(shí)現(xiàn)實(shí)時(shí)穩(wěn)定傳輸,從而通過雙FPGA并行處理的方式解決了用單片F(xiàn)PGA處理所有通路數(shù)據(jù)時(shí)資源不足、并行傳輸引腳眾多、光纖互聯(lián)通道數(shù)有限等問題。
1SERDES方案對(duì)比
SERDES(Serializer-Deserializer)是串行器和解串器的簡(jiǎn)稱,是一種主流的時(shí)分多路復(fù)用(TDM)、點(diǎn)對(duì)點(diǎn)的串行通信技術(shù)。在發(fā)送端多路低速并行信號(hào)被轉(zhuǎn)換成高速串行信號(hào),經(jīng)過傳輸媒體(光纜或銅線),最后在接收端高速串行信號(hào)重新轉(zhuǎn)換成低速并行信號(hào)。這種點(diǎn)對(duì)點(diǎn)的串行通信技術(shù)充分利用傳輸媒體的信道容量,減少所需的傳輸信道和器件引腳數(shù)目,從而大大降低通信成本[2]。
1.1采用SERDES芯片
在傳統(tǒng)設(shè)計(jì)中多采用外置轉(zhuǎn)換芯片來完成數(shù)據(jù)的并/串轉(zhuǎn)換。如在發(fā)送端利用并/串轉(zhuǎn)換芯片DS92LV8028完成數(shù)據(jù)的串行化,在接收端利用串/并轉(zhuǎn)換芯片SCAN926260恢復(fù)出并行數(shù)據(jù),如圖1所示。但是,此方法需依賴額外的硬件資源且占用寶貴的嵌入式管腳資源[3],當(dāng)通道數(shù)成倍增加時(shí)對(duì)PCB布局布線、系統(tǒng)功耗及成本造成影響。
圖1 用SERDES芯片完成并串轉(zhuǎn)換
1.2采用Rocket I/O傳輸
隨著FPGA技術(shù)不斷發(fā)展,很多類型的FPGA都內(nèi)嵌有高速收發(fā)器SERDES硬核,如Xilinx公司的Virtex-6系列FPGA內(nèi)置有36個(gè)Rocket I/O硬核,能夠?qū)崿F(xiàn)單通道傳輸速率高達(dá)11.2 Gb/s??紤]到方案的通用性與交互性,在設(shè)計(jì)FPGA板卡時(shí)只利用了部分Rocket I/O硬核,其中大部分需要被用于和其他系統(tǒng)進(jìn)行數(shù)據(jù)及控制命令的傳輸,且Serial RapidIO也需要占用部分Rocket I/O鏈路資源。因此,當(dāng)光纖傳輸鏈路無法滿足所有數(shù)據(jù)鏈路需求時(shí),需尋找其他方法來實(shí)現(xiàn)片間多路數(shù)據(jù)的高速互傳。
1.3利用FPGA內(nèi)部的SelectIO資源實(shí)現(xiàn)
在本方案設(shè)計(jì)中,利用FPGA內(nèi)部SelectIO資源,通過對(duì)ISERDES和OSERDES等xilinx原語邏輯資源的使用,在發(fā)送芯片上實(shí)現(xiàn)數(shù)據(jù)的并串轉(zhuǎn)換,在接收芯片上實(shí)現(xiàn)數(shù)據(jù)的串并轉(zhuǎn)換,最終實(shí)現(xiàn)對(duì)數(shù)據(jù)的高速串行傳輸。采用的信號(hào)處理芯片為Xilinx Virtex-6系列FPGA,所有的Virtex-6 FPGA 有高性能的可配置SelectIO 驅(qū)動(dòng)器與接收器,支持非常廣泛的接口標(biāo)準(zhǔn)[4]。
ISERDES解串器是專用的串并轉(zhuǎn)換器,具有專門實(shí)現(xiàn)高速源同步應(yīng)用的時(shí)鐘控制與邏輯功能,可以實(shí)現(xiàn)高速數(shù)據(jù)傳輸。此轉(zhuǎn)換器支持單倍數(shù)據(jù)速率(SDR)和雙倍數(shù)據(jù)速率(DDR)兩種模式。每個(gè)ISERDES最大支持1∶6的串并轉(zhuǎn)換,因此構(gòu)建大于1∶6的串并轉(zhuǎn)換器需要用兩個(gè)ISERDES。通過將主ISERDES的SHIFTOUT 端口連接到從ISERDES的SHIFTIN端口,可以將串并轉(zhuǎn)換器最大擴(kuò)展到1∶10(DDR)和1∶8(SDR)。
OSERDES是專用的并串轉(zhuǎn)換器。每個(gè)OSERDES模塊包括1個(gè)用于數(shù)據(jù)和三態(tài)控制的專用串行器。數(shù)據(jù)和三態(tài)串行器都可以配置成SDR和DDR模式。和ISERDES類似,構(gòu)建大于1∶6的并串轉(zhuǎn)換器需要用兩個(gè)OSERDES。每個(gè)I/O模塊中有一主一從兩個(gè)OSERDES模塊,可以將并串轉(zhuǎn)換器最大擴(kuò)展到10∶1(DDR)和8∶1(SDR)[5]。
2鏈路方案實(shí)現(xiàn)
本方案所涉及的目標(biāo)系統(tǒng)中,信號(hào)處理器中的一塊FPGA板卡需要接收前端DBF處理模塊傳過來的16路IQ數(shù)據(jù),并對(duì)這16路IQ數(shù)據(jù)進(jìn)行數(shù)字信道化及對(duì)每一信道濾波檢測(cè)和脈沖參數(shù)測(cè)量處理。因信道數(shù)眾多,信號(hào)處理需要占用大量資源,導(dǎo)致一片Virtex-6難以完成如此龐大的數(shù)據(jù)處理設(shè)計(jì)。而所用FPGA板卡上有兩片Virtex-6,其間有100對(duì)IO通過LVDS電平進(jìn)行互連。因此,設(shè)計(jì)使FPGA1(U1)接收到的16路數(shù)據(jù)中的8路通過SERDES傳到FPGA2(U2)上進(jìn)行處理,再將FPGA2的處理結(jié)果傳回到FPGA1,最后再將兩片F(xiàn)PGA的處理結(jié)果一起打包通過FPGA1發(fā)送到后端數(shù)據(jù)處理分機(jī)。FPGA1和FPGA2之間的數(shù)據(jù)傳輸鏈路如圖2所示。
2.1數(shù)據(jù)的串行化與解串
FPGA1對(duì)并行數(shù)據(jù)進(jìn)行并/串轉(zhuǎn)換,利用兩個(gè)OSERDES構(gòu)成主從模式,通過將主OSERDES的SHIFTIN端口連接到從OSERDES的SHIFTOUT端口,使并串轉(zhuǎn)換器擴(kuò)展到8∶1進(jìn)行傳輸,如圖3所示。在接收端FPGA2上,ISERDES也構(gòu)成主從模式,實(shí)現(xiàn)對(duì)串行數(shù)據(jù)的1∶8的解串功能。ISERDES輸出并行數(shù)據(jù)的順序和輸入到OSERDES的并行數(shù)據(jù)是顛倒的(如圖4所示),在傳輸數(shù)據(jù)時(shí)需要做數(shù)據(jù)位顛倒處理。由于1路并行I/Q數(shù)據(jù)共有32位,因此需要4對(duì)LVDS差分線進(jìn)行傳輸。而8路I/Q數(shù)據(jù)(共256位)則需要32對(duì)LVDS差分線進(jìn)行傳輸。設(shè)計(jì)時(shí)將其分成兩組,每組傳輸128位,如圖2所示。為實(shí)現(xiàn)源同步時(shí)鐘設(shè)計(jì),串行時(shí)鐘通過ODDR模塊在發(fā)送端進(jìn)行轉(zhuǎn)發(fā),在接收端通過BUFIO和BUFR得到相位匹配的并行時(shí)鐘和串行時(shí)鐘。因此,每個(gè)鏈路組需要16對(duì)LVDS傳輸數(shù)據(jù),1對(duì)LVDS傳輸源同步時(shí)鐘,同時(shí)增加1對(duì)LVDS用于傳輸狀態(tài)標(biāo)識(shí)信號(hào)。
圖2 兩片F(xiàn)PGA間數(shù)據(jù)傳輸SERDES鏈路
SERDES發(fā)送端并行數(shù)據(jù)的處理時(shí)鐘為50 MHz。這里采用DDR(Double Data Rate)雙沿方式進(jìn)行傳輸,則串行時(shí)鐘為200 MHz。OSERDES的數(shù)據(jù)率為400 Mb/s(8b×50 MHz),相應(yīng)的ISERDES也配置成DDR模式,其串行時(shí)鐘、并行時(shí)鐘分別為200 MHz和50 MHz。
圖3 主/從OSERDES模式實(shí)現(xiàn)1路8∶1并串轉(zhuǎn)換
圖4 主/從ISERDES模式實(shí)現(xiàn)1路1∶8串并轉(zhuǎn)換
2.2數(shù)據(jù)訓(xùn)練與對(duì)齊
為達(dá)到數(shù)據(jù)時(shí)序的動(dòng)態(tài)調(diào)整,在傳輸真實(shí)數(shù)據(jù)之前,SERDES鏈路有一個(gè)訓(xùn)練的過程。在發(fā)送端有一個(gè)多路復(fù)用器,選擇是發(fā)送真實(shí)數(shù)據(jù)還是訓(xùn)練序列。當(dāng)接收端所有通道都對(duì)齊后,資源共享控制模塊(RESOURCE_SHARING_CONTROL)產(chǎn)生一個(gè)TrainDone高電平有效信號(hào)送到發(fā)送端,來控制發(fā)送真實(shí)數(shù)據(jù),否則發(fā)送訓(xùn)練序列。
每個(gè)鏈路組傳輸16個(gè)通道的串行數(shù)據(jù),在接收端需要對(duì)這16個(gè)通道的數(shù)據(jù)做對(duì)齊處理,其主要功能模塊如圖5所示。位對(duì)齊控制模塊(BIT_ALIGN_MACHINE)用于分別對(duì)每個(gè)通道進(jìn)行對(duì)齊,START_ALIGN信號(hào)用于通知位對(duì)齊控制模塊(BIT_ALIGN_MACHINE)多路復(fù)用器的輸出已經(jīng)穩(wěn)定,當(dāng)前通道的對(duì)齊工作可以正常開始。資源共享控制模塊控制多路復(fù)用器選擇哪一路進(jìn)行對(duì)齊,當(dāng)其收到DATA_ALIGNED信號(hào)時(shí),則說明當(dāng)前通道已經(jīng)完成對(duì)齊,以確保一路完成對(duì)齊后再轉(zhuǎn)向下一路。此外,位對(duì)齊控制模塊(BIT_ALIGN_MACHINE)產(chǎn)生3個(gè)控制信號(hào)來調(diào)整ISERDES的時(shí)序。INC、ICE通過IODELAY使數(shù)據(jù)通道的延時(shí)增加或減少75 ps的整數(shù)倍(當(dāng)參考時(shí)鐘為200 MHz時(shí))。BITSLIP使每一個(gè)ISERDES的并行數(shù)據(jù)流重新排序,從而促進(jìn)字對(duì)齊的進(jìn)程。
2.3CRC校驗(yàn)
為保證數(shù)據(jù)傳輸?shù)目煽啃?,達(dá)到高效檢錯(cuò)功能,在傳輸數(shù)據(jù)的每幀數(shù)據(jù)中加入循環(huán)冗余校驗(yàn)碼字段(CRC碼)。在接收端用同樣方法解出CRC碼后與接收到的CRC碼進(jìn)行比較,若相同則傳輸過程中沒有出現(xiàn)錯(cuò)誤,若不相同則傳輸過程有錯(cuò)誤,并送出錯(cuò)誤標(biāo)識(shí)。
2.4復(fù)位
圖5 接收單元數(shù)據(jù)對(duì)齊框圖
當(dāng)FPGA2接收到的數(shù)據(jù)發(fā)生錯(cuò)誤(CRC碼有誤)或序列未完成訓(xùn)練時(shí),產(chǎn)生一個(gè)復(fù)位信號(hào)SendNeedRst_U2toU1。FPGA1收到該復(fù)位信號(hào)后產(chǎn)生一個(gè)Oserdes_RST信號(hào)對(duì)其OSERDES進(jìn)行復(fù)位,同時(shí)產(chǎn)生一個(gè)FPGA1到FPGA2的控制信號(hào)OnLine_U1toU2。FPGA2接收到該信號(hào)后產(chǎn)生對(duì)接收端的復(fù)位信號(hào)Rx_Module_RST,其時(shí)序圖如圖6所示。圖中,A區(qū)域?yàn)榘l(fā)送的訓(xùn)練序列,B區(qū)域?yàn)榘l(fā)送真實(shí)數(shù)據(jù)。
圖6 SERDES鏈路復(fù)位時(shí)序圖
3實(shí)際傳輸結(jié)果
在本設(shè)計(jì)中,信號(hào)處理板卡上的FPGA1接收到16路DBF數(shù)據(jù)后,將其中的8路數(shù)據(jù)(每路32bit)通過SERDES進(jìn)行并/串、串/并轉(zhuǎn)換送到了FPGA2上,每路SERDES傳輸速率為400 Mb/s。用ChipScope抓取到的一路IQ數(shù)據(jù)傳輸結(jié)果如圖7所示。FPGA2能夠?qū)崟r(shí)、穩(wěn)定、無誤地接收到FPGA1傳過來的數(shù)據(jù)。
根據(jù)Xilinx手冊(cè),若采用-3速度等級(jí)的FPGA,則SERDES的傳輸速度將可以達(dá)到1.2 Gb/s,可滿足絕大部分更大帶寬更多通道數(shù)據(jù)傳輸要求。
圖7 一路IQ數(shù)據(jù)傳輸結(jié)果
4結(jié)束語
本文主要研究了一種利用FPGA內(nèi)部ISERDES和OSERDES資源,通過普通IO管腳實(shí)現(xiàn)了兩片F(xiàn)PGA間的高速串行數(shù)據(jù)傳輸方法。該方法經(jīng)實(shí)際工程試驗(yàn),結(jié)果表明傳輸數(shù)據(jù)穩(wěn)定可靠,能夠很好地滿足系統(tǒng)使用需求,解決了工程中使用單片F(xiàn)PGA信號(hào)處理時(shí)資源不足、光纖傳輸接口有限、并行傳輸引腳眾多且受速度瓶頸影響等一系列問題。
參考文獻(xiàn):
[1]徐文波,田耘. Xilinx FPGA開發(fā)實(shí)用教程 [M]. 2版. 北京:清華大學(xué)出版社,2012.7:20-22.
[2]沈競(jìng)宇.基于SerDes芯片8b/10b編解碼電路的設(shè)計(jì)及驗(yàn)證[D]. 電子科技大學(xué)碩士學(xué)位論文, 2011.
[3]張峰.自適應(yīng)動(dòng)態(tài)延時(shí)調(diào)整的SERDES技術(shù)在寬帶數(shù)據(jù)傳輸中的應(yīng)用[J].電訊技術(shù),2014,54(4):468-471.
[4]李大鵬,李雯,王曉華. 基于FPGA的高速LVDS接口的實(shí)現(xiàn)[J].航空計(jì)算技術(shù),2012,42(5): 115-118.
[5]Xilinx corporation. 16-Channel,DDR LVDS Interface with Per-Channel Alignment[EB/OL]. http://www.xilinx.com, 2006.
Realization and application of high-speed radar data transmission based on SERDES
WANG Ping-an, WU Wei, YU Zhi-wei, CHEN Wen-pan
(No.724 Research Institute of CSIC, Nanjing 211153)
Abstract:According to the demand of high-speed wideband data transmission, a solution to the realization of the SERDES-based high-speed transmission is proposed making use of the SelectIO resources in the FPGA. The parallel and serial data conversion is realized through the OSERDES and ISERDES primitives. In the practical engineering application, 32-channel data transmission is stable, with the speed of 400 Mb/s per channel, verifying the effectiveness and reliability of the system and satisfying the requirements of the project. The design is easy to transplant and has a reference value for the design of high-speed, multi-channel data transmission systems.
Keywords:data transmission; SERDES; FPGA; high speed
收稿日期:2016-03-09
作者簡(jiǎn)介:王平安(1988-),男,助理工程師,碩士,研究方向:雷達(dá)信號(hào)處理與FPGA硬件開發(fā);吳衛(wèi)(1977-),男,高級(jí)工程師,碩士,研究方向:雷達(dá)信號(hào)處理與FPGA硬件開發(fā);于志偉(1988-),男,助理工程師,碩士,研究方向:波束控制系統(tǒng)研究;陳文攀(1989-),男,助理工程師,碩士,研究方向:協(xié)同信號(hào)處理。
中圖分類號(hào):TN919.3
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1009-0401(2016)02-0038-05