USB2.0物理层的电信号
+ -

USB3.0的8B/10B编码、AC耦合以及为什么要进行硬件编码

2022-07-07 2316 43

在USB2.0时代,USB的差分信号采用的是D+/D-进行传输,使用的编码是NRZI编码。对原始数据的编码就是:当数据为0时,电平翻转;数据为1时,电平不翻转。所以总线当数据为连续的0时,数据会是一个不停翻转的波形,电压呈交流形式,而当原始数据为1时,电平会由于NIZI的编码规则,呈现短暂的直流形式,即会出现一段时间电平不再变化。

对于上面的连续的电平不再变化,NRZI编码给的的解决方案是当原始数据中出现连续的7个1时,强行插入一个原始数据0,实现编码后的电来翻转。这样做的好出就是减少发送端与收入端的时钟误差而导致数据的接收错误。

所以从上面来看,对于串行接口数据的发送,尽可能多的发送交流数据,而不是直流数据。即尽量实现电平的翻转,发送方波信号

当然以上的设计原则,也体现在硬件电路设计上。对于高速接口,如USB3.0的8B/10B编码,也是如此。相同于PCIE接口,也是如此。
无论是USB3.0还是PCIE的差分信号传输,差分信号电气规范要求其发送端串接一个电容CTX,以进行AC耦合。该电容也被称为AC耦合电容。
AC耦合电容
而实际的如PCIE的硬件原理图如下:
PCIE的硬件原理图

可以看到,对于高速输出接口,都有一个AC耦合电容,该电源的功能就是去除直流成份,而通过交流分量。
因为这个电容的存在,当链路上连续出现多个0或者1的时候,“隔直”效应发生了,接收端的电压会下降,信号变得无法正确识别。故交流耦合信号传输中需要尽量做到直流平衡(DC Balance),直流平衡的意思是指在一组信号中0和1的个数相等,尽量避免连续多个1或者连续多个0,比如连续三个1/0之后,一定要插入一个0/1。
电平下降

所以为了达成直流平衡,USB3.0 spec对数据进行了特别的编码,也就是8/10b编码和以后的128/130b编码。所谓的编码,直观理解就是把8b(128b)的数据编码成10b(130b)来传输,使得发送的“0”、“1”数量保持基本一致。接收端按照同样的编码规则,解析出8b(128b)原始数据即可。事实上很多其他高速信号传输也用到类似的编码方式。

总结:
由于高速串行信号的数据帧率很高,并且没有像并行接口或者低速信号有专门的时钟信号(就算有,也由于帧率过高,导致PCB布板时的信号完整性如延迟问题很难做到同步),所以使用信号本身的交流成份来进行时钟同步(所以差分信号要做到等长布线)。而在实际的数据传输过程中,会由于原始数据的原因会导致直流成份出现,故需要进行硬件编码。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

USB3.0硬件编码格式-8B/10B编码
1.编码技术基础理论 在高速的串行数据传输中,传送的数据被编码成自同步的数据流,就是将数据和时钟组合成单一的信号进行传送,使得接收方能容易准确地将数据和时钟分离,而且要达到令人满意的误码率,其关键技术在于串行传输中数据的编码方法。 目前, 高速接口正在被广泛应用于包括 SATA、 SAS、 高速......
USB3.2超高速GEN2 128b/132b编码
USB3.2 GEN2的物理层PHY使用的是128b/132b编码,数据的传输速从GEN1最高的5Gbps达到了GEN现在的10Gbps。USB3.2 GEN2和GEN1一样,都是要传输的数据先进行序列化,然后再从低位(LSB)到高位(MSB)进行传输。USB3.2 GEN2对于传输1字节的symb......
USB3.2超高速GEN1 8b/10b编码概述
USB3.2 GEN1的物理层PHY使用的是8b/10b编码。USB3.2GEN1即USB3.0使用的8b/10b编码是对数据从8位到10的编码扩展。如对于发送的数据1字节,其各位从低到高记作 ABCDEFGH,这里将其分为2组,低5位一组,高3位一组。高3位的FGH被编码为fghj,低5位的ABC......
USB硬件编码格式NRZI
我们知道USB3.0以前采用的是两根数据线D+和D-所对应的数据传输,采用的是数据编码方式是NRZI(Non-Return-to-Zero Inverted),而USB3.0以后采用的是8/10bit编码。USB使用NRZI编码方式:当数据为0时,电平翻转;数据为1时,电平不翻转。为了防止出现过长......
USB数据信号的电气特性
USB2.0采用的是四线制,分别为Vbus电源线,GND地线和两根差分数据线D+和D-。USB的信号线采用的是一对差分信号线D+和D-,故USB2.0的四线制线缆是半双工的。USB信号抗干扰能力USB2.0采用一结差分信号线是为了降低其它信号对USB数据信号的干扰。我们通过学习模拟电路可知道,差分......
USB3.0的8B/10B编码AC耦合以及为什么要进行硬件编码
在USB2.0时代,USB的差分信号采用的是D+/D-进行传输,使用的编码是NRZI编码。对原始数据的编码就是:当数据为0时,电平翻转;数据为1时,电平不翻转。所以总线当数据为连续的0时,数据会是一个不停翻转的波形,电压呈交流形式,而当原始数据为1时,电平会由于NIZI的编码规则,呈现短暂的直流形式......
USB2.0握手包ACK总线分析仪抓包实例详解
ACK握手包的详细使用说明可详见:https://www.usbzh.com/article/detail-452.html这里详细的介绍了ACK握手包的使用说明。这里我们对此从数据链路层和USB总线分析仪抓包的来分析。ACK的数据包格式ACK可能是USB总线分仪里最简单的包了。其主要包括两部分组......
USB2.0时钟频率与NRZI编码
USB的编码方式NRZI(非归零反向编码),提到这个是为了说明信号的时钟周期(等效时钟,并没有专门的时钟线)到底是多少,因为这个才是我们硬件工程师关注的。对于差分对的传输线:传输速率或带宽(Mbps)= 时钟频率(MHz)* 位宽 * 通道数 * 每时钟传输数据组数(cycle)所以USB高速......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!