摘 要:為了在聲納系統(tǒng)中通過以太網(wǎng)口進行大批量、高速率的數(shù)據(jù)傳輸處理,在FPGA中硬件實現(xiàn)了嵌入式UDP協(xié)議棧,完成了架構(gòu)設(shè)計、軟件仿真驗證及硬件實現(xiàn)。用FPGA硬件實現(xiàn)UDP協(xié)議棧,加速了網(wǎng)絡(luò)數(shù)據(jù)處理能力,使信號傳輸速率達到了80 MB/s,實現(xiàn)了千兆級通信,很好地提高了聲納系統(tǒng)中數(shù)據(jù)傳輸速率和系統(tǒng)性能。同時,用FPGA硬件實現(xiàn)UDP協(xié)議,棧減小了PCB版圖面積和布局布線復雜度,提高了開發(fā)效率,有效地降低了開發(fā)成本。
關(guān)鍵詞:UDP協(xié)議; FPGA; 數(shù)據(jù)傳輸; 信號處理
中圖分類號: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協(xié)議[1-2]是一個簡單的面向數(shù)據(jù)報的傳輸層協(xié)議,提供不可靠的傳輸層服務(wù)。它只負責將應(yīng)用數(shù)據(jù)打包交給網(wǎng)絡(luò)層,但是不保證數(shù)據(jù)報能正確到達。UDP協(xié)議提供了一種最簡單的基于數(shù)據(jù)包的、不可靠的傳輸機制[3]。其特點是以數(shù)據(jù)包為最小傳輸單位,并且沒有任何流量控制機制[4],適合傳輸效率要求較高且對傳輸可靠性要求不高的情況。
現(xiàn)有XXX型號聲納系統(tǒng)需要實現(xiàn)Link口轉(zhuǎn)UDP格式數(shù)據(jù)傳輸,以滿足大批量、高速率的數(shù)據(jù)傳輸要求,現(xiàn)有的CPU和軟件協(xié)議棧無法滿足此要求。經(jīng)仔細研究,發(fā)現(xiàn)用FPGA[5]硬件實現(xiàn)UDP協(xié)議棧,可以很好地提高數(shù)據(jù)傳輸速率,滿足該聲納系統(tǒng)的性能要求。本文實現(xiàn)了一種可配置、可重用的硬件UDP協(xié)議棧,完成了UDP協(xié)議的FPGA設(shè)計:設(shè)計了UDP發(fā)送端模塊,UDP接收端模塊以及Link端模塊等,同時對所設(shè)計系統(tǒng)進行了驗證。經(jīng)過實際驗證,系統(tǒng)數(shù)據(jù)通信速率達到了80 MB/s,實現(xiàn)了千兆級以太網(wǎng)通信,很好地提高了聲納系統(tǒng)中數(shù)據(jù)傳輸速率和系統(tǒng)的性能,滿足了XXX型聲納系統(tǒng)對大批量、高速率數(shù)據(jù)傳輸?shù)囊蟆2⑶?,此方案減小了PCB版圖面積和布局布線復雜度,可以移植到任何其他的FPGA設(shè)計中,使開發(fā)效率得到了極大的提高,有效地降低了開發(fā)成本。
1 聲納系統(tǒng)信號處理中UDP協(xié)議的FPGA設(shè)計
1.1 UDP模塊設(shè)計
UDP包頭包括IP,端口號,UDP包長度,CHECKSUM四個部分[6]。并且UDP信息包[7]的標題很短(標題即頭部),只有8 B,其中,源端口(2 B)、目的端口(2 B)、長度(2 B)、校驗碼(2 B)。這里設(shè)計的架構(gòu)通過發(fā)送端對數(shù)據(jù)進行打包,通過接收端進行解包。
UDP協(xié)議的FPGA架構(gòu)如圖1所示。
發(fā)送端(Tx)是頭信息生成模塊,從Link口發(fā)出的數(shù)據(jù)傳入發(fā)送模塊Tx內(nèi)。然后,發(fā)送模塊Tx中的裸數(shù)據(jù)發(fā)送到數(shù)據(jù)緩沖區(qū)RAM中,經(jīng)由PartenGen模塊在數(shù)據(jù)前面添加首部,即為數(shù)據(jù)進行傳輸層協(xié)議UDP打包。傳輸層協(xié)議打包好的數(shù)據(jù)傳輸?shù)轿锢韺幽K,通過物理層調(diào)節(jié)芯片傳送到以太網(wǎng)口。發(fā)送完成后,發(fā)送模塊恢復空閑狀態(tài),等待下一次數(shù)據(jù)發(fā)送。在發(fā)送過程中,傳輸數(shù)據(jù)的IP地址[8]是固定的。UDP發(fā)送過程沒有可靠性的保證機制,只是進行數(shù)據(jù)的打包傳輸。發(fā)送模塊結(jié)構(gòu)圖如圖2所示。
圖1 UDP協(xié)議的FPGA模塊架構(gòu)
圖2 UDP發(fā)送模塊
外部數(shù)據(jù)從以太網(wǎng)口經(jīng)過物理層傳入到接收端的數(shù)據(jù)緩沖區(qū)RAM中,外部數(shù)據(jù)是UDP格式的數(shù)據(jù)。接收模塊Rx從數(shù)據(jù)緩沖區(qū)RAM[9]中提取數(shù)據(jù),在提取的過程中,Rx模塊中的應(yīng)用程序?qū)DP格式的數(shù)據(jù)的首部去除,只提取有效載荷部分。根據(jù)UDP數(shù)據(jù)包中的目的端口號,Rx將去UDP格式化的裸數(shù)據(jù)發(fā)送給Link口,完成接收端模塊的功能任務(wù),其示意圖如圖3所示。
圖3 UDP接收模塊
1.2 Link模塊設(shè)計
在發(fā)送過程中,外部數(shù)據(jù)經(jīng)過Link口傳輸給發(fā)送模塊(Tx)進行打包處理,然后傳輸至MAC。Link端模塊設(shè)計如圖4所示。
圖4 Link模塊架構(gòu)
當acki為0時開始進行數(shù)據(jù)傳輸。工作時,有3個時鐘輸入:Link口時鐘clk和clk270,以及系統(tǒng)本地時鐘clk4。其中,clk4的頻率是Link口時鐘的[10]1/4。Link的時序效果圖如圖5所示,在時鐘的上升沿與下降沿進行數(shù)據(jù)存寫。雙倍速率的數(shù)據(jù)通過Link后被分為單倍速率的數(shù)據(jù)寫入UDP發(fā)送端Tx中。從Link出來的數(shù)據(jù)傳入發(fā)送端Tx時,時鐘每跳變一次,地址增加一次,發(fā)送端Tx將增加的地址寫入到數(shù)據(jù)緩沖區(qū)RAM中,進行打包。
2 系統(tǒng)實現(xiàn)
本文在FPGA中對所設(shè)計的系統(tǒng)進行了驗證與硬件實現(xiàn)。發(fā)送過程的Quartus Ⅱ 8.0仿真波形圖如圖6所示。
圖5 Link時序效果圖
圖6 發(fā)送過程Quartus Ⅱ仿真波形圖
接收過程Quartus Ⅱ 8.0仿真波形圖如圖7所示。
圖7 接收過程Quartus Ⅱ仿真波形圖
本系統(tǒng)中FPGA選用的是Altera公司的EP2S60F672C5。系統(tǒng)有3個時鐘域:系統(tǒng)時鐘、發(fā)送時鐘、接收時鐘[11]。其時序分析結(jié)果如表1所示。
表1 時序分析結(jié)果
時鐘域頻率 /MHz
系統(tǒng)時鐘(sys_clk)83.28
發(fā)送時鐘 (mtx_clk)93.57
接收時鐘 (mrx_clk)79.16
從表1中可以看出,系統(tǒng)時鐘為83.28 MHz,發(fā)送和接收時鐘分別達到93.57 MHz,79.16 MHz。因此,整個系統(tǒng)能夠滿足80 MB/s的速率要求。
3 結(jié) 語
本文提出采用 FPGA 實現(xiàn)UDP協(xié)議棧,完成了架構(gòu)設(shè)計、軟件仿真驗證及硬件實現(xiàn)。FPGA 實現(xiàn)UDP協(xié)議棧的引入,加速了網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高了開發(fā)效率,降低了開發(fā)成本,很好地提高了聲納系統(tǒng)中數(shù)據(jù)傳輸速率和系統(tǒng)性能。
參 考 文 獻
[1][美]STEVENS W Richard.TCP/IP協(xié)議詳解[M].范建華,胥光輝,張濤,譯.北京:機械工業(yè)出版社,2000.
[2][美]WRIGHT G R,STEVENS W R.TCP/IP詳解[M].陸雪瑩,蔣慧,譯.北京:機械工業(yè)出版社,1999.
(上接第79頁)
[3][美]JONES M Tim.嵌入式系統(tǒng)TCP/IP應(yīng)用層協(xié)議[M].路小村,徐宏,譯.北京:電子工業(yè)出版社,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的嵌入式系統(tǒng)設(shè)計[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,F(xiàn)OROUZAN Sophia,CHUNG Fegan.Data communicatins and networking [M].吳時霖,譯.北京:機械工業(yè)出版社,2007.
[9]田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用教程[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年出生,湖南長沙人,碩士研究生。主要研究方向為高速嵌入式系統(tǒng)。
韓啟祥 男,江蘇鹽城人,碩士研究生。主要研究方向為高速嵌入式系統(tǒng)。
蔡惠智 男,研究員。主要研究方向為聲納、雷達系統(tǒng)設(shè)計、信號處理平臺設(shè)計。