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、MII
(Media Independent Interface)接口
时钟接口 TX_CLK RX_CLK 25M(100M)数据接口 TXD[3:0] TX_EN TX_ER RXD[3:0] RX_DV RX_ER 控制接口
MDC/MDIOCRS
载波侦测COL
冲突检测 3
、需要了解TCP/IP协议,UDP协议,ICMP协议
以太网帧
前序,以太网帧头,
0x55*7,0xd5共8byte.目的
MAC地址,源地址MAC分别为6个byte.协议类型,比如
0x0800,表示IP协议帧,0x0806表示ARP帧。FCS
为4byte校验序列。网络长度为以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的. IP
报文如下
1
、4位版本,表示IPV4。2、包头长度
4,为4*5=20字节,表示IP帧头有20字节。3、16
位总长度,字段为16进制表示,报文总长度,不含最后帧的FCS校验。4、8
位生存时间,表示数据包在网络上生存多久,每通过一个路由器该值减一,为
0时将被路由器丢弃。TTL<64 128< TTL<256表示LINUX操作系统,64<TTL<128表示WINDOWS系统。5、8
位协议,16进制表示,常用的协议及其十进制数值包括
ICMP(1)、TCP(6)、UDP(17)。6、16
位首部校验和,对IP包头的4*5包头进行校验。为了计算一份数据报的
IP检验和,首先把检验和字段置为0。然后,对首部中每个16位进行二进制反码求和。7、32
为源IP,目的IP,十六进制表示。8、选项和数据表示
IP层之上的数据包。UDP
报文
1
、16位UDP长度,表示整个UDP包字节数。2
、16为校验和,伪头部( 4byte
源IP地址 + 4byte目的IP地址 + 0x00 + 1byte协议 + UDP长度(2byte)4byte源IP地址 + 4byte目的IP地址 + 0x00 + 1byte协议(0x11
)+ UDP
长度(2byte))和整个报文的校验。UDP
数据报文的长度可以为奇数字节,所以在计算校验和时需要在最后增加填充字节
0,(
填充字节只是为了计算校验和,可以不被传送)。计算方法,将校验和先置
0,然后对整个字段反码求和。当然UDP报文检验字段也可以为0,在
UDP传输协议中,校验和是可选的,当校验和字段为
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 identifier,sequence number。IMCP包头为8字节; 4、FPGA
系统结构
5、PHY
芯片 PHY 88E1111 GMII 88E1116R RGMII RTL8201 MII LAT971A MII MDIO/MDC
时序(读模式)
6、软件工具 设置
PC,基于网路的数据,必须包含MAC地址和IP地址,对于点对点的通信,必须设置IP,MAC地址的对应。
Wireshark
抓数,对于正确的以太网数据包,可以查看到网络包的数据格式,包括mac数据,IP数据,udp数据。
网络调试工具 用NETassist
工具,可以方便的实现网络层之上的数据收发,可以看到数据回环得到了验证。
应用平台 :红 {MOD}飓风NANO2
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------更多了解,请关注:链接在附件里面NANO2用户资料链接 NANO2
论坛链接 NANO2开箱视频演示 关于这款开发板,请关注新浪微博及博客
一周热门 更多>