qiwei128的个人空间 https://blog.eetop.cn/1030871 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

SMI接口

已有 2451 次阅读| 2013-11-8 10:06

SMI全称是串行管理接口(Serial Management Interface)。是MII接口中的管理接口。

SMI接口包括两根信号线MDCMDIO,通它,MAC芯片(或其它控制芯片)可以访问物理芯片的寄存器(前面100M物理芯片中介的寄存器,但不限于100M物理芯片,10M物理芯片也可以些寄存器),并通过这些寄存器来物理芯片行控制和管理。SMI管理接口如下:

 

MDC:管理接口的时钟,它是一个非周期信号,信号的最小周期(实际是正时间负电时间之和)400ns,最小正时间负电时间为160ns,最大的正负电时间无限制。它与TX_CLKRX_CLK无任何关系。

 

MDIO是一根双向的数据线。用来MAC的控制信息和物理的状信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。MDIO管理接口的数据帧结构如

 

PRE:域,32连续1”比特,这帧域不是必要的,某些物理芯片的MDIO操作就没有个域。

 

OP:操作,比特“10”表示此帧为操作,比特“01”表示此帧为一写操作

 

PHYAD:物理芯片的地址,5个比特,每个芯片都把自己的地址与5个比特行比,若匹配后面的操作,若不匹配,忽略掉后面的操作。

 

REGAD:用来选择物理芯片的32个寄存器中的某个寄存器的地址。

 

TA:状态转换域,若为读操作,第一比特MDIO高阻,第二比特由物理芯片使MDIO置“0”。若写操作,MDIO仍由MAC芯片控制,其连续输出“10”两个比特。

 

DATA:的寄存器的数据域,16比特,若为读操作,则为物理送到MAC的数据,若写操作,则为MAC送到物理的数据。

IDLE:帧结束后的空,此MDIO无源驱动高阻状,但一般用上拉阻使其在高平,即MDIO引脚需要上拉阻。

 

 

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接口,MACPHY间的管理接口(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. PowerPCMDIO的支持

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

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






2.1 MIIMCFG:配置寄存器


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



2.2 MIIMCOM  命令寄存器


ReadCycle 0->1 触发MDIO读时序


2.3 MIIMADD  地址寄存器


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


2.4 MIIMCON  控制寄存器



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


2.5 MIIMSTAT 状态寄存器



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

2.6 MIIMIND  指示寄存器


NotVal:若置1,表示读流程结束,可以去读MIIMSTAT
Scan  若置1,表示扫描流程进行中
Busy  只有置0时,才能进行新的读写流程



3. linuxMDIO的实现

读写PHY寄存器时通过2个函数 

phy_read()phy_write()

最终调用
int gfar_local_mdio_read(struct gfar_mii *regs, int mii_id, int regnum)
int gfar_local_mdio_write(struct gfar_mii *regs, int mii_id, int regnum, u16 value)

参数regs就是MDIO相关寄存器:


点赞

发表评论 评论 (1 个评论)

回复 qiwei128 2013-11-8 10:08
:loveliness:

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 1

    评论
  • 1706

    访问数
关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-19 12:44 , Processed in 0.025141 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部