当前位置: 首页 > news >正文

【电路笔记 通信】8B/10B编码 高速数据传输的串行数据编码技术 论文第三部分 The 8B/10B coding map

0810逻辑总览 The 8B/10B coding map

  • 图 1 展示了一个通信适配器接口,它由八条数据线 A、B、C、D、E、F、G、H(注意:使用大写字母表示)、一条控制线 K,以及一条以字节速率运行的时钟线 BYTECLK 组成。控制线 K 用于指示 A 到 H 这些线是表示数据信息还是控制信息

在这里插入图片描述

  • 为了编码目的,每个输入字节被划分为两个子块:

    • 五条二进制数据线 ABCDE 被编码成六条二进制数据线 abcdei(注意:使用小写字母表示),遵循 5B/6B 逻辑函数失衡控制 的指示。
    • 同样,三个位 FGH 被编码成 fghj
    • 注:数据块的失衡是指该块中 10 的数量之差;正失衡负失衡分别表示 10 的过剩。对于 6B = abcdei4B = fghj 子块,允许的失衡值为 0、+2 或 -2
    • 注:编码规则要求非零失衡块的极性必须交替。同时,6B 子块4B 子块之间不做区分;也就是说,在 6B 块中多出的两个 1 可以通过在 6B4B 块中多出的两个 0 来补偿,反之亦然。
  • 非零失衡的编码点以互补对的形式分配给单一的源数据点。编码函数生成其中一个编码点;如果该编码点违反了交替极性规则,则在编码切换中会对整个子块进行反转。6B 编码器中失衡和极性的确定之后,会进行相应的 4B 编码器操作,接着将运行失衡参数传递给下一字节的编码。大多数编码后的子块是零失衡,并且在大多数情况下,它们与运行失衡无关;即,它们没有互补。

  • 这十条编码后的数据线 abcdeifghj 通常与串行接口;其中,a 位必须首先传输,而 j 位最后传输。

编码定义

8B/10B 编码通过将输入字节的 ABCDE 位 编码到 5B/6B 编码器中的数据线 abcdei 来完成,遵循 表 3 中的编码计划和规则;而 FGH 位 则在 3B/4B 编码器中编码为数据线 fghj,如 表 4 所示。

5B/6B encoding

在这里插入图片描述

  • 表 3 中的第一列,标题为 “Name”,列出了 ABCDE 输入线 的 32 个十进制等效值,假设 A 是最低有效位,E 是最高有效位。对于常规数据(D.x),K 线必须保持为 0为了编码特殊字符,K 线必须为 1;少数编码点可以是特殊字符的一部分,这些特殊字符可以被识别为非数据字符;这些编码点被命名为 D/K.xK.x,并且在 K 列中标有 x

  • “classification” 列中,L04 表示在 ABCD 中没有 1,只有四个 0L13 表示在 ABCD 中有一个 1 和三个 0,以此类推。字母 L 表示该逻辑函数或分类是 5B/6B 编码器的一部分。类似的功能标记为 P,用于解码(见表 6)。符号右侧的重音符号用于表示互补;例如 E’ 表示 E 的互补;点( )表示逻辑与(AND)运算。

  • 在左侧 “abcdei” 标题下的列中,列出了所有直接由 5B/6B 逻辑函数ABCDE 输入 生成的编码点。编码表的设计目标是使通过编码器时,必须改变的比特数量最小,并且所需的改变可以分类为几个适用于多个编码点的组(table was designed so that a minimal number of bits must be changed on passing through the encoder, and so that the changes which are required can be classified into a few groups applicable to several code points )。表 3 中所有需要 5B/6B 逻辑函数 操作的比特(除去整个子块的互补,(other than complementation of the complete subblock)均以粗体显示,假设添加了额外的数字 “i”,其正常值为 0。

  • 当输入满足左侧 “bit encoding” 中列出的逻辑条件时(就是classification列的左下侧那列),粗体的比特将更改为 左侧 “abcdei” 列中所示的值;例如,如果 L04 条件成立,则 bc 位被强制为 1,如 D.OD.16 所示。在 D.16104 • E)和 D.31L40 • E)的 “bit encoding” 列中的第二个条目适用于 (•-digit)。此外,对于没有分类条目的行,ABCDE 位将不变地转换为 abcde,并且新增的 bit 为 0。

  • 表 3 最右侧的 “abcdei alternate” 列显示了那些具有交替编码点的 ABCDE 输入 的互补。每个单独的 6B4B同理)子块会根据失衡规则进行互补。在所有子块边界处,运行的失衡 要么是 +1,要么是 -1,绝不会是 0(见图 2)。

在这里插入图片描述

在这里插入图片描述

  • “D—1” 列表示进入右侧相邻子块所需的运行失衡(running disparity)。“D - 1” 列中的 x 表示 (D - 1) 可以是 +1-1在此编码中,子块边界处的运行失衡极性与最近的 非零失衡块 的极性相同

  • 如表 3 中的第一行 D.O
    如果运行失衡匹配 (D - 1) = +,则编码器的输出将是 011000;否则,整个子块将被互补为 100111

  • “DO” 列表示左侧编码子块的失衡值,值为 0、+2 或 -2。表 3 和表 4 右侧的交替编码点的失衡值是左侧对应值的精确互补,因此不再显示。

  • 与比特编码相似,编码器硬件直接从 ABCDEK 输入 中确定子块的失衡值。根据失衡要求对编码词进行分类的相应逻辑函数显示在表 3 的单独一列中。

  • 在表 3 中,D.7 行,一对零失衡的 6B 子块111000000111)被分配给单个数据点,并具有类似于适用于非零失衡子块的失衡约束。这个编码特性将最大数字和变化(DSV)从 8 降低到 6,并结合表 4 中 3B/4B 编码器D/K.X.311000011)的类似规则,消除了所有 运行长度为 6 的序列,以及大多数 运行长度为 5 的序列。

  • 将一对互补的零失衡子块分配给单个编码点的技术,也统一应用于所有作为特殊字符一部分的 4B 子块,如表 4 和表 5 中对于 K.28.1、K.28.2、K.28.3、K.28.5K.28.6 所示。

3B/4B encoding

  • Table 4 follows the conventions and notations of Table 3. In Table 4 some lines have two entries in the
    column for the classification of disparity; the left classification refers to the entry disparity D - I, and the right one to DO.

  • D.x.P7(主7)和 D/K.y.A7(备用7)的编码需要解释。引入 D/K.y.A7 编码点是为了消除 eifgh 中的运行长度为 5 的序列。每当需要时,A7 编码会替换 P7 编码。
    在这里插入图片描述

  • 请注意,每当 K = 1 时,FGH = 111 始终被转换为 fghi = 0111 01 或其互补。

  • D/K.y.A7 编码可以在 ghjab 位的尾部字符边界生成一个 **运行长度 (run length,RL) ** 为5的序列;然而,这个序列之前只有 1 的运行长度,在 f 位上,只有一个例外。如果前导字符是特殊字符 K.28.7,那么尾部字符边界的 RL 5 序列之前会有另一个 RL 5 序列出现在 cdeif 中。有关这些区别的意义,请参见特殊字符部分。

  • K.28.1、K.28.2、K.28.5K.28.6 的零失衡 4B 子块 处理方式与 D/K.x.3 类似,都是通过互补来生成具有字节同步或逗号特性的特殊字符。

Special characters

  • 特殊字符在此定义为超出编码一个数据字节所需的 256 个编码点。它们通常用于建立字节同步、标记数据包的开始和结束,有时也用于信号控制功能,如 ABORTRESETSHUT-OFFIDLE 和链路诊断。表 5 中显示的十二个特殊字符可以通过表 3 和表 4 中定义的编码规则生成。它们都符合一般编码约束,即最大运行长度为 5 和最大数字和变化为 6。

在这里插入图片描述

  • 表 5 中的第一组八个特殊字符 K.28.x 可以通过观察 abcdei = 001111abcdei = 110000 来识别为数据之外的字符。在数据中,我们从不出现 c = d = e = f

  • 表 5 中的第二组四个特殊字符 K.x.7 的特征是 eifghj = 101000eifghj = 010111。它们与普通数据的区别在于 FGH 被编码为 01111000,在普通数据编码中则会使用 11100001

Commas and packet delimiters 逗号和数据包分隔符

  • 逗号[14] 表示正确的字节边界,并可用于即时获取或验证字节同步。为了具有实际意义,逗号序列必须是唯一的,并且必须以一致的对齐方式出现在字节边界上。在没有错误的情况下,逗号不能出现在其他任何比特位置上(无论是在字符内部还是跨字符重叠的比特中)。
    在该编码中,有三个字符(K.28.1K.28.5K.28.7)具有逗号特性。它们在表 5 中以星号标记,并用粗体字突出显示其唯一的逗号序列。这三个字符也是最适合作为信息包起始和结束标记的分隔符。

  • 该编码中的唯一逗号序列是:一个以比特 b 结尾的、长度为 2 或更长的连续相同位(RL ≥ 2)序列,紧接着是比特 cdeif 中的一个长度为 5 的连续相同位(RL = 5)序列。其中,第二个 RL=5 序列不得是另一个逗号序列中允许的 RL≥2/RL=5 模式
    换句话说,如果两个或三个这类 “RL≥2 / RL=5” 序列发生重叠时,只有第一个和第三个序列会被识别为逗号
    之所以有此规则,是因为在某些情况下,K.28.7 逗号后面可能会紧跟另一个位于字段 ghjab 的 RL=5 序列。为了避免误判,需要限制哪些序列能被识别为逗号。

  • 一串连续的 K.28.7 字符会生成交替的全为 1 或全为 0 的 长度为 5 的连续位(RL 5)序列,这种模式既不利于字符同步,也不利于位时钟同步。因此,不允许出现相邻的 K.28.7 字符
    尽管有此限制,K.28.7 逗号仍常被优先使用,因为在同步状态下,任意单比特错误都不会把普通数据误解码为有效的 K.28.7 字符

空闲序列(Idle sequence)

  • 我们需要区分两类通信链路:一类是在数据包之间保持字节同步的链路,另一类则不保持字节同步
    为了便于接收端时钟获取位同步(bit synchronism),在空闲状态下,维持较高的电平跳变密度(即 0 和 1 频繁交替)是非常重要的。
    因此,当数据包之间不保持字节同步时,适合使用0 和 1 交替的序列,这类序列可以通过向编码器输入 D.21.5 或 D.10.2 来生成。

  • 为了实现1 和 0 的精确平衡,需要将结束时的数字不平衡值(disparity)传递到下一数据包,并且新数据包应该从偶数位编码数字之后开始

然而,如果从奇数位编码数字开始新数据包,对噪声裕度的影响可以忽略不计前提是:

  • 数据包本身足够长(有几个字节以上),以及
  • 空闲序列的运行不平衡度(running disparity)被限制在 –1、0 或 +1 之间

这可以通过让空闲序列从一个 0 或一个 1 开始来实现,具体取决于前一个数据包结束时的不平衡情况(正或负)。详见图 2。

  • 如果字节同步能够从一个数据包延续到下一个数据包,那么在两个数据包之间的间隙中填充非数据字符是有用的。
    例如,连续发送 K.23.7、K.27.7 或 K.29.7 字符会在每 100 位编码数字中产生 60 个电平转换
    这些字符都能被识别为“非数据”,但仅靠这种空闲序列,接收端无法获取字节同步,除非偶尔插入一个逗号(comma)字符
    作为替代方法,发送一串连续的 K.28.5 逗号字符也可以作为空闲序列,其在一半(50%)的位上产生转换
http://www.xdnf.cn/news/447409.html

相关文章:

  • HarmonyOS NEXT 适配高德地图FlutterSDK实现地图展示,添加覆盖物和移动Camera
  • OpenCV CUDA 模块中用于在 GPU 上计算两个数组对应元素差值的绝对值函数absdiff(
  • Flutter 开发入门:从一个简单的计数器应用开始
  • 操作系统-物理结构
  • 【拥抱AI】Deer-Flow字节跳动开源的多智能体深度研究框架
  • MCP:开启AI的“万物互联”时代
  • 网站安全防御
  • 北斗导航 | 接收机自主完好性监测算法综述,1980至2025年(原理,公式,代码)
  • Java版OA管理系统源码 手机版OA系统源码
  • 深入理解卷积神经网络:从基础原理到实战应用
  • 硕士论文用YOLO可以毕业吗?
  • 记录算法笔记(20025.5.14)对称二叉树
  • 码题集——魔数、A的B次方、网球比赛、三角形、点与线段的关系
  • libmemcached库api接口讲解五
  • Java Queue 接口实现
  • 【经验分享】Dify+GraphRAG实现知识图谱智能问答
  • QMK键盘编码器(Encoder)(理论部分)
  • Unity Image组件无法阻挡手势的解决办法
  • 如何在运行不同操作系统的计算机上轻松擦除U盘
  • 【行为型之观察者模式】游戏开发实战——Unity事件驱动架构的核心实现策略
  • 医学影像系统的集成与工作流优化
  • 计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(一)过程式凹凸贴图
  • Unity引擎源码-物理系统详解-其二
  • 大疆无人机自主飞行解决方案局限性及增强解决方案-AIBOX:特色行业无人机巡检解决方案
  • 蚓链数字化营销系统深度解析,以“三位一体“模式驱动企业数字化营销转型
  • UniApp 在华为三折叠屏中的适配问题与最佳解决方案(rpx 实战指南)
  • ET MessageSender类(实体)分析
  • LLM笔记(一)基本概念
  • vue-cli项目升级rsbuild,效率提升50%+
  • 文章记单词 | 第74篇(六级)