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