以太网模块
1、实验任务
上位机通过网口调试助手发送数据给FPGA,FPGA开发板通过以太网接口接收数据,并将接收到的数据发送给上位机,完成以太网数据的环回。
2、硬件模块
采用的是黑金的AN8211模块,和黑金的开发板。连接如下:
3、理论知识
以太网是目前应用最广泛的局域网通讯方式,同时也是一种协议。以太网协议定义了一系列软件和硬件标准,从而将不同的计算机设备连接在一起。 我们知道串口通信单次只传输一个字节, 而以太网通信是以数据包的形式传输, 其单包数据量达到几十, 甚至成百上千个字节。
以太网包数据格式
下图为以太网通过UDP( User Datagram Protocol,用户数据报协议)传输单包数据的格式,
从图中可以看出, 以太网的数据包就是对各层协议的逐层封装来实现数据的传输
这里注意我们以太网发送数据就是按照这个数据格式发送的,在后面我们使用WireShark抓包的过程中,我们可以清晰的看到接收到的数据格式。
数据:以太网中的数据段长度最小46个字节, 最大1500个字节。最大值1500称为以太网的最大传输单元( MTU, Maximum Transmission Unit),之所以限制最大传输单元是因为在多个计算机的数据帧排队等待传输时,如果某个数据帧太大的话,那么其它数据帧等待的时间就会加长,导致体验变差,这就像一个十字路口的红绿灯,你可以让绿灯持续亮一小时,但是等红灯的人一定不愿意的。另外还要考虑网络I/O控制器缓存区资源以及网络最大的承载能力等因素, 因此最大传输单元是由各种综合因素决定的。为了避免增加额外的配置, 通常以太网的有效数据字段小于1500个字节。
IP数据报格式
以太网包数据格式中包括IP首部&