Network 之二 Ethernet(以太网)中的 MAC、MII、PHY 详解 |
您所在的位置:网站首页 › mac协议 › Network 之二 Ethernet(以太网)中的 MAC、MII、PHY 详解 |
结构
从硬件的角度看,以太网接口电路主要由 MAC(Media Access Control,MAC)控制器和物理层接口 PHY(Physical Layer,PHY)两大部分构成。如下图所示: MAC 及 PHY 工作在 OSI 七层模型的数据链路层和物理层。具体如下 MAC(Media Access Control,MAC)即媒体访问控制。该部分有两个概念:MAC 可以指的是一个硬件控制器,也可以指 MAC 通信协议。该协议位于 OSI 七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。MAC 硬件大约就是下面的样子了: 关于协议,详见 Network 之五 TCP/IP 协议族、工作流程、(TCP、IP、MAC、VLAN)常用协议格式详解 在发送数据的时候,MAC 协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC 协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至 LLC(逻辑链路控制)层。该层协议是以太网 MAC,由 IEEE-802. 3 以太网标准定义。最新的 MAC 同时支持 10Mbps 和100Mbps 两种速率。 以太网数据链路层其实包含 MAC(介质访问控制)子层和 LLC(逻辑链路控制)子层。一块以太网卡 MAC 芯片的作用不但要实现 MAC 子层和 LLC 子层的功能,还要提供符合规范的 PCI 界面以实现和主机的数据交换。 MAC 从 PCI 总线收到 IP 数据包或者其他网络层协议的数据包后,将之拆分并重新打包成最大 1518Byte、最小 64Byte 的帧。这个帧里面包括了目标 MAC 地址、自己的源 MAC 地址和数据包里面的协议类型(比如IP数据包的类型用 80 表示),最后还有一个DWORD(4Byte)的 CRC 码。 可是目标的 MAC 地址是哪里来的呢?这牵扯到一个 ARP 协议(介乎于网络层和数据链路层的一个协议)。第一次传送某个目的 IP 地址的数据的时候,先会发出一个 ARP 包,其 MAC 的目标地址是广播地址,里面说到:“谁是 xxx.xxx.xxx.xxx 这个 IP 地址的主人?”因为是广播包,所有这个局域网的主机都收到了这个 ARP 请求。 收到请求的主机将这个 IP 地址和自己的相比较,如果不相同就不予理会,如果相同就发出 ARP 响应包。这个 IP 地址的主机收到这个 ARP 请求包后回复的 ARP 响应里说到:“我是这个 IP 地址的主人”。这个包里面就包括了他的 MAC 地址。以后的给这个IP地址的帧的目标 MAC 地址就被确定了。(其它的协议如 IPX/SPX 也有相应的协议完成这些操作) IP 地址和 MAC 地址之间的关联关系保存在主机系统里面,叫做 ARP 表。由驱动程序和操作系统完成。在 Windows 及 Linux 里面可以用 arp -a 的命令查看 ARP 表。 MII(Media Independent Interface)即媒体独立接口,MII 接口是 MAC 与 PHY 连接的标准接口。它是 IEEE-802.3 定义的以太网行业标准。MII 接口提供了 MAC 与 PHY 之间、PHY 与 STA(Station Management)之间的互联技术,该接口支持 10Mb/s 与 100Mb/s 的数据传输速率,数据传输的位宽为 4 位。MII 接口如下图所示: 所谓 RS 即 Reconciliation sublayer,它的主要功能主要是提供一种 MII 和 MAC/PLS 之间的信号映射机制。它们(RS 与 MII)之间的关系如下图: 关于本节,具体可参考 IEEE 以太网标准 802.3 的 22.3 Signal timing characteristics 节,其中包含时钟信号等更详细内容。 MII 接口主要包括四个部分。一是从 MAC 层到 PHY 层的发送数据接口,二是从 PHY 层到 MAC 层的接收数据接口,三是从PHY 层到 MAC 层的状态指示信号,四是 MAC 层和 PHY 层之间传送控制和状态信息的 MDIO 接口。 PHY 里面的部分寄存器是 IEEE 定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC 通过 SMI 总线不断的读取PHY 的状态寄存器以得知目前 PHY 的状态。例如连接速度、双工的能力等。当然也可以通过 SMI 设置 PHY的寄存器达到控制的目的。例如流控的打开关闭、自协商模式还是强制模式等。不论是物理连接的MII总线和 SMI 总线还是 PHY 的状态寄存器和控制寄存器都是由IEEE的规范的。因此不同公司的 MAC 和 PHY 一样可以协调工作。当然为了配合不同公司的 PHY 的自己特有的一些功能,驱动需要做相应的修改。 MII 支持 10Mbps 和 100Mbps 的操作,一个接口由 14 根线组成,它的支持还是比较灵活的。但是有一个缺点是因为它一个端口用的信号线太多,如果一个 8 端口的交换机要用到 112 根线,16 端口就要用到 224 根线,到 32 端口的话就要用到 448 根线。一般按照这个接口做交换机是不太现实的。所以现代的交换机的制作都会用到其它的一些从 MII 简化出来的标准,比如 RMII、SMII、GMII等。 RMII(Reduced Media Independant Interface)简化媒体独立接口是标准的以太网接口之一,比 MII 有更少的 I/O 传输。RMII 口是用两根线来传输数据的,MII 口是用 4 根线来传输数据的,GMII 是用 8 根线来传输数据的。MII/RMII 只是一种接口,对于10Mbps 线速,MII 的时钟速率是 2.5MHz 就可以了,RMII 则需要 5MHz;对于 100Mbps 线速,MII 需要的时钟速率是 25MHz,RMII 则是 50MHz。 MII/RMII 用于传输以太网包,在 MII/RMII 接口是 4/2bit 的,在以太网的PHY里需要做串并转换,编解码等才能在双绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。以太网帧的格式为:前导符 + 开始位 + 目的 mac 地址 + 源 mac 地址 + 类型/长度 + 数据 + padding(optional) + 32bitCRC。如果有 vlan,则要在类型/长度后面加上 2 个字节的 vlan tag,其中 12bit 来表示vlan id,另外,4bit 表示数据的优先级! GMII(Gigabit MII)GMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口。GMII 采用 8 位接口数据,工作时钟125MHz,因此传输速率可达 1000Mbps。同时兼容 MII 所规定的10/100 Mbps工作方式。GMII 接口数据结构符合IEEE以太网标准,该接口定义见 IEEE 802.3-2000。 发送器: 在千兆速率下,向 PHY 提供 GTXCLK 信号、TXD、TXEN、TXER 信号与此时钟信号同步。否则在 10/100Mbps 速率下,PHY 提供 TXCLK 时钟信号,其它信号与此信号同步。其工作频率为 25MHz(100M网络) 或 2.5MHz(10M网络)。GTXCLK:吉比特 TX…信号的时钟信号(125MHz)TXCLK:10/100Mbps 信号时钟TXD[7…0]:被发送数据TXEN:发送器使能信号TXER:发送器错误(用于破坏一个数据包)接收器:RXCLK:接收时钟信号(从收到的数据中提取,因此与 GTXCLK 无关联)RXD[7…0]:接收数据RXDV:接收数据有效指示RXER:接收数据出错指示COL:冲突检测(仅用于半双工状态)管理配置: 管理配置接口控制 PHY 的特性。该接口有 32 个寄存器地址,每个地址 16 位。其中前 16 个已经在“IEEE 802.3,2000-22.2.4 Management Functions” 中规定了用途,其余的则由各器件自己指定。MDC:配置接口时钟MDIO:配置接口 I/O 什么是PHY PHY(Physical Layer,PHY)是 IEEE802.3 中定义的一个标准模块,STA(station management entity,管理实体,一般为MAC 或 CPU)通过 SMI(Serial Manage Interface)对 PHY 的行为、状态进行管理和控制,而具体管理和控制动作是通过读写 PHY 内部的寄存器实现的。一个 PHY 的基本结构如下图: PHY 寄存器在 IEEE802.3 标准的 22.2.4 Management functions 节有介绍,但不涉及所有的寄存器,个别寄存器需要到其它章节中看,当然,文档里面也提到该在哪里找到哪个寄存器。 PHY寄存器 PHY 寄存器的地址空间为 5 位,从 0 到 31 最多可以定义 32 个寄存器(随着芯片功能不断增加,很多 PHY 芯片采用分页技术来扩展地址空间以定义更多的寄存器),IEEE802.3 定义了地址为 0-15 这 16 个寄存器的功能,地址16 - 31的寄存器留给芯片制造商自由定义,如下表所示。 寄存器 0 是 PHY 控制寄存器,通过 Control Register 可以对 PHY 的主要工作状态进行设置。应该保证控制寄存器每个位的默认值,以便在没有管理干预的情况下,上电或复位时 PHY 的初始状态为正常操作状态。Control Register 的每一位完成的功能见下。 Reset: 通过将位 0.15 设置为逻辑 1 来完成复位 PHY。 该操作应将状态和控制寄存器设置为其默认状态。 因此,此操作可能会改变PHY 的内部状态以及与 PHY 关联的物理链路的状态。复位过程中 Bit15 保持为 1,复位完成之后该位应该自动清零。 在复位过程完成之前,PHY 不需要接受对控制寄存器的写入操作,并且在复位过程完成之前写入 0.15 以外的控制寄存器位可能不起作用。 复位过程应在0.15 位设置的 0.5 s 内完成。 一般要改变端口的工作模式(如速率、双工、流控或协商信息等)时,在设置完相应位置的寄存器之后,需要通过 Reset 位复位 PHY 来使配置生效。该比特位的默认值为 0。Loopback: 当位 0.14 被设置为逻辑 1 时,PHY 应置于环回操作模式。 当位 0.14 置位时,PHY 接收电路应与网络介质隔离,并且MII 或 GMII 处的 TX_EN 断言不应导致网络介质上的数据传输。 当位 0.14 置位时,PHY 应接受来自 MII 或 GMII 发送数据路径的数据,并将其返回给 MII 或 GMII 接收数据路径,以响应TX_EN 的断言。 当位 0.14 置位时,从断言 TX_EN 到断言 RX_DV 的延迟应小于 512 BT。 当位 0.14 置位时,除非设置了位 0.7,否则 COL 信号应始终保持无效。 清 0.14 位为零允许正常操作。 Loopback 是一个调试以及故障诊断中常用的功能,Bit14 置 1 之后,PHY 和外部 MDI 的连接在逻辑上将被断开,从 MAC 经过 MII/GMII(也可能是其他的 MAC/PHY 接口)发送过来的数据将不会被发送到 MDI 上,而是在 PHY 内部(一般在 PCS)回环到本端口的 MII/GMII 接收通道上,通过 Loopback 功能可以检查 MII/GMII 以及PHY接口部分是否工作正常,对于端口不通的情况可用于故障定位。 需要注意的是,很多时候 PHY 设置 Loopback 后端口可能就 Link down 了,MAC 无法向该端口发帧,这时就需要通过设置端口Force Link up 才能使用 Loopback 功能。该比特位的默认值为 0。Speed Selection: Bit13 和 Bit6 两位联合实现 对端口的速率控制功能。链接速度可以通过自动协商过程或手动速度选择来选择。 通过将位0.12清零来禁用自动协商时,允许手动速度选择。 当禁用自动协商并将位 0.6 清除为逻辑 0 时,将位 0.13 设置为逻辑1将PHY配置为100 Mb / s操作,并将位 0.13 清除为逻辑0将PHY配置为10 Mb/s 操作 。当禁用自动协商并将位 0.6 设置为逻辑1时,将位0.13清零为逻辑0会选择1000 Mb / s的操作。 将位 0.6和0.13 设置为逻辑1的组合保留用于未来的标准化。当使能自动协商时,可以读取或写入位 0.6 和 0.13,但位 0.6 和位 0.13 的状态对链路配置没有影响,位 0.6 和位 0.13 不需要反映当它被读取时链接。如果 PHY 通过比特 1.15:9 和比特 15.15:12 报告它不能工作在所有速度时,则比特0.6和0.13的值应该与PHY可以操作的速度相对应。并且任何试图将该位设置为无效的操作均将被忽略。 对 Speed Selection 的修改设置,往往需要复位端口才能配置生效。因此在设置该位置的时候需要检查自动协商的设置并通过Bit15复位端口。位 0.6 和 0.13 的默认值是根据位 1.15:9 和 15.15:12 所指示的 PHY 可以操作的最高数据速率的编码组合。Auto-Negotiation Enable: 自动协商过程应通过将位 0.12 设置为逻辑 1 来启用。 如果位 0.12 设置为逻辑 1,则位 0.13、0.8 和 0.6 不应对链路配置和除了自动协商协议规定之外的站操作产生影响。 如果将位0.12清零为逻辑0,则无论链路配置和自动协商过程的先前状态如何,位 0.13、0.8 和 0.6 都将确定链路配置。 如果 PHY 通过位 1.3 报告它缺乏执行自动协商的能力,则 PHY 应在位 0.12 返回零值。 如果 PHY 通过位 1.3 报告它缺乏执行自动协商的能力,则位 0.12 应该始终写为 0,并且任何尝试将 1 写入位 0.12 都应该被忽略。 必须注意的是,对于 1000BASE-T 接口,自动协商必须打开。 Power Down: 通过将位0.11设置为逻辑1,可以将PHY置于低功耗状态。 清0.11位为零允许正常操作。 PHY在掉电状态下的具体行为是特定实现的。 处于掉电状态时,PHY应响应管理事务。 在转换到掉电状态期间和处于掉电状态期间,PHY不应在MII或GMII上产生寄生信号。 当位 0.11或位 0.10 被设置为逻辑1时,PHY 不需要满足 RX_CLK 和 TX_CLK信号功能要求。 在位0.11和0.10清零后,PHY应在0.5 s内满足22.2.2中定义的RX_CLK和TX_CLK信号功能要求。 Power Down模式一般在软件shut down端口的时候使用,需要注意的是端口从Power Down模式恢复,需要复位端口以保证端口可靠的连接。该位的默认值为 0。Isolate: 通过将位0.10设置为逻辑1,PHY可能被迫将其数据路径与MII或GMII电隔离。 清零位0.10允许正常操作。 当PHY与MII或GMII隔离时,它不会响应TXD数据包和TX_EN,TX_ER、GTX_CLK的输入。并且它的TX_CLK,RX_CLK,RX_DV,RX_ER,RXD数据包、COL和CRS输出均应为高阻态。 当PHY与MII或GMII隔离时,它将响应管理事务(MDC/MDIO接口的信号)。 IEEE802.3没有对Isolate 时MDI接口的状态进行规范,此时MDI端可能还在正常运行。Isolate在实际应用中并没有用到。由于目前很多百兆的PHY芯片其MAC接口主流的都是SMII/S3MII,8个端口的接口是相互关联的,一个端口设置Isolate可能会影响其他端口的正常使用,因此在使用中注意不要随意更改bit10的状态。Restart Auto-Negotiation: 如果PHY通过位1.3报告它缺乏执行自动协商的能力,或者如果自动协商被禁用,则PHY应在位0.9返回零值。 如果PHY通过位1.3报告它缺乏执行自动协商的能力,或者如果禁用了自动协商,则应将位0.9始终写为0,并且任何尝试将1写入位0.9应被忽略。 Bit9置1将重新启动端口的自动协商进程,当然前提是Auto-Negotiation Enable是使能的。 一般在修改端口的自动协商能力信息之后通过Bit9置1重新启动自动协商来使端口按照新的配置建立link。 Duplex Mode: 可以通过自动协商过程或手动双面选择来选择双工模式。 通过将位0.12清零来禁用自动协商时,允许手动双面选择。 当禁用自动协商时,将位0.8设置为逻辑1将PHY配置为全双工操作,并将位0.8清零以将逻辑0配置为用于半双工操作的PHY。当启用自动协商时,可以读取或写入位0.8,但位0.8的状态对链路配置没有影响。如果PHY通过位1.15:9和15.15:12报告它只能在一个双工模式下工作,则位0.8的值应该与PHY可以工作的模式相对应,并且任何尝试改变将该位0.8修改为无效指的操作应被忽略。 对Duplex Mode的修改配置也需要复位端口才能生效。 Collision Test: 冲突信号(COL)测试开关。在需要对COL信号进行测试时,可以通过Bit7置1,这时PHY将输出一个COL脉冲以供测试。实际测试操作中也可以将端口配置为半双工状态,通过发帧冲突来测试COL信号,因此该配置实用价值不大。Unidirectional enable: 如果PHY通过比特1.7报告它不具备编码和传输来自媒体独立接口的数据的能力,而不管PHY是否确定已建立有效链路,则PHY应在比特0.5中返回零值,并且 任何尝试写一个到位0.5应该被忽略。 Status register 寄存器1是PHY状态寄存器,主要包含PHY的状态信息,大多数bit的值都是由芯片厂家确定的,每一个bit的功能在表3种已有详细说明。 100BASE-T4 ability: 当读为逻辑1时,位1.15指示PHY有能力使用100BASE-T4信令规范执行链路发送和接收。 当读为逻辑0时,位1.15表示PHY缺乏使用100BASE-T4信令规范执行链路发送和接收的能力。 100BASE-X full duplex ability: 当读为逻辑1时,位1.14指示PHY有能力使用100BASE-X信令规范执行全双工链路传输和接收。 当作为逻辑0读取时,bit1.14表示PHY缺乏使用100BASE-X信令规范执行全双工链路传输和接收的能力。 100BASE-X half duplex ability: 当读为逻辑1时,位1.13指示PHY有能力使用100BASE-X信令规范执行半双工链路传输和接收。 当读为逻辑0时,位1.13指示PHY缺乏使用100BASE-X信令规范执行半双工链路传输和接收的能力。 其他同类型的值意义基本与上面几个相同:指示PHY所具有的工作模式能力,不再一一说明。 Unidirectional ability: 当读为逻辑1时,位1.7指示PHY具有编码和传输来自媒体独立接口的数据的能力,而不管PHY是否确定已建立有效链路。 当读为逻辑0时,位1.7指示PHY只有在PHY确定已建立有效链路时才能从媒体独立接口传输数据。 MF preamble suppression ability: 当读为逻辑1时,位1.6指示PHY能够接受管理帧,而不管它们是否在22.2.4.5.2中描述的前导码模式之前。 当读为逻辑0时,位1.6指示PHY不能接受管理帧,除非它们之前是22.2.4.5.2中描述的前导码模式。 Auto-Negotiation Complete: 当读为逻辑1时,位1.5指示自动协商过程已完成,并且由自动协商协议(条款28或条款37)实施的扩展寄存器的内容是有效的。 当读为逻辑0时,位1.5指示自动协商过程尚未完成,并且扩展寄存器的内容由自动协商协议的当前状态定义,或者为手动配置写入。 如果自动协商通过清除位0.12禁用,则PHY应在位1.5返回零值。 如果PHY缺乏执行自动协商的能力,它还应在位1.5返回零值。 在调试以及异常故障处理时,可以通过该位寄存器的状态判断AN是否成功,从而进一步的检查AN相关的设置是否正确,或者芯片的AN功能是否正常等。 Remote Fault: 当读为逻辑1时,位1.4表示检测到远程故障状态。 故障类型以及故障检测的标准和方法是PHY特定的。 远程故障位必须使用锁存功能来实现,以便发生远程故障将导致远程故障位置位,并保持置位状态直至被清除。 每当通过管理接口读取寄存器1时,远程故障位应清零,并且还应通过PHY复位清零。 远端错误指示位。Bit4=1代表连接对端(Link Partner)出错,至于出错的具体类型以及错误检测机制在规范中并没有定义,由PHY的制造商自由发挥,一般的厂商都会在其他的寄存器(Register16-31由厂商自行定义)指示比较详细的错误类型。在与端口相关的故障查证中,Remote Fault是一个重要的指示信息,通过互联双方的Remote Fault信息(可能要加上其他的具体错误指示),可以帮助定位故障原因。 Auto-Negotiation ability: 当读为逻辑1时,位1.3指示PHY有能力执行自动协商。 当读为逻辑0时,位1.3指示PHY缺乏执行自动协商的能力。 Link Status: 当读为逻辑1时,位1.2指示PHY已经确定已建立有效链路。 当作为逻辑0读取时,位1.2指示该链接无效。 确定链路有效性的标准是PHY特定的。 链路状态位应该使用锁存功能来实现,以便发生链路故障情况将导致链路状态位清零并保持清零,直到通过管理接口读取。 此状态指示旨在支持在30.5.1.1.4,aMediaAvailable中定义的管理属性。 实际应用中一般都是通过Bit2来判断端口的状态。而且,一般的MAC芯片也是通过轮询PHY的这个寄存器值来判断端口的Link状态的(这个过程可能有不同的名称,比如BCM叫做Link Scan,而Marvell叫做PHY Polling。)如前所述,在AN Enable的情况下,Link Status的信息只有在Auto-Negotiation Complete指示已经完成的情况下才是正确可靠的,否则有可能出错。 Jabber Detect: 当作为逻辑1读取时,位1.1指示已经检测到爆音条件。 此状态指示旨在支持30.5.1.1.6中定义的管理属性,aJabber和30.5.1.3.1 nJabber中定义的MAU通知。 检测Jabber条件的标准是PHY特定的。 Jabber检测位应该使用锁存功能来实现,以便发生Jabber条件将导致Jabber检测位置位,并保持置位状态直至被清除。 每次通过管理接口读取寄存器1时,Jabber检测位应清零,并且还应通过PHY复位清零。 IEEE802.3对Jabber的解释是“A condition wherein a station transmits for a period of time longer than the maximum permissible packet length, usually due to a fault condition”。这一位指示的是Link Partner发送的时间超过了规定的最大长度。值得注意的是,Jabber Detect只有在10BASE-T模式下才有意义,100和1000M模式是没有定义Jabber这一功能的。 PHY Identifier Register 寄存器2和3存放PHY芯片的型号代码,寄存器2(PHY ID1)为高16位,而寄存器3(PHY ID2)为低16位。由芯片制造商自行定义,实际应用中软件通过读取这两个寄存器的内容可以识别PHY的型号和版本。 PHY标识符应由由IEEE分配给PHY制造商的组织唯一标识符(OUI)的(只需要使用第3至第24位,共22位),加上6位制造商的型号以及4位制造商的修订版编号组成。 PHY标识符旨在提供足够的信息来支持30.1.2中所要求的oResourceTypeID对象。 OUI的第三位分配给位2.15,OUI的第四位分配给位2.14,依此类推。 位2.0包含OUI的第十八位。 位3.15包含OUI的第十九位,位3.10包含OUI的第二十四位。 位3.9包含制造商型号的MSB。 位3.4包含制造商型号的LSB。 位3.3包含制造商版本号的MSB,位3.0包含制造商版本号的LSB。具体如下图所示: 寄存器4是自动协商的能力通告寄存器,在AN Enable的前提下(见寄存器0),端口根据该寄存器的相关配置将自动协商信息通过FLP在MDI上进行通告。当AN配置为Disable状态的时候,寄存器4的配置将不起作用,端口的工作模式由控制寄存器中的配置决定。 该寄存器包含PHY的通告能力,它们将在自动协商期间传送给其链接伙伴。 基本页的位定义在IEEE标准的28.2.1.2中定义。 上电时,在自动协商开始之前,该寄存器应具有以下默认配置: Selector Field (4.4:0): 被设置为适当的代码,如IEEE标准的附件28A中所规定。Reserved(4.14): 被设置为逻辑0。Technology Ability Field(4.11:5): 根据MII状态寄存器(寄存器1)(1.15:11)中设置的值或等效值设置。 另见28.2.1.2.3和附件28D。 在FLP Burst内传输的基本链路代码字(基本页面)应该传达如图28-7所示的编码。 自动协商功能可以使用下一页功能支持其他页面。 下一页交换中使用的链接代码字的编码在28.2.3.4中定义。 在FLP Burst中,D0应该是第一个传输的位。 下一页功能使用标准的自动协商仲裁机制来允许交换任意的数据。 数据由可选的下一页信息携带,其遵循用于基本链接码字的传输和确认过程。 定义了四种类型的下一页编码:消息页面,未格式化页面,扩展消息页面和扩展的未格式化页面。 关于该部分,具体见IEEE标准的28.2.3.4 Next Page function。 在IEEE标准中,Auto-Negotiation Advertisement Register中的各部分全部是在独立章节中进行介绍的。具体如下: Selector Field: 选择器字段(S [4:0])是一个5位宽的字段,编码32个可能的消息。 链路码字中的选择器字段S [4:0]应用于识别自动协商发送的消息的类型。 下表列出了可能发送的消息的类型。 随着新消息的发展,该表格将相应更新。寄存器5保存的是本端PHY接收到的对端PHY所通告的端口能力,寄存器5的结构和寄存器4基本一致。 Auto-Negotiation Expansion Register (Register 6) (RO) 寄存器6保存了PHY自动协商过程的异常信息。从这个寄存其中我们可以获取到Link Partner子否支持自动协商以及自动协商下一页有没有收到的信息。 自动协商下一页发送寄存器包含在支持下一页功能时要发送的下一页链接码字。 (见表28-6)内容在28.2.3.4中定义。 上电时,该寄存器应包含默认值2001H,该值表示消息代码设置为Null消息的消息页面。 该值可以由设备希望传输的任何有效的下一页消息代码替换。 写入该寄存器应将mr_next_page_loaded设置为true。 未完待续。。。 附件 无 参考文档 IEEE Standard for Ethernet网络 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |