摘 要:為了在聲納系統中通過以太網口進行大批量、高速率的數據傳輸處理,在FPGA中硬件實現了嵌入式UDP協議棧,完成了架構設計、軟件仿真驗證及硬件實現。用FPGA硬件實現UDP協議棧,加速了網絡數據處理能力,使信號傳輸速率達到了80 MB/s,實現了千兆級通信,很好地提高了聲納系統中數據傳輸速率和系統性能。同時,用FPGA硬件實現UDP協議,棧減小了PCB版圖面積和布局布線復雜度,提高了開發效率,有效地降低了開發成本。
關鍵詞:UDP協議; FPGA; 數據傳輸; 信號處理
中圖分類號:TN919.6-34
文獻標識碼:A
文章編號:1004-373X(2012)01-0078-02
Data transmission of UDP protocol in sonar signal processing
WANG Yu-cong, HAN Qi-xiang, CAI Hui-zhi
(Institute of Acoustics, Chinese Academy of Science, Beijing 100190, China)
Abstract:
UDP is a mainly used transport protocol for high speed data transmission in Internet. The embedded UDP protocol was implemented based on FPGA. The using of UDP protocol improved the communication quality of the sonar system significantly. At the same time, implementation based on FPGA can reduce cost effectively, integrate other function modules easily to improve system integration, also the PCB board area and routing complexity are reduced, and the system′s reliability is improved. Therefore, the study has much practicality value for the embedded design.
Keywords: UDP protocol; FPGA; data transmission; signal processing
收稿日期:2011-08-12
0 引 言
UDP協議[1-2]是一個簡單的面向數據報的傳輸層協議,提供不可靠的傳輸層服務。它只負責將應用數據打包交給網絡層,但是不保證數據報能正確到達。UDP協議提供了一種最簡單的基于數據包的、不可靠的傳輸機制[3]。其特點是以數據包為最小傳輸單位,并且沒有任何流量控制機制[4],適合傳輸效率要求較高且對傳輸可靠性要求不高的情況。
現有XXX型號聲納系統需要實現Link口轉UDP格式數據傳輸,以滿足大批量、高速率的數據傳輸要求,現有的CPU和軟件協議棧無法滿足此要求。經仔細研究,發現用FPGA[5]硬件實現UDP協議棧,可以很好地提高數據傳輸速率,滿足該聲納系統的性能要求。本文實現了一種可配置、可重用的硬件UDP協議棧,完成了UDP協議的FPGA設計:設計了UDP發送端模塊,UDP接收端模塊以及Link端模塊等,同時對所設計系統進行了驗證。經過實際驗證,系統數據通信速率達到了80 MB/s,實現了千兆級以太網通信,很好地提高了聲納系統中數據傳輸速率和系統的性能,滿足了XXX型聲納系統對大批量、高速率數據傳輸的要求。并且,此方案減小了PCB版圖面積和布局布線復雜度,可以移植到任何其他的FPGA設計中,使開發效率得到了極大的提高,有效地降低了開發成本。
1 聲納系統信號處理中UDP協議的FPGA設計
1.1 UDP模塊設計
UDP包頭包括IP,端口號,UDP包長度,CHECKSUM四個部分[6]。并且UDP信息包[7]的標題很短(標題即頭部),只有8 B,其中,源端口(2 B)、目的端口(2 B)、長度(2 B)、校驗碼(2 B)。這里設計的架構通過發送端對數據進行打包,通過接收端進行解包。
UDP協議的FPGA架構如圖1所示。
發送端(Tx)是頭信息生成模塊,從Link口發出的數據傳入發送模塊Tx內。然后,發送模塊Tx中的裸數據發送到數據緩沖區RAM中,經由PartenGen模塊在數據前面添加首部,即為數據進行傳輸層協議UDP打包。傳輸層協議打包好的數據傳輸到物理層模塊,通過物理層調節芯片傳送到以太網口。發送完成后,發送模塊恢復空閑狀態,等待下一次數據發送。在發送過程中,傳輸數據的IP地址[8]是固定的。UDP發送過程沒有可靠性的保證機制,只是進行數據的打包傳輸。發送模塊結構圖如圖2所示。
圖1 UDP協議的FPGA模塊架構
圖2 UDP發送模塊
外部數據從以太網口經過物理層傳入到接收端的數據緩沖區RAM中,外部數據是UDP格式的數據。接收模塊Rx從數據緩沖區RAM[9]中提取數據,在提取的過程中,Rx模塊中的應用程序將UDP格式的數據的首部去除,只提取有效載荷部分。根據UDP數據包中的目的端口號,Rx將去UDP格式化的裸數據發送給Link口,完成接收端模塊的功能任務,其示意圖如圖3所示。
圖3 UDP接收模塊
1.2 Link模塊設計
在發送過程中,外部數據經過Link口傳輸給發送模塊(Tx)進行打包處理,然后傳輸至MAC。Link端模塊設計如圖4所示。
圖4 Link模塊架構
當acki為0時開始進行數據傳輸。工作時,有3個時鐘輸入:Link口時鐘clk和clk270,以及系統本地時鐘clk4。其中,clk4的頻率是Link口時鐘的[10]1/4。Link的時序效果圖如圖5所示,在時鐘的上升沿與下降沿進行數據存寫。雙倍速率的數據通過Link后被分為單倍速率的數據寫入UDP發送端Tx中。從Link出來的數據傳入發送端Tx時,時鐘每跳變一次,地址增加一次,發送端Tx將增加的地址寫入到數據緩沖區RAM中,進行打包。
2 系統實現
本文在FPGA中對所設計的系統進行了驗證與硬件實現。發送過程的Quartus Ⅱ 8.0仿真波形圖如圖6所示。
圖5 Link時序效果圖
圖6 發送過程Quartus Ⅱ仿真波形圖
接收過程Quartus Ⅱ 8.0仿真波形圖如圖7所示。
圖7 接收過程Quartus Ⅱ仿真波形圖
本系統中FPGA選用的是Altera公司的EP2S60F672C5。系統有3個時鐘域:系統時鐘、發送時鐘、接收時鐘[11]。其時序分析結果如表1所示。
表1 時序分析結果
時鐘域頻率 /MHz
系統時鐘(sys_clk)83.28
發送時鐘 (mtx_clk)93.57
接收時鐘 (mrx_clk)79.16
從表1中可以看出,系統時鐘為83.28 MHz,發送和接收時鐘分別達到93.57 MHz,79.16 MHz。因此,整個系統能夠滿足80 MB/s的速率要求。
3 結 語
本文提出采用 FPGA 實現UDP協議棧,完成了架構設計、軟件仿真驗證及硬件實現。FPGA 實現UDP協議棧的引入,加速了網絡數據處理能力,提高了開發效率,降低了開發成本,很好地提高了聲納系統中數據傳輸速率和系統性能。
參 考 文 獻
[1][美]STEVENS W Richard.TCP/IP協議詳解[M].范建華,胥光輝,張濤,譯.北京:機械工業出版社,2000.
[2][美]WRIGHT G R,STEVENS W R.TCP/IP詳解[M].陸雪瑩,蔣慧,譯.北京:機械工業出版社,1999.
(上接第79頁)
[3][美]JONES M Tim.嵌入式系統TCP/IP應用層協議[M].路小村,徐宏,譯.北京:電子工業出版社,2003.
[4]CHUNG S M, LI C Y, LEE H H, et al. Design and implementation of the high speed TCP/IP offload engine [C]// Proceedings of the 7th International Symposium on Communications and Information Technologies. Sydney,NSW: IEEE, 2007: 574-579.
[5]任愛鋒,初秀琴.基于FPGA的嵌入式系統設計[M].西安:西安電子科技大學出版社,2004.
[6]COMER D E. Internetworking with TCP/IP [M]. 5th edition. [S.l.]: Prentice Hall, 2005.
[7]DOSTLEK L, KABELOVA. Understanding TCP/IP: a clear and comprehensive guide [M]. [S.l.]: Packt Publishing, 2006.
[8][美]BEHROUZ A,FOROUZAN Sophia,CHUNG Fegan.Data communicatins and networking [M].吳時霖,譯.北京:機械工業出版社,2007.
[9]田澤.嵌入式系統開發與應用教程[M].北京:北京航空航天大學出版杜,2005.
[10]Altera Corporation. Configuration handbook [M]. [S.l.]: Altera Corporation, 2005.
[11]ZHAN Bokai, YU Cheng-ye. TCP/IP offload engine(TOE) for an SOC system [M]. [S.l.]: Altera, 2005.
作者簡介:
王宇聰 男,1986年出生,湖南長沙人,碩士研究生。主要研究方向為高速嵌入式系統。
韓啟祥 男,江蘇鹽城人,碩士研究生。主要研究方向為高速嵌入式系統。
蔡惠智 男,研究員。主要研究方向為聲納、雷達系統設計、信號處理平臺設計。