fpga實現udp功能思路---【發送】


注:很多基礎內容並本文不做講解,重點講解fpga實現時需要注意的地方,沒有用IP。[就這樣]歡迎大家一起交流,Q群:912014800。

一。 實現的意義分析等。

  用fpga實現udp可以用來傳消息、圖片等,udp本身作為一種不可靠的傳輸,一般也就傳圖像什么的啦,暫時只講發送方向,也就是fpga向pc(或者其他。。)傳輸,學會了發送方向,接收就可以自己搞定啦。

二。效果展示

(1) 消息傳輸

  

  通過wireshark和網絡助手,可以抓到測試數據(目測沒有什么可解釋的)。

(2)圖像傳輸

    上位機顯示圖像(在此對徐大神表示感謝):

 

三。協議重點分析(只分析我認為比較重要的,是時候借用一些大牛的圖片了。。。需要注意的是,以下圖片紅色的部分是fpga需要計算的,在udp中需要長度信息[8+data_len],在ip頭中需要校驗和和長度信息[28+data_len])

(1)整體報文

注:最后的mac層就是要傳給phy芯片的數據。FCS采用crc32,注意計算的時序,MAC幀頭為7個0x55和一個0xD5。

(2)udp包頭

 

(3)ip包頭

四。模塊設計架構[懶得畫,直接看綜合后的吧]

模塊功能:用戶主要輸入給該模塊一個8bit位寬的包文,該模塊就可以把用戶的數據發給phy芯片[簡單,方便,以千兆網為例]。

五。參考資料

  自己看看相關udp的資料,結合小兵以太網發包工具可以更快速的理解,記得下載。其他軟件需要的自己去搜尋吧,大家加油。[完]

 六。 附錄

(1)crc 順序

 默認從最高位開始傳輸,調換順序后從最高位開始傳輸。

 

 

Ethernet II以太網幀格式:

目標MAC 源MAC 類型 數據 FCS
6字節 6字節 2字節 46-1500字節 4字節

所以最小6+6+2+46+4 = 64,最大6+6+2+1500+4 = 1518。
(注:ISL封裝后可達1548字節,802.1Q封裝后可達1522字節)

而udp頭和IP頭 占用28個 46-28 = 18 . 也就是說最小長度要大於等於18個。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM