0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

以太网时钟的PPM频率偏差的解决方案(上)

CHANBAEK 来源:老戚的硬件笔记 作者:老戚的硬件笔记 2023-06-23 17:54 次阅读

以太网肇始,设备都连接到同一总线(同轴电缆),以半双工的方式通信。载波侦听和冲突检测(CSMA/CD)就是以太网的代名词。据老戚了解,传奇的Catalyst 6500交换机也使用这种半双工的百兆以太网作为控制平面。从总线电路(时钟同步的总线电路)的角度来看,这是妥妥的共同时钟总线系统。后来,以太网也经历了从总线拓扑到点对点的星型拓扑、从物理总线到包交换的转变,交换机(SDN交换机的核心 - 可编程交换芯片)应运而生,成为连接以太网设备的桥梁。

今天以太网是使用最为广泛的局域网(LAN)网络协议。相对于同期的其他协议,以太网胜出的关键在于其成本相对低廉,性能稳定可靠,组网方便灵活。其中重要的一点:以太网设备采用本地时钟,通常低成本的晶振就能满足要求。不同设备采用各自本地时钟,相互之间会有或多或少的频率偏差(skew)。802.3标准要求相对标称频率的偏差不能超过100PPM。考虑到极端的情况:一个时钟快100PPM,一个时钟慢100PPM,它们之间的频差可以多达万分之二,是不是必然导致丢包?我们在做交换机测试的时候,也会遇到端口速率99.99%以上就会丢包,低一点点就不丢了。通常认为这是以太网时钟PPM频率偏差引起的问题,但是很多硬件攻城狮对其中的逻辑感到困惑,老戚在此尝试作一番解读。

老戚认为,物理层(physical layer)的物理编码子层(PCS - Physical Coding Sublayer)对解决时钟PPM问题起了关键作用,PCS借助FIFO处理跨时钟域,通过删除或插入IDLE码组,来消除接收数据和本地时钟的有限频差,这就是弹性缓存(Elastic buffer)。弹性缓存对突发(burst)数据流量有完美的效果,却不能解决长时间线速(line rate)流量下的丢包问题,对此局限我们应当了然于胸。当然,通过上层的流控(flow control)协议,我们可以避免长时间线速。

在深入PCS子层之前,最好先了解一下物理层。

1. IEEE 802.3 物理层规范

IEEE 802.3标准规范了有线(wired)传输以太网的数据链路层(MAC layer)和物理层(physical layer)的协议。不同于无线WIFI,有线传输需要媒质(media),可以是RJ45接口的网线(4对双绞线),SFP/QSFP接口的光模块、无源铜缆,或者PCB背板等等。为了适应不同类型的媒质(信道),我们需要在发送端采用不同的编码(coding)甚至调制(modulation),以便在接收端能够正确的恢复数据。好比搬家公司搬运家具,会先分拆、打包,然后运输,到达目的地后再拆包、组装。跟搬家具不一样的地方在于,电子信号在媒质中的传输过程中伴随着衰减和形变,给接收端的数据恢复带来挑战。

wKgaomSRLRSAHmt-AAFyhBcAAoo465.jpg

<图1>

OSI七层参考模型中,物理层(physical layer)实现了MAC帧(frame)和最终进入媒质中传输的信号之间转换。物理层又可以细分为PCS、PMA、PMD,以及其他一些作为可选项的子层。

<图1>是1000Base-X(1GbE-LX/CX/SX)的物理层结构。如今802.3发展到了400GbE,速率、编解码、协议复杂程度都今非昔比,但是基本的逻辑的依然未变,1000Base-X俨然闪烁着简约之美。

在发送方向(下),PCS把MAC帧(Octets,8bit@125MHz)转化为连续的8b10b编码(code group,10bit@125MHz);PMA把8b10b编码变成串行的比特流(bit stream);PMD把比特流转化为DDR信号,并赋予适当的电气特性,来满足驱动光模块的接口特性要求。无论是MAC帧、8b10b编码还是串行比特流,他们都是与本地时钟同步的信号。最后进入媒质的信号是625MHz时钟的DDR信号,我们称之为内嵌时钟(clock embeded)的数据,因为在接收端可以仅仅依靠数据把时钟恢复出来。注意,这是发送端的本地时钟。

在接收方向(上),PMD从信号中恢复出比特流和RX时钟,实现比特位同步;PMA从比特流中恢复8b10b码型,实现码同步;PCS把8b10b解码转换成MAC帧。注意,PMD和PMA此时的RX时钟其实是对方(发送端)的时钟,而MAC层使用的是接收端的本地时钟。PCS需要实现有限频差的跨时钟域的数据转换而不丢失有用数据。

2. 为什么需要8b10b编码?

通常而言,接收端设计的复杂程度远远高于发送端。且看一下我们在接收端面临的问题:

接收端的PMD通过CDR(clock and Data Recovery)电路把比特数据和RX时钟从625MHz的DDR信号中恢复出来,前提是比特流有足够多的0/1切换;而原始数据是随机的,可能出现长0或者长1;

二进制流的0和1数目对等以实现直流均衡,这对接收端的光电转换灵敏度很关键;

接收端的PMA把串行的比特流转换成(并行的)10b码型,需要特殊码型帮助我们识别码的比特边界,实现码同步;

接收端的PCS检测单比特的误码,以便于评估误码率和信道性能;

8b10b编解码满足所有的要求,实际上,还不止这些。先说数据(data)编码 - Dxy.z。

8b10b编码把8bit的原始数据转化为10bit编码,同时保证10bit编码不出现连续5个以上的长0或者长1;

假如10b编码的0和1的数量不一样,那么它和它的镜像(位取反)作为正/负编码都对应于同一个8b数据,发送端通过选择正负码(多0/1)来实现直流均衡;

任何单比特错误形成的码型不属于有效的码型,这样单比特误码能够被发现;

当然还有最简单的编码解码的RTL逻辑。

wKgZomSRLRSAEYbbAACP-EqoAT4773.jpg

<图2>

实际上,8b/10b编码是由5b/6b和3b/4b两部分组成。图<2>中,

5b/6b: EDCBA -> abcdei

3b/4b: HGF -> fghj

其中,A和a都是最低比特位(lsb)。

D[EDCBA].[HGF]代表二进制数据‘HGFEDCBA’的8b10编码(code group)。

原始数据是随机的,它们占用了1024(2^10)个10b码型中的256(2^8)个。在它们之外,少数码型被挑选出来作为控制码。

wKgZomSRLRSAHkpOAABncjiaI5Y964.jpg

<图3>

8b10b的码的缺点是25%的额外带宽开销。随着端口速率的提升和技术的发展,新的编码方式也被开发出来,比如10G以上的以太网都改成64b/66b编码,PCIe 3.0以上使用128/130b编码,等等。

3. PCS(Physical Coding Sublayer)物理编码子层

8b10b控制码和数据码一起构成了PCS码组(ordered set)。PCS码组由一个或者多个8b10b码型组成。常用的有配置(Configuration),空闲(IDLE),封装(Encapsulation,标志帧头和帧尾)。

wKgaomSRLRSAQpyeAACbS63FH24335.jpg

<图4>

PCS完成了MAC帧和10b码型的转换。图<5>的左边是以完整的以太网帧,包括帧与帧之间的间隙(没有有效数据),右边是每一字节对应的10b编码。想象一下,左右两侧同时被125MHz的时钟驱动,从上往下,形成MAC帧8b10b编码解码的流水线。

wKgZomSRLRSAPNsDAA1Nfo2NsgU534.jpg

<图5>

我们看到,第一个前导码被控制码/K27.7/取代,代表帧头。

从第二个前导码开始一直到校验码帧尾,都是8b10b数据码转换。

帧之后第一个字节(IPG的一部分)被控制码/K29.7/取代,代表帧尾。

帧之后第二个字节(IPG的一部分)被控制码/K23.7/取代,代表载波信号延伸一拍。(根据帧长度是奇数偶数会有差异)

其他IPG将会被/I/完全填充。

IDLE(/I/)是处理时钟PPM的关键,因为它们不是MAC帧的组成部分,可以根据需要来增加或者删除。

限于篇幅,上篇到此为止。本篇阐述了以太网时钟PPM频率偏差问题的由来,基于1000Base-X总结了物理层和PCS层的结构。

我们将在下篇讲讲基于异步FIFO的弹性缓存(Elastic buffer)和解决PPM时钟问题的局限。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5077

    浏览量

    166238
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130306
  • Mac
    Mac
    +关注

    关注

    0

    文章

    1067

    浏览量

    50845
  • 总线系统
    +关注

    关注

    0

    文章

    24

    浏览量

    9982
  • PPM
    PPM
    +关注

    关注

    0

    文章

    44

    浏览量

    16760
收藏 人收藏

    评论

    相关推荐

    车载以太网基础培训——车载以太网的链路层#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月19日 16:25:21

    RS485转以太网的应用、解决方案和关键技术

    RS485转以太网的应用、解决方案和关键技术时间:2010-09-03 作者: 来源:zlmcu1.RS485转以太网的应用  RS485通信技术在工程用得很多,其主要优点如下: &
    发表于 05-27 16:29

    设计坊第三期:灵活的工业以太网解决方案

    本期和大家分享的是灵活的工业以太网解决方案。这篇文章主要介绍利用 Altera ® FPGA 在一块 PCB 实现多标准工业以太网功能。阐述了FPGA 实现的优点,概述了 FPGA
    发表于 12-25 11:17

    以太网供电 (PoE)/LAN 防护解决方案概述

    PoE 是一项成熟且不断发展的技术,用于便捷地通过以太网电缆向负载传输电力,而不必额外增加电源线。浪拓可提供电缆两端的防护解决方案
    发表于 09-12 13:21

    带你了解TIAMIC11x工业以太网从站解决方案

    开发可用于多个不同网络的解决方案更具挑战性。一个解决方案是拥有一个可针对不同协议进行再编程的单个设备。AMIC11x概述:用于工业以太网和现场总线从属设备的多协议处理器。-集成 PRU-ICSS:附带
    发表于 05-23 14:09

    基于Sitara AM57x千兆位以太网EtherCAT主接口解决方案

    描述TIDEP0079 参考设计展示了采用来自 Acontis 的 EC-主站协议栈在 Sitara™ AM572x 处理器运行的 EtherCAT® 主接口。此 EtherCAT 主站解决方案
    发表于 12-26 14:40

    如何选择合适的工业以太网

    来源于他们现有的其中一种基于串行的现场总线。大多数工业以太网标准需要一个单独的设备解决方案。图1描述了一种解决方案,其中包括微控制器单元(MCU)或微处理器单元(MPU)和一个独立的工业以太网
    发表于 07-18 04:45

    详解工业以太网

    第一部工业以太网解决方案的优势和作用目前,世界各地的制造工厂都依赖以太网解决方案来满足工业应用对实时性能和耐用性的要求。与传统现场总线相比,以太网
    发表于 07-18 07:40

    以太网术语解析

    的普及和多种优势,例如巨大的生态体系和日益增长的规模经济,它越来越多地用在存储和汽车等市场中。集成电路 (IC) 设计师正努力将以太网功能集成到设计中,利用以太网IP解决方案满足目标应用的要求。
    发表于 07-26 06:13

    以太网供电方案设计

    高效的以太网供电解决方案降低了总体成本
    发表于 08-26 14:12

    以太网阻塞的常见原因及解决方案

    局域简 单地连成一个更大的网络。在传输忙的情况下,某个节点就可能不成比例地消耗掉单一 网段集线器的流量。因为在同一时间只能支持一个对话。  以太网阻塞的解决方案  1、使用网桥和路
    发表于 12-11 15:47

    基于标准的汽车以太网解决方案的优势有哪些?

    基于标准的汽车以太网解决方案的优势有哪些?
    发表于 05-24 06:46

    亚信电子最新工业以太网控制芯片解决方案介绍视频

    这个视频介绍亚信电子最新的工业以太网EtherCAT从站控制芯片与TSN PCIe千兆以太网解决方案。因应全球对智能生产自动化的强大需求,工业以太网产品市场逐年快速成长,并于2018
    发表于 05-31 10:52

    高速以太网引动超大规模计算技术革新,时钟方案是实现高速以太网的关键

    100G以太网虽然是一种流行且具有成本效益的解决方案,但光纤高速以太网的增加使用推动了对无线网络和数据中心环境中高性能时钟频率控制产品的需
    的头像 发表于 03-16 13:42 4905次阅读

    以太网时钟PPM频率偏差解决方案(下)

    图是深度(depth)为8的异步FIFO的示意图。其中,0~7代表8个寄存器,他们组成了一个环。
    的头像 发表于 06-23 17:55 1605次阅读
    <b class='flag-5'>以太网</b><b class='flag-5'>时钟</b>的<b class='flag-5'>PPM</b><b class='flag-5'>频率</b><b class='flag-5'>偏差</b>的<b class='flag-5'>解决方案</b>(下)