MI接口类型简介MI是英文MediumIndependentInterface的缩写,翻译成中文是“介质独立接口”,该接口一般应用于以太网硬件平台的MAC层和PHY层之间,MI接口的类型有很多,常用的有MI、RMI、SI、SI、SMI、GI、RGI、SGMI、TBI、RTBI、XGI、XAUI、XLAUI等下面对它们进行一一介绍MI接口:TXD(Transm itDat)[3:0]:数据发送信号,共4根信号线;R(Reciveat)[3:0]:数据接收信号,共4根信号线;TX_E(Transm itEror):发送数据错误提示信号,同步于TX_CLK,高电平有效,表示_R有效期内传输的数据无效对于10Mbps速率下,_ER不起作用;RX_E(eciveEror):接收数据错误提示信号,同步于X_CLK,高电平有效,表示_R有效期内传输的数据无效对于10Mbps速率下,R_ER不起作用;TX_EN(Transm itEnable):发送使能信号,只有在TX_EN有效期内传的数据才有效;R_DV(RevieDatValid):接收数据有效信号,作用类型于发送通道的TX_EN;TX_CLK:发送参考时钟,10Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHz。
注意,TX_CLK时钟的方向是从PHY侧指向AC侧的,因此此时钟是由PHY提供的RX_CLK:接收数据参考时钟,10Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHzRX_CLK也是由PHY侧提供的CRS:CarierSense,载波侦测信号,不需要同步于参考时钟,只要有数据传输,CRS就有效,另外,CR只有PHY在半双工模式下有效;COL:ColisonDetctd,冲突检测信号,不需要同步于参考时钟,只有PHY在半双工模式下有效MI接口一共有16根线MI接口类型RMI接口:RMI即ReducedMI,是MI的简化板,连线数量由MI的16根减少为8根TXD[1:0]:数据发送信号线,数据位宽为2,是I接口的一半;R[1:0]:数据接收信号线,数据位宽为2,是MI接口的一半;TX_EN(Transm itEnable):数据发送使能信号,与I接口中的该信号线功能一样;R_R(eciveror):数据接收错误提示信号,与MI接口中的该信号线功能一样;CLK_EF:是由外部时钟源提供的50MHz参考时钟,与I接口不同,MI接口中的接收时钟和发送时钟是分开的,而且都是由PY芯片提供给MAC芯片的。
这里需要注意的是,由于数据接收时钟是由外部晶振提供而不是由载波信号提取的,所以在PHY层芯片内的数据接收部分需要设计一个FIO,用来协调两个不同的时钟,在发送接收的数据时提供缓冲PHY层芯片的发送部分则不需要FIO,它直接将接收到的数据发送到MAC就可以了CRS_DV:此信号是由MI接口中的RX_DV和CRS两个信号合并而成当介质不空闲时,_和RE_CLK相异步的方式给出当S比X_DV早结束时(即载波消失而队列中还有数据要传输时),就会出现CRS_DV在半位元组的边界以25MHz/2.5MHz的频率在0、1之间的来回切换因此,MA能够从CRS_DV中精确的恢复出RX_DV和CRS在10Mbps速率时,TX/R每个时钟周期采样一个数据;在10Mbps速率时,TX/每隔10个周期采样一个数据,因而TX/R数据需要在数据线上保留10个周期,相当于一个数据发送10次当PHY层芯片收到有效的载波信号后,CRS_DV信号变为有效,此时如果FIO中还没有数据,则它会发送出全0的数据给MA,然后当FIO中填入有效的数据帧,数据帧的开头是“1010-”交叉的前导码,当数据中出现“01”的比特时,代表正式数据传输开始,MAC芯片检测到这一变化,从而开始接收数据。
当外部载波信号消失后,CRS_DV会变为无效,但如果FIO中还有数据要发送时,CRS_DV在下一周期又会变为有效,然后再无效再有效,直到I中数据发送完为止在接收过程中如果出现无效的载波信号或者无效的数据编码,则RX_ER会变为有效,表示物理层芯片接收出错SMI接口:MI接口类型SMI即SerialMI,串行MI的意思,跟RMI相比,连线进一步减少到4根;TXD:发送数据信号,位宽为1;R:接收数据信号,位宽为1;SYNC:收发数据同步信号,每10个时钟周期置1次高电平,指示同步CLK_REF:所有端口共用的一个参考时钟,频率为125MHz,为什么10Mbps速率要用125MHz时钟?因为在每8位数据中会插入2位控制信号,请看下面介绍TXD/RXD以10比特为一组,以SYNC为高电平来指示一组数据的开始,在SYNC变高后的10个时钟周期内,TXD上依次输出的数据是:TXD[7:0]、TX_EN、TX_ER,控制信号的含义与MI接口中的相同;RXD上依次输出的数据是:RXD[7:0]、RX_DV、CS,XD[7:0]的含义与RX_DV有关,当_V为有效时(高电平),[7:0]上传输的是物理层接收的数据。
当_为无效时(低电平),RXD[7:0]上传输的是物理层的状态信息数据见下表:当速率为10Mbps时,每一组数据要重复10次,MAC/PHY芯片每10个周期采样一次MAC/PHY芯片在接收到数据后会进行串/并转换SMI接口:SI即SerialSyncMI,叫串行同步接口,跟SMI接口很类似,只是收发使用独立的参考时钟和同步时钟,不再像SMI那样收发共用参考时钟和同步时钟,传输距离比SMI更远MI接口类型SMI接口:SI即SourceSyncSerialMI,叫源同步串行MI接口,SMI与SMI的区别在于参考时钟和同步时钟的方向,SMI的TX/R参考时钟和同步时钟都是由PHY芯片提供的,而SMI的TX参考时钟和同步时钟是由MAC芯片提供的,RX参考时钟和同步时钟是由PHY芯片提供的,所以顾名思义叫源同步串行GMI接口:MI接口类型与MI接口相比,GMI的数据宽度由4位变为8位,GMI接口中的控制信号如TX_ER、TX_EN、RX_ER、X_DV、CRS和COL的作用同MI接口中的一样,发送参考时钟GT_CLK和接收参考时钟RX_CLK的频率均为125MHz(1000Mbps/8=125MHz)。
在这里有一点需要特别说明下,那就是发送参考时钟GTX_CLK,它和MI接口中的TX_CLK是不同的,MI接口中的TX_CLK是由PHY芯片提供给AC芯片的,而GMI接口中的GTX_CLK是由MAC芯片提供给PHY芯片的两者方向不一样在实际应用中,绝大多数GMI接口都是兼容MI接口的,所以,一般的GMI接口都有两个发送参考时钟:TX_CLK和GTX_CLK(两者的方向是不一样的,前面已经说过了),在用作MI模式时,使用和8根数据线中的4根RGMI接口:RGMI即ReducedGMI,是RGMI的简化版本,将接口信号线数量从24根减少到14根(COL/CRS端口状态指示信号,这里没有画出),时钟频率仍旧为125MHz,TX/R数据宽度从8为变为4位,为了保持1000Mbps的传输速率不变,RGMI接口在时钟的上升沿和下降沿都采样数据在参考时钟的上升沿发送I接口中的TXD[3:0]/RXD[3:0],在参考时钟的下降沿发送GMI接口中的TXD[7:4]/RXD[7:4]GMI同时也兼容100Mbps和10Mbps两种速率,此时参考时钟速率分别为25MHz和2.5MHzTX_EN信号线上传送TX_EN和TX_ER两种信息,在TX_CLK的上升沿发送,下降沿发送R;同样的,X_DV信号线上也传送RX_DV和RX_ER两种信息,在RX_CLK的上升沿发送R,下降沿发送_ER。
MI接口类型SGMI接口:SGMI即SerialGMI,串行GMI,收发各一对差分信号线,时钟频率625MHz,在时钟信号的上升沿和下降沿均采样,参考时钟RX_CLK由PHY提供,是可选的,主要用于MAC侧没有时钟的情况,一般情况下,RX_CLK不使用收发都可以从数据中恢复出时钟在TXD发送的串行数据中,每8比特数据会插入TX_EN/TX_ER两比特控制信息,同样,在RXD接收数据中,每8比特数据会插入R_DV/X_ER两比特控制信息,所以总的数据速率为1.25Gbps=625Mbps*2.其实,大多数MAC芯片的SGMI接口都可以配置成SerDes接口(在物理上完全兼容,只需配置寄存器即可),直接外接光模块,而不需要PHY层芯片,此时时钟速率仍旧是625MHz,不过此时跟SGMI接口不同,SGMI接口速率被提高到1.25Gbps是因为插入了控制信息,而erDes端口速率被提高是因为进行了8B/10B变换,本来8B/10B变换是PHY芯片的工作,在SerDes接口中,因为外面不接PHY芯片,此时8B/10B变换在MAC芯片中完成了8B/10B变换的主要作用是扰码,让信号中不出现过长的连“0”和连“1”情况,影响时钟信息的提取,关于8B/10B变换知识,我后续会单独介绍。
MI接口类型TBI接口:TBI即TenBitInterface的意思,接口数据位宽由GMI接口的8位增加到10位,其实,I接口跟GMI接口的差别不是很大,多出来的2位数据主要是因为在TBI接口下,MAC芯片在将数据发给PHY芯片之前进行了8B/10B变换(8B/10B变换本是在PHY芯片中完成的,前面已经说过了),另外,RX_CLK+/-是从接收数据中恢复出来的半频时钟,频率为62.5MHz,RX_CLK+/-不是差分信号,而是两个独立的信号,两者之间有180度的相位差,在这两个时钟的上升沿都采样数据RX_CLK+/-也叫伪差分信号除掉上面说到的之外,剩下的信号都跟GMI接口中的相同大多数芯片的TBI接口和GMI接口兼容在用作TBI接口时,CRS和COL一般不用RTBI接口:RTBI即ReducedTBI,简化版TBI,接口数据位宽为5bit,时钟频率为125MHz,在时钟的上升沿和下降沿都采样数据,同RGMI接口一样,TX_ENMI接口类型线上会传送TX_EN和TX_ER两种信息,在时钟的上升沿传TX_EN,下降沿传TX_ER;_DV线上传送X_DV和RX_ER两种信息,在R_CLK上升沿传R_DV,下降沿传RX_ER。
万兆以太网接口的端口速率为10Gbps,主要有XGMI和XAUI两种,另外还有HIGI,不过HIGI是Broadcom公司的私有标准,这里暂不介绍XGMI接口:TXD[31:0]:数据发送通道,32位并行数据R[31:0]:数据接收通道,位并行数据TXC[3:0]:发送通道控制信号,TXC=0时,表示TXD上传输的是数据;TXC=1时,表示TXD上传输的是控制字符TC[3:0]分别对应TXD[31:24],TXD[23:16],TXD[15:8], [7:0]RC[3:0]:接收通道控制信号,RXC=0时,表示RXD上传输的是数据;RXC=1时,表示RXD上传输的是控制字符[3:0]分别对应RXD[31:24],RXD[23:16],RXD[15:8], [7:0]T_CLK:TXD和TXC的参考时钟,时钟频率156.25MHz,在时钟信号的上升沿和下降沿都采样数据156.25MHz*2*32=10GbpsRX_CLK:RXD和RXC的参考时钟,时钟频率156.25MHz,在时钟信号的上升沿和下降沿都采样数据XGMI接口共74根连线,单端信号,采用HSTL/STL_2逻辑,端口电压1.5V/2.5V,由于STL_2的端口电压高,功耗大,现在已很少使用。
HSTL即HighSpeedTransceiverogic,高速发送逻辑的意思STL,即StuberisTerm inateLogic,短路终止逻辑,主要用于高速内存接口,目前存在两种标准,ST_3是3.3V标准;STL_2是2.5V标准。