一、 MDIO接口介绍

MDIO是Management Data Input/Output的缩写。MDIO接口包含在IEEE802.3协议中,是专用于MAC与PHY管理的串行总线接口。主要用于配置PHY芯片状态、读取寄存器、读取PHY地址、获取LINK状态等操作。与网口MII、RMII(TX_CLK、RX_CLK)等数据通讯无关。MDIO接口最多可以挂载32个PHY设备。

二、MDIO接口信号定义

MDIO接口是实时、半双工、串行的数据接口。MDIO接口由MDIO(Management Data Input/Output)线和MDC(Management Data Clock)线组成。

1、 MDC信号特点

单向传输:由MAC芯片驱动给PHY芯片,在MDC上升沿时对MDIO进行数据采样
信号要求:MDC可以是非周期性信号。协议对MDC的高低电平的最大宽度并没有限制,仅限制了MDC的最小高低电平宽度不能小于160ns,最小周期不能小于400ns。这意味着MDC最高频率不能超过2.5MHz(协议要求)

PS:当前很多PHY芯片为追求更高通讯速率,提高了MDC频率。如IP101实际要求的MDC最小周期为300ns,最高频率达到3.3MHz。

2、 MDIO信号特点

双向传输:MDIO为双向信号,MAC和PHY均可以接管。用来在MAC和PHY芯片之间的传递控制和状态信息。写寄存器是MAC驱动,读寄存器时PHY驱动。
数据传输:先传高位(MSB),后传低位(LSB)。
输出采用三态电路设计:MDIO需要接1.5K~10K的上拉电阻。
MAC芯片内部下拉MDIO:通过MDIO线上是否有上拉电阻,来检测MDIO接口是否连接到PHY芯片上。

3、 MDIO 接口时序

以MDC上升沿为基准。当MDIO由MAC(STA)输出时,需要满足建立时间、保持时间均大于10ns。当MDIO由PHY输出时,需要满足输出延迟不超过300ns。

如下是RTL的PHY芯片的手册关于时序的要求,可做参考。

三、MDIO接口通讯帧定义

MDIO接口用于MAC与PHY之间进行通讯,根据IEEE802.3协议中将MDIO分为两种帧格式分别是Clause22和Clause45。其中 Clause22帧格式,主要应用于千兆/百兆的以太PHY,Clause45定义帧格式,主要用于千兆以上的以太PHY。

1、帧格式Clause22

IDLE:空闲域。无MDIO帧发送时,MDIO接口输出高阻(外部有上拉电阻,总线上看到的是高电平)。
PRE:Preamble,前导。每帧发送前,MAC通过MDIO连续发送32个MDC周期的高电平,同时通过MDC输出32个时钟周期。前导的作用是为PHY建立同步提供时间。如果STA能够确定PHY可以接收管理帧,可以压缩前导的发送。
ST:2bit,Start of Frame。帧起始符,2’b01代表帧起始。
OP:2bit,操作码。2’b10代表读,2’b01代表写。
PHYAD:5bit,PHY地址。因此1个MDIO最多管理32个PHY。MDIO在访问PHY之前,需要提前知晓各个PHY的地址。所有PHY均需要对地址0进行响应。
REGAD:5bit,寄存器地址。总共32个寄存器地址,协议对前16个寄存器地址进行了详细的定义。其中地址0为控制寄存器,地址1为状态寄存器,其他14个地址为扩展寄存器。
TA:2bit,Turnaround。TA是地址传输和数据传输转换时的空闲时间。因为读操作的时候,地址传输和数据传输控制方不同,设置2bit TA的目的就是为了防止MDIO总线上产生竞争。
读情形,TA第1bit,PHY和MAC均释放总线控制输出高阻。TA第2bit,总线交由PHY控制,输出0,即读操作时TA为2‘bZ0(由于总线有上拉电阻存在,从总线上看到的依然是2’b10)。写情形,TA由MAC输出2‘b10。
DATA:16bit,数据域。写操作的时候,MAC用来发送写数据。读操作的时候,PHY用来发送读数据。

2、帧格式Clause45

MDIO Clause45在Clause22基础上做了一些扩展,目的是为了访问更多的寄存器。相对于Clause22帧格式而言,Clause45做了如下修改:
1)ST由01修改为00
2)OP进行了重新定义。00:地址帧 01:写 11:读 10:增量读(Post-read-increment-address)
3)PHYAD域修改名称为PRTAD,端口地址但仍代表PHY地址
4)REGAD修改为DEVAD,Clause45将PHY内部子模块的地址进行细分,这些子模块用DEVAD寻址。子模块内部的寄存器则使用地址帧进行寻址。

四、MDIO逻辑分析仪测试实例

使用逻辑分析仪实际分析MAC与SOC之前的通讯,对接口协议加深理解。
如下图是MAC与SOC之前MDIO的通讯波形(Clause22)。

1)START 01 确定使用Clause 22帧格式
2)OP 10 进行读的操作
3)PHY地址0X03
4)读寄存器0X01的值
5)TA 10 进行读操作
6)PHY发送0X786D值

【科普贴】MDIO接口详解相关推荐

  1. MII/MDIO接口详解(转)

    Original Address:http://dpinglee.blog.163.com/blog/static/144097753201041131115262/ 本文主要分析MII/RMII/S ...

  2. [SSD科普1] PCIE接口详解及应用模式

    PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为"3GIO",是由英特尔 ...

  3. Java6.0中Comparable接口与Comparator接口详解

    Java6.0中Comparable接口与Comparator接口详解 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者 ...

  4. 【java8新特性】——lambda表达式与函数式接口详解(一)

    一.简介 java8于2014年发布,相比于java7,java8新增了非常多的特性,如lambda表达式.函数式接口.方法引用.默认方法.新工具(编译工具).Stream API.Date Time ...

  5. html5硬件接口,HTML5通用接口详解

    1.先说几个基本类型: DOMString, boolean, long, unsigned long, double,BmBHTML5中文学习网 - HTML5先行者学习网 NaN(Not-a-Nu ...

  6. Spring使用IOC容器创建对象及ClassPathXmlApplicationContext与FileSystemXmlApplicationContext接口详解

    IOC容器创建对象及接口详解 引言 类的建立 配置文件 IOC创建对象 运行结果 接口详解 (1)接口一`ClassPathXmlApplicationContext` (2)接口二:`FileSys ...

  7. 微信小程序和百度的语音识别接口详解

    介绍 因为项目需要,使用到了微信小程序和百度的语音接口 现在将项目中的一个小模块拿出来单独分享. 技术关键字 微微信小程序 百度语音接口 nodejs,express fluent-ffmegp 环境 ...

  8. RandomAccess接口详解

    RandomAccess接口详解 Interface RandomAccess All Known Implementing Classes: ArrayList, AttributeList, Co ...

  9. 【JavaWeb】Servlet系列——HttpServletRequest接口详解

    文章目录 23 HttpServletRequest接口详解 23.1 关于HttpServletRequest接口 23.2 HttpServletRequest接口的实现类谁写的? HttpSer ...

  10. 接口详解(JAVA)

    接口详解(JAVA) 文章目录 接口详解(JAVA) 接口 接口的定义和使用 练习 接口的细节:成员特点和接口的各种关系 接口中成员的特点 接口和类之间的关系 接口中新增方法,接口应用和适配器设计模式 ...

最新文章

  1. 暖风熏得游人醉,直把杭州作汴州 | 把将直角当做斜角来发车
  2. 【Android 安装包优化】Android 应用中 7zr 可执行程序准备 ( Android Studio 导入可执行 7zr 程序 | 从 Assets 资源文件拷贝 7zr 到内置存储 )
  3. 如何使用Maven scope
  4. CentOS 7 使用 ACL 设置文件权限
  5. 常用软件包和环境配置(机器学习)
  6. 中国首个!百度云宣布边缘计算开源,发布智能边缘开源平台OpenEdge
  7. c语言 wchar_t,一个【wchar_t】引发的学案
  8. C++类的静态成员函数普通成员函数
  9. spring --(16)AOP前置通知与后置通知
  10. 代码评审工具Rietveld平台搭建(windowsLinux均可)
  11. 英文字母pc是什么意思,互联网的pc指的是什么
  12. 人工智能项目的伦理审查
  13. 我为什么要离开传智再去创业?
  14. goinception审核规则
  15. css文字超过两行溢出隐藏
  16. CleanMyMac序列号密钥如何清理苹果电脑内存?
  17. Linux命令:dpkg【dpkg命令的英文全称是“Debian package”,故名意思是Debian Linux系统用来安装、创建和管理软件包的实用工具】
  18. 微信消息模板申请攻略
  19. 2022个人邮箱注册哪个好?163企业邮箱怎么申请注册个人电子邮箱
  20. 【推荐系统论文精读系列】(五)--Neural Collaborative Filtering

热门文章

  1. SHAP (SHapley Additive exPlanations)
  2. 主从表mysql外键_主从表主键外键
  3. 数据库连接池详解:原理+常用连接池
  4. 深入解析 Raft 模块在云溪数据库中的优化改造(上)
  5. 人生记录 2020-12-31 - 2021-3-10
  6. TFS2010(Team Foundation Server)配置总结
  7. 集成运算放大器的简要介绍
  8. Windows 11彻底禁用IE浏览器后,银行网银系统完全解决方案!
  9. Java 常用的依赖包
  10. 数字图像处理期末复习总结