集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1488|回复: 1

8B/10B

[复制链接]
zxopenluyutong 发表于 2021-4-9 09:56:57 | 显示全部楼层 |阅读模式

简介

8B/10B,也叫做8比特/10比特或8b10b。8b/10b方式最初由IBM公司于1983年发明并应用于ESCON(200M互连系统),由Al Widmer和Peter Franaszek在IBM的刊物“研究与开发”上描述。

8b/10b编码的特性之一是保证DC 平衡,采用8b/10b编码方式,可使得发送的“0”、“1”数量保持基本一致,连续的“1”或“0”不超过5位,即每5个连续的“1”或“0”后必须插入一位“0”或“1”,从而保证信号DC平衡,它就是说,在链路超时时不致发生DC失调。通过8b/10b编码,可以保证传输的数据串在接收端能够被正确复原,除此之外,利用一些特殊的代码( 在PCI-Express总线中为K码) ,可以帮助接收端进行还原的工作,并且可以在早期发现数据位的传输错误,抑制错误继续发生。

8b/10b编码是将一组连续的8位数据分解成两组数据,一组3位,一组5位,经过编码后分别成为一组4位的代码和一组6位的代码,从而组成一组10位的数据发送出去。相反,解码是将1组10位的输入数据经过变换得到8位数据位。数据值可以统一的表示为DX.Y或KX.Y,其中D表示为数据代码,K表示为特殊的命令代码,X表示输入的原始数据的低5位EDCBA,Y 表示输入的原始数据的高3位HGF。

8b/10b编码是目前许多高速串行总线采用的编码机制,如 USB3.0、1394b、Serial ATA、PCI Express、Infini-band、Fibre Channel(光纤通道)、RapidIO等总线或网络等。

   


特点

光线通道上,告诉比特流串行传输仅有发送和接受两条物理线路,不存在单独的线路来实现时钟同步,只能通过编码技术,将时钟“嵌入”比特流内部,故在串行传输中对所传送的比特进行编码十分重要。对数据进行编码,不但可以提高接收机实现时钟回复和比特同步,而且易于检测和和纠正数据错误。

管线通道FC-1层采用8B/10B编码算法,通道上传送的信息以每8比特为一组被编码为一个10比特的传送自负,接收端收到数据后再将10比特字符解码还原为8比特代码。

8B/10B编码算法是由IBM公司的A.X.Widmer和P.A.Franaszer在20世纪80年代初期提出。该算法的基本思想是将一个8位字节划分为5位和3位两部分,对5位部分进行5B/6B编码,对3位部分进行3B/4B编码。相对于一次编码一个8位字节,分为两部分进行编码使得硬件上能更有效地对更小的子块进行编解码。通过两部分分别编码,最终8位字节被编码为10位字节。编码后的10位中所有1或0的个数不会超过6个,并且连续的1或0的个数不会超过4个。

8B/10B编码通过检测前一个字符的不均衡型来决定后一个字符的编码选择。如果前一个字符是正不均衡性字符,则后一个就应该选择负不均衡性。这种连续不均衡机制使得整个比特流中尽量保持了0和1的平衡。

10位传送代码可以支持所有的256种8位组合,并且光线通道利用剩余组合中的一些编码构成特定的控制码。K28.5是光线通道中使用的控制码。在两位相同的二进制数据后紧跟着五位与前两位不同的二进制连续串,这种特殊的格式使其与一般的数据编码区分开。

将原本8位的字节用10位来表示,会使8B/10B编码的带宽利用率并不高。8B/10B编码不只应用于光纤通道,目前在许多高速串行总线。
zxopenljx 发表于 2022-10-9 20:20:40 | 显示全部楼层
8B/10B           
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-28 16:53 , Processed in 0.059780 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表