MDIO/MDC接口

http://xiaominwzj.blog.163.com/blog/static/24192202220153201132715/

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

MDIO/MDC接口 - xiaominwzj - xiaominwzj的博客
 MDIO工作流程: 
1、Preamle(PRE):在没有传输数据的空闲状态时,数据线MDIO处于高阻态(一直为1)。 
2、Start of Frame(ST):MAC驱动MDIO线,出现一个2bit的开始标识码(01)。 
3、Operation Code(OP):MAC驱动MDIO线,出现一个2bit数据来标识是读操作(10)还是写操作(01)。 
4、PHY Address(PHYAD):MAC驱动MDIO线,出现一个5bit数据标识PHY的地址。 
5、Reg Address(REGAD):AC驱动MDIO线,出现一个5bitPHY寄存器地址。 
6、Turnaround(TA):写操作的话,MAC驱动MDIO线,出现10,读操作的话,
MDIO pin of MAC must be put in high-impedance state,第二个周期,PHY驱动MDIO线,出现0; 
7、Data:MDIO串行读出/写入16bit的寄存器数据。 
8、MDIO恢复成空闲状态,同时MDIO进入高阻状态。

MDIO总线容易弄错的地方

       MDIO不像I2C总线数据总是在时钟下降沿变化。MDIO在802.3标准里面定义。标准没有要求数据在时钟的哪个沿变化,但是在PHY驱动MDIO总线时要求MDIO必须在MDC上升沿后0~300ns内发生变化。这就隐含了PHY在MDC的上升沿时打出数据。所以在MAC通过MDIO读PHY信息时,前面MAC驱动MDIO部分是在MDC下降沿打出数据,后面PHY驱动MDIO部分是在MDC上升沿打出数据。  
        还有一个容易引起误解的问题是由MAC转向PHY驱动MDIO时的TA阶段,也叫Turn Around阶段。这部分时序比较特殊。在写操作时,MAC始终驱动MDIO,TA阶段是完整的两个时钟周期,并且都是MDC下降沿时MDIO发生变化。但是在读操作时,由于涉及到驱动源切换,TA阶段就不是完整的两个时钟周期。严格来说,读时TA是一个半时钟周期。开始时PHY一直输出高阻,MAC驱动MDIO在MDC下降沿变化直到最后一个周期,即REGAD最低位那个周期的MDC下降沿,MAC的MDIO输出高阻。然后MDIO总线进入TA阶段。MAC输出高阻一直到整个读操作结束,PHY在进入TA阶段的半个周期后,也就是在TA阶段的第一个MDC上升沿时把MDIO拉低,并持续一个周期,TA阶段结束。 下图标明了读操作时MAC和PHY的输出状态。 
       由上述分析可知,看一个完整的MDIO波形图,如果MDIO都是在MDC下降沿变化,那么就是写。如果MDIO先在MDC下降沿变化,再在上升沿变化,那么就是读。MDIO第一次从MDC下降上升到高电平,半周期后在MDC上升沿变低,这个过程就是TA的前半个周期。此后一个周期是TA的最后一个周期,往后就是读到的数据了。
MDIO/MDC接口 - xiaominwzj - xiaominwzj的博客
  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值