USB的NRZI信号格式
2017-11-13 15:36
134 查看
在USB总线上,通过D+和D-两个数据信号线来传输,而并没有像I2C总线那样会有一根SCL时钟线来同步,那么USB总线是如何来进行同步两端信号传输呢?此时我们得来了解一些编码方式,以便处理因USB线缆所产生的信号延迟及误差等问题。
方法/步骤
在USB总线上,通过D+和D-两个数据信号线来传输,而并没有像I2C总线那样会有一根SCL时钟线来同步,那么USB总线是如何来进行同步两端信号传输呢?此时我们得来了解一些编码方式,以便处理因USB线缆所产生的信号延迟及误差等问题。
1、RZ 编码(Return-to-zero Code),也叫归零编码。
在该编码试工中,正电平代表逻辑1,负电平代码逻辑0,并且每次传输完一位数据,信号都会回到零电平。这样,在信号线上会产生3种电平:正电平、负电平、零电平,相应的信号图例如下:
![](https://imgsa.baidu.com/exp/w=500/sign=534c3680b97eca80120539e7a1229712/a6efce1b9d16fdfa4e0c564dbd8f8c5494ee7b35.jpg)
从上图中可看出,每们数据传输中都有一个归零的过程,这样接收端只需要在归零后进行新的采样,这样就不需要单独的时钟信号,这实际上相当于把时钟信号用归零处理在传输的数据中,这种信号叫自同步(self-clocking)信号。
这虽然节省了信号线,不过还是有它固有的缺点,由于RZ编码信号中有大部分数据带宽被用于传输“归零”信号而浪费掉了。除了省去这个步骤,NRZ编码就产生了,相对于RZ编码,NRZ编码就是不需要“归零”。
2、NRZ 编码(Non-return-to-zero Code),也叫不归零编码。
下图是NRZ编码的信号图例:
![](https://imgsa.baidu.com/exp/w=500/sign=db551d9d72ec54e741ec1a1e89399bfd/d009b3de9c82d15836d5c912890a19d8bc3e423a.jpg)
从上图可以看到,每一位信号都不需要“归零”了,被浪费的带宽收回了,但又失去了应有的自同步特性,让我们感觉又回到了起点,那么先继续了解NRZI编码吧。
3、NRZI 编码(Non-Return-to-Zero Inverted Code),也叫反向不归零编码。
NRZI编码与NRZ编码的区别就是NRZI用翻转来表示一个逻辑,而信号保持不变来表示另一个逻辑。而在USB传输的编码中采用的是NRZI格式,电平翻转代表逻辑0,电平不变代表1。
下图是NRZI与NRZ的对比图例:
![](https://imgsa.baidu.com/exp/w=500/sign=23f8d79d05f3d7ca0cf63f76c21ebe3c/b17eca8065380cd72af9324ea844ad34588281aa.jpg)
对于翻转信号,可以将其当作一种通知机制,当把NRZI的波形完全翻转后,其所表示的数据序列仍然是一样的,对于使用差分信号线来传输的USB尤为方便。
从上面的了解,NRZ和NRZI都失去了自同步特性,不过还是可以通过一些技巧来处理。在USB中,每个数据包的最开始处都有一个同步域(SYNC),其值为00000001,在经过NRZI编码后,就是一串方波,接收方可能过这个同步头来计算发送方的频率,以便用这个频率来继续采样数据信号。由于USB所采用的NRZI编码中,每当逻辑0时就会进行电平翻转,那么接收方可通过这个不断翻转的信号来调整同步的频率,保证数据的正确传输。但这仍然存在问题,一旦电平长时间保持不变时,我们无法知道到时发送的是100个逻辑1,还是1000个逻辑1,即使传输的是100个逻辑1,但接收方与发送方的频率相差了100分之1,那么也还是存在可能把数据采集成为99或者101。而USB中采用了Bit-Stuffing位填充处理,即在连续发送6个1后面会插入1个0,强制使发送信号进行翻转,从而让接收方调整频率,同步接收。而接收方在接收时只要接收到连续的6个1后,直接将后面的0删除即可恢复数据的原貌。
下图是原始数据、位填充数据、NRZI编码数据的一个图例:
![](https://imgsa.baidu.com/exp/w=500/sign=d69420a6ecdde711e7d243f697eecef4/b03533fa828ba61eab25588c4834970a314e594d.jpg)
而接收方只需要将上面接受到的NRZI编码数据进行译码,再进行位反填充即可还原为原始数据了。
此种编码方式除了在USB上使用,还有在CD光盘以及使用光纤传输的100BASE-FX(Fast Ethernet)等产品、领域。
方法/步骤
在USB总线上,通过D+和D-两个数据信号线来传输,而并没有像I2C总线那样会有一根SCL时钟线来同步,那么USB总线是如何来进行同步两端信号传输呢?此时我们得来了解一些编码方式,以便处理因USB线缆所产生的信号延迟及误差等问题。1、RZ 编码(Return-to-zero Code),也叫归零编码。
在该编码试工中,正电平代表逻辑1,负电平代码逻辑0,并且每次传输完一位数据,信号都会回到零电平。这样,在信号线上会产生3种电平:正电平、负电平、零电平,相应的信号图例如下:
![](https://imgsa.baidu.com/exp/w=500/sign=534c3680b97eca80120539e7a1229712/a6efce1b9d16fdfa4e0c564dbd8f8c5494ee7b35.jpg)
从上图中可看出,每们数据传输中都有一个归零的过程,这样接收端只需要在归零后进行新的采样,这样就不需要单独的时钟信号,这实际上相当于把时钟信号用归零处理在传输的数据中,这种信号叫自同步(self-clocking)信号。
这虽然节省了信号线,不过还是有它固有的缺点,由于RZ编码信号中有大部分数据带宽被用于传输“归零”信号而浪费掉了。除了省去这个步骤,NRZ编码就产生了,相对于RZ编码,NRZ编码就是不需要“归零”。
2、NRZ 编码(Non-return-to-zero Code),也叫不归零编码。
下图是NRZ编码的信号图例:
![](https://imgsa.baidu.com/exp/w=500/sign=db551d9d72ec54e741ec1a1e89399bfd/d009b3de9c82d15836d5c912890a19d8bc3e423a.jpg)
从上图可以看到,每一位信号都不需要“归零”了,被浪费的带宽收回了,但又失去了应有的自同步特性,让我们感觉又回到了起点,那么先继续了解NRZI编码吧。
3、NRZI 编码(Non-Return-to-Zero Inverted Code),也叫反向不归零编码。
NRZI编码与NRZ编码的区别就是NRZI用翻转来表示一个逻辑,而信号保持不变来表示另一个逻辑。而在USB传输的编码中采用的是NRZI格式,电平翻转代表逻辑0,电平不变代表1。
下图是NRZI与NRZ的对比图例:
![](https://imgsa.baidu.com/exp/w=500/sign=23f8d79d05f3d7ca0cf63f76c21ebe3c/b17eca8065380cd72af9324ea844ad34588281aa.jpg)
对于翻转信号,可以将其当作一种通知机制,当把NRZI的波形完全翻转后,其所表示的数据序列仍然是一样的,对于使用差分信号线来传输的USB尤为方便。
从上面的了解,NRZ和NRZI都失去了自同步特性,不过还是可以通过一些技巧来处理。在USB中,每个数据包的最开始处都有一个同步域(SYNC),其值为00000001,在经过NRZI编码后,就是一串方波,接收方可能过这个同步头来计算发送方的频率,以便用这个频率来继续采样数据信号。由于USB所采用的NRZI编码中,每当逻辑0时就会进行电平翻转,那么接收方可通过这个不断翻转的信号来调整同步的频率,保证数据的正确传输。但这仍然存在问题,一旦电平长时间保持不变时,我们无法知道到时发送的是100个逻辑1,还是1000个逻辑1,即使传输的是100个逻辑1,但接收方与发送方的频率相差了100分之1,那么也还是存在可能把数据采集成为99或者101。而USB中采用了Bit-Stuffing位填充处理,即在连续发送6个1后面会插入1个0,强制使发送信号进行翻转,从而让接收方调整频率,同步接收。而接收方在接收时只要接收到连续的6个1后,直接将后面的0删除即可恢复数据的原貌。
下图是原始数据、位填充数据、NRZI编码数据的一个图例:
![](https://imgsa.baidu.com/exp/w=500/sign=d69420a6ecdde711e7d243f697eecef4/b03533fa828ba61eab25588c4834970a314e594d.jpg)
而接收方只需要将上面接受到的NRZI编码数据进行译码,再进行位反填充即可还原为原始数据了。
此种编码方式除了在USB上使用,还有在CD光盘以及使用光纤传输的100BASE-FX(Fast Ethernet)等产品、领域。
相关文章推荐
- USB 之传输编码格式 NRZI 介绍
- USB从了解都熟悉1-------USB概念、接口构成、信号技术和通信格式、通信原理和设备连接检测
- android usb挂载分析--各种格式支持
- USB封包格式
- 音视频信号输出格式及插口
- 语音学习笔记4------matlab实现逆向生成音频格式的信号audiowrite()函数
- USB 字段和包格式(1)
- USB 的 NRZI 编码
- 看眼图如何分析USB在布线中的信号完整性问题
- USB 全速/高速设备识别信号分析
- USB信号
- STM32F103之USB鼠标、键盘数据格式
- Fedora Core 4 使用手记(四) 使用NTFS格式的USB移动硬盘
- USB上电后两次reset的chirp K信号
- YUV信号格式
- USB-HID鼠标、键盘通讯格式
- USB-HID鼠标、键盘通讯格式
- Matlab下调用USB串口发送trigger信号
- 关于Linux下usb(vfat格式)挂载中文乱码问题的解决
- USB 字段和包格式(1)