回答

收藏

NANO2开发板实例之__FPGA实现UDP数据收发数据

FPGA/DSP FPGA/DSP 1549 人阅读 | 0 人回复 | 2014-03-25

?NANO2开发板实例之__FPGA实现UDP数据收发数据
?
?
?
1、首先需要了解网络分层结构,直接看图,分层架构已经很清晰了。
?
?
?
?
?
?
了解一下这些名词
UDP(User?Datagram?Protocol)用户数据包协议
?
?
IP(Internet?Protocol(网络之间互连的协议))
MAC(MediaAccessControl,媒体访问控制,数据链路层)
PHY(Physical?Layer?Device物理层)??
?
?
?
?
?
1、需要了解MAC层和PHY的硬件接口,只介绍GMII,MII,其它类似
?
网络接口GMII/MII?
MAC(MediaAccessControl?)层和PHY层链接接口GMII?(Gigabit?Medium?Independent?Interface)
?
?
?
时钟接口
???GTX_CLK??125M
????RX_CLK????125M
数据接口
??TXD[7:0]?RXD[7:0]
??TX_EN,?发送数据使能
??TX_ER,发送数据错误?
???RX_DV,??接收数据有效
??RX_ER?接收出错指示
?
MDIO/MDC?控制接口
???MDC为控制时钟
???MDIO控制数据
?
2、MIIMedia?Independent?Interface)接口

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
时钟接口
???TX_CLK?RX_CLK?25M(100M)
数据接口
???TXD[3:0]
???TX_EN
???TX_ER
???RXD[3:0]
???RX_DV
???RX_ER
????
控制接口??MDC/MDIO
CRS??载波侦测
COL?冲突检测
?
3、需要了解TCP/IP协议,UDP协议,ICMP协议
?

?
以太网帧
?
前序,以太网帧头,0x55*7,0xd58byte.
目的MAC地址,源地址MAC分别为6byte.
协议类型,比如0x0800,表示IP协议帧,0x0806表示ARP帧。
FCS4byte校验序列。
网络长度为以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的.?
IP报文如下

?
14位版本,表示IPV4
2、包头长度4,为4*5=20字节,表示IP帧头有20字节。
3、16位总长度,字段为16进制表示,报文总长度,不含最后帧的FCS校验。
4、8位生存时间,表示数据包在网络上生存多久,每通过一个路由器该值减<span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; ">一,为0时将被路由器丢弃。<font face="Times New Roman">TTL6、16位首部校验和,对IP包头的4*5包头进行校验。为了计算一份数据报的IP检验和,首先把检验和字段置为0。然后,对首部中每个16位进行二进制反码求和
7、32为源IP,目的IP,十六进制表示。
8、选项和数据表示IP层之上的数据包。
UDP报文

???        116UDP长度,表示整个UDP包字节数。
216为校验和,伪头部(?4byteIP地址?+?4byte目的IP地址?+?0x00?+?1byte协议?+?UDP长度(2byte)4byteIP地址?+?4byte目的IP地址?+?0x00?+?1byte协议(0x11+?UDP长度(2byte))和整个报文的校验。UDP数据报文的长度可以为奇数字节,所以在计算校验和时需要在最后增加填充字节0,(填充字节只是为了计算校验和,可以不被传送)计算方法,将校验和先置0,然后对整个字段反码求和。当然UDP报文检验字段也可以为0UDP传输协议中,校验和是可选的,当校验和字段为0时,表明该UDP报文未使用校验和,接收方就不需要校验和检查了,tcp详解,卷1书上有一句话:如果校验和的计算结果为0,则存入的值为全1(65535),这在二进制反码计算中是等效的
3、数据字节数最大为1472字节,最小为**字节;最好为最好不要超过512个字节
TCP报文

?
ICMP报文

?
1、类型字段,比如Ping请求,0x08,Ping相应0x00.
2、代码段,网络不可到达(Code=0)、主机不可到达(Code=1)、协议不可到达(Code=2)
3、检验和,对整个ICMP报文进行校验。
4、32bit?BE,LE?identifiersequence?numberIMCP包头为8字节;
?
?
4、FPGA系统结构
?

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
5、PHY芯片
??
???PHY??88E1111??????GMII
??????????88E1116R???RGMII
??????????RTL8201????MII
??????????LAT971A????MII
???MDIO/MDC时序(读模式)

?
?????????
?????????
?
?
?
?
?
?
?
6、软件工具
?
???设置PC,基于网路的数据,必须包含MAC地址和IP地址,对于点对点的通信,必须设置IPMAC地址的对应。

?
???

?
?
?
?
?
?
?
?
?
?
Wireshark抓数,对于正确的以太网数据包,可以查看到网络包的数据格式,包括mac数据,IP数据,udp数据。
?
?

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
网络调试工具
?
用NETassist工具,可以方便的实现网络层之上的数据收发,可以看到数据回环得到了验证。
?
?

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
应用平台?:红色飓风NANO2?

?
http://www.fpgadev.com/shop_view.asp?id=96
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
更多了解,请关注:
NANO2用户资料链接????http://yunpan.cn/QpNRkwW9ZFnek????????????????
NANO2?论坛链接??????http://www.zingsoc.com/forum/forum.php??????????
NANO2开箱视频演示http://v.youku.com/v_show/id_XNjgyMDM3NDQ0.html????
关于这款开发板,请关注新浪微博及博客
??????????????????????http://weibo.com/u/5061825906
??????????????????????http://blog.sina.com.cn/u/5061825906?
?
?
?
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条