Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4242498
  • 博文数量: 241
  • 博客积分: 15936
  • 博客等级: 上将
  • 技术积分: 25293
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 11:22
个人简介

Fedora-ARM

文章分类
文章存档

2016年(3)

2014年(1)

2013年(3)

2012年(50)

2011年(61)

2010年(26)

2009年(27)

2008年(21)

2007年(49)

分类: 嵌入式

2011-03-04 11:39:59

今天在看芯片的外部接口的时候,又一次的看到了MII接口。很久以前在修改以太网芯片驱动的时候就遇到了这个接口,但是当时看的是2440中AX88796的驱动所有不需要关注这个接口。但是现在许多嵌入式CPU都集成了以太网MAC,只需要在外部加上PHY芯片就可进行以太网通信了。而这种CPU(内部的MAC)与外部PHY的接口就是MII。今天我花了一些时间找了一下MII的资料在这里整理一下。

本文档资料来源:

以太网控制器(MAC)和物理接口收发器(PHY)

MII、GMII、RMII接口介绍

千兆以太网MII接口类型

(推荐)

在这里感谢以上文章的作者!!!

                                                                                 

MII位于整个网络体系中的位置

20070307162218824

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)
GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。GMII接口数据结构符合IEEE以太网标准。
发送器:

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表示数据的优先级!

阅读(7927) | 评论(0) | 转发(6) |
给主人留下些什么吧!~~