RGMII测试笔记2 UDP协议 基于开发板MiS603-X25
2赞RGMII测试笔记2 UDP协议 基于开发板MiS603-X25
作者:汤金元 覃飞虎
日期:20150823
公司:南京米联电子科技有限公司
论坛:www.osrc.cn
博客:http://blog.chinaaet.com/whilebreak
在上一篇笔记中,本人测试了板卡的PHY部分通信可以稳定工作,那么接下来的工作就是测试下UDP通信协议了。首先本人想到的也是百度下UDP协议了。但是百度出来的结果简直眼花缭乱,没有标准,无从下手,下面本人列举下百度的结果。
百度百科:
UDP报文在IP数据包中的位置:
UDP报头:
IPV4协议报文头:
以上是本人检索的认为有价值的信息,但是,实在无法直接将这些信息消化掉。所以告诉各位一句话,网络不是万能的。
本设计完整的UDP数据结构:
PV4报头长度为20字节,并且本次测试程序接收后没有做任何处理。
UDP报头8字节
2字节源端口号,2字节目标端口号,2字节UDP长度,2字节UDP校验,本次程序中,校验和没有使用。
测试实验:
采用XCAP软件进行测试 软件下载地址:http://pan.baidu.com/s/1dD0gwP7
(1)打开XCAP软件,新建报文组和报文。
(2)双击报文,设置链路层参数。
(3)点击下一步,设置IP网络层参数。
(4)下一步,设置UDP端口。
(5)下一步,设置UDP发送数据。
(6)保存,回到首页,勾选要发送的报文,选择千兆网网卡和发送间隔。
程序分析
程序简析:
Ram的应用:
Chipscope抓取数据 UDP数据接收
(1)在上面第二幅图中,可以看见每一个data_o_valid脉冲,都对应着一个32位的UDP接收数据ram_wr_data。
(2)上图第二幅图中,接收了5个32位数据,最后1个数据不足4字节进行补0处理,第一个脉冲存06000000,第二个脉冲存12345678,第三个脉冲存00000000,第四个脉冲存00000000,第五个脉冲存00000000,(补齐了0),该接收与PC测试发送数据一致。
(3)由测试可以看出,在接收数据的同时,UDP数据即被存入RAM中,不耽误下一帧的接收,实现带宽最大化。
Chipscope抓取数据 UDP数据发送
PC端数据检测
对照XCAP接收到的数据,可以看出,发送结果和接收结果一致,另外可以通过观察数据包的结构核对UDP数据包结构。
源码地址:http://pan.baidu.com/s/1eQ97EKi