原创 fpga控制phy片直接发送udp包的方法 2

2011-1-1 18:38 3439 4 5 分类: 通信

上回大概说了说大概流程,着重说了状态转换的条件,以及idle状态根据要发送的内容转到不同的状态的方法。

这次重点说说包头

preamble状态下需要92个clk,每个clk发送16进制的一位,也就是4bit,正好通过tx data的3..0输出


具体发什么呢

最正规的方法自然是根据tcpip的协议,先发ip包头再发udp包头,之后转data状态法数据

ip包头无外乎就是mac地址,ip,ip包长,check sum等等

udp包头则是ip,端口号,udp包长度,checksum等等

不过这个貌似太麻烦了。。稍微发错一位就很麻烦


这里推荐一个方法


第一步,找个抓包工具,比如wpe,sniffer,ethereal等等,随便抓一个udp包

第二部,找一个发包工具,打开抓到的这个udp包

第三步,用发包工具分析那个udp包,大概可以找出,发送ip,mac地址,端口号,包长等等

把这些数据按你的需要进行修改,发包工具会生成新的udp包并自动计算checksum

注意udp包长要修改为你要发送的数据的实际长度+8,ip包长再加20

8byte是udp包头长度,20是ip包头长度


ok,用发包工具发出去,同时用抓包工具抓抓看,看看行不行

ok的话用fpga就发送这样的包头就可以了

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2013-7-21 15:48

UDP需要计算checksum 的 !!!
相关推荐阅读
用户493796 2011-07-14 17:28
搭了个小nios系统费了1天功夫,手贱+犯sb的后果
刚才搭了个小nios系统锁定号memory的 start address为0之后,auto assign base address发现有一个外设的地址被设为5000-5200但系统中4000到4500...
用户493796 2011-06-16 11:48
今天调试的时候碰到的一个很囧的bug。。。
找焊接员手工焊了5块fpga板子,altera的 拿给我调试,一一测量了各路的电压输出点,无短路。 上电,烧程序,前三块正常,后两块烧不进去 把as模式改成jtag,还是烧不进去 量各路电压,一切正常...
用户493796 2011-06-01 11:29
从一个电子led屏程序bug看到的官僚作风
上周末出去玩,坐地铁回家的时候从北京南站出站;出站的时候看到了一个电子公告牌,上面写着 --------------------------- -  IP地址:188.188.69.1   - -  ...
用户493796 2011-05-06 19:57
对candance高速pcb设计教程的一些理解
最近刚开始用allegro画板 参考的教程是那本最流行的,如标题所示 感觉这本书写的还算比较好,照着一步步做,基本能把板子画下来 缺点么,有些部分写的重复了,会造成困扰,有些部分交代不够清楚,今后一点...
用户493796 2011-01-26 18:35
fpga控制phy片直接发送udp包的方法3
嗯,于是,该发送数据包了 发包的方法本来没啥可说的。。。想发什么数据,用txc往txd里打就行了 但有时候需要发送的数据可能来自另外一个模块,且宽度不是正好为4位(txd的宽度) 这时候就需要用一个双...
用户493796 2011-01-07 17:58
原来68013做数据采集的时候不需要外置fifo
很久很久以前做过一个68013的图像采集卡 当时发现,虽然68013内部有一个slave fifo,但是这个fifo貌似没法当作真正意义上的fifo用-- 每当pc读光ep2 fifo的数据之后,无论...
我要评论
1
4
关闭 站长推荐上一条 /3 下一条