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