from:http://blog.sina.com.cn/s/blog_4b2657890100hdcl.html

orig:http://en.wikipedia.org/wiki/8B10B

8B/10B编码是目前高速串行通信中经常用到的一种编码方式,直观的理解就是把8bit数据编码成10bit来传输,为什么要引入这种机制呢?其根本目的是“直流平衡”。当高速串行流动逻辑1或逻辑0有多个位没有产生变化时,信号的转换就会因为电压位阶段关系而造成信号错误,直流平衡的最大好处便是可以克服以上问题。

将8bit编码成10bit后,10B中0和1的位数只可能出现3中情况:

1.有5个0和5个1

2.有6个0和4个1

3.有4个0和6个1

这样引出了一个新术语“不均等性”,就是1的位数和0的位数的差值,根据上面3种情况就有对应的3个Disparity0、-2、+2.

工作原理

8bit原始数据会分成两部分,其低5位进行5B/6B编码,高3位则进行3B/4B编码,这两种映射关系在当时已经成为了一个标准化的表格。人们喜欢把8bit数据表示成Dxx.y的形式,其中x=5LSB,y=3MSB。

例如一个8bit数据101 10101,x=10101(十进制为21) y=101(十进制为5),现在我们就把这8bit数据写成D21.5,明白了吧!

Dx.y形式在进行5B/6B和3B/4B编码中表示更直观,下面我们来看看两张编码表:

对于8bit数据,它在表中的位序为HGFEDCBA,即H为最高位,A为最低位,EDCBA经过5B/6B编码为abcdei,HGF经过3B/4B编码为fghj。传送10bit编码的顺序为abcdeifghi。

对于D.x.7,当和5B/6B组合时D.x.P7和D.x.A7编码时必须选择一个来避免连续的5个0或1.遇上连续5个0或1的情况下使用“逗号码”(comma)来进行校准。D.x.A7用在x=17 x=18 x=20且RD=-1时或者x=11 x=13 x=14且RD=+1时。当x=23 x=27 x=30时,使用K.x.7进行编码。其他情况下D.x.A7码不能被使用,他将导致和其他“逗号序列”产生冲突。

候补编码K.x.y允许K.28.1 K.28.5 K.28.7作为“逗号码”来保证数据流中的唯一性。

你们也许注意到了表中有个RD标志,它是Running Disparity的缩写,它的目的就是保持8B/10B编码中的直流平衡。它跟上面提到的Disparity其实是一样的意思,+1用来表示1比0多,-1用来表示0比1多,-1是它的初始化状态。下面我们来看一张表来加深理解:

上面我们提到的“逗号码”和“逗号序列”,其实都是当初在规划8B/10B编码机制的时候,所谓的控制代码(Control Characters)的其中之一。8B/10B标准中使用了12个特殊的控制代码,他们能在数据中被发送,还可以组合成各种“原语”。

在控制代码中,K.28.1 K.28.5 K.28.7 是逗号序列,逗号序列是用来校准用的,如果K.28.7没有被使用,序列0011111 或者 1100000 是不会出现在任何编码中的。

在实际编码中如果K.28.7可以被使用,一种更复杂的校准规范需要?被使用,它们能组合成各种“原语”,在任何情况下多个K.28.7序列不允许被同时使用,它将导致不可探测的逗号序列。

转载于:https://www.cnblogs.com/karl-wu/p/4349983.html

8B/10B编码(转)相关推荐

  1. TX的8B/10B编码功能

    Transmitter功能介绍 每个收发器(Transceiver)包括一个独立的发射器(Transmitter),它由PCS和PMA组成.下图显示了发射器(Transmitter)的功能块.并行数据 ...

  2. 高速串行总线系列(1)8B/10B编码技术

    目录 8B/10B编码 5B/6B 编码表 3B/4B 编码表 控制字符编码表 8B/10B编码的利用率 参考文献 8B/10B编码 为什么要使用8B/10B编码? 8b/10b编码的特性之一是保证D ...

  3. 高速收发器之8B/10B编码

    前面文章说过,在高速链路中导致接收端眼图闭合的原因,很大部分并不是由于高频的损耗太大了,而是由于高低频的损耗差异过大,导致码间干扰严重,因此不能张开眼睛.针对这种情况,前面有讲过可以通过CTLE和FF ...

  4. 线路/信道编码技术(1)——8B/10B编码

    1. 线路编码技术 线路编码机制将输入原始数据转变为接收器可接收的数据格式,同时保证数据流中有足够的时钟信息提供给接收端的时钟恢复电路.线路编码技术提供了一种将数据对齐到字节/字的方法,可以保持良好的 ...

  5. #PCIE# 8b/10b 编码

    前言 8B/10B,也叫做8字节/10字节或8B10B.8B/10B方式最初由IBM公司于1983年发明并应用于ESCON(200M互连系统),由Al Widmer和Peter Franaszek在I ...

  6. 让我们来搞清楚8b/10b编码到底是怎么回事吧

    前言:很多知识我们往往只是了解了皮毛,不知道它为什么产生,更不清楚它深层的应用,很多人半瓶水晃荡,而这正是我最厌恶的,对于8B/10B编码这个知识点我就来扯开它的神秘面纱. 8b/10b的由来: 8B ...

  7. 高速串行通信常用的编码方式-8b/10b编码/解码

    绪论 8b/10b编码/解码是高速串行通信,如PCle SATA(串行ATA),以及Fiber Channel中常用的编解码方式.在发送端,编码电路将串行输入的8比特一组的数据转变成10比特一组的数据 ...

  8. 8B/10B编码原理详解、Verilog实现及在JESD204B中的应用

    目录 1.8B/10B介绍 2.原理 3.Verilog实现 4.实例:在JESD204B中的应用 参考资料: 1.8B/10B介绍 8B/10B编码的目的是防止串行的数据出现长时间的连0连1,因为这 ...

  9. 8b10b编码源码 matlab,8b/10b编码技术系列(一):Serdes、CDR、K码

    和大家分享一下关于8b/10b编码的知识点,如有什么错误之处或大家有什么额外的见解欢迎大家公众号后台留言! 一.Serdes高速收发器 在传统的源同步传输中,数据和时钟分离,在速率较低(<100 ...

  10. 8b/10b编码是什么?

    8b/10b的由来: 8B/10b编码也叫做8字节/10字节,是目前高速串行通信中经常用到的一种编码方式,该编码方式最初是由IBM公司在1983年发明并应用于ESCON[200M互联系统],由AI w ...

最新文章

  1. divideSentence
  2. python培训学校-西安有没有好点的Python培训学校
  3. jQuery Easing 动画效果扩展--使用Easing插件,让你的动画更具美感。
  4. JSR303数据校验-2021新版
  5. html调用python_对Python3 解析html的几种操作方式小结
  6. js+php在线截图 jquery fileupload.js,另一种图片上传 jquery.fileupload.js
  7. Vue结合HTML5拖放API 实现目录拖拽~
  8. 毕业典礼留学生代表发言:中国是我可亲可敬可爱的第二故乡,我已修炼出一颗中国心!...
  9. 三角形分类(洛谷P5717题题解,Java语言描述)
  10. 其他学习笔记(一)——MySQL基础配置+可视化工具安装与破解
  11. vue点击按钮切换样式
  12. nssa和stub_stub与nssa的区别
  13. 什么是IPS?如何对其进行调整?
  14. Spring Data JPA 的动态查询和一对多及多对多查询
  15. 射击比赛的成绩 华为od js
  16. python音频 降噪_python降噪_python音频降噪_python图片降噪 - 云+社区 - 腾讯云
  17. android 投屏 app 三星,‎App Store 上的“爱缤投屏-用于三星智能电视”
  18. Nginx代理浏览器接口调用本地的后端接口
  19. Julia ---- 为Julia做一下辩解
  20. ORAN专题系列-30:5G基站如何升级到O-RAN基站 - FHGW(FrontHaul Gateway)的时钟同步系统

热门文章

  1. 上拉电阻与下拉电阻介绍
  2. vue中遇到的问题:Error: Cannot find module 'chalk'
  3. Codeforces Round #484 (Div. 2) D. Shark
  4. 项目中用到的一些特殊字符和图标
  5. 第二阶段团队冲刺(二)
  6. CSS3 transform对fixed元素造成的影响笔记
  7. 分组的listview——ExpandableListView
  8. 基于阿里云的移动客户端服务器架构图
  9. js typeof instanceof
  10. 灵动标签内sql语句调用