精华内容
下载资源
问答
  • MII接口及应用

    千次阅读 2017-04-19 21:29:12
    MII是英文Medium Independent Interface的缩写,翻译成中文是“介质独立接口”,该接口一般应用于以太网硬件平台的MAC层和PHY层之间,MII接口的类型有很多,常用的有MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、...

    MII是英文Medium Independent Interface的缩写,翻译成中文是“介质独立接口”,该接口一般应用于以太网硬件平台的MAC层和PHY层之间,MII接口的类型有很多,常用的有MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XLAUI等。

    MII接口:

    RXD(Receive Data)[3:0]:数据接收信号,共4根信号线;

    TX_ER(Transmit Error)  发送数据错误提示信号,同步于TX_CLK,高电平有效,表示TX_ER有效期内传输的数据无效。对于10Mbps速率下,TX_ER不起作用;

    RX_ER(Receive Error)  接收数据错误提示信号,同步于RX_CLK,高电平有效,表示RX_ER有效期内传输的数据无效。对于10Mbps速率下,RX_ER不起作用;

    TX_EN(Transmit Enable): 发送使能信号,只有在TX_EN有效期内传的数据才有效;

    RX_DV(Reveive Data Valid): 接收数据有效信号,作用类型于发送通道的TX_EN

    TX_CLK:发送参考时钟,100Mbps速率下,时钟频率为25MHz10Mbps速率下,时钟频率为2.5MHz。注意,TX_CLK时钟的方向是从PHY侧指向MAC侧的,因此此时钟是由PHY提供的。

    RX_CLK:接收数据参考时钟,100Mbps速率下,时钟频率为25MHz10Mbps速率下,时钟频率为2.5MHzRX_CLK也是由PHY侧提供的。

    CRSCarrier Sense,载波侦测信号,不需要同步于参考时钟,只要有数据传输,CRS就有效,另外,CRS只有PHY在半双工模式下有效;

    COLCollision Detectd,冲突检测信号,不需要同步于参考时钟,只有PHY在半双工模式下有效。

    MII接口一共有16根线

    Tx_CLK/Rx_CLK分别是Tx和Rx的时钟信号。他们都是由PHY驱动的。

    TxD[0...3]/RxD[0...3]:分别是Tx和Rx的数据传输线。TxD是控制器驱动,RxD是PHY驱动。

    Tx_EN/RX_DV:分别是Tx和Rx的开关。这两根线都是PHY驱动。(事实上,虽然很多文档都讲Tx_EN是PHY驱动的;但在实现时,Tx_EN是由控制器来设定的,也就是控制器驱动的)。只有在Tx_EN有效时,TxD才会被PHY接收;只有在Rx_DV有效时,RxD才会被控制器接收。
    Tx_ER/Rx_ER:分别是Tx和Rx的报错线。这两根线都是PHY驱动。即使是在Tx_EN或Rx_DV期间,只要此两根线有效,则出错的那个周期所传数据无效。10Mb以太网传输时,ER信号不影响正常传输,若不使用ER线,需将其接地。

    CRS/COL:监听介质是否空闲/监听是否有冲突发生。这两根线都是由PHY驱动,并且只在半双工模式下有效。

    另外需加上,MII接口的Management Interface:MDCMDIO。通过它,控制芯片可以访问PHY的寄存器(前面100M物理层芯片中介绍的寄存器组,但不仅限于100M物理层芯片,10M物理层芯片也可以拥有这些寄存器),并通过这些寄存器来对物理层芯片进行控制和管理。

    MDC:管理接口的时钟。它是由控制器驱动,与TX_CLK和RX_CLK无任何关系。

    MDIO:用来传送MAC层的控制信息和物理层的状态信息。它是一根双向的数据线。因MDIO在某个时钟周期内会空闲,呈高阻状态,故使用时须将其上拉。

    加上这两根线,一共有18根线。事实上,一个控制器,可以通过Management Interface来管理32个PHY。即,MDC和MDIO是可以复用的。

    详解MDC、MDIO

    之前一直困惑switch芯片是怎么挂到router上去的, 把MDC和MDIO可以接32个PHY这个事实给忽略了。正好这次调试PHY,所以找了个GPIO驱动MDC,MDIO的驱动来搞搞清楚它到底怎么工作的。

    介绍这个驱动的原文在这里:  /Files/pied/一个用GPIO口模拟MDC_MDIO的驱动.pdf

    但是看过之后觉得不是自己想要的,又找来找去,最后找到802.3的协议书,还有lattice的应用文档《Accessing Control Registers through the MDIO bus》 ,ksz8021rnl的reference manul。综合一下,有下面收获:

    MAC主要是通过MDIO(以MDC为时钟)来读写PHY的寄存器,MDIO上数据帧的格式如下:

     

     数据开始前,会发32个1,然后数据开始时先发一个0,然后恢复到1;接下来两bit,10是读,01是写;紧接着的5位是PHY地址;下面5位是寄存器地址;接下来两位的话,我的理解是,如果是读,它用一个时钟的时间转到另一个方向(前面的命令式MAC->PHY,后面的data是PHY->MAC);接下来是16位的数据;空闲时线上为高阻。

    时序图就不贴了,根据器件不一样会有些差别。值得注意的是,当一个MAC挂多个PHY的时候,要留意因为fan-out,MDC和MDIO的输出被加到很大,802.3上写如果是32个PHY,MDC的负载电容会达到320pF,MDIO的会达到470pF。

    MDIO的帧格式介绍了,其实还没完,里面PHY add 和REG add不介绍下貌似过意不去。

    关于PHY Add, PHY不同,会有不同设置。AR8032是在RX[3...1]上的strapping,ksz8021rnl的地址取决于引脚PHYAD[1:0]上的strapping,int6400的工作在PHY模式下时地址为引脚MD_A[4:3] 上的strapping。

    而PHY register也有不同。下面是两个不同的PHY Register。

     

    这张来自802.3-2008_section2。

     




    SMII接口:

    SMII即Serial MII,串行MII的意思,跟RMII相比,连线进一步减少到4根;

    TXD:发送数据信号,位宽为1

    RXD:接收数据信号,位宽为1

    SYNC:收发数据同步信号,每10个时钟周期置1次高电平,指示同步。

    CLK_REF:所有端口共用的一个参考时钟,频率为125MHz,为什么100Mbps速率要用125MHz时钟?因为在每8位数据中会插入2位控制信号,请看下面介绍。

     TXD/RXD10比特为一组,以SYNC为高电平来指示一组数据的开始,在SYNC变高后的10个时钟周期内,TXD上依次输出的数据是:TXD[7:0]TX_ENTX_ER,控制信号的含义与MII接口中的相同;RXD上依次输出的数据是:RXD[7:0]RX_DVCRSRXD[7:0]的含义与RX_DV有关,当RX_DV为有效时(高电平)RXD[7:0]上传输的是物理层接收的数据。当RX_DV为无效时(低电平)RXD[7:0]上传输的是物理层的状态信息数据。见下表:

    当速率为10Mbps时,每一组数据要重复10次,MAC/PHY芯片每10个周期采样一次。

    MAC/PHY芯片在接收到数据后会进行串/并转换。

     

    SSMII接口:

    SSMII即Serial Sync MII,叫串行同步接口,跟SMII接口很类似,只是收发使用独立的参考时钟和同步时钟,不再像SMII那样收发共用参考时钟和同步时钟,传输距离比SMII更远。

     

    SSSMII接口:

    SSSMII即Source Sync Serial MII,叫源同步串行MII接口,SSSMII与SSMII的区别在于参考时钟和同步时钟的方向,SSMII的TX/RX参考时钟和同步时钟都是由PHY芯片提供的,而SSSMII的TX参考时钟和同步时钟是由MAC芯片提供的,RX参考时钟和同步时钟是由PHY芯片提供的,所以顾名思义叫源同步串行。

     

     

    GMII接口:

    与MII接口相比,GMII的数据宽度由4位变为8位,GMII接口中的控制信号如TX_ER、TX_EN、RX_ER、RX_DV、CRS和COL的作用同MII接口中的一样,发送参考时钟GTX_CLK和接收参考时钟RX_CLK的频率均为125MHz(1000Mbps/8=125MHz)。

    在这里有一点需要特别说明下,那就是发送参考时钟GTX_CLK,它和MII接口中的TX_CLK是不同的,MII接口中的TX_CLK是由PHY芯片提供给MAC芯片的,而GMII接口中的GTX_CLK是由MAC芯片提供给PHY芯片的。两者方向不一样。

    在实际应用中,绝大多数GMII接口都是兼容MII接口的,所以,一般的GMII接口都有两个发送参考时钟:TX_CLK和GTX_CLK(两者的方向是不一样的,前面已经说过了),在用作MII模式时,使用TX_CLK和8根数据线中的4根。

     

    RGMII接口:

    RGMII即Reduced GMII,是RGMII的简化版本,将接口信号线数量从24根减少到14根(COL/CRS端口状态指示信号,这里没有画出),时钟频率仍旧为125MHz,TX/RX数据宽度从8为变为4位,为了保持1000Mbps的传输速率不变,RGMII接口在时钟的上升沿和下降沿都采样数据。在参考时钟的上升沿发送GMII接口中的TXD[3:0]/RXD[3:0],在参考时钟的下降沿发送GMII接口中的TXD[7:4]/RXD[7:4]。RGMI同时也兼容100Mbps和10Mbps两种速率,此时参考时钟速率分别为25MHz和2.5MHz。

    TX_EN信号线上传送TX_EN和TX_ER两种信息,在TX_CLK的上升沿发送TX_EN,下降沿发送TX_ER;同样的,RX_DV信号线上也传送RX_DV和RX_ER两种信息,在RX_CLK的上升沿发送RX_DV,下降沿发送RX_ER。

     

    SGMII接口:

    SGMII即Serial GMII,串行GMII,收发各一对差分信号线,时钟频率625MHz,在时钟信号的上升沿和下降沿均采样,参考时钟RX_CLK由PHY提供,是可选的,主要用于MAC侧没有时钟的情况,一般情况下,RX_CLK不使用。收发都可以从数据中恢复出时钟。

    在TXD发送的串行数据中,每8比特数据会插入TX_EN/TX_ER 两比特控制信息,同样,在RXD接收数据中,每8比特数据会插入RX_DV/RX_ER 两比特控制信息,所以总的数据速率为1.25Gbps=625Mbps*2.

    其实,大多数MAC芯片的SGMII接口都可以配置成SerDes接口(在物理上完全兼容,只需配置寄存器即可),直接外接光模块,而不需要PHY层芯片,此时时钟速率仍旧是625MHz,不过此时跟SGMII接口不同,SGMII接口速率被提高到1.25Gbps是因为插入了控制信息,而SerDes端口速率被提高是因为进行了8B/10B变换,本来8B/10B变换是PHY芯片的工作,在SerDes接口中,因为外面不接PHY芯片,此时8B/10B变换在MAC芯片中完成了。8B/10B变换的主要作用是扰码,让信号中不出现过长的连“0”和连“1”情况,影响时钟信息的提取,关于8B/10B变换知识,我后续会单独介绍。




    展开全文
  • MII通讯接口简介

    2021-04-25 20:59:36
    MII(Media Independent Interface )是介质无关接口。 MII接口定义了在MAC层和物理层之间传送数据和控制状态等信息的接口,它是10M和100M兼容的接口,经过扩展后还可以用于1000M 的MAC层与物理层的接口(GMII接口)。...

    MII(Media Independent Interface )是介质无关接口。

    MII接口定义了在MAC层和物理层之间传送数据和控制状态等信息的接口,它是10M和100M兼容的接口,经过扩展后还可以用于1000M 的MAC层与物理层的接口(GMII接口)。

    一、MII接口的信号线

    MII接口有18个信号线,所有信号名称都是从MAC层侧说明的,主要包括四个部分。一是从MAC层到物理层的发送数据接口,二是从MAC层到物理层的接收数据接口,三是物理层与MAC层之间状态指示接口,四是MAC层和物理层之间数据管理的MDIO/MDC接口。MII接口的定义如图1所示:
    图1 MII接口定义
    发送时钟(TX-CLK)

    发送时钟是由PHY芯片提供并传递给MAC层的一个连接时钟信号。TX-CLK信号向协调子层提供了一个参考时钟,协调子层将与该时钟信号同步驱动TXD,TX-EN和TX-ER信号,以进行数据发送和状态控制。TX-CLK工作于25MHz(对于100Mb/s网络操作)。

    发送数据(TXD[3:0])

    这一组四个引脚用来传递MAC层芯片的半位元组(4位)发送数据,该数据在发送前将被位于介质上的PHY层芯片进行适当的编码。当TX-EN不活动时RS给出的半位元组数据将被忽略。

    发送时钟(TX-CLK)

    发送时钟是由PHY芯片提供并传递给MAC层的一个连接时钟信号。TX-CLK信号向协调子层提供了一个参考时钟,协调子层将与该时钟信号同步驱动TXD,TX-EN和TX-ER信号,以进行数据发送和状态控制。TX-CLK工作于25MHz(对于100Mb/s网络操作)。

    发送数据(TXD[3:0])

    这一组四个引脚用来传递MAC层芯片的半位元组(4位)发送数据,该数据在发送前将被位于介质上的PHY层芯片进行适当的编码。当TX-EN不活动时RS给出的半位元组数据将被忽略。

    发送使能(TX-EN)

    该信号由MAC层芯片给出,用来表明TXD引脚上给出了有效数据,且应用PHY层芯片将其向网络介质上进行发送。

    发送错误(TX-ER)

    该信号由MAC层芯片给出,用来向PHY层芯片表明所收到的信号流中有编码错误。在TX-EN处于活动状态的时候,如果TX-ER信号在一个或多个TX-CLK周期内处于活动状态,PHY将负责通过生成一个既不是正常数据也不是定界符信息的任意编码,来在介质上生成一个无效的发送帧。发送帧中错误的相对位置不需要保留。其目的是为了保证接收方的PHY总可以检测到帧中有错误。

    接收时钟(RX-CLK)

    接收时钟是由PHY层芯片提供并向MAC层芯片传送的一个连接时钟信号。RX-CLK信号向PHY层芯片提供了一个参考时钟,PHY芯片用它来同步驱动RXD,RX_DV和RX_ER信号,以向协调子层回送从介质上译码得到的接收数据和/或状态信息。RX_CLK工作于25MHz(对于100Mb/s)或2.5MHz(对于10Mb/s)。该时钟是由PHY芯片从到来的数据流中恢复出来的。

    接收数据(RXD[3:0])

    这一组四个引脚用于向MAC层芯片传送PHY芯片从介质上译码得到的接收半位元组数据。当RX_EN不活动时给RS的半位元组数据将被忽略。

    接收数据有效(RX_DV)

    该信号由PHY给出,用于向MAC表明RXD引脚上给出了从介质上译码得到的有效数据。RX_DV必须在第一个SFD半位元组之前给出,且必须在接收帧CRC的最后一个半位元组之后立即撤销(在RX_CLK的下一个上升沿之前)。

    接收错误(RX_ER)

    该信号由PHY给出,用于向MAC表明在PHY从介质上接收到的数据中检测到了一个编码错误。它可能是一个非法编码或者是其它PHY可以检测到的错误,这些错误不可能被MAC层芯片检测到。在RX_DV处于活动状态的时候,如果RX_ER信号在一个或多个RX_CLK周期内保持活动,则PHY向RS表明在当前接收帧的某处检测到了一个错误。当给出RX_ER信号且RX_DV处于不活动状态时,RXD[3:0]引脚的值表明是出现了错误载波事件还是一个正常的包间间隔情况。错误载波事件是一种由特定介质的PHY检测到的错误,通常情况下是指在介质上检测到了一个错误的帧头。接收帧中错误的相对位置将不被保留。其目的是为了保证接收方的RS/MAC总可以检测到帧中包含的错误。MAC上的MII实现应当在对帧进行重发时用RX_ER指示来驱动TX_ER,否则就需要其他方法来保证远端的接收器总能检测到在帧中包含的错误。一般情况下这出现在多端口中继器或交换机实现中,在其中实现了重发过程,来确保在通过MII向PHY传递之前生一个无效的传输帧。

    载波侦听(CRS)

    CRS由PHY给出,用于表明发送或接收介质处于活动状态,并且在发送和接收介质都空闲时撤销。应注意的是活动和空闲的定义是基于PHY是否检测到有效数据包。对于某些特定的介质和相对应的PHY而言,即使是在没有数据包时介质上仍有信号(换句话说,帧间空隙有相应的特定信号)。CRS要求在整个冲突期间给出。CRS和TX_CLK或RX_CLK没有同步关系。

    上述是以太网工作于半双工模式的信号关系,在MII口工作于全双方式时不会有冲突也不必载波侦听,但为介绍知识的完整性在此加以简单说明。

    冲突(COL)

    冲突由PHY给出,用于表明在介质上检测到了冲突状态,并且在冲突情况持续保持不变。COL和TX_CLK或RX_CLK没有同步关系。如前所述当MAC与PHY工作于全双工方式该信号状态变得无意义。

    管理数据时钟(MDC)

    该时钟由MAC层芯片输出,并用于通过MDIO引脚从PHY中同步输入和输出数据。

    管理数据输入输出(MDIO)

    这是一个可以向PHY设备输入输出串行数据的双向信号,需要在MII之上给出了一个管理实体,一般在MAC芯片中实现,由管理实体给出的控制和配置数据和MDC同步地在MDIO线上给出,并且被PHY同步采样。由PHY给出状态信息,作为对管理实体读取管理寄存器请求的响应,和MDC同步地在MDIO线上给出,并且被管理实体同步采样。

    下面给出了简单的MII接口的时序图:
    在这里插入图片描述二、常见的MII连接方式

    2.1 MAC-to-PHY的MII连接
    此种连接最为常见,由于MII接口的信号名称都是从MAC层侧说明的,所以MAC-to-PHY的MII连接最简单,直接将相应信号连接起来即可,如下图所示。此图未显示MDIO/MDC管理接口的连接,若有需要,可根据前述MII接口的定义来连接。
    图4 MAC-to-PHY MII Connection
    2.2 MAC-to-MAC的MII连接
    此种连接方式常见于MAC与具有MII接口的其他芯片(MAC device)的连接,有时端口扩展也可以通过MAC与MAC的MII连接来实现。此种连接方式,比前面所述的MII-to-PHY的MII连接方式要复杂一些,因为连接的是两个MAC,所以要特别注意各信号的含义和方向,不能简单的对接起来。TXC和RXC对于MAC来说方向都是输入,所以要外接时钟信号,工作于100MHz时需要外接25MHz的时钟信号,而10MHz时需要外接2.5MHz的时钟信号。TXD[3:0]和RXD[3:0]需要交叉连接起来。TXER和RXER对现在很多芯片来说都可以作简单处理,而且有的芯片已省去了该信号。根据前面所述的CRS和COL的定义,将两个TXEN信号通过一个或门即可得到CRS信号,通过一个与门即可得到COL信号。MAC-to-MAC的MII连接,如下图所示。
    图5 MAC-to-MAC MII Connection
    图5所示的连接方式可以用于全双工和半双工,如果MII口只工作在全双工时不会有冲突也不必载波侦听,则其连接关系要比图5简单,是图5的一种特殊情况。

    全双工模式下MAC-to-MAC MII 连接,如图6所示,由于不会有冲突,COL直接接地即可,而CRS可接自发端的TXEN信号。
    图6 MAC-to-MAC MII Connection

    展开全文
  • 异步口FIFO   引言  传统以PC为中心的互联网应用现已开始转向以嵌入式设备为中心。据网络专家预测,将来在互联网上传输的信息中,有70%来自小型嵌入式系统,因此,对嵌入式系统接入因特网的研究是有必要的。...
  • 要FPGA、功能经过扩展的以太网接口的硬件实现方法。硬件结构上由控制信号模块、分频器、异步缓冲和编解码器个部分组成。
  • MAC/PHY与MII(GMII/SGMII/RGMII)

    千次阅读 2020-06-28 19:22:23
    MII/RMII用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换,编解码等才能在绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。 以太网帧的...

     

    MAC(Media Access Control)即媒体访问控制子层协议。

    该部分有两个概念:MAC可以是一个硬件控制器 及 MAC通信以协议。该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。

    MAC硬件大约就是下面的样子:

    在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC(逻辑链路控制)层。该层协议是以太网MAC由IEEE-802. 3以太网标准定义。

    以太网数据链路层其实包含MAC(介质访问控制)子层LLC(逻辑链路控制)子层。一块以太网卡MAC芯片的作用不但要实现MAC子层和LLC子层的功能,还要提供符合规范的PCI界面以实现和主机的数据交换。

    MAC从PCI总线收到IP数据包(或者其他网络层协议的数据包)后,将之拆分并重新打包成最大1518Byte、最小64Byte的帧。这个帧里面包括了目标MAC地址、自己的源MAC地址和数据包里面的协议类型(比如IP数据包的类型用80表示,最后还有一个DWORD(4Byte)的CRC码。

    可是目标的MAC地址是哪里来的呢?这牵扯到一个ARP协议(介乎于网络层和数据链路层的一个协议)。第一次传送某个目的IP地址的数据的时候,先会发出一个ARP包,其MAC的目标地址是广播地址,里面说到:“谁是xxx.xxx.xxx.xxx这个IP地址的主人?”因为是广播包,所有这个局域网的主机都收到了这个ARP请求。收到请求的主机将这个IP地址和自己的相比较,如果不相同就不予理会,如果相同就发出ARP响应包。这个IP地址的主机收到这个ARP请求包后回复的ARP响应里说到:“我是这个IP地址的主人”。这个包里面就包括了他的MAC地址。以后的给这个IP地址的帧的目标MAC地址就被确定了。(其它的协议如IPX/SPX也有相应的协议完成这些操作)。

    IP地址和MAC地址之间的关联关系保存在主机系统里面,叫做ARP表。由驱动程序和操作系统完成。在Microsoft的系统里面可以用arp-a 的命令查看ARP表。收到数据帧的时候也是一样,做完CRC校验以后,如果没有CRC效验错误,就把帧头去掉,把数据包拿出来通过标准的接口传递给驱动和上层的协议栈。最终正确的达到我们的应用程序。

    还有一些控制帧,例如流控帧也需要MAC直接识别并执行相应的行为。

    以太网MAC芯片的一端接计算机PCI总线,另外一端就接到PHY芯片上,它们之间是通过MII接口链接的。

    一个MAC的结构图如下图所示:

    第二部分、什么是MII

    MII(Media Independent Interface)即媒体独立接口,MII接口是MAC与PHY连接的标准接口。它是IEEE-802.3定义的以太网行业标准。MII接口提供了MAC与PHY之间、PHY与STA(Station Management)之间的互联技术,该接口支持10Mb/s与100Mb/s的数据传输速率,数据传输的位宽为4位。"媒体独立"表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。802.3协议最多支持32个PHY,但有一定的限制:要符合协议要求的connector特性。MII接口如下图所示:

    后来还有GMII(1Gbps)、10GMII、25GMII、200GMII和500GMII等。

    提到MII,就有可能涉及到RS,PLS,STA等名词术语,下面讲一下他们之间对应的关系。

    所谓RS即Reconciliation sublayer,它的主要功能主要是提供一种MII和MAC/PLS之间的信号映射机制。它们(RS与MII)之间的关系如下图:

    MII的Management Interface是与STA(Station Management)相连的。

    注:关于本节,具体可参考IEEE以太网标准802.3的22.3 Signal timing characteristics节,其中包含时钟信号等更详细内容。

    MII接口主要包括四个部分:

    一是从MAC层到PHY层的发送数据接口;

    二是从PHY层到MAC层的接收数据接口;

    三是从PHY层到MAC层的状态指示信号;

    四是MAC层和PHY层之间传送控制和状态信息的MDIO接口。

    MII包括一个数据接口,以及一个MAC和PHY之间的管理接口:

    • ※数据接口: 包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号,包括

    • ※TX_ER(transmit coding error): TX_ER同步于TX_CLK,在数据传输过程中,如果TX_ER有效超过一个时钟周期,并且此时TX_EN是有效的,则数据通道中传输的数据是无效的,没用的。注:当TX_ER有效并不影响工作在10Mb/s的PHY或者TX_EN无效时的数据传输。在MII接口的连线中,如果TX_ER信号线没有用到,必须将它下拉接地。

    • ※TXD<3:0>(transmit data): TXD由RS驱动,同步于TX_CLK,在TX_CLK的时钟周期内,并且TX_EN有效,TXD上的数据被PHY接收,否则TXD的数据对PHY没有任何影响。

    • ※TX_EN: 发送使能。TX_EN由Reconciliation子层根据TX_CLK上升沿同步进行转换。

    • ※TX_CLK(transmit clock): TX_CLK (Transmit Clock)是一个连续的时钟信号(即系统启动,该信号就一直存在),它是TX_EN,  TXD,  and  TX_ER(信号方向为从RS到PHY)的参考时钟,TX_CLK由PHY驱动TX_CLK的时钟频率是数据传输速率的25%,偏差±100ppm。例如,100Mb/s模式下,TX_CLK时钟频率为25MHz,占空比在35%至65%之间。

    • ※COL(collision detected): COL不需要同步于参考时钟。The behavior of the COL signal is unspecified when the duplex mode bit0.8 inthe control register is set to a logic one(自动协商禁止,人工设为全双工模式), or when the Auto-Negotiation process selects a full duplex mode of operation。即半双工模式信号有效,全双工模式信号无效。

    • ※RXD<3:0>(receive data): RXD由RS驱动,同步于RX_CLK,在RX_CLK的时钟周期内,并且RX_DV有效,RXD上的数据被RS接收,否则RXD的数据对RS没有任何影响。While  RX_DV  is  de-asserted,  the  PHY  may  provide  a  False  Carrier  indication  by  asserting the RX_ER signal while driving the value <1110> onto RXD<3:0>。

    • ※RX_ER(receive  error): RX_ER同步于RX_CLK,其在RX通道中的作用类似于TX_ER对于TX通道数据传输的影响。

    • ※RX_CLK: 它与TX_CLK具有相同的要求,所不同的是它是RX_DV, RXD, and RX_ER(信号方向是从PHY到RS)的参考时钟。RX_CLK同样是由PHY驱动,PHY可能从接收到的数据中提取时钟RX_CLK,也有可能从一个名义上的参考时钟(e.g., the TX_CLK reference)来驱动RX_CLK。

    • ※CRS(carrier sense): CRS不需要同步于参考时钟,只要通道存在发送或者接收过程,CRS就需要有效。The behavior of the CRS signal is unspecified when the duplex mode bit0.8 inthe control register is set to a logic one(自动协商禁止,人工设为全双工模式), or when the Auto-Negotiation process selects a full duplex mode of operation,即半双工模式信号有效,全双工模式信号无效。

    • ※RX_DV(Receive Data Valid): RXD_DV同步于RX_CLK,被PHY驱动,它的作用如同于发送通道中的TX_EN,不同的是在时序上稍有一点差别:为了让数据能够成功被RS接收,要求RXD_DV有效的时间必须覆盖整个FRAME的过程,即starting no later than the Start Frame Delimiter (SFD) and excluding any End-of-Frame delimiter。

    • ※MII以4位半字节方式传送数据双向传输,时钟速率25MHz。其工作速率可达100Mb/s。

    • ※MII管理接口: 是个双信号接口,通过管理接口,MAC就能监视和控制PHY。其管理是使用SMI(Serial Management Interface) 总线通过读写PHY的寄存器来完成的。一个是时钟信号(***MDC (management data clock)***)。另一个是数据信号(***MDIO (management data input/output)***)。

    • ※MDC: 由站管理实体向PHY提供,作为在MDIO信号上传送信息的定时参考。 MDC是一种非周期性的信号,没有最高或最低时间。 无论TX_CLK和RX_CLK的标称周期如何,MDC的最小高低时间应为160 ns,MDC的最小周期为400 ns。

    • ※MDIO: 是PHY和STA之间的双向信号。 它用于在PHY和STA之间传输控制信息和状态。 控制信息由STA同步地针对MDC驱动并且由PHY同步地采样。 状态信息由PHY针对MDC同步驱动并由STA同步采样。

    PHY 里面的部分寄存器是IEEE定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC 通过SMI 总线不断读取PHY 的状态寄存器以得知目前PHY 的状态。例如连接速度、双工的能力等。当然也可以通过SMI设置PHY的寄存器达到控制的目的。例如流控的打开关闭、自协商模式还是强制模式等。不论是物理连接的MII总线和SMI总线还是PHY的状态寄存器和控制寄存器都是由IEEE的规范的。因此不同公司的MAC和PHY一样可以协调工作。当然为了配合不同公司的PHY的自己特有的一些功能,驱动需要做相应的修改。

    MII支持10Mbps和100Mbps的操作,一个接口由14根线组成,它的支持还是比较灵活的。但是有一个缺点是因为它一个端口用的信号线太多,如果一个8端口的交换机要用到112根线,16端口就要用到224根线,到32端口的话就要用到448根线。一般按照这个接口做交换机是不太现实的。所以现代的交换机的制作都会用到其它的一些从MII简化出来的标准,比如RMII、SMII、GMII等。

    RMII(Reduced Media Independant Interface,简化媒体独立接口)是标准的以太网接口之一,比MII有更少的I/O传输。RMII口是用两根线来传输数据的,MII口是用4根线来传输数据的,GMII是用8根线来传输数据的。MII/RMII只是一种接口,对于10Mbps线速,MII的时钟速率是2.5MHz就可以了,RMII则需要5MHz;对于100Mbps线速,MII需要的时钟速率是25MHz,RMII则是50MHz。

    MII/RMII用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换,编解码等才能在双绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。

    以太网帧的格式为:前导符+开始位+目的mac地址+源mac地址+类型/长度+数据+padding(optional)+32bitCRC

    如果有vlan,则要在类型/长度后面加上2个字节的vlan tag,其中12bit来表示vlan id,另外4bit表示数据的优先级。

    GMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口。

    GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。GMII接口数据结构符合IEEE以太网标准,该接口定义见IEEE 802.3。

    • 发送器:

    • 在千兆速率下,向PHY提供GTXCLK信号、TXD、TXEN、TXER信号与此时钟信号同步。否则在10/100Mbps速率下,PHY提供TXCLK时钟信号,其它信号与此信号同步。其工作频率为25MHz(100M网络)或2.5MHz(10M网络)。

    • ※GTXCLK——吉比特TX…信号的时钟信号(125MHz)

    • ※TXCLK——10/100Mbps信号时钟

    • ※TXD[7…0]——被发送数据

    • ※TXEN——发送器使能信号

    • ※TXER——发送器错误(用于破坏一个数据包)

    • 接收器:

    • ※RXCLK——接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联)

    • ※RXD[7…0]——接收数据

    • ※RXDV——接收数据有效指示

    • ※RXER——接收数据出错指示

    • ※COL——冲突检测(仅用于半双工状态)

    • 管理配置: 管理配置接口控制PHY的特性。该接口有32个寄存器地址,每个地址16位。其中前16个已经在“IEEE 802.3,2000-22.2.4 Management Functions”中规定了用途,其余的则由各器件自己指定。

    • ※MDC——配置接口时钟

    • ※MDIO——配置接口I/O

    展开全文
  • RMII/GMII/MII

    2020-04-25 17:17:16
    以太网学习及知识总结 ...常用的以太网PHY-MAC接口的模式模式:MII、RMII、GMII、RGMII、SGMII. A. MII接口模式是支持10/100兆。参考芯片:DP83848 、DM900A(该芯片内部集成了MAC和PHY接口)。 ...

    https://zhuanlan.zhihu.com/p/136140769
    以太网学习及知识总结
    1、以太网的7层模型:应用层、表示层、会话层、传输层、网络(IP)层、数据链路层(MAC)、物理层(PHY)。本文主主要是详解数据链路层与物理层之间的接口。
    常用的以太网PHY-MAC接口的模式模式:MII、RMII、GMII、RGMII、SGMII.
    A. MII接口模式是支持10/100兆。参考芯片:DP83848 、DM900A(该芯片内部集成了MAC和PHY接口)。 DP83848芯片只支持10、100兆网络通信速度,采用4/5B编码
    首先介绍一下MII和RMII接口。MII接口中的所需要的用到的引脚如图所示:

     串行管理接口:
    1、 MDC:25兆HZ(最大时钟),PHY芯片的输入引脚,由Mac芯片控制数据输入输出,和芯片的发送和接收时钟同步。
    2、 MDIO:该引脚是双向的,数据可以是来自PHY和Mac,需要1.5K电阻上拉。
     Mac数据接口:
    1、 TX_CLK: PHY输出。
    2、 TX_EN: MAC 发送使能
    3、 TXD[0:3]: MAC输出数据
    4、 RXD_CLK: 接收时钟,phy发送
    5、 RX_DV: 接收使能
    6、 RX_ER: 接收错误
    7、 RXD[0:3]: 接收数据
    8、 CRS:载波监测信号,只工作在半双工模式
    9、 COL: 冲突检测,只工作在半双工模式
     时钟接口:
    1、 X1:
    2、 X2;
    3、 CLK_OUT:
     LED接口:
    1、 LED_LINK:
    2、 LED_SPEED:
    3、 LED_ACT/COL:
     JTAG接口:(芯片边界扫描和测试)

    1. TCK

    2. TDI

    3. TDO

    4. TMS

    5. TRST
       Reset and Power Down
      RESET_N:(I PU): 低电平可以初始化芯片自身。(芯片内部以上拉(PU))
      PWR_DOWN/INT:(I PU):该引脚为低电平时,芯片进入POWER DOWN(默认功能)
      引脚在中断模式下,当中断发生时引脚电平变为低电平。
       Strap option (约束选项)(IAAA):在芯片中有一些引脚被定为约束引脚,该类引脚只有在复位初始化的时候被芯片采样,从根据这些引脚在复位时候的电平是的芯片工作在特定的模式下。这类引脚可以通过2K外部电阻实现上下拉,更改芯片的默认工作模式。这些引脚是无效的因为可能会变更到其他功能在复位后,所以他们不能够直接连接VCC和GND

    6. 这类引脚要实现功能需要外部上下拉。

    7. PHYAD0(COL): DP83848VYB拥有5个PHY地址引脚,这些状态在系统硬件复位时锁存每个引脚的电平状态。地址0也可以设置芯片进入MII隔离模式

    8. PHYAD[1-4]:

    9. AN_EN(LED_ACT/COL),AN_1(LED_SPEED),AN_0(LED_LINK):自动协商功能:当引脚电平为高:AN_1和AN_0为高启用自动协商功能(advertised);AN_1和AN_0引脚电平为低,对应进入forced模式。

    10. MII_MODE(RX_DV):phy芯片工作模式选择:MII/RMII/’10Mb SNI Mode。
      SNI_MODE(TXD_3):

    11. LED_CFG(CRS):LED灯配置管脚,这个在外部上下拉决定了LED的工作模式:mode1 and mode2

    12. MDIX_EN(RX_ER):默认使能MDIX功能,当外部下拉将会关闭AUTO_MDIX模式。
       10Mb/S和100Mb/S PMD接口;
      TD-/TD+:差分发射、 输出(PMD),这对差分输出信号能够自动配置10BASE-T和100BASE-TX信号,在AUTO-MDIX模式运行时,这对可以做为接收(输入引脚)。需要外部3.3V偏置(意味着变压器这边的中心抽头需要上拉3.3V偏置)。
      RD-/RD+: 差分接收、输入,(PMD输入引脚),这对差分输出信号能够自动配置10BASE-T和100BASE-TX信号,在AUTO-MDIX模式运行时,这对可以做为接收(输入引脚)。需要外部3.3V偏置(意味着变压器这边的中心抽头需要上拉3.3V偏置)。
       特殊引脚;
      特殊引脚就不详近说明了,芯片为DP83848:

    B. 芯片内部框图
    芯片内部包括MII/RMII/SNI 接口、发送模块、接收模块、MII寄存器、自动协商机制、时钟发生器、ADC、DAC、(Auto-MDIX)自动交叉线等模块,具体如下图所示:芯片自协商支持:10Mb/s 半工、10Mb/s全工;100Mb/s半工、100Mb全工。有自协商功能后能够在实际两个连接的设备传输数据时能够达到最优速率传输。自协商功能受AN_EN,AN1和AN0引脚控制

    RMII:MAC和PHY芯片之间的接线图,数据线相比MII减半,时钟为50MHZ,还是需要注意TX_CLK是由phy芯片发出,如果是需要自适应10/100M。

    SMII:

    GMII:对应为千兆网;要实现1000Mb/s、100Mb/S、10Mb/S自适应必须加上TX_CLK(PHY输出)

    RGMII:

    SGMII:

    XGMII

    XAUI:万兆网,该接口模式是将XGMII(万兆)集成到芯片内部,对应收发信号各有4个LANE,每个LANE口支持的最大速率:3.125Gbps;XAUI接口外面可以直接接光模块。
    XGMII(万兆):10G
    RXD[31:0]、TXD[31:0]:数据发送和接收引脚为32位的并行总线
    RXC[3:0]: 数据接收控制通道,RXD[0]:控制RXD[7:0]8根数据线(其他依次类推)是否接收,0表示无效,1表示有效
    TXC[3:0]: 数据发送控制通道,RXD[0]:控制RXD[7:0] 8根数据线(其他依次类推)是否发送,0表示无效,1表示有效。
    TX_CLK: 发送总线同步时钟:10G/32/2=156.25MHZ

    C. 以上是MAC到PHY层的接口定义;
    下面讲述物理层的接口定义有:
    100base-T;
    1000BASE-TX;
    1000BASE-FX;
    1000:表示传输速率;
    BASE: 表述基带;
    -T/TX:传输介质为铜介质的双绞线,其中1000BASE-T对应传输线为4对,全双工运行,时钟125MHZ。超五类网线。
    1000BASE-TX对应传输线也为4对,只是其中2对用来收,两对用来发。工作模式在半双工模式,顾运行时钟250HZ,对应线缆为6类网线。
    -FX:传输介质为光纤;光口,信号传输走的是光信号这是与上面不同的

    展开全文
  • MII/MDIO接口详解

    2021-03-24 16:34:58
    本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法。 MII接口提供了MAC与PHY之间、PHY与STA(Station ...
  • 详解 MAC、MII、PHY

    2020-04-22 17:46:47
      MII/RMII用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换,编解码等才能在绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。...
  • Ethernet(以太网)之一 详解 MAC、MII、PHY

    万次阅读 多人点赞 2018-04-26 14:06:47
      MII/RMII用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换,编解码等才能在绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。...
  • mii/mdio

    2020-01-09 14:35:22
    (一)MII/MDIO接口详解  本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法。  MII接口提供了MAC与...
  • MII和RGMII的区别

    千次阅读 2019-11-14 17:23:19
    上图是am3358芯片的物理层接口,RGMII和MII,可以看出管脚数量不一样,以及Clk的方向不一样,MII的Rx和Tx方向的时钟都是由PHY或者FPGA提供的,而RGMII则是谁发数据谁提供时钟,而且是沿采样的。 ...
  • MII接口解释原链接点击此处 Media Independent Interface ...介质独立的意思是指,MAC与PHY之间的通信不受具体传输介质(绞线或光纤等)的影响,任何MAC和PHY都可以通过MII接口互连。 MAC与PHY之间的MII连接可以是...
  • MII与RMII接口的区别

    2020-02-28 08:40:31
    MII即“媒体独立接口”,也叫“独立于介质的接口”。它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。RMII全称为“简化的媒体独立接口”,是IEEE-802.3u标准中除MII接口...
  • MII和MDIO接口详解

    千次阅读 2017-05-26 11:21:31
    本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法。 MII接口提供了MAC与PHY之间、PHY...
  • MII

    2013-11-07 18:03:43
    MII MII 编辑 MII (Media Independent Interface(介质无关接口);或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。数据...
  • 什么是MII?

    千次阅读 2015-09-12 21:48:34
    MII即媒体独立接口,它是IEEE-802.3定义的以太网行业标准."媒体独立"表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作.它包括一个数据接口,以及一个MAC和PHY之间的管理接口.  数据接口...
  • 以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍

    万次阅读 多人点赞 2019-04-07 21:16:25
    PHY(Physical Layer)是IEEE802.3中定义的一个标准模块,STA(Station Management Entity,管理实体,一般为MAC或CPU)通过MIIM(MII Manage Interface)对PHY的行为、状态进行管理和控制,而具体管理和控制动作是...
  • linux mii 调试总结

    千次阅读 2013-05-22 16:51:58
    MII (Media Independent Interface(介质无关接口);或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及...管理接口是个信号接口:一个是时钟信号,另一个是数据信号。通过管理接口
  • MII接口详解

    2016-05-19 14:56:00
    MII (Media Independent Interface(介质无关接口);或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,...管理接口是个信号接口:一个是时钟信号,另一个是数据信号。通过管理接口...
  • 以太网PHY 芯片之 MII/MDIO接口详解

    千次阅读 2018-07-30 16:38:12
    本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下
  • 以太网接口MII,RMII

    2014-11-05 15:37:06
    以太网媒体接口有:MII、RMII、SMII、GMII。   所有的这些接口都从MII而来,MII是(Medium Independent Interface)的意思 ,是指不用考虑媒体是铜轴、光纤、电缆等,因为这些媒体处理的相关工作都有PHY或者叫做MAC...
  • MII总线基础知识

    千次阅读 2012-06-27 12:54:13
    MII (Media Independent Interface(介质无关接口);或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和...管理接口是个信号接口:一个是时钟信号mdc,另一个是数据信号mdio
  • MAC、MII、PHY的关系与区别

    万次阅读 多人点赞 2016-08-10 17:56:55
    MII/RMII 用于传输以太网包,在MII/RMII接口是4/2bit的,在以太网的PHY里需要做串并转换、编解码等才能在绞线和光纤上进行传输,其帧格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。 ...
  • MAC、PHY以及MII

    2020-01-16 23:21:20
    在通信设备中,通常离不开网络接口,本文将重点说明下网络接口中的MAC、PHY、MII以及MII的各种衍生版本。 MAC和PHY的结构 上图中DMA集成在CPU中,但是CPU、MAC、PHY并不是在同一个芯片内,由于PHY包含大量模拟器件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,442
精华内容 976
关键字:

双mii