logo资料库

MII+GMII+RGMII+SGMII 解密.doc

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
MII GMII RGMII SGMII 解密
MII GMII RGMII SGMII 解密 简介 MII 是英文 Medium Independent Interface 的缩写,翻译成中文是“介质 独立接口”,该接口一般应用于以太网硬件平台的 MAC 层和 PHY 层之间,MII 接 口的类型有很多,常用的有 MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、 SGMII、TBI、RTBI、XGMII、XAUI、XLAUI 等。下面对它们进行一一介绍。 MII 接口: RXD(Receive Data)[3:0]:数据接收信号,共 4 根信号线; TX_ER(Transmit Error): 发送数据错误提示信号,同步于 TX_CLK,高电平 有效,表示 TX_ER 有效期内传输的数据无效。对于 10Mbps 速率下,TX_ER 不起 作用; RX_ER(Receive Error): 接收数据错误提示信号,同步于 RX_CLK,高电平 有效,表示 RX_ER 有效期内传输的数据无效。对于 10Mbps 速率下,RX_ER 不起 作用; TX_EN(Transmit Enable): 发送使能信号,只有在 TX_EN 有效期内传的数据才 有效; RX_DV(Reveive Data Valid): 接收数据有效信号,作用类型于发送通道的 TX_EN; TX_CLK:发送参考时钟,100Mbps 速率下,时钟频率为 25MHz,10Mbps 速率下, 时钟频率为 2.5MHz。注意,TX_CLK 时钟的方向是从 PHY 侧指向 MAC 侧的,因此 此时钟是由 PHY 提供的。 RX_CLK:接收数据参考时钟,100Mbps 速率下,时钟频率为 25MHz,10Mbps 速率 下,时钟频率为 2.5MHz。RX_CLK 也是由 PHY 侧提供的。 CRS:Carrier Sense,载波侦测信号,不需要同步于参考时钟,只要有数据传输, CRS 就有效,另外,CRS 只有 PHY 在半双工模式下有效; COL:Collision Detectd,冲突检测信号,不需要同步于参考时钟,只有 PHY 在半双工模式下有效。 MII 接口一共有 16 根线。 RMII 接口:
RMII 即 Reduced MII,是 MII 的简化板,连线数量由 MII 的 16 根减少为 8 根。 TXD[1:0]:数据发送信号线,数据位宽为 2,是 MII 接口的一半; RXD[1:0]:数据接收信号线,数据位宽为 2,是 MII 接口的一半; TX_EN(Transmit Enable):数据发送使能信号,与 MII 接口中的该信号线功能一 样; RX_ER(Receive Error):数据接收错误提示信号,与 MII 接口中的该信号线功能 一样; CLK_REF:是由外部时钟源提供的 50MHz 参考时钟,与 MII 接口不同,MII 接口 中的接收时钟和发送时钟是分开的,而且都是由 PHY 芯片提供给 MAC 芯片的。这 里需要注意的是,由于数据接收时钟是由外部晶振提供而不是由载波信号提取 的,所以在 PHY 层芯片内的数据接收部分需要设计一个 FIFO,用来协调两个不 同的时钟,在发送接收的数据时提供缓冲。PHY 层芯片的发送部分则不需要 FIFO, 它直接将接收到的数据发送到 MAC 就可以了。 CRS_DV:此信号是由 MII 接口中的 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 信号变为有效,此时如果 FIFO 中 还没有数据,则它会发送出全 0 的数据给 MAC,然后当 FIFO 中填入有效的数据 帧,数据帧的开头是“101010---”交叉的前导码,当数据中出现“01”的比特 时,代表正式数据传输开始,MAC 芯片检测到这一变化,从而开始接收数据。 当外部载波信号消失后,CRS_DV 会变为无效,但如果 FIFO 中还有数据要发送时, CRS_DV 在下一周期又会变为有效,然后再无效再有效,直到 FIFO 中数据发送完 为止。在接收过程中如果出现无效的载波信号或者无效的数据编码,则 RX_ER 会变为有效,表示物理层芯片接收出错。
SMII 接口: SMII 即 Serial MII,串行 MII 的意思,跟 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, 控制信号的含义与 MII 接口中的相同;RXD 上依次输出的数据是:RXD[7:0]、 RX_DV、CRS,RXD[7:0]的含义与 RX_DV 有关,当 RX_DV 为有效时(高电平),RXD[7:0] 上传输的是物理层接收的数据。当 RX_DV 为无效时(低电平),RXD[7:0]上传输的 是物理层的状态信息数据。见下表: 当速率为 10Mbps 时,每一组数据要重复 10 次,MAC/PHY 芯片每 10 个周期采样 一次。 MAC/PHY 芯片在接收到数据后会进行串/并转换。 SSMII 接口:
SSMII 即 Serial Sync MII,叫串行同步接口,跟 SMII 接口很类似,只是收发使 用独立的参考时钟和同步时钟,不再像 SMII 那样收发共用参考时钟和同步时钟, 传输距离比 SMII 更远。 SSSMII 接口: SSSMII 即 Source Sync Serial MII,叫源同步串行 MII 接口,SSSMII 与 SSMII 的区别在于参考时钟和同步时钟的方向,SSMII 的 TX/RX 参考时钟和同步时钟都 是由 PHY 芯片提供的,而 SSSMII 的 TX 参考时钟和同步时钟是由 MAC 芯片提供的, RX 参考时钟和同步时钟是由 PHY 芯片提供的,所以顾名思义叫源同步串行。 GMII 接口:
与 MII 接口相比,GMII 的数据宽度由 4 位变为 8 位,GMII 接口中的控制信 号如 TX_ER、TX_EN、RX_ER、RX_DV、CRS 和 COL 的作用同 MII 接口中的一样,发 送参考时钟 GTX_CLK 和接收参考时钟 RX_CLK 的频率均为 125MHz(1000Mbps/8=125MHz)。 在这里有一点需要特别说明下,那就是发送参考时钟 GTX_CLK,它和 MII 接口中的 TX_CLK 是不同的,MII 接口中的 TX_CLK 是由 PHY 芯片提供给 MAC 芯片 的,而 GMII 接口中的 GTX_CLK 是由 MAC 芯片提供给 PHY 芯片的。两者方向不一 样。 在实际应用中,绝大多数 GMII 接口都是兼容 MII 接口的,所以,一般的 GMII 接口都有两个发送参考时钟:TX_CLK 和 GTX_CLK(两者的方向是不一样的, 前面已经说过了),在用作 MII 模式时,使用 TX_CLK 和 8 根数据线中的 4 根。 RGMII 接口: RGMII 即 Reduced GMII,是 RGMII 的简化版本,将接口信号线数量从 24 根减少到 14 根(COL/CRS 端口状态指示信号,这里没有画出),时钟频率仍旧为 125MHz,TX/RX 数据宽度从 8 为变为 4 位,为了保持 1000Mbps 的传输速率不变, RGMII 接口在时钟的上升沿和下降沿都采样数据。在参考时钟的上升沿发送 GMII 接口中的 TXD[3:0]/RXD[3:0],在参考时钟的下降沿发送 GMII 接口中的
TXD[7:4]/RXD[7:4]。RGMI 同时也兼容 100Mbps 和 10Mbps 两种速率,此时参考 时钟速率分别为 25MHz 和 2.5MHz。 TX_EN 信号线上传送 TX_EN 和 TX_ER 两种信息,在 TX_CLK 的上升沿发送 TX_EN,下降沿发送 TX_ER;同样的,RX_DV 信号线上也传送 RX_DV 和 RX_ER 两种 信息,在 RX_CLK 的上升沿发送 RX_DV,下降沿发送 RX_ER。 SGMII 接口: SGMII 即 Serial GMII,串行 GMII,收发各一对差分信号线,时钟频率 625MHz, 在时钟信号的上升沿和下降沿均采样,参考时钟 RX_CLK 由 PHY 提供,是可选的, 主要用于 MAC 侧没有时钟的情况,一般情况下,RX_CLK 不使用。收发都可以从 数据中恢复出时钟。 在 TXD 发送的串行数据中,每 8 比特数据会插入 TX_EN/TX_ER 两比特控制 信息,同样,在 RXD 接收数据中,每 8 比特数据会插入 RX_DV/RX_ER 两比特控 制信息,所以总的数据速率为 1.25Gbps=625Mbps*2. 其实,大多数 MAC 芯片的 SGMII 接口都可以配置成 SerDes 接口(在物理上 完全兼容,只需配置寄存器即可),直接外接光模块,而不需要 PHY 层芯片,此 时时钟速率仍旧是 625MHz,不过此时跟 SGMII 接口不同,SGMII 接口速率被提高 到 1.25Gbps 是因为插入了控制信息,而 SerDes 端口速率被提高是因为进行了
8B/10B 变换,本来 8B/10B 变换是 PHY 芯片的工作,在 SerDes 接口中,因为外 面不接 PHY 芯片,此时 8B/10B 变换在 MAC 芯片中完成了。8B/10B 变换的主要作 用是扰码,让信号中不出现过长的连“0”和连“1”情况,影响时钟信息的提取, 关于 8B/10B 变换知识,我后续会单独介绍。 TBI 接口: TBI 即 Ten Bit Interface 的意思,接口数据位宽由 GMII 接口的 8 位增加 到 10 位,其实,TBI 接口跟 GMII 接口的差别不是很大,多出来的 2 位数据主要 是因为在 TBI 接口下,MAC 芯片在将数据发给 PHY 芯片之前进行了 8B/10B 变换 (8B/10B 变换本是在 PHY 芯片中完成的,前面已经说过了),另外,RX_CLK+/-是 从接收数据中恢复出来的半频时钟,频率为 62.5MHz,RX_CLK+/-不是差分信号, 而是两个独立的信号,两者之间有 180 度的相位差,在这两个时钟的上升沿都采 样数据。RX_CLK+/-也叫伪差分信号。除掉上面说到的之外,剩下的信号都跟 GMII 接口中的相同。 大多数芯片的 TBI 接口和 GMII 接口兼容。在用作 TBI 接口时,CRS 和 COL 一般不用。 RTBI 接口: RTBI 即 Reduced TBI,简化版 TBI,接口数据位宽为 5bit,时钟频率为 125MHz,在时钟的上升沿和下降沿都采样数据,同 RGMII 接口一样,TX_EN 线上 会传送 TX_EN 和 TX_ER 两种信息,在时钟的上升沿传 TX_EN,下降沿传 TX_ER; RX_DV 线上传送 RX_DV 和 RX_ER 两种信息,在 RX_CLK 上升沿传 RX_DV,下降沿传 RX_ER。 万兆以太网接口的端口速率为 10Gbps,主要有 XGMII 和 XAUI 两种,另外还有 HIGIG,不过 HIGIG 是 Broadcom 公司的私有标准,这里暂不介绍。 XGMII 接口: TXD[31:0]:数据发送通道,32 位并行数据。 RXD[31:0]:数据接收通道,32 位并行数据。 TXC[3:0]:发送通道控制信号,TXC=0 时,表示 TXD 上传输的是数据;TXC=1 时, 表示 TXD 上传输的是控制字符。TXC[3:0]分别对应 TXD[31:24], TXD[23:16], TXD[15:8], TXD[7:0]。
RXC[3:0]:接收通道控制信号,RXC=0 时,表示 RXD 上传输的是数据;RXC=1 时, 表示 RXD 上传输的是控制字符。RXC[3:0]分别对应 RXD[31:24], RXD[23:16], RXD[15:8], RXD[7:0]。 TX_CLK:TXD 和 TXC 的参考时钟,时钟频率 156.25MHz,在时钟信号的上升沿和 下降沿都采样数据。156.25MHz * 2 * 32 = 10Gbps 。 RX_CLK:RXD 和 RXC 的参考时钟,时钟频率 156.25MHz,在时钟信号的上升沿和 下降沿都采样数据。 XGMII 接口共 74 根连线,单端信号,采用 HSTL/SSTL_2 逻辑,端口电压 1.5V/2.5V, 由于 SSTL_2 的端口电压高,功耗大,现在已很少使用。HSTL 即 High Speed Transceiver Logic,高速发送逻辑的意思。SSTL,即 Stub Series Terminated Logic,短路终止逻辑,主要用于高速内存接口,SSTL 目前存在两种标准,SSTL_3 是 3.3V 标准;SSTL_2 是 2.5V 标准。 XAUI 接口: 由于受电气特性的影响,XGMII 接口的 PCB 走线最大传输距离仅有 7cm,并且 XGMII 接口的连线数量太多,给实际应用带来不便,因此,在实际应用中,XGMII 接口通常被 XAUI 接口代替,XAUI 即 10 Gigabit attachment unit interface, 10G 附属单元接口,XAUI 在 XGMII 的基础上实现了 XGMII 接口的物理距离扩展, 将 PCB 走线的传输距离增加到 50cm,使背板走线成为可能。 源端 XGMII 把收发 32 位宽度数据流分为 4 个独立的 lane 通道,每个 lane 通道 对应一个字节,经 XGXS(XGMII Extender Sublayer)完成 8B/10B 编码后,将 4 个 lane 分别对应 XAUI 的 4 个独立通道,XAUI 端口速率为:2.5Gbps * 1.25 * 4 =12.5Gbps。 在发送端的 XGXS 模块中,将 TXD[31:0]/ RXD[31:0],TXC[3:0]/ RXC[3:0], TX_CLK/ RX_CLK 转换成串行数据从 TX Lane[3:0]/ RX Lane[3:0]中发出去,在 接收端的 XGXS 模块中,串行数据被转换成并行,并且进行时钟恢复和补偿,完 成时钟去抖,经过 5B/4B 解码后,重新聚合成 XGMII。 XAUI 接口采用差分线,收发各四对,CML 逻辑,AC 耦合方式,耦合电容在 10nF~100nF 之间。 XAUI 接口可以直接接光模块,如 XENPAK/X2 等。也可以转换成一路 10G 信号 XFI, 接 XFP/SFP+等。 有些芯片不支持 XAUI 接口,只支持 XGMII 接口,这时可以用专门的芯片进行 XGMIIà XAUI 接口转换,如 BCM8011 等。
分享到:
收藏