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