热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MII通讯接口简介

MII(MediaIndependentInterface)是介质无关接口。MII接口定义了在MAC层和物理层之间传送数据和控制状态等信息的接口,它是10M和100

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


推荐阅读
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 本文详细解析了vlan接口类型和划分的相关知识,包括access、trunk和hybrid接口类型的特点和功能,以及它们在数据包发送和接收过程中的处理方式。同时介绍了pvid的作用和使用方法,以及trunk接口在发送数据包时的处理规则。最后,还介绍了如何使所有vlan生效的方法。 ... [详细]
author-avatar
mobiledu2502857407
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有