一、网络结构
- 计算机网络的层级结构如下图所示:
- 协议:传输层则包含UDP协议,TCP协议,网络层有arp协议和IP协议,数据链路层封装MAC帧,通过物理层的PHY物理收发芯片传输数据。
二、以太网
- 包括数据链层和物理层,数据链层可以细分为LLC层和MAC层。
- MAC层与物理层的接口分类
- MII:输入输出数据位宽为4bit,时钟频率为2.5MHz或者25MHz,故传输速率为10MHz或者100MHz。RMII是MII的简化版,减少了引脚,采用双沿采样。
- GMII:输入输出数据位宽为8bit,时钟频率为125MHz,支持1000Mbps,即千兆网。
- RGMII:输入输出数据位宽为4bit,在上升沿和下降沿都有采样,所以一个周期采样两次,而时钟频率为125MHz,所以传输速率仍为1000Mbps。由于采用双沿采样,软件实现比较复杂,但是引脚得到简化。
三、以太网简介
Ethernet是实现几种电脑连接的一种技术,也就是局域网技术的一种(IEEE802.3),是当今现有局域网采用的最通用的通信协议标准,它规范了包括物理层的连线、电子信号和介质访问层协议的内容。
- 以太网分类
- 标准以太网:10Mbps
- 快速以太网:100Mbps
- 千兆以太网:1000Mbps
- 万兆以太网:10Gbps
- 以太网接口
- 主要分为RJ45接口,RJ11接口,SC光纤接口。最常用的是RJ45接口(接电缆)和SC光纤接口(接光缆),光缆传输速度更高,但是成本更高。 RJ45接口:
- 10/100M的RJ45接口定义
- Pin1和Pin2是一对,Pin3和Pin6是一对,可实现全双工通信。接口处传输的是差分模拟信号,但是FPGA内部处理的是数字信号,所以需要将数字信号转换成差分模拟信号,这个功能是由板载的以太网PHY芯片来实现的。
- 1000M的RJ45接口定义
- Pin1和Pin2是一对,Pin3和Pin6是一对,Pin4和Pin5是一对,Pin7和Pin8是一对,并且都是双向数据线,可与百兆以太网接口兼容。
- 以太网连接示意图
工具:
- 小兵以太网测试工具:根据你的设置产生特定帧并通过你的电脑网卡发送出去。顺便计算IP报头校验和,UDP校验码。
- iperf:一款基于TCP/IP和UDP/IP的网络性能测试工具,它可以用来测量网络带宽和网络质量,还可以提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。
- wireshark:可以抓包,抓取你的网卡发送和接收的所有数据。
- crc32_cal:计算mac帧的校验码。结果是低位在前,高位在后。
- 网站:给出计算校验码的Verilog代码。
- 网络调试助手:可以接收帧,并只显示帧里面的用户数据段。