原创 USB总线数据编码方式(NRZI)

2008-11-30 11:44 5079 8 7 分类: MCU/ 嵌入式
USB总线数据编码方式
    USB是一种串行总线,数据逐位依次传送。USB系统中数据传输采用反向非归零(Non Return to Zero InveIt,NRZI)编码方式。这种编码方式既能保证数据传送的完整性,又不需要独立的时钟信号和数据一起发送。
    图10.28所示的就是一个串行数据流和经过NlRZI编码的数据,当遇到0信号时NRZI编码数据流发生跳变,而遇到1信号时保持不变。数据流中的跳变使解码器可以与收到的数据保持同步,因而不必提供独立的时钟信号。但是需注意,一长串的连续l将会导致无电平跳变,从而引起接收器最终丢失同步信号,解决办法是采用位填充技术。所谓位填充,是指在连续传输六个l的情况下强置在NRZI编码数据流中加入跳变。这就确保接收器至少可以在每七个位的时间间隔内从数据流中会检测到一次跳变。这就使接收器和传送的数据保持同步。NRZI数据的发送器负责在NRZI编码数据流中插入一个0(填充位)。接收器必须设计成为能够在六个连续1之后知道将有一个跳变发生,并且把跟在这六个连续l之后的那个0抛弃掉。
    如图10.29所示,第一个波形表示要发送的原始数据,其中包含了一个连续八个1的长串。第二个波形代表加入了填充位的原始数据。可以看到在数据流中第六个和第七个1之间插入了一个填充位。第七个l的发送被延迟了一个数据位的时间。需要注意的是,如果原始数据的第七位是0,填充位还是会被加入的,而且还加在同样的位置,这就导致了在填充后的数据流中会有两个连续的0。图中的第三个波形表示了根据填充数据形成的NRZI编码。
点击看大图

点击看大图

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条