资讯详情

以太网驱动详解之一 MAC、MII、PHY 详解

由于芯片缺货,公司最初使用ksz9031 phy芯片价格飙升,决定换用LAN8720 PHY芯片。KSZ9031提供的是RGMII接口支持10/100/10000Mbps,使用千兆网时,硬件需要RGMII接口应用程序提供125MHZ参考时钟信号,使用4个差异对;作为百兆网,使用MII接口,25MHZ参考时钟信号,只使用差异对A和B。而LAN8720A具有RMII接口的10/100Base-T/TX以太网收发器。以下是从硬件的角度对网络通信的物理层MAC—>PHY—>变压器—>RJ45等。

从硬件的角度来看,以太网是由CPU,MAC,PHY由三部分组成,如下图所示:

在实际设计中,上述三个部分不一定是独立的,因为PHY包含大量的模拟器件,MAC考虑到芯片面积和模拟/数字混合架构,将是典型的数字电路MAC集成进CPU而将PHY这种结构是片外最常见的。

下图为网络接口内部结构图,虚框表示CPU,MAC集成在CPU中,PHY芯片通过MII接口与CPU上的MAC连接:

以太网采用带冲突检测的载波帧听多路访问(CSMA/CD)机制。在以太网中传输数据时,按以下步骤进行: 1.帧听信道上是否有信号传输。如果有,说明信道处于忙碌状态,继续帧听,直到信道闲置。 2.如果没有帧听到任何信号,则传输数据 3.传输时继续帧听。如果发现冲突,执行退出算法。随机等待一段时间后,重新执行步骤1(当冲突发生时,涉及冲突的计算机会发送将返回帧听信道状态)。每台计算机只允许一次发送一个包和一个拥塞序列来警告所有节点。 4.如果没有发现冲突,则发送成功。在试图再次发送数据之前,所有计算机必须在最后一次发送后等待一段时间。

即媒体访问控制层协议。MAC由硬件控制器和MAC构成通信协议。该协议位于OSI数据链路层的下半部分主要负责控制和连接物理层的物理介质。MAC如下图所示:硬件框图:

发送数据时,MAC协议可以提前判断是否可以发送数据。如果可以发送,将在数据中添加一些控制信息,最终以规定的格式将数据和控制信息发送到物理层;接收数据时,MAC协议首先判断输入的信息是否有传输错误。如果没有错误,请删除控制信息并发送到LLC(逻辑链路控制)层。协议是以太网MAC由IEEE-802. 定义以太网标准。协议是以太网MAC由IEEE-802. 3以太网标准定义。一般以太网MAC芯片的一端连接PCI连接总线的另一端PHY芯片上通过MII接口连接。

二、MII

MII(Media Independent Interface)即媒体独立接口,MII 接口是 MAC 与 PHY 标准接口的连接。它是 IEEE-802.3 以太网行业标准的定义。MII 接口提供了 MAC 与 PHY 之间、PHY 与 STA(Station Management)该界面支持互联技术之间的互联技术 10Mb/s 与 100Mb/s 数据传输速率,数据传输位宽为 4 位。媒体独立 表明在不对 MAC 硬件重新设计或替换的情况下,任何类型的 PHY 所有设备都能正常工作。802.3 最多支持协议 32 个 PHY,但有一定的限制:符合协议要求 connector 特性。MII 接口如下图所示:

MII 接口主要包括四个部分:

一是从 MAC 层到 PHY 层发送数据接口;

二是从 PHY 层到 MAC 层接收数据接口;

三是从PHY 层到 MAC 层状态指示信号;

四是 MAC 层和 PHY 层之间传送控制和状态信息的 MDIO 接口。

从上图可知MII 包括数据接口和数据接口 MAC 和 PHY 管理是管理接口之间的管理接口MII相应解释管脚:

包括两个独立的信道,分别用于发送器和接收器。每个信道都有自己的数据、时钟和控制信号。MII 总共需要数据接口 16 包括信号 TX_ER(transmit coding error): TX_ER 同步于 TX_CLK,如果在数据传输过程中 TX_ER 有效超过一个时钟周期,此时TX_EN 是有效的,数据通道中传输的数据无效无用。注:当 TX_ER 有效性不影响工作 10Mb/s 的 PHY 或者 TX_EN 数据传输无效。注:当 TX_ER 有效性不影响工作 10Mb/s 的 PHY 或者 TX_EN 无效时的数据传输。 MII 如果 TX_ER 未使用信号线,必须下拉接地。 TXD<3:0>(transmit data): TXD 由 RS 驱动,同步 TX_CLK,在 TX_CLK 和TX_EN 有效,TXD 上的数据被 PHY 接收,否则 TXD 的数据对 PHY 没有影响。 TX_EN: 发送使能。TX_EN 由 Reconciliation 子层根据 TX_CLK 上升沿同步转换。 TX_CLK(transmit clock): TX_CLK (Transmit Clock) 它是一个连续的时钟信号(即系统启动,信号始终存在),它是 TX_EN、TXD、TX_ER(信号方向为从 RS 到 PHY)参考时钟,TX_CLK 由 PHY 驱动 TX_CLK 时钟频率是数据传输速率 25%,偏差 ±100ppm。例如,100Mb/s 模式下,TX_CLK 时钟频率为 25MHz,占空比在 35% 至 65% 之间。 COL(collision detected): COL 参考时钟不需要同步。The behavior of the COL signal is unspecified when the duplex mode bit0.8 inthe control register is set to a logic one(禁止自动协商,人工设置为全双工模式), or when the Auto-Negotiation process selects a full duplex mode of operation。即半双工模式信号有效,全双工模式信号无效。 RXD<3:0>(receive data): RXD由RS驱动,同步于 RX_CLK,在 RX_CLK 和 RX_DV 有效,RXD 上的数据被RS 接收,否则 RXD 的数据对 RS 没有影响。While RX_DV is de-asserted, the PHY may provide a False Carrier indication by asserting the RX_ER signal while driving the value <1110> onto RXD<3:0>。 RX_ER(receive error): RX_ER 同步于 RX_CLK,其在 RX 通道于通道的功能 TX_ER 对于 TX 通道数据传输的影响。 RX_CLK: 它与 TX_CLK 有相同的要求,区别在于它是 RX_DV、RXD、RX_ER(信号方向是从 PHY 到 RS)参考时钟。RX_CLK 同样是由 PHY 驱动,PHY 时钟可以从收到的数据中提取 RX_CLK,也有可能以一个名义参考时钟(e.g., the TX_CLK reference)来驱动RX_CLK。 CRS(carrier sense): CRS 只要通道有发送或接收过程,就不需要与参考时钟同步,CRS 需要有效。The behavior of the CRS signal is unspecified when the duplex mode bit0.8 inthe control register is set to a logic one(禁止自动协商,人工设置为全双工模式), or when the Auto-Negotiation process selects a full duplex mode of operation,即半双工模式信号有效,全双工模式信号无效。 RX_DV(eceive Data Valid): RXD_DV 同步于 RX_CLK,被 PHY 驱动,它的作用如同于发送通道中的 TX_EN,不同的是在时序上稍有一点差别:为了让数据能够成功被RS接收,要求RXD_DV有效的时间必须覆盖整个 FRAME 的过程,即starting no later than the Start Frame Delimiter (SFD) and excluding any End-of-Frame delimiter。 MII以4位半字节方式传送数据双向传输,时钟速率25MHz。其工作速率可达100Mb/s。

       

        是个双信号接口,通过管理接口,MAC 就能监视和控制 PHY。其管理是使用 SMI(Serial Management Interface) 总线通过读写 PHY 的寄存器来完成的。一个是时钟信号(***MDC (management data clock)***)。另一个是数据信号(***MDIO (management data input/output)***)。         MDC: 由站管理实体向 PHY 提供,作为在 MDIO 信号上传送信息的定时参考。 MDC 是一种非周期性的信号,没有最高或最低时间。 无论 TX_CLK 和 RX_CLK 的标称周期如何,MDC 的最小高低时间应为 160 ns,MDC 的最小周期为 400 ns。         MDIO: 是 PHY 和 STA 之间的双向信号。 它用于在 PHY 和 STA 之间传输控制信息和状态。 控制信息由 STA 同步地针对 MDC 驱动并且由 PHY 同步地采样。 状态信息由 PHY 针对 MDC 同步驱动并由 STA 同步采样。

        PHY 里面的部分寄存器是 IEEE 定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC 通过 SMI 总线不断的读取PHY 的状态寄存器以得知目前 PHY 的状态。例如连接速度、双工的能力等。当然也可以通过 SMI 设置 PHY的寄存器达到控制的目的。例如流控的打开关闭、自协商模式还是强制模式等。

        不论是物理连接的MII总线和 SMI 总线还是 PHY 的状态寄存器和控制寄存器都是由IEEE的规范的。因此不同公司的 MAC 和 PHY 一样可以协调工作。当然为了配合不同公司的 PHY 的自己特有的一些功能,驱动需要做相应的修改。

        MAC 通过MIIM 接口读取PHY 状态寄存器以得知目前PHY 的状态。例如连接速度、双工的能力等。也可以通过 MIIM设置PHY的寄存器达到控制的目的。例如流控的打开关闭、自协商模式还是强制模式等。MII以4位半字节方式传送数据双向传输,时钟速率25MHz。其工作速率可达100Mb/s。当时钟频率为2.5MHz时,对应速率为10Mb/s。MII接口虽然很灵活但由于信号线太多限制多接口网口的发展,后续又衍生出RMII,SMII、GMII等(这部分将在后面章节介绍)。  

        PHY(Physical Layer)是IEEE802.3中定义的一个标准模块,STA(Station Management Entity,管理实体,一般为MAC或CPU)通过MIIM(MII Manage Interface)对PHY的行为、状态进行管理和控制,而具体管理和控制动作是通过读写PHY内部的寄存器实现的。

PHY的基本结构如下图:

        PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的概念,对它来说,都是数据)然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去,收数据时的流程反之。         PHY还有个重要的功能就是实现CSMA/CD的部分功能,它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将送数据出去.如果两个碰巧同时送出了数据,那样必将造成冲突,这时候冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据。

PHY寄存器的地址空间为5位,从0到31最多可以定义32个寄存器(随着芯片功能不断增加,很多PHY芯片采用分页技术来扩展地址空间以定义更多的寄存器),IEEE802.3定义了地址为0-15这16个寄存器的功能,地址16-31的寄存器留给芯片制造商自由定义,如下表所示:

note:

    上图B和E表示在特定接口下,寄存器是基本的还是扩展的。例如:MII接口下只有0和1寄存器是基本的,其它的是扩展的。所谓扩展是指留给IEEE以后的扩展特性用,不是给PHY厂商的扩展,PHY厂商自定义的只能是16~31号寄存器 。     在IEEE标准文档及某些PHY手册中,某寄存器的比特(bit)用X.y表示,如0.15表示第0寄存器的第15位。

四、网络变压器

1. 网络变压器的构成

  网络变压器一般由共模电感,中心抽头,变压器这三部分构成。我们常见的网络变压器有如下两种:

        其中中心抽头的接法需要根据PHY芯片来决定,电压驱动的就要接电源,电流驱动直接接个电容到地即可,具体还要参看芯片的datasheet和参考设计了。 还需要注意的是有的变压器中间抽头是独立的;有的是收发合并在一起的,设计的时候需要注意。

2. 网络变压器的作用

1.前面介绍了两种网络变压器的内部结构,下边来说说这两种变压器有什么区别及在原理图中该如何设计: ①.电压驱动型的PHY,2线共模电感可以放在PHY侧或线缆侧(RJ45)。 ②.电流驱动型的PHY,2线共模电感只能放在线缆侧(RJ45),因为电感会对电流驱动有阻碍作用,影响网络的传输。 2.网络变压器的作用: ①.滤除共模干扰:因为网络变压器有共模电感,所以能有效滤除共模干扰,增强信号质量,提高传输距离。 ②.隔离:因为有变压器的作用,信号是通过磁传播的,能有效隔离PHY端和RJ45端的直流分量。在外部不同电平是,网络变压器仅耦合交流信号,使电平与PHY端保持一致,保护PHY芯片。 ③抗干扰:PHY端的中心抽头可为信号提供直流偏置;或者为共模电流提供一个低阻抗路径。 ④优化波形:由于有共模电感及中心抽头电容或电源的存在,能有效的滤除信号中的杂波,优化传输波形。  

五、RJ45介绍

        RJ45由插头和插做组成,也就是我们常说的网口和网线。RJ45 网线插头又称水晶头,共有八芯做成,广泛应用于局域网和 ADSL 宽带上网用户的网络设备间网线(称作五类线或双绞线)的连接。RJ45网络传输线分为直通线、交叉线和全反线。直通线用于异种网络设备之间的互连,例如,计算机与交换机。交叉线用于同种网络设备之间的互连,例如,计算机与计算机。全反线用于超级终端与网络设备的控制物理接口之间的连接。下面将介绍一下各线的作用和区别。 1.直通线:又叫正线或标准线,两端采用568B做线标准,注意两端都是同样的线序且一一对应。直通线是应用最广泛,现在最常用的线。不同设备之间,比如路由器和交换机、PC和交换机等。 2.交叉线:又叫反线,线序按照一端568A,一端568B的标准排列好线序,并用RJ45水晶头夹好。交叉线一般用于相同设备的连接,比如路由器和路由器、电脑和电脑之间;很多也支持直通线了,但建议还是使用交叉线。 3.568B线序:① 白-橙、② 橙、③ 白-绿、④ 蓝、⑤ 白-蓝、⑥ 绿、⑦ 白-棕、⑧ 棕。 口诀1:橙蓝绿棕,浅色在前,三五互换。 口诀2:白橙橙,白绿蓝,白蓝绿,白棕棕 4.568A线序:① 白-绿、② 绿、③ 白-橙、④ 蓝、⑤ 白-蓝、⑥ 橙、⑦ 白-棕、⑧ 棕 口诀1:绿蓝橙棕,浅色在前,三五互换 口诀2:白绿绿,白橙蓝,白蓝橙,白棕棕

1.不带变压器RJ45线序

下图为RJ45内部不带变压器座子的线序,即网线的线序:

2.带变压器RJ45线序

下图为RJ45内部带变压器座子的线序:

六、以太网的PCB设计

1.RJ45和变压器之间的距离尽可能的短,器件布局的原则是通常按照信号流向放置,切不可绕来绕去; 2.靠近PHY芯片侧网络变压器中心抽头对地的滤波电容要尽量靠近变压器管脚,保证引线最短,分布电感最小。 3.靠近接口侧网络变压器中心抽头的电阻和电容靠近中心抽头放置,走线短而粗(≥15mil); 4.变压器时磁隔离元件,变压器下边禁止走线,铺铜,需要挖空处理。 5.由于网络传输的是差分模拟信号,在走线时尽量要保持差分对平行、等长、短距,避免过孔、交叉。 6.在远距离传输时需要对差分对进行阻抗控制,通常阻抗控制在100Ω±10%。 7.在RJ45尽量靠近端口侧放置保护器件。  

标签: 高平8角继电器座子pf083a共模电感t10两芯过孔连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台