MII 接口

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

MII即媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口(图1)。数据接口包 括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。管理接口是个双信号接口:一个是 时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。MII Management interface只有两条信号线。The configuration and status data is written/read to/from the PHY via the MDIO signal.

MII标准接口 用于连快Fast Ethernet MAC-block与PHY。“介质无关”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。在其他速率下工作的与 MII等效的接口有:AUI(10M 以太网)、GMII(Gigabit 以太网)和XAUI(10-Gigabit 以太网)。

MII总线
在IEEE802.3中规定的MII总线是一种用于将不同类型的PHY与相同网络控制器(MAC)相连接的通用总线。网络控制器可以用同样的硬件接口与任 何PHY

GMII (Gigabit MII)

GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。
GMII接口数据结构符合IEEE以太网标准。该接口定义见IEEE 802.3-2000。
发送器
◇ GTXCLK——吉比特TX..信号的时钟信号(125MHz)
◇ TXCLK——10/100M信号时钟
◇ TXD[7..0]——被发送数据
◇ TXEN——发送器使能信号
◇ TXER——发送器错误(用于破坏一个数据包)
注:在千兆速率下,向PHY提供GTXCLK信号,TXD、TXEN、TXER信号与此时钟信号同步。否则,在10/100M速率下,PHY提供TXCLK时钟信号,其它信号与此信号同步。其工作频率为25MHz(100M网络)或2.5MHz(10M网络)。
接收器:
◇ RXCLK——接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联)
◇ RXD[7..0]——接收数据
◇ RXDV——接收数据有效指示
◇ RXER——接收数据出错指示
◇ COL——冲突检测(仅用于半双工状态)
管理配置
◇ MDC——配置接口时钟
◇ MDIO——配置接口I/O
管理配置接口控制PHY的特性。该接口有32个寄存器地址,每个地址16位。其中前16个已经在“IEEE 802.3,2000-22.2.4 Management Functions”中规定了用途,其余的则由各器件自己指定。

RMII:       Reduced Media Independant Interface
简化媒体独立接口
是标准的以太网接口之一,比MII有更少的I/O传输。

 

关于RMII口和MII口的问题

RMII口是用两根线来传输数据的,
MII口是用4根线来传输数据的,
GMII是用8根线来传输数据的。
MII/RMII只是一种接口,对于10M线速,MII的速率是2.5M,RMII则是5M;对于100M线速,MII的速率是25M,RMII则是50M。

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表示数据的优先级!
### MII接口定义 MII(Media Independent Interface)是一种用于连接以太网MAC(介质访问控制层)和PHY(物理层设备)的标准接口[^1]。它允许不同厂商生产的MAC和PHY设备之间实现互操作性,从而简化了硬件设计并提高了灵活性。 MII接口通常由多个信号线组成,包括数据传输通道、时钟同步以及状态指示等信号。具体来说,MII接口支持全双工通信模式,并提供高达100 Mbps的数据速率[^2]。 --- ### MII接口使用方法 为了正确配置和使用MII接口,需完成以下几个方面的设置: #### 1. **硬件连接** - 将MAC控制器的MII端口与PHY芯片通过标准引脚布局相连。 - 配置必要的外部电路参数,例如时钟频率调整和电平匹配。 #### 2. **软件初始化** - 初始化以太网控制器中的寄存器,设定工作模式(半双工/全双工)、速度(10Mbps/100Mbps)以及其他必要选项。 - 启动内部时钟源并与外部PHY保持同步。 以下是基于C语言的一个简单初始化函数示例: ```c void eth_mii_init() { // 设置 MAC 控制器的工作模式为全双工 write_register(MAC_CONFIG_REG, FULL_DUPLEX_MODE); // 配置 PHY 设备地址及其基本功能 phy_write(PHY_ADDR, CONTROL_REGISTER, ENABLE_AUTONEGOTIATION); // 等待自协商完成 while (!(phy_read(PHY_ADDR, STATUS_REGISTER) & AUTONEG_COMPLETE)); } ``` 上述代码片段实现了对MAC控制器和PHY设备的基础配置。 #### 3. **数据收发流程** 数据包可以通过TXD/TXDV 和 RXD/RXDV 这些专用信号来分别处理发送和接收动作。下面展示了一个伪码形式下的数据帧传递逻辑: ```pseudo function send_frame(frame_data): wait until TXD is ready transmit frame over the wire using TXD lines function receive_frame(): when RXDV asserts high level capture incoming bits via RXD pins into buffer array[] return assembled packet from buffer as result ``` 实际应用中可能还需要考虑错误检测机制如CRC校验位验证等问题。 --- ### 示例分析 假设我们正在开发一款嵌入式系统项目需要用到MII协议,则可以参照如下框架构建整个网络子系统的架构图: | 组件名称 | 功能描述 | |----------------|--------------------------------------------------------------------------| | CPU | 执行操作系统调度任务;调用驱动程序API管理外设资源 | | Ethernet Driver| 提供高层抽象封装服务给应用程序调用 | | MAC Controller | 实现IEEE802.3规范规定的链路层行为 | | Physical Layer | 负责比特流编码解码转换成电信号传播 | 这种分层次的设计思路有助于开发者快速定位问题所在位置并且便于后期维护升级版本特性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值