当前位置:首页 > 物联网 > 网络协议
[导读]   引言   8 b/10 b是目前许多高速串行总线采用的编码机制,如USB 3.0,1394b,Serial ATA,PCI Express,Infini-band,Fiber Cha

  引言

  8 b/10 b是目前许多高速串行总线采用的编码机制,如USB 3.0,1394b,Serial ATA,PCI Express,Infini-band,Fiber Channel,RapidIO等总线或网络。8 b/10 b编码方式最初由IBM公司于1983年发明并应用于ESCON(200M互连系统),发表Al Widmet和Peter Franaszek IBM刊物的“研究与开发”。8 b/10 b编解码之所以能得到广泛的运用,主要有以下优点:采用嵌入式时钟,可保持DC平衡;能够更加有效地检测错误;隔离数据码元和控制码元。

  为了在USB 3.0中实现数据的8 b/10 b编解码,采用了查找表法和组合逻辑相结合的方法,把8b/10b编解码分解成5 b/6 b编解码和3 b/4 b编解码,用Verilog HDL语言实现了算法的描述,并通过了Modelsim仿真,然后在FPGA上实现了具体的硬件电路。采用500 MHz的时钟信号,经过测验满足了USB 3.0的传输速率5 Gb/s。该创新方法使用了少量逻辑,实现了8 b/10 b编解码器,并且满足USB 3.0高速数据传输的要求。

  1 USB 3.0中的8 b/10 b编解码原理

  在USB 3.0分层结构中,发送端先对数据或者控制字(K)加扰,然后把加扰后的8 b数据编码成10b发送出去;接收端先把接收到的10b数据进行解码得到8 b数据,然后再解扰得到原始数据。

  8 b/10 b编码包含对256个数据字符和12个控制字符的编码。数据字符和控制字符分别用Dx,y和Kx,y表示,其中x表示与8 b的低5位(EDCBA)对应的十进制数值;y表示与8 b的高3位(HGF)对应的十进制数值。发送端在编码时,根据编码表将低5位变成6位,高3位变成4位。编码完成后,将10 b的并行字符转换成串行发送出去。接收端在解码时先进行串并转换得到10 b字符,再将该字符分解成6 b和4 b,根据相应编码表看是否有效,最后完成解码。编解码转换流程如图1所示。

  

 

  不平衡度disp(disparity)表示编码后1个码字中“1”数目与“0”的数目差。“1”用+1表示,“0”用-1表示,码字中的所有“+1”与“-1”之和就是disp。8 b/10 b编码的disp取3种状态:“+2”(6个1与4个0),“0”(5个0与5个1),“-2”(6个0与4个1)。而运行不一致RD(Running Disparity)是一个二进制参数,只有正、负2种状态,用于编码模式控制。在8 b/10 b编码表中,10 b字符分为2种码表(RD-和RD+)。编码过程中,通过对RD值正负的判断来选择对应码表,如果当前RD为负(RD-),编码器会在RD-编码表中选择对应值输出,并且检测对应输出的10 b值的disp,如果disp=0,则RD不变保持RD-,否则RD值变为RD+;如果当前RD为正(RD+),则在RD+编码表中选择对应值输出,并且检测输出值对应的disp,如果disp=0,则RD不变保持RD+,否则RD变为负RD-。总之,在disp为正或者负时,RD发生交替变换,这种方法是为了使0和1分布更均匀,减小差分信号的直流分量。

  2 8 b/10 b编码器的设计

  8b/10b编码器是把8 b数据输入拆成低5位和高3位分别进行5 b/6 b和3 b/4 b编码,根据编码表执行编码。因为其中有些特殊的3b/4 b编码,所以需要一个特殊3 b/4 b编码模块。编码后数据通过RD控制模块选择输出,并且把此时的RD状态反馈给下一轮编码。对于8 b控制输入,由于K控制编码只有12种有效,所以需要一个对无效K码的识别模块。因此,编码器分为5个模块:5 b/6 b编码、3 b/4 b编码、特殊3 b/4 b编码、无效K码检测、RD_controller,前4个部分在RD_controller的控制下进行并行编码,如图2所示。图中,kin为8 b控制输入,data_in为8 b数据输入。由于USB 3.0传输速度为5 Gb/s,编码器clk为500MHz。

  

 

  5 b/6 b编码模块、3 b/4 b编码模块对输入的8 b数据输入分为低5位和高3位进行并行编码,输出6 b和4 b数据构成10 b编码,而输出disp_6b,disp_4b是6 b和4 b数据的不平衡度。

  由于在8 b/10 b转换表中,8 b数据输入高3位为“111”、低五位分别为“01011”,“01101”,“01110”,“10001”,“10010”,“10100”时,输出的4 b是特殊情况,特殊3 b/4 b编码模块就是完成对这几种特殊情况输出,输出sp_4b_RDN和sp_4b_RDP是特殊编码的不平衡度。

  当8 b输入是控制K码时,控制码只有12种是有效的,无效K码检测模块就是检测输入的控制码是否有效,如果无效输出invalid_k=1,如果有效则输出invalid_k=0。

  RD控制模块除了将编码后数据选择输出,主要是根据disp_6b,disp_4b,sp_4b_RDN和sp_4b_RDP来跟新当前RD值,并反馈到下一轮编码的RD输入,保持差分信号传输的直流平衡。

  

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在数字信号处理和通信系统中,编码器扮演着至关重要的角色。它负责将原始数据转换为字符序列或二进制码序列,以实现信息的有效传输和处理。而在编码器的众多组成部分中,BAT(电池)信号不仅提供了编码器运行的必要电源,还承载着多种...

关键字: 数字信号 编码器 BAT

以更低的功耗和成本在各种应用中高效地实现更高质量的音频流

关键字: 低功耗蓝牙 解码器 物联网

在这篇文章中,小编将对74LS148编码器的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: 74LS148 编码器

一直以来,编码器都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来编码器的相关介绍,详细内容请看下文。

关键字: 编码器 工业控制 机器人

编码器,作为一种广泛应用在信息处理、数据通信和自动化控制等领域的关键设备,其基本原理涉及信号转换与数据压缩的过程。编码器的主体功能是将物理量(如角度、位置、速度或线性位移)转换成对应的数字或电信号,以便于后续系统进行精确...

关键字: 编码器 自动化控制

IAR Embedded Workbench for Arm已全面支持小华半导体系列芯片,加速高端工控MCU和车用MCU应用的安全开发

关键字: MCU 编码器 电机驱动

一直以来,编码器都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来编码器的相关介绍,详细内容请看下文。

关键字: 74ls148 编码器

今天,小编将在这篇文章中为大家带来编码器的有关报道,通过阅读这篇文章,大家可以对编码器具备清晰的认识,主要内容如下。

关键字: 74ls148 74hc148 编码器

【2024年1月29日,德国慕尼黑讯】英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)将自身久经验证的磁性位置传感器技术专长与成熟的线性隧道磁阻(TMR)技术合二为一,推出XENSIV™ TLI5...

关键字: 传感器 光学编码器 解码器

伺服电机编码器是伺服系统的重要组成部分,它能够将伺服电机的位置、速度和方向等运动参数转换成可被处理的数字信号。编码器的工作原理基于光电转换原理或磁电转换原理,下面将分别介绍这两种工作原理。

关键字: 伺服电机 编码器 数字信号
关闭
关闭