Cyclone IV高速串口在微波數(shù)據(jù)傳輸中的應(yīng)用
作者 謝艷1 陽勝波1 陳忠松2 1.中國電子科技集團(tuán)公司第三十四研究所(廣西 桂林 541004) 2.95972部隊
本文引用地址:http://www.ex-cimer.com/article/201811/395044.htm摘要:采用ALTERA Cyclone IV FPGA內(nèi)部SERDES實現(xiàn)多路數(shù)據(jù)的復(fù)分解,舍棄了專用的復(fù)分解芯片,在降低系統(tǒng)硬件設(shè)計復(fù)雜度的同時縮小了PCB板的體積以及系統(tǒng)功耗。利用數(shù)據(jù)提取、緩存、還原等處理方式,去除異步采樣帶來的數(shù)據(jù)傳輸帶寬增加的弊端。實現(xiàn)在有限的無線微波傳輸帶寬、有限的體積內(nèi)部多種同步異步數(shù)據(jù)的高可靠性傳輸。
0 引言
隨著通信技術(shù)的發(fā)展,數(shù)據(jù)通信的數(shù)據(jù)傳輸帶寬從2G、3G到4G,光纖通信的數(shù)據(jù)帶寬也從原先的155 M、622 M、1.25 G發(fā)展到現(xiàn)在的10 G、100 G甚至是上TB,單波長光纜中傳輸?shù)臄?shù)據(jù)量越來越大。在無線數(shù)據(jù)傳輸方面雖然其傳輸數(shù)據(jù)的頻率提高了,但是基于無線傳輸特性,其能提供的信號帶寬有限。本文針對系統(tǒng)傳輸帶寬、設(shè)備體積功耗有限制應(yīng)用的場所提出了一種基于ALTERA FPGA的高速串口(SERDES)數(shù)據(jù)處理、傳輸解決方案。
1 Cyclone IV收發(fā)器體系結(jié)構(gòu)
ALTERA(已被Intel收購)作為FPGA器[1]件的元老級廠商,其可編程芯片從最初的MAX系列CPLD到低端Cyclone系列FPGA,再到之后的中、高端ARRIA、STRARIX系列FPGA,為數(shù)字信號設(shè)計、處理提供一系列的從低端到高端的解決方案。從Cyclone系列開始其FPGA就內(nèi)部自帶SERDES(高速串行收發(fā)器)軟核。
Cyclone IV GX 器件內(nèi)嵌最多八個全雙工收發(fā)器,運(yùn)行在 600 Mbps 到 3.125 Gbps 的串行數(shù)據(jù)速率上。每個通道都支持PCI Express(PCIE)、千兆以太網(wǎng)(GBE)、通用公共無線接口(CPRI)、串行數(shù)據(jù)接口(SDI)、Serial RapidIO(SRIO)、串行高級技術(shù)附件(SATA)等協(xié)議。每四個全雙工的收發(fā)器通道組成一個收發(fā)器模塊。
每個收發(fā)器通道均由一個發(fā)送數(shù)據(jù)通路和一個接收數(shù)據(jù)通路組成。每個數(shù)據(jù)通路又由PMA(物理介質(zhì)附加子層)和PCS(物理編碼子層)兩部分組成。其中PMA包括 I/O 緩沖器的模擬電路、時鐘數(shù)據(jù)恢復(fù)(CDR)、串行器/解串器(SERDES)以及用于優(yōu)化串行數(shù)據(jù)通道性能的可編程預(yù)加重與均衡;PCS包括所支持協(xié)議的收發(fā)器中的數(shù)字功能的硬核邏輯實現(xiàn)。FPGA 架構(gòu)中的輸出并行數(shù)據(jù)通過發(fā)送器的 PCS和PMA進(jìn)行傳輸,并作為串行數(shù)據(jù)被發(fā)送。接收到的輸入串行數(shù)據(jù)通過接收器的PMA和PCS傳輸?shù)紽PGA架構(gòu)中。
2 異步數(shù)據(jù)數(shù)據(jù)壓縮的實現(xiàn)
傳統(tǒng)的異步數(shù)據(jù)(RS-232,RS-422,RS-485,以太網(wǎng))在通信系統(tǒng)中進(jìn)行傳輸主要是采用異步采樣的方式來實現(xiàn),根據(jù)奈奎斯特采樣定律(2),異步采樣的采樣時鐘(Fs)與被采樣數(shù)據(jù)信號波特率(Fdata)需要滿足如下關(guān)系:Fs>2Fdata。而在實際應(yīng)用中一般需要保證采樣頻率為信號最高頻率的2.56~4倍才有可能保證信號的可靠還原。在這種方式下,一個波特率為2 Mbps左右異步數(shù)據(jù)信號,在不考慮通道開銷的情況下,為了實現(xiàn)該信號的可靠傳輸需要占用的通道帶寬最小為5.12 M(2 Mbps×2.56),占用帶寬最少是數(shù)據(jù)實際速率的2.56倍,大大降低了數(shù)據(jù)傳輸?shù)耐ǖ览寐?,對于傳輸帶寬有限的微波信號傳輸來說是不可取的。
為了解決異步數(shù)據(jù)傳輸問題,提高傳輸通道的利用率,采用數(shù)據(jù)提取的方式對異步數(shù)據(jù)信號進(jìn)行處理,從而壓縮數(shù)據(jù)傳輸所需的通道帶寬。數(shù)據(jù)提取的核心思想為:采用高速異步時鐘,提取出異步數(shù)據(jù)信號中的有效數(shù)據(jù),去除冗余信息。具體實現(xiàn)操作上分串行異步數(shù)據(jù)(如RS-232,RS-422,RS-485等)和并行的異步數(shù)據(jù)(如以太網(wǎng)信號等)。
2.1 串行異步數(shù)據(jù)信號的提取
異步數(shù)據(jù)如RS-232、RS-422、RS-485等,采用單線串行方式傳輸,沒有與之同步的時鐘信號。這些數(shù)據(jù)只是在電平接口上不同,但是在數(shù)據(jù)格式上都采用了異步數(shù)據(jù)的數(shù)據(jù)格式:即1位低電平起始位+8位數(shù)據(jù)位+1位高電平停止位的格式,在沒有數(shù)據(jù)時保持高電平狀態(tài)。其數(shù)據(jù)格式見圖2。
從上圖可以看出異步數(shù)據(jù)大部分時間為固定的高電平,當(dāng)有數(shù)據(jù)時以低電平作為起始位,低電平之后的8 bit數(shù)據(jù)組成一個字節(jié)的有效數(shù)據(jù),之后又是高電平的停止位以及持續(xù)高電平的冗余數(shù)據(jù)位。這樣我們就可以采用異步采樣的方式,使用一個高速時鐘(在FPGA中具體實現(xiàn)時一般是采用8倍或者16倍的數(shù)據(jù)速率的采用時鐘)對該數(shù)據(jù)進(jìn)行提取,具體實現(xiàn)如下:
a)高速時鐘對數(shù)據(jù)進(jìn)行實時監(jiān)測;
b)當(dāng)數(shù)據(jù)突然由長時間高電平變成低電平,即表示數(shù)據(jù)到來;
c)此時開始對數(shù)據(jù)進(jìn)行采樣,持續(xù)的采取1bit起始和8bit的數(shù)據(jù)位;
d)采樣第十位數(shù)據(jù),并判斷該數(shù)據(jù)是否位高電平,如果高電平,則該次采樣數(shù)據(jù)有效,將采樣數(shù)據(jù)緩存并進(jìn)入下一個等待周期;如果該位為低電平,則判斷該次為誤觸發(fā),數(shù)據(jù)無效,丟棄所該次采樣數(shù)據(jù)并進(jìn)入下一個等待周期。
通過數(shù)據(jù)提取的方式,從異步串行數(shù)據(jù)中提取出有效數(shù)據(jù),舍棄大部分高電平冗余數(shù)據(jù),大大降低了后續(xù)數(shù)據(jù)傳輸所需的帶寬。
2.2 以太網(wǎng)數(shù)據(jù)的提取
以太網(wǎng)數(shù)據(jù)是經(jīng)過網(wǎng)口傳輸?shù)较到y(tǒng),一般要先經(jīng)過PHY芯片,實現(xiàn)串行數(shù)據(jù)流到并行數(shù)據(jù)流的轉(zhuǎn)換。在不需要關(guān)注網(wǎng)絡(luò)數(shù)據(jù)內(nèi)容只需要完成傳輸任務(wù)時,為了降低處理難度,可以直接對PHY接口輸出的信號進(jìn)行處理。一般與PHY連接的MII(百兆以太網(wǎng))/GMII(千兆以太網(wǎng))接口數(shù)據(jù)信號格式如下圖。
在數(shù)據(jù)接收端,網(wǎng)絡(luò)上的串行數(shù)據(jù)經(jīng)PHY芯片轉(zhuǎn)換成并行數(shù)據(jù),該并行數(shù)據(jù)與PHY芯片輸出的25 MHz/125 MHz(百兆以太網(wǎng)/千兆以太網(wǎng))時鐘同步,與時鐘同步的還有數(shù)據(jù)有效標(biāo)志RX_DV,該標(biāo)志在網(wǎng)絡(luò)開始有數(shù)據(jù)時被置高,并且一直保持為高電平直到數(shù)據(jù)結(jié)束;同樣以太網(wǎng)接口發(fā)數(shù)據(jù)時只需要將數(shù)據(jù)保持與發(fā)送時鐘(TX_CLK)同步,在數(shù)據(jù)發(fā)送期間確保發(fā)送使能(TX_EN)保持為高電平。在網(wǎng)絡(luò)空閑期間RX_DV和TX_EN為低電平,當(dāng)網(wǎng)絡(luò)為非全速率時,網(wǎng)絡(luò)大部分時間處于空閑狀態(tài),如果采用異步采樣的方式,百兆以太網(wǎng)需要的帶寬至少是200 Mbps,而且為了進(jìn)一步保證信號的正確傳輸,其異步采樣頻率還得進(jìn)一步提高。
由于以太網(wǎng)數(shù)據(jù)與時鐘同步,我們進(jìn)行數(shù)據(jù)提取時不再進(jìn)行異步采樣,可以直接使用接收時鐘(RX_CLK)對數(shù)據(jù)進(jìn)行同步采樣,將同步采樣到的數(shù)據(jù)存儲到緩存(FIFO)中,當(dāng)傳輸時直接從數(shù)據(jù)緩存中讀取數(shù)據(jù)即可。采用這種方式,即使是100 M全速率的網(wǎng)絡(luò),理論上其所需的傳輸帶寬也就只有100 Mbps。
3 基于Cyclone VI 的高速串口數(shù)據(jù)傳輸實現(xiàn)
數(shù)據(jù)提取完成后,下一步是實現(xiàn)數(shù)據(jù)的傳輸。目前采用的方法都是將多路數(shù)據(jù)復(fù)用成一路高速串行信號,再通過光纖進(jìn)行傳輸。復(fù)用主要有采用專用的復(fù)用芯片(HDMP1032/1034、TLK15XX(4)等)或者采用FPGA兩種方式實現(xiàn)。隨著FPGA技術(shù)的成熟,在對信號沒有特殊要求(實時性、信號抖動、信號時延)的情況下,由于實現(xiàn)的靈活性,F(xiàn)PGA內(nèi)部自帶的SERDES的實現(xiàn)信號復(fù)用的方式被越來越多設(shè)計人員青睞,。
在設(shè)計中為了靈活的調(diào)整數(shù)據(jù)所占帶寬,對于傳輸異步數(shù)據(jù)的緩存也采用FPGA內(nèi)部FIFO軟核實現(xiàn)。從數(shù)據(jù)輸入到最后數(shù)據(jù)還原輸出,其實現(xiàn)框圖如下
異步數(shù)據(jù)及網(wǎng)絡(luò)數(shù)據(jù)經(jīng)數(shù)據(jù)提取模塊,去除傳輸線路上的冗余數(shù)據(jù),保留有效載荷在FPGA內(nèi)部緩存;之后按照自定義的格式進(jìn)行打包。數(shù)據(jù)打包幀格式見圖5:主要包含幀界定符、總長度、有效長度、有效載荷及填充數(shù)據(jù)(冗余載荷)組成。幀界定符定義了一幀數(shù)據(jù)的起始位置,總長度定義了一幀數(shù)據(jù)的長度,有效長度表示該幀數(shù)據(jù)中有效載荷的數(shù)量,填充數(shù)據(jù)(冗余載荷)是為了使高速串口數(shù)據(jù)速率達(dá)到設(shè)定的速率而填充的冗余數(shù)據(jù)。在一個系統(tǒng)中如果所有數(shù)據(jù)其有效數(shù)據(jù)量為80 M,如果將SERDES軟核串行速率配置成1.25 G,則需要插入約1.17 G的冗余數(shù)據(jù)。
打包后的數(shù)據(jù)使用FPGA內(nèi)部SERDES IP軟核對數(shù)據(jù)包加上K碼、實現(xiàn)8 B/10 B變換、并/串轉(zhuǎn)換后以高速串行信號形式通過電纜或者光纖傳輸(目前一般是采用通用1.25 G、2.5 G或者更高速率光模塊實現(xiàn)遠(yuǎn)距離的光纖傳輸,Cyclone IV支持的最高速率為3.125G);收端接收到數(shù)據(jù)后同樣使用FPGA內(nèi)部的SERDES IP軟核完成對數(shù)據(jù)的串/并轉(zhuǎn)換、8 B/10 B解碼以及去除k碼、Reclock等,完成對數(shù)據(jù)的解碼,通過數(shù)據(jù)還原恢復(fù)出原始速率的異步數(shù)據(jù)、以太網(wǎng)數(shù)據(jù)并輸出。
4 實現(xiàn)過程中的問題
在實現(xiàn)中考慮到低功耗、小體積、高可靠性的要求,盡可能減少系統(tǒng)中器件的種類及數(shù)量,所有數(shù)據(jù)的FIFO使用FPGA內(nèi)部RAM實現(xiàn)。但是在具體調(diào)試時發(fā)現(xiàn)由于以太網(wǎng)網(wǎng)絡(luò)數(shù)據(jù)的突發(fā)性、不穩(wěn)定性,傳輸鏈路容易在數(shù)據(jù)量突然增大的時候產(chǎn)生網(wǎng)絡(luò)丟包的問題。解決這個問題有三種方式:一是增加網(wǎng)絡(luò)數(shù)據(jù)緩存,但是由于FIFO使用FPGA內(nèi)部RAM實現(xiàn),而FPGA內(nèi)部資源有限,即使在極限情況都有無法完全解決丟包問題;二是采用外部專用FIFO來進(jìn)行數(shù)據(jù)緩存,其存儲容量就不受FPGA限制,選用適當(dāng)?shù)钠骷阋詽M足網(wǎng)絡(luò)突發(fā)數(shù)據(jù)要求,但是由此帶來了系統(tǒng)體積及功耗的增加;三是增加傳輸數(shù)據(jù)占用的帶寬,但是這種方法對于有限數(shù)據(jù)帶寬的無線微波傳輸來說,增加了后端無線傳輸?shù)奶幚黼y度。最后在對FPGA程序進(jìn)行優(yōu)化,在不改變數(shù)據(jù)占用的有效帶寬的前提下,在FPGA資源利用和網(wǎng)絡(luò)丟包率之間進(jìn)行均衡,最大限度的利用FPGA內(nèi)部存儲資源,將系統(tǒng)丟包率降低至≤0.001‰,完全滿足了系統(tǒng)網(wǎng)絡(luò)信號的傳輸。
5 結(jié)束語
緊跟高速串行數(shù)據(jù)傳輸?shù)募夹g(shù)發(fā)展趨勢,利用FPGA內(nèi)部自帶SERDES軟核替代以往采用串并轉(zhuǎn)換芯片的硬件解決方案,有效地避開了硬件設(shè)計帶來的體積及功耗增加等弊端。同時在對數(shù)據(jù)采用提取、緩存、傳輸?shù)姆绞降倪^程中,將冗余數(shù)據(jù)去除,高速串行數(shù)據(jù)通道只傳輸數(shù)據(jù)的有效載荷,大大降低高速串行通道中的數(shù)據(jù)的有效帶寬,減小了對后端無線微波直傳的數(shù)據(jù)帶寬需求,從而降低了其設(shè)計難度及成本,具有一定的實際應(yīng)用意義。
參考文獻(xiàn):
[1]Cyclone IV 器件手冊,卷2Cyclone IV 收發(fā)器體系結(jié)構(gòu): INTEL,2011.11
[2]現(xiàn)代通信原理 第四版:曹志剛 清華大學(xué)出版社
[3]Intel LXT971A 3.3v Dual_Speed Fast Ethernet PHY Transceiver datasheet,INTEL 2002
[4]TLK1501 0.6 TO 1.5GBPS TRANSCEIVER datasheet,TI,2002
本文來源于《電子產(chǎn)品世界》2018年第12期第75頁,歡迎您寫論文時引用,并注明出處。
評論