1. 今日摸鱼任务
需要学习使用ZYNQ的以太网传输SCPI指令 需要把PL PS两侧的都用起来(加油鸭!) |
呐呐呐 今天就先学一下基础知识呗 |
02_【逻辑教程】基于HDL的FPGA逻辑设计与验证教程V3.5.2.pdf 51 以太网相关通信接口详解 52 以太网(MAC)帧协议介绍 |
2. 以太网 MAC 层接口介绍
这些网口只是起到一个信号连接的作用,本身无主动通信的能力,一个典型的网络通信电路如下图所示
|
MAC的全称是 Media Access Control(媒体访问控制),它是数据链路层(Data Link Layer)中的一个子层,主要负责以下功能: 1. 帧的封装与解封:将上层(如IP层)的数据打包成帧(Frame),或从接收的帧中提取有效数据。 2. 物理寻址:通过MAC地址(如 3. 介质访问控制:协调多个设备共享同一物理介质(如以太网中的冲突检测CSMA/CD或无线网络中的CSMA/CA)。 |
数据通过串行方式发送
千兆以太网的位速率为 1.25Gbps 、百兆以太网的位速率为 125Mbps
|
PHY 芯片可实现并行以太网数据到符合以太网物理层链路数据传输格式的电平信号之间的转换
|
2.1 MII接口 |
2.2 GMIII接口 |
2.3 RGMII接口 |
RGMII 即 ReducedGMII ,是 GMII 的简化版本,将接口信号线数量从 24根减少到 14 根,时钟频率仍旧为 125MHz , TX/RX 数据宽度从 8 位变为 4 位。
为了保持 1000Mbps 的传输速率不变, RGMII 接口在时钟的上升沿和下降沿都采样数据 。
|
INPUT OUTPUT |
3. ACZ702 FPGA 以太网电路介绍
ACZ702 开发板 PL 侧通过一片 Realtek 的 RTL8211F-CG 以太网 PHY 提供对以太网连接的支持, RTL8211F-CG 是一片 10M/100M/1000Mbps自适应以太网收发器,提供 RGMII 接口的 MAC 连接。
|
3.1 RTL8211F-CG 芯片器件地址【PL】 |
以太网物理层芯片都有一个器件地址,该器件地址就是在介绍 PHY 管理接口 MDIO 时所说的 PHY 器件地址,该器件地址用来由 MDIO 主机(如 MAC 或处理器)寻址 MDIO 总线上连接的指定的 PHY 芯片。
RTL8211F-CG 芯片的地址分为固定部分和硬件可设定两部分。
器件地址共有 5 位 ,其中高 2 位为固定的 00,低三位通过三个地址设置脚在芯片上电或复位时候设置, 这三位分别对应 RTL8211F 芯片的 22 、 27 、 26 脚。
|
ACZ702 开发板上,这三个脚通过三个电阻分别上/下拉到了指定电平
摸鱼怪的是ACZ702 V2.1版本,找到对应的硬件图纸
ACZ702V2.1-231107.pdf
![]() |
PHY_ADDR0 和 PHY_ADDR2 通过电阻上拉到了高电平 , PHY_ADDR1 通过电阻下拉到了低电平,所以摸鱼怪的 PHY 器件地址为 00101。 |
未列出管脚均为无必要与 FPGA 连接的信号。
|
3.3芯片器件地址【PS】 |
这里是ENET1 |
4. 帧协议
以太网技术的正式标准是 IEEE 802.3 标准,规定了在以太网中传输的数据帧结构:
|
4.1 前导码和分隔(开始)符 |
这 8 个字节的值在任何以太网帧中都一样, 7 字节的前导码值为 0x55 , 1 字节的分隔符值为 0xD5 。
前导码存在的意义是为了标记一帧以太网帧即将开始传输,分隔符存在的意义是指示前导码传输完毕,接下来将要传输的就是正式的以太网帧的有用部分。
前导码的值为 7 字节的 0x55 , 0x55 用二进制表示就是 01010101b,前导码的意义就是驱动网络链路电平开始交替翻转,以标记帧的开始。
分隔符的值为 0xD5 , 0xD5 用二进制表示就是 11010101b 。
以太网 PHY 在将数据编码为以太网物理链路层的位传输信号时是从低位开始编码的,所以从信号链路的电平来看,先连续的产生 62 位 0 和 1 交替变化的电平,最后再以2 位连续的高电平来标记以太网数据帧部分的到来。
|
4.2 MAC 地址 |
硬件地址或物理地址,是一个48位的全球唯一标识符(前24位为厂商ID,后24位由厂商分配) |
4.3 数据和填充字段 |
该段数据长度至少为 46 个字节,而最多不超过 1500 个字节。
整个以太网帧的数据长度最小为 64 字节,最多1518个字节。【不含前8个字节】
|
最小数据帧的设计原因和以太网电缆长度(以太网的最大长度限制为 2500m)有关,为的是让两个相距最远的站点能够感知到双方的数据发生了碰撞;最远两端数据的往返时间就是争用期,以太网设计者规定的争用期是 51.2us ( 10M 以太网传输 64byte 数据的时间,该时间是有考虑到充足的裕量)。
|
太网长度为 1518,那有效传输效率=1460/1518=96% 通过比较,选择较大的帧长度,有效传输效率更高。而更大的帧长度同时也会造成上述的问题,可能是基于这些考虑,选择了一个折中的1518 字节。对应的 IP packet 就是 1500 字节。
|
4.4 校验序列 |
CRC32 进行计算,得到一个 32 位的数,附加在数据和填充字段的结尾发送。
若不同则意味着该帧数据中肯定有至少 1 位数据的值在传输过程中发生了变化,整个这一帧会被舍弃。
|