高速串行总线设计基础(十)常用MGT协议简介以及自定义协议示例

李锐博恩 2020-12-19 13:31:48 10468

MGTs设计的挑战

了解各个挑战是开始解决任何工程问题的关键。设计多吉比特收发器(MGT)时,挑战包括理解收发器协议,信号完整性,阻抗和电源要求,屏蔽要求,印刷电路板(PCB)设计要求以及连接器和电缆选择要求。原型的仿真和测试对于成功的MGT设计也至关重要。本文先来讨论MGT协议的那些事!

协议概念介绍

SERDESs本身是相对灵活的设备。要设计它们,你必须定义一个对齐序列、一个时钟校正序列、链路编码方式和物理连接,数据就会在两个收发器之间流动。但这些数据的意义需要更多的定义,这就是协议的目的。什么数据传输到哪里,数据的含义是什么,数据中插入了什么,什么可以丢弃,都是由协议来定义的。

MGT的协议可以有很大的不同,从简单的数据定义到复杂的接口,再到上层协议。在MGTs中可以指定的项目包括:

  1. 数据格式(Data formats):视频和音频协议的值定义;我们如何使用1和0来表示特定的值或含义。

  2. 子信道(Sub-channels):通常在同一链路上需要几个不同的通道。子通道的一些常见用途是控制、状态和辅助数据路径。

  3. 数据条带化(Data striping):协议的一个常见功能是定义数据与开销的分离方式和位置。这通常被称为条带化或去嵌入。

  4. 嵌入(Embedding):协议通常定义数据与开销分离的方式和位置。协议经常定义数据如何以及在哪里被嵌入到协议流或数据包中。这对于遵循协议栈模型的协议尤其如此。

  5. 错误检测和处理(Errors detection and handling):协议定义了如何检测到错误以及发生错误时的情况。

  6. 流控制(Flow control):协议还可以定义流控制。这可以是多种多样的,从定义动态缩放子通道带宽分配的方式,到改变空闲插入率以匹配时钟校正需求。

  7. 寻址/切换/转发(Addressing/switching/forwarding):虽然串行协议的直接点对点性质消除了对寻址方案的许多需求,但一些更复杂的协议包括寻址方案。有了寻址就有了转发和交换的可能。

  8. 物理接口(Physical interface):驱动级别、预加重等,由协议指定,以确保设备之间的兼容性。

通常协议的选择很简单。在构建PCI Express卡时,只需运行PCI Express协议即可。但在构建专有系统时,系统架构师必须决定是使用预定义协议还是设计自定义协议。

标准协议

接下来提供一些工业标准协议的简要介绍(这些标准的完整定义可能内容很多,这里仅简要介绍)。

  1. XAUI:万兆以太网的4通道接口(2.5 Gb/s有效载荷,3.125 Gb/s线速)。

  2. PCI Express:将旧的并行PCI结构更新为高速串行结构。该协议的上层协议保持兼容,可轻松适应传统的PCI系统。

  3. Serial RapidIO:旧的并行规范的另一个串行版本,RapidIO相当灵活,有时被用作与PCI和Infiniband等多个协议接口的方法。

  4. FiberChannel:FiberChannel一直是一个串行标准,但它的速度在多年来一直在增加。随着铜缆互连的发展,它也已经可以在铜缆以及光纤上使用。

  5. Infiniband:一种在铜线或光纤上运行的盒对盒协议。Infiniband类型的电缆已在几米范围内的多吉比特链接中高度流行。该规范允许各种设备和复杂性,并包括中继器、交换机或集线器的规格,以扩大连接设备的数量。Infiniband还可以使用Infiniband交换机和控制台进行复杂的系统配置,如下图。

Infiniband交换机和控制台
Infiniband交换机和控制台
  1. 高级交换(Advanced Switching):一种建立在与PCI Express相同的物理和数据级协议上的交换式结构协议。在交换结构领域,这是一套新兴的重要标准。

  2. PICMG:PICMG是一个由600多家公司组成的联盟,他们合作开发高性能标准化背板架构的开放规范。其中许多标准使用了PCI和Infiniband等其他工业标准。

  3. ATCA:又称高级电信计算架构或AdvancedTCA,这个PICMG标准是下一代电信机柜的规范。它的目的是缓解多厂商之间的操作性,同时提供一个非常灵活、非常可扩展的系统。该标准在一个共同的主题下有各种实现。包括星型背板的架构、冗余星型背板和全连接网状架构。

ATCA 大楼
ATCA 大楼
Example ATCA Card
Example ATCA Card

ATCA Carrier for Two PCIe Modules

PICMG 3.0 Backplane
PICMG 3.0 Backplane
  1. Aurora:Aurora是一种相对简单的协议,仅处理链路层和物理问题。它被设计为允许其他协议(例如TCP / IP或以太网)轻松在其之上运行。它使用一个或多个高速串行通道,如下图:
Top-Level Architecture
Top-Level Architecture
Aurora 8B/10B Channel Overview
Aurora 8B/10B Channel Overview
  • 除了物理接口定义外,它还定义了一个数据包结构,以及嵌入其他协议数据包、数据条带和流控制的推荐程序。它定义了一个验证链路的初始化程序,并描述了一个不允许使用错误过多的链路的程序。它没有任何寻址方案,所以不支持交换。它也没有定义数据有效载荷内的错误检测和重试或纠正。该协议由Xilinx公司开发,并发布给公众使用,不受限制。如下图:
Aurora Loading Other Protocols into its Data Stream
Aurora Loading Other Protocols into its Data Stream

自定义协议

有时候您想定义自己的协议。当标准协议不能满足您的需求和/或对于您的应用而言过于广泛时,这通常是有意义的。当然,有时也需要新的复杂协议,但这通常由专家委员会来决定。

在定义自己的协议时,需要考虑的一些事情最好通过一个简单的例子来说明。

在示例应用中,我们需要将一个恒定的1.8 GHz流从一个板子传输到另一个板子。进出系统的数据将是一个12位的总线,以150 MHz的速度变化。

有了这个简单的要求,你真正需要从协议中得到的是数据帧的定义、对齐和空闲字符。在这个例子中,我们将使用8b/10b作为链路编码方案,并借鉴其他8b/10b标准来选择我们的标记和逗号。我们链接的基本结构如下图所示。

基本链路协议结构
基本链路协议结构

注:sf表示帧开始; ef表示帧尾

一旦我们为sf(帧的开始),ef(帧的结束)和空闲定义了一个字符或一组有序的字符,就需要确定线速度和数据帧大小。应该选择数据帧的大小,以便我们可以保证有足够的sf符号可以对齐,而空闲的符号可以提供时钟校正。在这种情况下,由于我们需要1.8 GHz的数据有效负载,因此一个简单的选择就是以2.5 Gb / s的速度运行线路。

这为我们提供了2 Gb / s的“有线有效负载”,可用于我们的1.8 GHz数据需求,而额外的容量可满足我们的开销需求。

因为我们要进行板对板(board-to-board),所以肯定会有不同的振荡器来驱动收发器的发送时钟,因此我们必须考虑时钟校正。在考虑制作数据框的大小时,我们需要权衡两个相互矛盾的需求。数据帧越大,开销越少,可用数据的带宽就越大。数据帧越小,对齐和时钟校正字符越多。显然,我们必须在这两个需求之间取得平衡。我们可以计算两个极限并在中间选择一些东西。

数据处理能力很容易计算。在可用的2Gb/s中,我们需要1.8Gb/s。因此,只要开销位适合可用空间,我们就可以了。现在,我们必须选择一个方便的大小,看看它是否有效。

如果数据帧包含2048个字节,并且开销为10个字节(sf为2个字节,ef为2个字节,空闲为6个字节),那么我们的总开销率为10/2058或大约0.5%。我们的可用开销为0.2 / 2或10%。我们可以将数据帧缩小20倍,但仍在我们的开销预算之内。

如果有必要的话,我们希望更小的时钟校正,所以我们需要研究这个问题。我们特殊的MGT需要一个20ppm精度的参考时钟。如果我们将MGT编程为2个符号宽的空闲序列,最大的校正将是每49,999个符号。空闲字符之间的距离必须小于这个数字。在大多数情况下,我们希望它小于空闲字符之间最大距离的1/3。我们大约是1/24,所以我们的非常简单的协议几乎已经确定了。我们唯一需要处理的是一个流控问题。

还记得我们只用了0.5%的时间做开销,却有10%的可用空间吗?我们需要定义什么来填充这个空间,以及谁来管理这个填充。所以我们需要用空闲时间来填充这段额外的时间,如下图:

帧起始字节之间的距离不同
帧起始字节之间的距离不同

请注意,根据参考振荡器的不同,帧间空闲的确切数量需要略有不同。如何发生这种情况应该在协议中定义,空闲字节的剥离也应该在协议中定义。我们可以在协议中简单地定义,发射机的责任是增加足够的空闲时间来填充线时间,而接收机的责任是将所有空闲时间,包括帧的开始和结束,从输入的数据流中剥离出来。

所以,这样九定义一个简单的协议的全部内容。但是实现呢?大部分的工作将由一个支持8b/10b的MGT来完成。我们需要在接口上添加一些自定义逻辑,但不需要处理器或软件,甚至不需要复杂的状态机。

在两个板之间传输1.8 Gbit数据的简单协议
在两个板之间传输1.8 Gbit数据的简单协议

下图显示了定制硬件和实现该协议的MGT的框图。

带MGT的定制硬件
带MGT的定制硬件

在某些情况下,一个非常简单的专有协议可能正是您所需要的。

拓展阅读

An Introduction to NI High-Speed Serial Instruments

Intel® Arria® 10 Transceiver PHY User Guide

XILINX_HighSpeedTransceivers_IN2P3.pdf

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
李锐博恩
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区