Fedora-ARM
全部博文(241)
分类: 嵌入式
2011-03-04 11:39:59
今天在看芯片的外部接口的时候,又一次的看到了MII接口。很久以前在修改以太网芯片驱动的时候就遇到了这个接口,但是当时看的是2440中AX88796的驱动所有不需要关注这个接口。但是现在许多嵌入式CPU都集成了以太网MAC,只需要在外部加上PHY芯片就可进行以太网通信了。而这种CPU(内部的MAC)与外部PHY的接口就是MII。今天我花了一些时间找了一下MII的资料在这里整理一下。
本文档资料来源:
(推荐)
MII位于整个网络体系中的位置在这里感谢以上文章的作者!!!
PHY:物理接口收发器,它实现物理层。IEEE-802.3标准定义了以太网PHY。除了我们平时见到通过RJ-45接口连接的双绞线外,还有比较少见的通过BNC接头连接的同轴电缆,甚至还有光纤作为介质。但是这些物理上的传输介质对于上层提供的都是统一的MII接口。
MAC:媒体接入控制器。以太网MAC由IEEE-802.3以太网标准定义。它实现了一个数据链路层。这个控制器通过MII接口与PHY通信。
所以对于这两层来说,中间的MII作为一个统一的接口起到了隔离所用。也就是说对于一个集成了MAC的CPU来说,可通过更换不同的PHY来实现在不同的物理介质上传输相同的数据。
MII总线
MII (Media Independent Interface(介质无关接口,或称为媒体独立接口),它是IEEE-802.3定义的以太网行业标准, 描述以太网收发器与网络控制器之间的接口, 很多市场上的产品遵守这个接口.。介质无关表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。在IEEE802.3中规定的MII总线是一种用于将不同类型的PHY与相同网络控制器(MAC)相连接的通用总线。网络控制器可以用同样的硬件接口与任何PHY进行连接。
它包括一个数据接口,以及一个MAC和PHY之间的管理接口。
数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。
管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。MII (Management interface)只有两条信号线。
管理配置接口控制PHY的特性。该接口有32个寄存器地址,每个地址16位。其中前16个已经在“IEEE 802.3,2000-22.2.4 Management Functions”中规定了用途,其余的则由各器件自己指定。
信号名称 | 数量 | Direction | Description | Belong To |
TX_CLK | 1 | Input | Transmit Clock | 10/100M信号时钟 |
TXD[0:3] | 4 | Output | Transmit Data | 被发送数据 |
TX_ER | 1 | Output | Transmit Coding Error | 发送器错误 |
TX_EN | 1 | Output | Transmit Enable | 发送器使能信号 |
RX_CLK | 1 | Input | Receive Clock | 接收时钟信号 |
RXD[0:3] | 4 | Input | Receive Data | 接收数据 |
RXER | 1 | Input | Receive Error | 接收数据出错指示 |
RXDV | 1 | Input | Receive Data Valid | 接收数据有效指示 |
COL | 1 | Input | Collision Detected | 冲突检测 |
CRS | 1 | Input | Carner Sense | 载波检测 |
Total bus Width | 16 | ------------ | ------------------ | ------------------------ |
MDC | 1 | Input | Management Clock | 管理配置接口时钟 |
MDIO | 1 | I/O | Management Data l/0 | 管理配置接口数据I/O |
MII标准接口用于连快Fast Ethernet MAC-block与PHY。在其他速率下工作的与 MII等效的接口有:AUI(10M 以太网)、GMII(Gigabit 以太网)和XAUI(10-Gigabit 以太网)。
GMII (Gigabit MII)
◇ 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——冲突检测(仅用于半双工状态)
◇ CRS——载波检测
◇ MDC——配置接口时钟
◇ MDIO——配置接口I/O
RMII(Reduced Media Independant Interface)
RMII是简化的MII接口,是标准的以太网接口之一。RMII的目的是减少芯片间的信号线数量,一般用在多端口的交换机。在数据的收发上它的信号线是MII接口的一半,所以它的总线时钟一般是MII的两倍。RMII不是每个端口都安排收、发两个时钟,而是所有的数据端口公用一个时钟来同步数据的收发,这里就节省了不少信号线的数目。RMII的一个端口要求7个数据线,是MII的一半,所以同样数量的信号线,交换机就能够接入多一倍的端口。和MII一样,RMII支持10兆和100兆的总线接口速度。
SMII
SMII是由思科提出的一种媒体接口,它有比RMII更少的信号线数目,S表示串行的意思。因为它只用一根信号线传送发送数据,一根信号线传输接受数据,所以在时钟上为了满足100Mbps的需求,它的时钟频率很高, 达到了125MHz,为什么用125MHz,是因为数据线里面会传送一些控制信息。SMII一个端口仅用4根信号线完成100Mbps信号的传输,比起RMII差不多又少了一倍的信号线。SMII在工业界的支持力度是很高的。同理,所有端口的数据收发都公用同一个外部的125M时钟。
对比RMII、MII和GMII
RMII口是用两根线来传输数据的;
MII口是用4根线来传输数据的;
GMII是用8根线来传输数据的。
MII/RMII只是一种接口,对于10M线速,MII的速率是2.5MHz,RMII则是5MHz;对于100M线速,MII的速率是25MHz,RMII则是50MHz。
以太网帧的格式:前导符+开始位+目的mac地址+源mac地址+类型/长度+数据+padding(optional)+32bitCRC
如果有vlan,则要在类型/长度后面加上2个字节的vlan tag,其中12bit来表示vlan id,另外4bit表示数据的优先级!