通信协议 - 以太网 🚧
参考与致谢
本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。
嵌入式以太网硬件
一个嵌入式系统的以太网的硬件,主要是由这几个部分构成的:MAC 控制器、PHY 芯片、网络变压器和 RJ45 接头,有的系统还会有 DMA 控制器。
一般来说,CPU/MCU 会将 MAC 集成在片上(MAC 为数字电路,考虑芯片面积与架构的原因,一般会集成在片上),所以需要在外部设计的硬件是 PHY、变压器与接口。而在许多情况下,网络变压器也会集成进 RJ45 接头内。
MAC
MAC(媒体访问控制子层协议,Media Access Control)位于 OSI 七层结构中的数据链路层,主要负责控制与连接物理层的介质。MAC 遵循 IEEE-802.3 标准。
在发送数据的时候,MAC 协议可以事先判断是否可以发送数据,如果可以发送,则将给数据加上一些控制信息,随后将数据以及控制信息以规定的格式发送到物理层。
在接收数据的时候,MAC 协议首先判断输入的信息并是否发生传输错误。如果没有错误。则去掉控制信息发送至 LLC 层。
PHY
PHY 是物理接口收发器,以太网的物理层由它实现,PHY 由 IEEE-802.3 标准定义,包括介质独立接口 MII/GMII 子层、物理编码子层 PCS、物理介质附加子层 PMA、物理介质相关子层 PMD、MDI 子层。
PHY 在发送数据的时候,会收到从 MAC 传输过来的数据(对 PHY 来说,没有帧的概念,对它来说,都是数据而不管什么地址,数据还是 CRC。对于 100BaseTX 因为使用 4B/5B 编码,每 4bit 就增加 1bit 的检错码),然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去。收数据时的流程反之。典型的 PHY 内部结构框图如下所示(RTL8211E):