聲納信號處理中UDP協(xié)議數(shù)據(jù)傳輸研究與設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了在聲納系統(tǒng)中通過以太網(wǎng)口進(jìn)行大批量、高速率的數(shù)據(jù)傳輸處理,在FPGA中硬件實(shí)現(xiàn)了嵌入式UDP協(xié)議棧,完成了架構(gòu)設(shè)計(jì)、軟件仿真驗(yàn)證及硬件實(shí)現(xiàn)。用FPGA硬件實(shí)現(xiàn)UDP協(xié)議棧,加速了網(wǎng)絡(luò)數(shù)據(jù)處理能力,使信號傳輸速率達(dá)到了80MB/s,實(shí)現(xiàn)了千兆級通信,很好地提高了聲納系統(tǒng)中數(shù)據(jù)傳輸速率和系統(tǒng)性能。同時(shí),用FPGA硬件實(shí)現(xiàn)UDP協(xié)議,棧減小了PCB版圖面積和布局布線復(fù)雜度,提高了開發(fā)效率,有效地降低了開發(fā)成本。
關(guān)鍵詞:UDP協(xié)議;FPGA;數(shù)據(jù)傳輸;信號處理
0 引言
UDP協(xié)議是一個(gè)簡單的面向數(shù)據(jù)報(bào)的傳輸層協(xié)議,提供不呵靠的傳輸層服務(wù)。它只負(fù)責(zé)將應(yīng)用數(shù)據(jù)打包交給網(wǎng)絡(luò)層,但是不保證數(shù)據(jù)報(bào)能正確到達(dá)。UDP協(xié)議提供了一種最簡單的基于數(shù)據(jù)包的、不可靠的傳輸機(jī)制。其特點(diǎn)是以數(shù)據(jù)包為最小傳輸單位,并且沒有任何流量控制機(jī)制,適合傳輸效率要求較高且對傳輸可靠性要求不高的情況。
現(xiàn)有XXX型號聲納系統(tǒng)需要實(shí)現(xiàn)Link口轉(zhuǎn)UDP格式數(shù)據(jù)傳輸,以滿足大批量、高速率的數(shù)據(jù)傳輸要求,現(xiàn)有的CPU和軟件協(xié)議棧無法滿足此要求。經(jīng)仔細(xì)研究,發(fā)現(xiàn)用FPGA硬件實(shí)現(xiàn)UDP協(xié)議棧,可以很好地提高數(shù)據(jù)傳輸速率,滿足該聲納系統(tǒng)的性能要求。本文實(shí)現(xiàn)了一種可配置、可重用的硬件UDP協(xié)議棧,完成了UDP協(xié)議的FPGA設(shè)計(jì):設(shè)計(jì)了UDP發(fā)送端模塊,UDP接收端模塊以及Link端模塊等,同時(shí)對所設(shè)計(jì)系統(tǒng)進(jìn)行了驗(yàn)證。經(jīng)過實(shí)際驗(yàn)證,系統(tǒng)數(shù)據(jù)通信速率達(dá)到了80 MB/s,實(shí)現(xiàn)了千兆級以太網(wǎng)通信,很好地提高了聲納系統(tǒng)中數(shù)據(jù)傳輸速率和系統(tǒng)的性能,滿足了XXX型聲納系統(tǒng)對大批量、高速率數(shù)據(jù)傳輸?shù)囊蟆2⑶?,此方案減小了PCB版圖面積和布局布線復(fù)雜度,可以移植到任何其他的FPGA設(shè)計(jì)中,使開發(fā)效率得到了極大的提高,有效地降低了開發(fā)成本。
1 聲納系統(tǒng)信號處理中UDP協(xié)議的FPGA設(shè)計(jì)
1.1 UDP模塊設(shè)計(jì)
UDP包頭包括IP,端口號,UDP包長度,CHECKSUM四個(gè)部分。并且UDP信息包的標(biāo)題很短(標(biāo)題即頭部),只有8 B,其中,源端口(2 B)、目的端口(2 B)、長度(2 B)、校驗(yàn)碼(2 B)。這里設(shè)計(jì)的架構(gòu)通過發(fā)送端對數(shù)據(jù)進(jìn)行打包,通過接收端進(jìn)行解包。
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ù)進(jìn)行傳輸層協(xié)議UDP打包。傳輸層協(xié)議打包好的數(shù)據(jù)傳輸?shù)轿锢韺幽K,通過物理層調(diào)節(jié)芯片傳送到以太網(wǎng)口。發(fā)送完成后,發(fā)送模塊恢復(fù)空閑狀態(tài),等待下一次數(shù)據(jù)發(fā)送。在發(fā)送過程中,傳輸數(shù)據(jù)的IP地址是固定的。UDP發(fā)送過程沒
有可靠性的保證機(jī)制,只是進(jìn)行數(shù)據(jù)的打包傳輸。發(fā)送模塊結(jié)構(gòu)圖如圖2所示。
外部數(shù)據(jù)從以太網(wǎng)口經(jīng)過物理層傳入到接收端的數(shù)據(jù)緩沖區(qū)RAM中,外部數(shù)據(jù)是UDP格式的數(shù)據(jù)。接收模塊Rx從數(shù)據(jù)緩沖區(qū)RAM中提取數(shù)據(jù),在提取的過程中,Rx模塊中的應(yīng)用程序?qū)DP格式的數(shù)據(jù)的首部去除,只提取有效載荷部分。根據(jù)UDP數(shù)據(jù)包中的目的端口號,Rx將去UDP格式化的裸數(shù)據(jù)發(fā)送給Link口,完成接收端模塊的功能任務(wù),其示意圖如圖3所示。
1.2 Link模塊設(shè)計(jì)
在發(fā)送過程中,外部數(shù)據(jù)經(jīng)過Link口傳輸給發(fā)送模塊(Tx)進(jìn)行打包處理,然后傳輸至MAC。Link端模塊設(shè)計(jì)如圖4所示。
當(dāng)acki為0時(shí)開始進(jìn)行數(shù)據(jù)傳輸。工作時(shí),有3個(gè)時(shí)鐘輸入:Link口時(shí)鐘clk和clk270,以及系統(tǒng)本地時(shí)鐘clk4。其中,clk4的頻率是Link口時(shí)鐘的1/4。Link的時(shí)序效果圖如圖5所示,在時(shí)鐘的卜升沿與下降沿進(jìn)行數(shù)據(jù)存寫。雙倍速率的數(shù)據(jù)通過Link后被分為單倍速率的數(shù)據(jù)寫入U(xiǎn)DP發(fā)送端Tx中。從Link出來的數(shù)據(jù)傳入發(fā)送端Tx時(shí),時(shí)鐘每跳變一次,地址增加一次,發(fā)送端Tx將增加的地址寫入到數(shù)據(jù)緩沖區(qū)RAM中,進(jìn)行打包。
2 系統(tǒng)實(shí)現(xiàn)
本文在FPGA中對所設(shè)計(jì)的系統(tǒng)進(jìn)行了驗(yàn)證與硬件實(shí)現(xiàn)。發(fā)送過程的QuartusⅡ8.0仿真波形圖如圖6所示。
接收過程QuartusⅡ8.0仿真波形圖如圖7所示。
本系統(tǒng)中FPGA選用的是Altera公司的EP2S60F672C5。系統(tǒng)有3個(gè)時(shí)鐘域:系統(tǒng)時(shí)鐘、發(fā)送時(shí)鐘、接收時(shí)鐘。其時(shí)序分析結(jié)果如表1所示。
從表1中可以看出,系統(tǒng)時(shí)鐘為83.28 MHz,發(fā)送和接收時(shí)鐘分別達(dá)到93.57 MHz,79.16 MHz。因此,整個(gè)系統(tǒng)能夠滿足80 MB/s的速率要求。
3 結(jié)語
本文提出采用FPGA實(shí)現(xiàn)UDP協(xié)議棧,完成了架構(gòu)設(shè)計(jì)、軟件仿真驗(yàn)證及硬件實(shí)現(xiàn)。FPGA實(shí)現(xiàn)UDP協(xié)議棧的引入,加速了網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高了開發(fā)效率,降低了開發(fā)成本,很好地提高了聲納系統(tǒng)中數(shù)據(jù)傳輸速率和系統(tǒng)性能。