zoukankan      html  css  js  c++  java
  • 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个。

  • 相关阅读:
    python 练习洗牌
    python 生成二维码
    转载 HTTP协议
    分别使用python和java练习冒泡排序
    python-字符串
    [转]三层架构与MVC之间的区别
    [转]JAVA异常
    [转]JavaEE开发基础
    [转]JAVA对象容器
    数据库操作实例
  • 原文地址:https://www.cnblogs.com/cofin/p/9306770.html
Copyright © 2011-2022 走看看