【以太网硬件二十】USXGMII是什么?

👉个人主页: highman110
👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容

目录

回顾 

概览

功能框图描述

XGMII接口和数据包

XGMII接口信号

XGMII数据流

XGMII信号传输示例


回顾 

        先来回顾一下以前讲过的各种媒体独立接口:

        MII:连接MAC和PHY的媒体独立接口,数据位宽4bit,支持速率10/100Mbit/s。

        GMII:千兆媒体独立接口,数据位宽8bit,向下兼容MII,当兼容MII时,只使用低4bit数据线,支持速率10/100/1000Mbit/s。

        SGMII:串行千兆媒体独立接口,连接千兆PHY和MACserdes速率1.25Gbps,思科定的规范,ENG-46158

        QSGMII:四路串行千兆媒体独立接口,连接四端口千兆PHY和MAC,serdes速率5Gbps,思科定的规范,EDCS-540103。

        USGMII:通用串行千兆媒体独立接口,是SGMII和QSGMII的扩展规范,可向后兼容,还支持连接4端口或8端口千兆PHY和MAC,serdes速率5Gbps或10Gbps,思科定的规范,EDCS-1155168。

        USXGMII:通用串行10G媒体独立接口,支持连接多端口、多速率PHY和MAC,思科定的规范,EDCS-1150953。

        本文讲述USXGMII,下面先贴一张该接口的连接示意图,有个直观的认识:

        从上图可以看到USXGMII可以连接单端口PHY,支持端口速率从10M到10G,也可以连接4端口PHY,支持端口速率从10M到2.5G,还可以支持2端口PHY,支持端口速率从10M到5G。通过以上端口数量和速率的分布,可以知道USXGMII支持的最大数据速率约为10G,之所以说是约为10G,是因为serdes里面会有一些编码开销,后面会说明。

概览

        USXGMII链路由收发各一对差分对组成,用来在单端口或多端口PHY和MAC之间传递数据帧和link速率等控制信息,USXGMII serdes的最大速率由外部端口最大速率决定,一般是有5G和10G两种serdes速率,如下图:

        UXSGMII还有如下特性:

        1、只支持全双工;

        2、支持传输PTP时间戳;

        3、支持所有速率的硬件辅助自动协商;

        3、支持灵活地在前导码的扩展字段中添加新功能。

        注意:

        1、UXSGMII只支持10G和5G两种serdes速率,如果要直接出光口,只能出10Gbase-R,如果想要出1000base-x或者2500base-x,只能通过PHY转,不能直接出。

        2、10M电口也是可以从PHY出的,上表中没有列出来,如果是单端口10M,那5G-USXGMII就要将端口报文复制500份,10G-USXGMII就要将端口报文复制1000份。

功能框图描述

        USXGMII直接沿用了IEEE 803.2 clause 49中定义的64B/66B PCS。PCS功能框架保持不变,另外通过IEEE定义的“有序集”机制添加了额外的功能。      

        ASIC侧(比如CPU)的USXGMII模块包含的组成部分如下:

        1、10G和1G MAC模块,出XGMII和GMII标准接口,其中GMII接口会在速率自适应模块被映射到XGMII;

        2、沿用自802.3 clause 49中10Gbase-R的PCS模块,新增了一些ordered sets;

        3、自协商处理模块;

        4、5.15625/10.325Gbps SERDES PMA模块。

        PHY侧的USXGMII模块包含的组成部分如下:

        1、系统侧的PMA、PCS、速率自适应模块与前面说的ASCI中包含的相关模块一样,就是ASIC侧把MAC模块出的标准接口XGMII或GMII转成串行输出了,在PHY芯片里就要把这个串行接口恢复成标准接口;

        2、后面就是和外部网络侧接口相关的PHY子层:PCS、PMA、PMD;

        3、自协商模块,沿用802.3 clause 37。

        4、在发送测(下面绿框),当网络接口是100M或1G模式时,GMII信号将被编码到XGMII中以15.6254M/s速率进行传输,当网络接口是2.5G、5G、10G模式时,直接使用XGMII进行传输。

XGMII接口和数据包

        由于USXGMII是XGMII的串行化,USXGMII上传输的数据来源就是XGMII上的数据,所以有必要先学习一下XGMII接口的数据包格式。

        XGMII数据包,由于XGMII是MAC与PHY之间的标准接口,所以XGMII数据包实际上就是MAC内封装成的以太网帧,关于以太网的帧结构我们以前的文章讲MAC功能时也说过,这里不多提了。

XGMII接口信号

        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],每8个数据位在逻辑上为一条lane。

        RXC[3:0]:接收通道控制信号,RXC=0时,表示RXD上传输的是数据;RXC=1时,表示RXD上传输的是控制字符。RXC[3:0]分别对应RXD[31:24],RXD[23:16],RXD[15:8],RXD[7:0],每8个数据位在逻辑上为一条lane。

        TX_CLK:TXD和TXC的参考时钟,时钟频率156.25MHz,在时钟信号的上升沿和下降沿都采样数据。156.25MHz * 2 * 32 = 10Gbps 。

        RX_CLK:RXD和RXC的参考时钟,时钟频率156.25MHz,在时钟信号的上升沿和下降沿都采样数据。

XGMII数据流

        XGMII上传输的数据流结构如下:

        Inter-frame:帧间隙,两段数据帧之间的间隙,以Terminate控制字开始,接着是Idle控制字,以start控制字符前一个Idle字结束。这个帧间隙有几个功能:1、RS lane间对齐;2、PHY子层PCS到PMA速率适配;3、10GBASE-W数据速率自适应。

        Preamble:前导,由MAC生成往下传,就是MAC帧结构中的前导码,共7个字节:

10101010 10101010 10101010 10101010 10101010 10101010 10101010,在发送时,RS会将前导码的第一个字节转换为XGMII上的开始控制字符(0xFB,11011111),接收时又会将开始控制字符转换回前导码。

        SFD:帧起始分隔符,表示以太网帧的开始,紧跟在前导码之后,XGMII里面的SFD和以太网MAC帧结构中的SFD一致,为0xD5,10101011。

        注意:以上前导码和SFD字节中,最左边的比特是八位字节中的LSB,而最右边的比特是该八位字节组中的MSB。

        有同学看到这可能有疑问,MAC帧结构中已经有了一个帧起始标志SFD了,为什么XGMII上传输又多了一个由前导码第一个字节转换而成的开始控制字符?这么做的目的是为了把XGMII传输的开始字符固定在lane0上,方便更好地做字符对齐,经过处理后的前导和SFD分布如下:

 

        Data:数据包,这个很好理解。

        EFD:帧结束分隔符,当TXC或RXD为1时,由任何一条lane上数据为0xFD构成EFD。

XGMII信号传输示例

        XGMII上的信号组合有如下几种:

        第1个是数据信息,TXC为0,TXD上为数据比特;

        第3个是LPI请求的控制信息,TXC为1,每条lane上TXD同时为0x06;

        第4个是idle控制信息,TXC为1,TXD上为0x07;

        第5个是序列号控制信息,TXC为1,TXD[7:0]为0x9C,序列号只能在lane0上,是XGMII上的ordered sets的第一个字节;XGMII定义了如下几种ordered sets:

         第7个是报文起始控制信息,TXC为1,TXD[7:0]为0xFB,起始信号只能在lane0上;

        第8个是报文结束控制信息,TXC为1,TXD为0xFD;

        第9个是发送错误控制信息,TXC为1,TXD为0xFE;

        接收端和发送端类似,大家自行查阅规范802.3 46.3.2。

        如下是一个正常的数据帧传输的示意图:

        找到上图中的S,即XGMII上由前导码第一个字节转换而来的起始控制字符,在这个字符之前是帧间隙,之后是6个字节的前导码,注意前导码也是data字符,所以对应的TXC为0。前导码之后就是SFD,以太网帧起始分隔符,随后就是帧data,数据发完就是结束控制字符T,后面就又是帧间隙了。 

        今天先介绍到这里,下篇介绍USXGMII框架中PCS子层的功能细节和XGMII到USXGMII之间的映射。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/93691.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模型的保存加载、模型微调、GPU使用及Pytorch常见报错

序列化与反序列化 序列化就是说内存中的某一个对象保存到硬盘当中,以二进制序列的形式存储下来,这就是一个序列化的过程。 而反序列化,就是将硬盘中存储的二进制的数,反序列化到内存当中,得到一个相应的对象&#xff…

基于Springboot实现的Echarts图表

概述 ECharts是百度开源的一个前端组件。它是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)&…

python爬取bilibili,下载视频

一. 内容简介 python爬取bilibili,下载视频 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 链接:https://pan.baidu.com/s/1WuXTso_iltLlnrLffi1kYQ?pwd1234 三.主要流程 3.1 下载单个视频 代码 import requests impor…

ChatGPT总结(持续更新)

目录 体验渠道 weTab CSDN-AI助手 其他插件 ChatGPT简介 ChatGPT主要用途 ChatGPT发展历程 GPT-4架构的特点和优势 ChatGPT的工作原理 神经网络和自然语言处理技术 Transformer模型 模型训练优化技巧 ChatGPT对程序员的帮助 与ChatGPT交互和提问技巧 ChatGPT未来…

go语言--锁

锁的基础,go的锁是构建在原子操作和信号锁之上的 原子锁 原子包实现协程的对同一个数据的操作,可以实现原子操作,只能用于简单变量的简单操作,可以把多个操作变成一个操作 sema锁 也叫信号量锁/信号锁 核心是一个uint32值&#…

38、springboot为 spring mvc 提供的静态资源管理,覆盖和添加静态资源目录

springboot为 spring mvc 提供的静态资源管理 ★ Spring Boot为Spring MVC提供了默认的静态资源管理: ▲ 默认的四个静态资源目录: /META-INF/resources > /resources > /static > /public ▲ ResourceProperties.java类的源代码&#xff0…

结合OB Cloud区别于MySQL的4大特性,规划降本方案

任何一家企业想要获得持续性的发展与盈利,“降本增效”都是难以绕开的命题。但是“一刀切”的降本影响往往不太可控,成本的快速收缩往往会给业务带来低效运营和增长缓慢的风险。所以我们所说的降本,是指在成本降低的同时,效率不降…

Python中 re.compile 函数的使用

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 以下介绍在python的re模块中怎样应用正则表达式 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备…

QtConcurrent和QFuture的使用

在Qt中,有时候我们会遇到这样一种情况,需要执行一个很长时间的操作,这时候我们的主界面就会卡住。我们的通常做法就是把这个很长时间的操作扔到线程里去处理,可以使用标准库中的线程也可以使用QThread。 如果我们要在这个很长时间…

Citespace、vosviewer、R语言的文献计量学 、SCI

文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体,注重量化的综合性知识体系。特别是,信息可视化技术手段和方法的运用,可直观的展示主题的研究发展历程、研究现状、研究…

实现不同局域网间的文件共享和端口映射,使用Python自带的HTTP服务

文章目录 1. 前言2. 本地文件服务器搭建2.1 python的安装和设置2.2 cpolar的安装和注册 3. 本地文件服务器的发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 数据共享作为和连接作为互联网的基础应用,不仅在商业和办公场景有广泛的应用…

Pytorch-以数字识别更好地入门深度学习

目录 一、数据介绍 二、下载数据 三、可视化数据 四、模型构建 五、模型训练 六、模型预测 一、数据介绍 MNIST数据集是深度学习入门的经典案例,因为它具有以下优点: 1. 数据量小,计算速度快。MNIST数据集包含60000个训练样本和1000…