目录
以太网PHY硬件连接
MAC与PHY之间的接口标准MII/GMII
以太网PHY寄存器分析
以太网PHY驱动软件配置
其它
寄存器2和3存放PHY芯片的型号代码,由芯片制造商自行定义,实际应用中软件通过读取这两个寄存器的内容可以识别PHY的型号和版本,这些内容都是只读寄存器,对PHY的功能没有影响,也不反映PHY的工作状态。
寄存器4是自动协商的能力通告寄存器,在AN Enable的前提下(见寄存器0),端口根据该寄存器的相关配置将自动协商信息通过FLP在MDI上进行通告。当AN配置为Disable状态的时候,寄存器4的配置将不起作用,端口的工作模式由控制寄存器中的配置决定。寄存器4的详细定义对电口和光口PHY上有不同的定义,其中电口PHY的具体说明如表4A。每个bit的功能已有详细描述,无需赘述。
表4A Auto-Negotiation Advertisement Register(Copper)
Bit12:5对应自动协商广播能力域(Technology Ability Field),每一位分别对应为下表A[7:0],每一位配置一种工作模式的能力。在实际应用中,如果PHY要支持该种工作模式则对应位置1,若不支持则对应位置0。注意到在这8位能力指示域中,并没有1000BASE-T能力的对应配置位,1000BASE-T的相关配置在寄存器9,MASTER-SLAVE Control Register来完成。
Bit4:0配置自动协商的类型,规范正在发送的自动协商信息遵从何种规范,我们所接触的以太网PHY遵从IEEE802.3规范,Selector Field=0001,该区域不可随意更改(很多PHY将此区域设计为只读寄存器,以免被修改)。
Technology Ability Field
寄存器5保存的是本端PHY接收到的对端PHY所通告的端口能力,寄存器5的结构和寄存器4基本一致。应用上,寄存器5可以用于检测Link partner的自动协商配置,在端口Link故障的定位排查中可以发挥重要作用。特别是当Link Partner其内部寄存器信息我们是无法获取的,这是侯就只能通过寄存器5来获取对方的自动协商信息了。不单单是AN信息,端口的状态信息中所有关于Link Partner状态的指示信息在我们进行故障处理的时候都是很珍贵的第一手资料,通过分析这些信息对我们进行故障定位将有很大的帮助。
寄存器6保存了PHY自动协商过程的异常信息,每一位的作用在表5中一目了然。从这个寄存其中我们可以获取到Link Partner子否支持自动协商以及自动协商下一页有没有收到的信息。其中Parallel Detection Fault表示,端口在并行检测进程中出现了错误,这包含了两层意义:首先PHY已经启动并行检测,则Linkpartner不支持AN,再则并行检测不能成功的探测到Linkpartner的连接速率信息。
表5 Auto-Negotiation Expansion Register
寄存器7和8分别保存了Local PHY和Linkpartner的自动协商下一页信息,AN的下一页功能通常在1000M模式的自动协商下使用,详细地寄存器信息要结合PHY芯片的资料进行分析,本文不作详细讨论。
寄存器9保存的是1000BASE-T模式的配置信息,控制PHY的AN信息中与1000BASE-T相关的协商信息,以及PHY在1000BASE-T模式下的信息,详细信息见表6。
表6 MASTER-SLAVE Control Register
寄存器10是1000BASE-T模式的状态寄存器,指示PHY及其Linkpartner的状态信息。详细的状态描述见表7,表格中各个状态位的具体含义说明的相当清楚了,无需赘述。需要注意的是,关于Linkpartner的信息是通过自动协商完成的,而1000BASE-T的协商信息是通过Next Page交互的,因此只有在寄存器6中确认Next Page已经收到,寄存器10的Linkpartner信息才是有效的。否则有可能是错误信息。
表7 MASTER-SLAVE Status Register
MMD (MDIO Manageable device) register,主要是提供对多个MMD 设备地址间接读/写访问,每个设备支持多达16位寄存器。关于支持MMD设备地址列表,需要参阅手册寄存器映射部分及相关寄存器地址。以Microsemi的VSC8541-02为例,当MMD Access Control Register 的14:15 = 2'b00, 需要访问的设备地址将体现在 MMD EEE Access Control Register的bit 4:0,否则就是在MMD Address or Data Register这个寄存器当中去写数据或者读数据。
寄存器Extended Status Register由PHY厂商在PHY中写入的指示PHY功能的状态寄存器,标明PHY是否具有1000BASE-X或者1000BASE-T的能力,实际应用和调试中实用价值不大。
除了IEEE802.3定义的Register0-15外,Register16-31由PHY制造商自行定义,还有制造商通过分页存储技术扩展的更多寄存器空间,在这些寄存器中制造商定义了很多PHY的功能的控制以及状态指示信息,这些信息对我们在PHY的应用以及故障诊断中有时候可以起到决定性的作用,但是由于这写寄存器不是IEEE802.3标准定义的,因此寄存器的地址以及功能名称在不同厂家的资料中有很大的差异,甚至在同一厂家的不用芯片中也不尽相同,因此下面的讨论只能就某一类的功能应用或者状态指示进行说明,但是其详细的名称和寄存器的地址要结合具体芯片具体分析,这里不能给出一个确切的答案。如下图是microsemi的VSC8541-02/05的寄存器空间图:
点击可查看大图
Microchip KSZ9031RNX的寄存器空间图:
目前主流的PHY都通过分页技术对PHY寄存器空间进行扩展,提供更多的寄存器空间来控制PHY更多的功能行为和提供更多的PHY状态指示信息。分页扩展出来的寄存器空间其具体作用千变万化,在此不作详细讨论。
您可复制下方网址到浏览器中打开进入瑞萨中文论坛查看:
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
未完待续
推荐阅读
工业以太网PHY驱动适配参考文档(1)
工业以太网PHY驱动适配参考文档(2)
RZ/T RZ/N FSP教程 - 引脚配置功能