8B/10B、64B/66B编解码(一)
8B/10B编码方案确保“0”码元与“1”码元个数一致,称为直流均衡;确保字节同步易于实现(在一个比特流中找到字节的起始位);对误码率有足够的容忍能力和降低设计复杂度。8B/10B编码方案是把8bit数据分成2个子分组: 3个最高有效位(y)和5个最低有效位(x)。从最高有效位到最低有效位分别记为H、G、F和E、D、C、B、A。3bit的子分组编码成4bit,记为j、h、g、f;5bit的子分组编码成6bit,记为i、e、d、c、b、a;其映射关系如下图所示,4bit和6bit的子分组再组合成10bit的编码值。
编码时,低5bit原数据 EDCBA经过5B/6B编码成为6bit码abcdei,高3bit原数据HGF经3B/4B成为4bit码fghj,最后再将两部分组合起来形成一个10bit码abcdeifghj。10B码在发送时,按照先发送低位、再发送高位的顺序发送。
5B/6B编码和3B/4B编码的映射有标准化的表格,可以通过基于查找表的方式实现。使用“不一致性(Disparity)”来描述编码中"1"的位数和"0"的位数的差值,它仅允许有"+2"( "0"比"1"多两个)、"0"("0"与"1"个数相等)以及"-2"("1"比"0"多两个)这三种状况。由于数据流不停地从发送端向接收端传输,前面所有已发送数据的不一致性累积产生的状态被称为“运行不一致性(Runing Disparity,RD)”。RD仅会出现+1与-1两种状态,分别代表位"1"比位"0"多或位"0"比位"1"多,其初始值是-1。Next RD值依赖于Current RD以及当前6B码或者4B码的Disparity。根据Current RD的值,决定5B/4B和 3B/4B编码映射方式。
8B/10B编码中将K28.1、K28.5和K28.7作为K码的控制字符,称为“comma”。在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,因此可以用comma字符指示帧的开始和结束标志,或始终修正和数据流对齐的控制字符。
经过8B/10B编码以后,连续的“1”和“0”基本上不会超过5bit,只有在使用comma时,才会出现连续的5个0或1。接收端的数据解码过程如下图所示:
下一篇接着介绍64B/66B编解码,请关注公众号:全栈芯片工程师
转载:全栈芯片工程师
- 分享
- 举报
-
浏览量:4242次2021-12-24 09:00:25
-
浏览量:3612次2022-01-04 09:00:13
-
浏览量:4458次2022-08-17 09:01:18
-
浏览量:11445次2021-12-27 09:00:26
-
浏览量:3059次2020-09-15 11:13:11
-
浏览量:6690次2022-04-01 09:00:15
-
浏览量:9133次2020-12-09 18:56:31
-
浏览量:13292次2020-12-07 00:58:01
-
浏览量:5319次2021-07-17 15:37:58
-
浏览量:12146次2020-12-05 03:10:25
-
浏览量:4487次2021-05-14 09:48:13
-
浏览量:2104次2018-03-30 15:13:04
-
浏览量:2171次2018-01-22 15:13:00
-
浏览量:3073次2022-04-18 17:40:04
-
浏览量:1027次2023-06-03 16:06:12
-
浏览量:1201次2024-03-19 14:18:03
-
浏览量:2190次2018-09-04 14:26:30
-
浏览量:2580次2018-04-26 15:20:37
-
浏览量:1663次2018-01-30 19:21:41
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
david
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明