SGMII协议解析

2023-11-16

什么是SGMII?

先说什么是GMII/MII。 MII是ethernet协议里面MAC层和PHY层之间的接口标准。MII是4bits的数据位宽,支持10/100M的数据传输。GMII前面G表示Gigabit,代表支持1000M的传输速率。需要说明的是MII是GMII的子集,也即是说支持GMII标准的设备,同时支持10/100/1000M三种模式。
SGMII前面的S代表Serial,即串行的意思。前面说了MII的数据位宽是4bits,GMII是8bits,SGMII则是1bit。
需要澄清的是SGMII是否只支持1G速率?答案是:错误!同时支持三种速率。具体速率是通过自协商来决定的,如果某个厂商的设备只做了1种速率支持,其实是实现了协议的一个子集,在某种场景下也是可以工作,而不是说协议只规定了一种速率模式。

为什么需要用SGMII?

SGMII协议是CISCO公司提出来的,可以减少芯片间互联的管脚。传统的GMII前面说了是8bits数据线,此外还需要时钟,和一些控制线,双向加起来要20根线左右。而SGMII接口是1根数据线加1根时钟线,双向共4根。如果去掉时钟线(采用CDR),那么2根线就可以实现互联了。

SGMII接口如何与PHY芯片互联?

在这里插入图片描述

SGMII的时序与电气特性也是有规定的,时序上采用类似DDR的接口,电平采用LVDS标准。
在这里插入图片描述
协议里规定了输出信号需要提供一个半速率、90度相移的时钟信号。同时也允许接收端采用CDR恢复时钟的方式。

既然已经串行化了是不是不用接PHY芯片了?答案是否定的。因为常用ethernet介质为双绞线。而802.3协议里的物理层定义的信号为PAM5。而PCS输出的信号为NRZ信号。当然如果用sgmii实现两个芯片的mac层短距互联也是可以的,这就超出了802.3协议的定义了。

SGMII如何实施?

SGMII本质上并没有对以太网协议的分层做改动,还是MAC层,PCS层和PMA层。原来GMII模式下,MAC层一般做在SOC侧,PHY层包括PCS+PMA做在另一个单独的芯片上。而SGMII的实施是将PCS层也同时放在了原来的MAC侧。这样SOC芯片和PHY芯片各有一个PCS层。
对于SOC发送来说,数据包有MAC层过来,经过tx 的pcs,从SGMII接口发送出去。在PHY芯片上,有一个rx的pcs先将SGMII的信号解出GMII信号,然后再经过传统的PHY层处理发送到介质上。对于SOC接收来说,则反过来。

SGMII如何自协商?

SGMII的自协商从功能角度来说采用1G以太(802.3z)的自协商功能。即pcs和phy之间传递参数。但发送的内容和802.3z协议里定义的参数格式不同。
在这里插入图片描述
从上表可以看到SGMII的自协商参数内容。流程上是PHY将配置发给PCS,PCS发送确认信息。值得注意的是此处的自协商是指802.3中第37章节里定义的PCS自协商,是不包括链路信息的。

以上信息解读来自于Serial-GMII Specification version 1.8。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SGMII协议解析 的相关文章

  • 集成算法——Adaboost代码

    集成算法是我们将不同的分类器组合起来 而这种组合结果就被称为集成方法或者是元算法 使用集成方法时会有多种形式 可以是不同算法的集成 也可以是同意算法在不同设置下的集成 还可以是数据集不同部分分配给不同分类器之后的集成 两种形式 baggin
  • 【总结】Markdown个人常用语法

    目录 输入 toc 按回车Enter Table of Contents TOC toc 标题 一级标题 二级标题 六级标题 段落 一个段落是由一个以上的连接的行句组成 一个以上的空行和Tab则会划分出不同的段落 一般的段落不需要用空白或换
  • GFPGAN源码分析—第十四篇

    项目总结 1 简述思想 本项目主要是利用预训练好的GAN生成器 StyleGAN 作为先验实现低质量人脸图片的修复 论文中提到 1 We leverage rich and diverse generative facial priors
  • vue中实现el-table点选和鼠标框选功能

    实现思路 项目有两个需求 既能在el table实现点选又能实现鼠标框选 一 点选实现思路 使用el table的cellClick方法 1 直接给点击的cell添加类名 cell classList add blue cell 然后把获取
  • golang 读取文件最后一行_测试用例是开发人员最后一块遮羞布

    最近一周写一个比较复杂的业务模块 越写到后面真心越心虚 操作越来越复杂了 代码也逐渐凌乱了起来 比如一个接口 传入的是一个比较复杂的大json 我需要解析这个大json 然后根据json中字段进行增删改查 调用第三方服务等操作 告诉前端接口
  • 微信支付配置流程

    微信支付配置流程 1 微信支付配置 微信公众号平台 gt 如果没有正式域名就要在安全中心配置白名单IP 2 微信公众号 微信公众号设置 gt 在功能设置里面的网页授权域名 3 商户号 产品中心 gt 开发配置 gt 配置jsApi支付页面的

随机推荐

  • vue3中a-table表格默认选中禁止选择

    效果 代码 使用row selection中的getCheckboxProps属性 其中preserveSelectedRowKeys属性设置为true 是为了表格切换页的时候 保留其他页面选中的数据 点击按钮 出现弹窗 const add
  • 深度学习:图像增强

    https blog csdn net zhangjunhit article details 79554140
  • Unity 使Text文本内容配合音频逐个显示并动态设置富文本

    在做一个项目时 需要Text文本内容逐个显示 并且配合音频的播放速度 当音频结束时 文本也显示完毕 而且给每一段文本设置不同的颜色和字号 代码如下 using System Collections using System Collecti
  • jenkins exec command 命令不执行

    本文记述的exec command 命令不执行情况是因为用户权限导致的 根据结果反馈就好像该设置不存在一样但是也没有报错 情况1 前端项目linux截图如下 图中1标志为jenkins所打的包 但是2标志是root账号的dist文件 因权限
  • plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致

    plsql 登录后提示 Database character set AL32UTF8 and Client character set ZHS16GBK are different Character set conversion may
  • Qt信号槽连接方式源码解读

    前言 Qt的五 四 种连接方式 在上一篇已经讲明 本篇主要分析在源码上是如何实现这几种连接方式的 本次源码为Qt 5 15 2 搞懂务必认真阅读最后添加注释后的代码 connect时会做什么 已知connect是可以实现一个信号连接多个槽的
  • ORT执行推理如何指定device编号

    法1 在执行推理前运行命令指定卡号 如 export CUDA VISIBLE DEVICES 1 python test py ox resnet50 16 fp32 说明 编号从0开始 通过上面的方式指定后 推理任务会在第2张卡中运行
  • window 服务器不稳定,服务器Windows系统突发情况的解决办法

    服务器Windows系统现在还是大部分的站长的选择 有很多用户是使用Windows作为网站服务器的系统 今天小编对于服务器Windows系统在维护过程中出现的几种突发情况 来讲讲解决办法 1 终端协议错误 如果用记事本或其他编辑器在远程终端
  • lambda 函数完美使用指南

    来源 萝卜大杂烩 今天我们来学习 Python 中的 lambda 函数 并探讨使用它的优点和局限性 什么是 Python 中的 Lambda 函数 lambda 函数是一个匿名函数 即 没有名称定义 它可以接受任意数量的参数 但与普通函数
  • 浅拷贝和深拷贝的区别

    浅拷贝 Shallow Copy 和深拷贝 Deep Copy 是两种复制对象的方式 它们之间的主要区别在于复制过程中是否会复制对象内部的引用类型数据 浅拷贝 Shallow Copy 浅拷贝仅复制了对象本身以及对象内部的基本数据类型 如i
  • 医学图像2D/3D可视化 ITK-SNAP软件使用

    软件下载链接 ITK SNAP Home 1 导入医学图像 nii gz文件 File gt Open Main Image 点击 Browse 切记不能有中文路径 gt Next 2 载入相应的分割图数据 nii gz文件 Segment
  • Android学习笔记——归纳整理

    目录 一 Android系统架构 二 Actvity相关 2 1基础相关 2 2 Intent相关 2 2 1 Intent的组成 2 2 2 显式Intent 2 2 3 隐式Intent 2 2 4 Intent属性 2 2 5 Int
  • Spring 单元测试中如何进行 mock

    我们在使用 Spring 开发项目时 都会用到依赖注入 如果程序依赖了外部系统或者不可控组件 比如依赖数据库 网络通信 文件系统等 我们在编写单元测试时 并不需要实际对外部系统进行操作 这时就要将被测试代码与外部系统进行解耦 而这种解耦方法
  • objects365数据集下载

    链接 https pan baidu com s 1QiWm8hCJus3LstZkz6Mzdw 提取码 wmrx
  • MySQL的索引和事务

    一 索引 一 索引概念 索引是一种特殊的文件 包含数据库中所有记录的引用 可以对表中的一列或多列创建索引 并指定索引的类型 存储引擎 每种索引在不同的存储引擎中的实现都有可能不同 索引类似数组的下标 通过下标拿到数组中的数据是很快的 同样通
  • 字符串右移n位

    题目 实现字符串右移几位 即 abcd 移两位变 cdab 思路 申请一个与待移位同样大小的数组 用来保存移位后的字符串 通过公式计算出简化的移位数 得到某字符移位后的新位置后 就将其字符值存放到新数组的对应位置 循环第3步 直至检测到字符
  • 【JVM】JVM基础知识:常量池、类加载、JVM内存模型、对象的创建过程

    前言 讲一下大概的内容 类加载 JVM内存模型 对象的创建 垃圾回收 JVM调优 入门 最近抽了时间学了一直都很想学的 JVM 之前也学过一点 也发布过一些零散的文章 但这篇文章会更加全面 学完这篇文章就足以应对有关 JVM 的面试 如果遇
  • java实现高斯赛德尔算法解线性方程组

    package linear equation import java util Scanner 使用高斯赛德尔迭代法求解线性方程组 public class Gauss Seidel Iterate 求下三角 private static
  • nodejs如何添加html文件上传,通过nodejs实现文件的上传

    通过nodejs实现文件的上传 主要内容 本文将用来讲述如何通过nodejs进行文件上传 将会涉及到以下知识点 通过express模块进行服务器的搭建 通过multer模块将上传的文件保存到指定目录 通过fs path模块将文件改名 添加后
  • SGMII协议解析

    什么是SGMII 先说什么是GMII MII MII是ethernet协议里面MAC层和PHY层之间的接口标准 MII是4bits的数据位宽 支持10 100M的数据传输 GMII前面G表示Gigabit 代表支持1000M的传输速率 需要