mdio概述
mdio接口,是management data input/output的缩写。mdio接口包含在ieee802.3协议中,是专用于以太phy的管理的串行总线接口。
mdio应用框图
图1 mdio应用框图
图1为mdio应用框图。sta设备通过mdio接口与phy通信。sta(station management)为主控设备,比如mcu、mac、onu等。phy为从设备。一个sta最多管理32个phy。mdc信号由sta控制,mdio信号根据通信方式的不同可以由sta或者phy接管控制。通常mdio会通过电阻上拉至接口电源。
mdio接口信号
如表1所示,mdio接口包含两根信号线,一根时钟线,一根数据线。
表1 mdio接口信号
mdc为mdio接口时钟信号,来自sta,用来对mdio的数据采样。mdc可以是非周期性信号。协议对mdc的高低电平的最大宽度并没有限制,仅限制了mdc的最小高低电平宽度不能小于160ns,最小周期不能小于400ns。这意味着mdc最高频率不能超过2.5mhz。
mdio为mdio接口数据信号,为双向信号,sta和phy均可以接管。用来在phy控制芯片和phy芯片之间的传递控制和状态信息。
图2 mdio接口时序
协议对mdio接口时序进行了定义。如图2所示,以mdc上升沿为基准。当mdio由sta输出时,需要满足建立时间、保持时间均大于10ns。当mdio由phy输出时,需要满足输出延迟不超过300ns。
mdio帧格式
mdio有两种模式:俗称1g mdio和xg mdio。1g mdio由ieee 802.3 clause22定义,主要应用于千兆/百兆的以太phy,xg mdio由ieee 802.3 clause45定义,主要用于千兆以上的以太phy。下面以clause22为例介绍mdio帧格式,如图3所示。
图3 mdio clause22帧格式
idle:空闲域。无mdio帧发送时,mdio接口输出高阻(外部有上拉电阻,总线上看到的是高电平)。
pre:preamble,前导。每帧发送前,sta通过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和sta均释放总线控制输出高阻。ta第2bit,总线交由phy控制,输出0,即读操作时ta为2‘bz0(由于总线有上拉电阻存在,从总线上看到的依然是2’b10)。写情形,ta由sta输出2‘b10。
data:16bit,数据域。写操作的时候,sta用来发送写数据。读操作的时候,phy用来发送读数据。
注:mdio发送bit序为高比特先传。
图4 mdio clause45帧格式
mdio clause45在clause22基础上做了一些扩展,目的是为了访问更多的寄存器。clause45帧格式如图4所示。相对于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寻址。子模块内部的寄存器则使用地址帧进行寻址。
clause45的修改大大扩展了访问地址范围,但是由于地址和读写操作的分离,导致访问效率降低一半。为了解决该问题,clause45新增了增量读模式,允许先发送一次地址帧,后续仅发送增量读操作。在每次读完成后,phy会自动将地址移动到下一个相邻的寄存器地址,这样就能完成从指定地址开始顺序读取设备内部的寄存器,而无需重新发送地址帧,访问效率可以和clause22相当。
后记
mdio接口不仅定义了帧格式,还对其访问空间的寄存器进行了详细的定义,因此它只能应用于以太phy的管理接口。对于mdio寄存器详细定义感兴趣的同学,可以参考ieee802.3 22.2.4(clause22)和45.2(clause45)中的描述。
clause22和clause45是不能共存的,如果应用时存在共存的情况,可以参考ieee 802.3 annex45a中关于clause22 phy,clause45 phy混合组网时的解决方案描述。简单说就是通过协议转换芯片进行混合组网。
如何选购cpu风扇
STC单片机内部扩展RAM的应用
智慧交通的建设则怎样可以提速
plc编码器作用_编码器z相作用
家电维修赚钱秘方 二 讲诚信
MDIO接口的基础知识详解
44岁的微软下一个小目标是什么
下一代手机设计的RF架构选择
元宇宙怎么感知触觉
怎么解决eNSP和HCL Cloud兼容性的问题呢?
电池性能和成本成为支配电动重卡能否正常运营的关键点
专业厂家教你大电流锂电池保护板的保护方法和流程是怎么样的
Intel表示28核心56线程工作站级新品将依然使用硅脂
古尔曼:苹果明年将更新整个iPad产品线
I2C子系统优先级翻转与优先级继承
Wacom推VR Pen,展现跨现实的手写笔体验
平安好医生联手中新药业,在AI+家庭医生等方面展开深入研究
云知声发布全球首款面向物联网领域的AI芯片“雨燕”
IE浏览器宣布正式退役
“益”管家,管家易,管一家