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