摘要:為了在聲納系統(tǒng)中通過以太網(wǎng)口進(jìn)行大批量、高速率的數(shù)據(jù)傳輸處理,在fpga中硬件實現(xiàn)了嵌入式udp協(xié)議棧,完成了架構(gòu)設(shè)計、軟件仿真驗證及硬件實現(xiàn)。用fpga硬件實現(xiàn)udp協(xié)議棧,加速了網(wǎng)絡(luò)數(shù)據(jù)處理能力,使信號傳輸速率達(dá)到了80mb/s,實現(xiàn)了千兆級通信,很好地提高了聲納系統(tǒng)中數(shù)據(jù)傳輸速率和系統(tǒng)性能。同時,用fpga硬件實現(xiàn)udp協(xié)議,棧減小了pcb版圖面積和布局布線復(fù)雜度,提高了開發(fā)效率,有效地降低了開發(fā)成本。
引言
udp協(xié)議是一個簡單的面向數(shù)據(jù)報的傳輸層協(xié)議,提供不呵靠的傳輸層服務(wù)。它只負(fù)責(zé)將應(yīng)用數(shù)據(jù)打包交給網(wǎng)絡(luò)層,但是不保證數(shù)據(jù)報能正確到達(dá)。udp協(xié)議提供了一種zui簡單的基于數(shù)據(jù)包的、不可靠的傳輸機(jī)制。其特點是以數(shù)據(jù)包為zui小傳輸單位,并且沒有任何流量控制機(jī)制,適合傳輸效率要求較高且對傳輸可靠性要求不高的情況。
現(xiàn)有xxx型號聲納系統(tǒng)需要實現(xiàn)link口轉(zhuǎn)udp格式數(shù)據(jù)傳輸,以滿足大批量、高速率的數(shù)據(jù)傳輸要求,現(xiàn)有的cpu和軟件協(xié)議棧無法滿足此要求。經(jīng)仔細(xì)研究,發(fā)現(xiàn)用fpga硬件實現(xiàn)udp協(xié)議棧,可以很好地提高數(shù)據(jù)傳輸速率,滿足該聲納系統(tǒng)的性能要求。本文實現(xiàn)了一種可配置、可重用的硬件udp協(xié)議棧,完成了udp協(xié)議的fpga設(shè)計:設(shè)計了udp發(fā)送端模塊,udp接收端模塊以及l(fā)ink端模塊等,同時對所設(shè)計系統(tǒng)進(jìn)行了驗證。經(jīng)過實際驗證,系統(tǒng)數(shù)據(jù)通信速率達(dá)到了80mb/s,實現(xiàn)了千兆級以太網(wǎng)通信,很好地提高了聲納系統(tǒng)中數(shù)據(jù)傳輸速率和系統(tǒng)的性能,滿足了xxx型聲納系統(tǒng)對大批量、高速率數(shù)據(jù)傳輸?shù)囊?。并且,此方案減小了pcb版圖面積和布局布線復(fù)雜度,可以移植到任何其他的fpga設(shè)計中,使開發(fā)效率得到了極大的提高,有效地降低了開發(fā)成本。
1、聲納系統(tǒng)信號處理中udp協(xié)議的fpga設(shè)計
1.1udp模塊設(shè)計
udp包頭包括ip,端口號,udp包長度,checksum四個部分。并且udp信息包的標(biāo)題很短(標(biāo)題即頭部),只有8b,其中,源端口(2b)、目的端口(2b)、長度(2b)、校驗碼(2b)。這里設(shè)計的架構(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.2link模塊設(shè)計
在發(fā)送過程中,外部數(shù)據(jù)經(jīng)過link口傳輸給發(fā)送模塊(tx)進(jìn)行打包處理,然后傳輸至mac。link端模塊設(shè)計如圖4所示。
當(dāng)acki為0時開始進(jìn)行數(shù)據(jù)傳輸。工作時,有3個時鐘輸入:link口時鐘clk和clk270,以及系統(tǒng)本地時鐘clk4。其中,clk4的頻率是link口時鐘的1/4。link的時序效果圖如圖5所示,在時鐘的卜升沿與下降沿進(jìn)行數(shù)據(jù)存寫。雙倍速率的數(shù)據(jù)通過link后被分為單倍速率的數(shù)據(jù)寫入udp發(fā)送端tx中。從link出來的數(shù)據(jù)傳入發(fā)送端tx時,時鐘每跳變一次,地址增加一次,發(fā)送端tx將增加的地址寫入到數(shù)據(jù)緩沖區(qū)ram中,進(jìn)行打包。
2、系統(tǒng)實現(xiàn)
本文在fpga中對所設(shè)計的系統(tǒng)進(jìn)行了驗證與硬件實現(xiàn)。發(fā)送過程的quartusⅱ8.0仿真波形圖如圖6所示。
接收過程quartusⅱ8.0仿真波形圖如圖7所示。
本系統(tǒng)中fpga選用的是altera公司的ep2s60f672c5。系統(tǒng)有3個時鐘域:系統(tǒng)時鐘、發(fā)送時鐘、接收時鐘。其時序分析結(jié)果如表1所示。
從表1中可以看出,系統(tǒng)時鐘為83.28mhz,發(fā)送和接收時鐘分別達(dá)到93.57mhz,79.16mhz。因此,整個系統(tǒng)能夠滿足80mb/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)性能。