8b/10b的由来:
8B/10b编码也叫做8字节/10字节,是目前高速串行通信中经常用到的一种编码方式,该编码方式最初是由IBM公司在1983年发明并应用于ESCON[200M互联系统],由AI widmer和Peter Franaszek在IBM的刊物“研究与开发”上提出。
8b/10b提出原因:
高速串行信号为啥要编码?它本身的码型有什么不好的地方吗?那么就用下面的图来解释一下为什么?
单看这个图大家可能还是不太明白为啥,解释一下,由于串行电路通常采用交流耦合的方式(串接电容)我们知道理想电容的阻抗公式 ,通过这个公式可以知道,频率f越高,阻抗越低,反之,频率越低,阻抗越高。因此上图中的情况,当码型是高频的时候,基本可以不损耗的传输过去,但是当码型为连续的0或者1的时候,电容的损耗就很大,导致幅度不断降低,最严重的后果就是无法识别到底是0还是1,因此8b/10b编码就是为了尽量把低频的码型优化成较高频率的码型,从而降低阻抗带来的损耗。明白为什么要搞8B10B编码了吧,嘿嘿嘿。
8b/10b编码算法:
8b/10编码的特性就是保证DC平衡——直流平衡,这是啥?怎么听起来这么高端,其实就是串行数据中连续出现的1/0达到一个平衡均匀的状态,没啥牛逼的一个东西。
8b/10b编码将串行的数据以8bit为一个单位进行编码处理得到一个10bit的数据,具体怎么操作呢,假设原始8位数据从高到低用HGFEDCBA表示,将8位数据分成高3位HGF和低5位EDCBA两个子组。经过5B/6B编码,将低5位EDCBA映射成abcdei;高3位经过3B/4B编码,映射成fghj,最后合成abcdeifghj发送。
如下图中所示:
而关于上图人家已经把这张图表格化了,网络上有很多关于8b/10b编码的博客,上来就丢一张表给你,看不懂啊,里面乱七八糟都是些什么东西,而博主往往自己也没有真正的理解,加上一堆莫能两可的文字描述让读者看了更晕。那么关于这张表我就来好好捋一捋它!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/102748.html