完整版以太网接口分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MII 接口
MII接口提供了MAC与PHY之间、PHY与STA(Station Management)之间的互联技术,该
接口支持10Mb/s与100Mb/s的数据传输速率,数据传输的位宽为4位。
MII接口可分为MAC模式和PHY模式,一般说来MAC和PHY对接,但是MAC和MAC 也是可以对接的。
以前的10M的MAC层芯片和物理层芯片之间传送数据是通过一根数据线来进行的,其时钟是10M,在100M中,如果也用一根数据线来传送的话,时钟需要100M,这会带来一
些问题,所以定义了Mil接口,它是用4根数据线来传送数据的,这样在传送100M数据时,时钟就会由100M降低为25M,而在传送10M数据时,时钟会降低到 2.5M,这样就实现了10M和100M 的兼容。
MII接口主要包括四个部分。一是从MAC层到物理层的发送数据接口,二是从物理层到MAC 层的接收数据接口,三是从物理层到MAC层的状态指示信号,四是MAC层和物理层之间传送控制和状态信息的MDIO接口。
MII接口的MAC模式定义:
MII接口PHY模式定义:
表上
MDIO接口包括两根信号线:MDC和MDIO,通过它,MAC层芯片(或其它控制芯片)
可以访问物理层芯片的寄存器(前面100M物理层芯片中介绍的寄存器组,但不仅限于100M 物理层芯片,10M物理层芯片也可以拥有这些寄存器),并通过这些寄存器来对物理层芯片进行控制和管理。MDIO管理接口如下:
MDC:管理接口的时钟,它是一个非周期信号,信号的最小周期(实际是正电平时间和负电平时间之和)为400ns,最小正电平时间和负电平时间为160 ns,最大的正负电平时间
无限制。它与TX_CLK和RX_CLK无任何关系。
MDIO是一根双向的数据线。用来传送MAC层的控制信息和物理层的状态信息。
RMII 接口
MII接口也有一些不足之处,主要是其接口信号线很多,发送和接收和指示接口有14根数据线(不包括MDIO接口的信号线,因为其被所有Mil接口所共享),当交换芯片的端口
数据较多时,会造成芯片的管脚数目很多的问题,这给芯片的设计和单板的设计都带来了一
定的问题。为了解决这些问题,人们设计了两种新的Mil接口,它们是RMII接口(Reduced MII 接口)和SMII 接口(StreamMII 接口)。
这两种接口都减少了Mil接口的数据线,不过它们一般只用在以太网交换机的交换MAC 芯片和多口物理层芯片中,而很少用于单口的MAC层芯片和物理层芯片中。RMII接口和SMII 接口都可以用于10M以太网和100M以太网,但不可能用于1000M以太网,因为此时时钟频率太高,不可能实现。
从图中可以看到,RMII接口相对于Mil接口减少了一半的连接线只有8根接口线。
TXD[1:0]:数据发送信号线,数据位宽为2,是Mil接口的一半;
RXD[1:0]:数据接收信号线,数据位宽为2,是Mil接口的一半;
TX_EN(Transmit Enable):数据发送使能信号,与Mil接口中的该信号线功能一样;
RX_ER(Receive Error)数据接收错误提示信号,与Mil接口中的该信号线功能一样;
CLK_REF是由外部时钟源提供的50MHz参考时钟,与Mil接口不同,Mil接口中的接收时钟和发送时钟是分开的,而且都是由PHY芯片提供给MAC芯片的。这里需要注意的是,由
于数据接收时钟是由外部晶振提供而不是由载波信号提取的,所以在PHY层芯片内的数据
接收部分需要设计一个FIFO,用来协调两个不同的时钟,在发送接收的数据时提供缓冲。PHY 层芯片的发送部分则不需要FIFO,它直接将接收到的数据发送到MAC就可以了。
CRS_DV此信号是由Mil接口中的RX_DV和CRS两个信号合并而成。当介质不空闲时,CRS_DV 和RE_CLK相异步的方式给出。当CRS比RX_DV早结束时(即载波消失而队列中还有数据要传输时),就会出现CRS_DV在半位元组的边界以25MHz/2.5MHz的频率在0、1之间的来回切换。因此,MAC能够从CRS_DV中精确的恢复出RX_DV和CRS
在100Mbps速率时,TX/RX每个时钟周期采样一个数据;在10Mbps速率时,TX/RX每隔10 个周期采样一个数据,因而TX/RX数据需要在数据线上保留10个周期,相当于一个数据发送10次。
当PHY层芯片收到有效的载波信号后,CRS_DV言号变为有效,此时如果FIF0中还没有数据,则它会发送出全0的数据给MAC,然后当FIFO中填入有效的数据帧,数据帧的开头是
“ 101010--- ”交叉的前导码,当数据中出现“ 01”的比特时,代表正式数据传输开始,MAC 芯片检测到这一变化,从而开始接收数据。
当外部载波信号消失后,CRS_DV会变为无效,但如果FIFO中还有数据要发送时,CRS_DV 在下一周期又会变为有效,然后再无效再有效,直到FIFO中数据发送完为止。在接收过程
中如果出现无效的载波信号或者无效的数据编码,则RX_ER会变为有效,表示物理层芯片
接收出错。
SMII 接口
SMII即Serial Mil,串行Mil的意思,跟RMII相比,连线进一步减少到4根;
TXD:发送数据信号,位宽为 1 ;
RXD接收数据信号,位宽为 1 ;
SYNC收发数据同步信号,每10个时钟周期置1次高电平,指示同步。
CLK_REF所有端口共用的一个参考时钟,频率为125MHz,为什么100Mbps速率要用125MHz
时钟?因为在每8位数据中会插入2位控制信号,请看下面介绍。
TXD/RXD以10比特为一组,以SYNC为高电平来指示一组数据的开始,在SYNC变高后的10个时钟周期内,TXD上依次输出的数据是:TXD[7:0]、TX_EN TX_ER控制信号的含义与
Mil接口中的相同;RXD上依次输出的数据是:RXD[7:0]、RX_DV CRS RXD[7:0]的含义与