MDIO/MDC(SMI)接口

转载:http://blog.chinaunix.net/uid-24148050-id-132863.html

 

1. 简介

  The MDIO interface is a simple, two-wire, serial interface to connect a management entity and a managed PHY for the purposes of controlling the PHY and gathering status from the PHY.
   The two lines include the MDC line [Management Data Clock], and the MDIO line [Management Data Input/Output]. The clock is point-to-point, while the data line is a bi-directional multi-drop interface.
   The data line is Tri-state able and can drive 32 devices.

   MDIO接口,MAC与PHY间的管理接口(MII是数据接口),有2根线:时钟线MDC,数据线MDIO(双向)


   MDIO工作流程:
    * Preamle(PRE)       在没有传输数据的空闲状态时,数据线MDIO处于高阻态(一直为1)。
    * Start of Frame(ST) MAC驱动MDIO线,出现一个2bit的开始标识码(01)。
    * Operation Code(OP) MAC驱动MDIO线,出现一个2bit数据来标识是读操作(10)还是写操作(01)。
    * PHY Address(PHYAD) MAC驱动MDIO线,出现一个5bit数据标识PHY的地址。
    * Reg Address(REGAD) MAC驱动MDIO线,出现一个5bitPHY寄存器地址。
    * Turnaround(TA)     写操作的话,MAC驱动MDIO线,出现10
                         读操作的话,MDIO pin of MAC must be put in high-impedance state
                                     在第二个周期,PHY驱动MDIO线,出现0

    * Data               MDIO串行读出/写入16bit的寄存器数据。

    * MDIO恢复成空闲状态,同时MDIO进入高阻状态。


    下面是PHY芯片 BCM5461 的一个例子:


2. PowerPC对MDIO的支持

PowerPC操作MDIO时,涉及以下寄存器:
MIIMCFG  配置寄存器
MIIMCOM  命令寄存器
MIIMADD  地址寄存器
MIIMCON  控制寄存器
MIIMSTAT 状态寄存器
MIIMIND  指示寄存器

以MPC8560举例,这些寄存器在CCSR中的位置如下:




2.1 MIIMCFG:配置寄存器


ResetMgmt:   用于重置MDIO模块
MgmtClockSet:时钟设置,是CCB的 2的n次方之一



2.2 MIIMCOM  命令寄存器


ReadCycle: 0->1 触发MDIO读时序


2.3 MIIMADD  地址寄存器


PHYaddr:PHY地址,共5bit,系统最多联31个PHY(地址0为保留)
REGaddr:寄存器地址,共5bit,一个PHY上最多32个寄存器地址(可以使用shadow value技术,访问更多的寄存器)


2.4 MIIMCON  控制寄存器



PHYcontrol:在写流程时,这里存放要写入寄存器的值


2.5 MIIMSTAT 状态寄存器



PHYstatus:读流程时,PHY reg的内容会放到此

2.6 MIIMIND  指示寄存器

你可能感兴趣的:(IO)