USB中用NRZI来编码数据
前面章节已经学习过了USB的引脚定义了,但是对于其中的USB 2.0的两根数据线D+和D-所对应的数据传输,却没有详细介绍。此处就是介绍,在此串行数据线中,数据是如何被编码和传送的。
USB所传输的数据,用的数据编码方式是NRZI(Non-Return-to-Zero Inverted),其具体的含义解释,看到有位网友已经非常清晰的分析过了,我就不重复造轮子了。
为了防止这位网友的服务器出问题,下面我再复制一份。
这两天继续看 USB 相关的内容,准备用纯软件实现一下 USB 设备传输,为将来的项目打好基础。
首先碰到的就是这个 NRZI 编码的问题了,基础太薄弱,看了一上午总算明白了大概。
首先,USB 的数据是串行发送的,就像 UART、I2C、SPI 等等,连续的01 信号只通过一根数据线发送给接受者。
但是因为发送者和接收者运行的频率不一样,信号的同步就是个问题,比如,接受者接收到了一个持续一段时间的低电平,无法得知这究竟是代表了5个0 还是1000个0。
一个解决办法,就是在传输