SGMII协议解析

什么是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。

版权声明:本文为CSDN博主「poena」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/poena/article/details/118992738

生成海报
点赞 0

poena

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

WT588F02KD-24SS数码管时钟语音播报芯片设计方案

随着智能家电的普及应用,消费者对于常用家电设备的功能要求也越来越高。对于时钟的要求也不仅仅只满足于看时间和闹钟功能,现在的智能家居几乎都有语音播报、语音提示的功能,能够准确的播报当前的时间&#xff0c

利用Micropython+socket通信实现两块esp32之间的通信

利用Micropythonsocket通信实现两块esp32之间的通信 前言 前段时间参考灯哥开源的资料打造了一个基于esp32的四足八自由度的机械狗。前前端时间参考b站的键盘制作视频制作了一个3*3键位的小机械键盘,想着可以把

LORA电能表在变电所场合的应用

安科瑞 王冲 摘要:在科技发达的今天,电能依旧是国家发展、社会稳定的重要来源。电力配电快速成长,也带来许多问题。在电表安装地点分布广,或布线紧密情况下,传统的有线通讯方式是

TYPE-C保温杯方案

在你旅行出差的时候,如果有这样一款水杯,可以随时随地把水加热,那该有多好!在忙碌开车的时候,你是否想要来一壶暖心的热水?当你在户外露营的时候,小孩子的牛奶冷了&