USB的编码方式

     当PC主机对设各发出控制信号时,所有连接的设各都通过根集线器收到同样的信号,但是经过对比所配置的设各地址后,只能有一个设备作出相对应的动作,这跟网络的架构有点类似。因此对一个设各而言,不仅要无误地接收主机端所送来的数据,又要正确地发出响应的信号。因此,在D+与D-的差动数据线上就必须采用一种特别的编号方式再加以传送出去,以解决在USB缆线所产生信号延迟以及误差等问题。

  在此,USB采用了NRZI(Non Return to Zero Invert,不归零就反向)的编码方式,无须同步的时钟信号也能产生同步的数据存取。NRZI的编码规则是,当数据位为“1”时不转换,为“0”时再作转换。如图1所示,显示了NRZI编码的范例。位传输的顺序以LSB(最低位)为优先。

  图1 NRZI编码的范例说明

  NRZI编码的数字再生回路的数字逻辑电路如图2所示。其相对应的编号变化如图3所示。这样,接收与传输器两端的机制中,就无须先送出分离的时钟信号,或者在每一个字节中添加起始或结束位(如RS - 232)。如果用户使用示波器来观察这种USB数据,将会发现它不像其他的接口,可以以逻辑准位来读取这些传送或接收的位。

  图2 USB的NRZI再生回路的数字逻辑电路图

  图3 相对A、B、C位置NRZI再生回路的信号关联图

  这样的编码方式会遇到一个很严重的问题:若重复相同的“1”信号一直进入时,就会造成数据长时间无法转换,逐渐地累积而导致“塞车”的状况,使得读取的时序就会发生严重的错误。因此,在NRZI编码之间,还需执行所谓的位填塞(bits-tuffing)的工作。如图4(a)所示,若原始的串行数据中含有连续6个“1”位,就须执行位填塞的工作。此工作如图4(b)所示,就在其后填塞一个“0”位。但相对地在NRZI编码的过程中,对这连续的6个“1”执行,如图4(c)所示。

  图4 NRZI译码的过程

  因此在发送端进行数据传输之前,须先执行位填塞和NRZi编码的工作。相对的,在接收端进行数据接收之前,就必须先执行NRZI译码,然后再做位反填塞(unbit-tuffing)的工作。这一部分的电路会通过USB芯片中的SIE(串行接口引擎)来实现。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值