USB数据信号的电气特性
USB2.0采用的是四线制,分别为Vbus电源线,GND地线和两根差分数据线D+和D-。
USB的信号线采用的是一对差分信号线D+和D-,故USB2.0的四线制线缆是半双工的。
USB信号抗干扰能力
USB2.0采用一结差分信号线是为了降低其它信号对USB数据信号的干扰。我们通过学习模拟电路可知道,差分的信号 采用的是大小相等,极性相反的信号 ,所以可以使信号的电平信号加倍(N-(-N)=2N),这样可以减少扰信号对USB信号的干扰。同时,由于采用的是差分信号,如果两根线缆上同时存在干扰信号,采用差分信号可以抵销掉该干扰。
如干扰信号为a,则公式为:(N+a-(-N+a)=2N)。
USB接口对硬件的保护
USB接口一般设计为如下图所示,可以看到电源和地信号线比较长,而数据信号线比较短。
这样设计的目的让US设备接入USB端口时,USB的电源和地先于数据信号连接,从而避逸在动态插入时由电源的不稳定,电流对数据线信号线的影响 。
另外,USB数据信号默认为高阻态,这样的设计也是为了降低USB设备刚上电时电流对设备信号的影响,从而提高设备的使用寿命。
USB的同步域
由于USB2.0采用的是四线制,并且这四根线中并没有时钟线,所以USB设备与主机在进行数据传输时由于没有时钟同步而导致发送端发出的数据在接收端采样信号时可能会因为时钟误差而导致数据不正确的问题。
对于这种问题,USB采用的时同步域来解决这个问题。即在数据在发送时,先发送一个同步头(8‘b01010101NRZI编码后)的方法,接收羰通过这个同步头计算出发送者的频率,这样可以使发送方发送频率和接收者的信号采样频率同步,从而达到数据可以正确接收的。
NRZI编码后的同步头信号为方波,在协议层的RAW DATA为8’b00000001,只是通过ZI编码后为8‘b01010100,详见http://www.usbzh.com/article/detail-710.html
NRZI的编码规则是遇0信号翻转,遇1不变。
USB的位填充-BIT STUFFING
虽然NRZI编码解决了大部分的同频问题。但是采用NRZI编码会有一种极端的例子就是数据一直发送0xFF,这样在总线上会有很长的一段时间没有电平转换。这样接收者也会因为时钟误差的问题会有概率接收错误的数据。
USB对这种极端的情况采用的是强制例如在6个1之后插入一个0,从而使数据信号翻转,这样可以使接收方进行频率调整,而接收方只需要在接收6个1之后删除后面的0即可还原数据。
如PING的波形图,详见:http://www.usbzh.com/article/detail-454.html
PID和Address有连续的一段低电平,在Address的第5位强制电平翻转为高。