MAC和PHY - awokezhou/LinuxPage GitHub Wiki

MAC和PHY

ISO/OSI七层模型是典型的分层结构,每个层次只关心和完成属于自己层的特定任务,并且只和与它相关的层次产生联系,不能跨层进行数据交互,这就是Layered Architecture的特点

七层模型的第1层和第2层分别为物理层和数据链路层,用一句话概括这两层的作用

  • 物理层负责将信道中的电信号或者光信号转换成以高低电平为波形的数字信号(同时也负责反向转换)
  • 数据链路层负责接收物理层的数字电平信号,将其转换为1帧数据,通常为Ethernet Packet(同时也负责反向转换)

MAC(Media Access Control Layer,媒体访问控制子层)和PHY(Physical Layer,物理层),与物理层和数据链路层的关系如图1所示

其中数据链路层包括MAC子层和LLC(Logical Link Control,逻辑链路控制子层)

硬件形式

MAC和PHY在实际产品形态中,实际上是一个个的芯片,或者CPU集成,大概有这样几种模式

  • CPU内部集成MAC和PHY,对外引脚直接连接物理端口
  • CPU内部集成MAC,外置PHY芯片
  • MAC和PHY为一个独立芯片,与CPU连接

最常见的形式为第2种,此时CPU的内置MAC对外表现为以太网控制器Ethernet Controler,以太网控制器通过数据线与PHY芯片进行数据交互,通过控制线对PHY芯片进行控制,通常以太网控制器是通过中断方式通知CPU数据的到来,以太网控制器的中断信号一般接到CPU内部的中断控制器,中断控制器再发送给Core,数据的接收通常是通过DMA方式,直接将以太网控制器的buffer映射到内存中的DMA缓冲区,软件上直接读取这个DMA缓冲区就可以获取接收到的数据(关于数据收发过程中涉及到的中断控制、DMA操作以及linux的处理会专门写一篇文章)

PHY经常遇到的概念

  • Auto-Negotiation
  • Link Status
  • Transmitter/Receiver
  • EEE
  • PHY Address
  • Loopback
  • Duplex

MAC经常遇到的概念

  • VLAN
  • QoS
  • Pause
  • 802.1X
  • IGMP Snooping
  • Broadcast/Multicast/Unicast
  • MDIO

MII接口

MAC和和PHY最重要的部分,在于MAC和PHY的连接接口,该标准由IEEE 802.3 Standard 定义,叫做MII(Media Independent Interface,媒体独立接口)标准,主要包括两部分

  • 数据接口,有MII、GMII、RMII、SMII、RGMII、SGMII等
  • 管理接口,MDC/MDIO

MII

MII接口既是媒体独立接口的统称,也是其中一种接口,一共16根线

  • RXD[0:3],数据接收信号线
  • TXD[0:3],数据发送信号线
  • TX_ER,发送数据错误提示信号
  • RX_ER,接收数据错误提示信号
  • TX_EN,发送使能
  • RX_EN,接收使能
  • TX_CLK,发送参考时钟
  • RX_CLK,接收参考时钟

RMII

SMII

GMII

RGMII

SGMII