USB编码方式(NRZI)及时钟同步方式

1.概述
在同步通讯系统中,两个设备通讯则需要同步信号,同步信号分为时钟同步信号和自同步信号两种,时钟同步方式在通讯链路上具有时钟信号(IIC、SPI),自同步方式在通讯链路中没有同步信号(PCIE、USB),自同步方式常常适用于高速通讯系统中。

2.USB自同步传输
首先,USB 的数据是串行发送的,就像 UART、I2C、SPI 等等,连续的01 信号只通过一根数据线发送给接受者。但是因为发送者和接收者运行的频率不一样,信号的同步就是个问题,比如,接受者接收到了一个持续一段时间的低电平,无法得知这究竟是代表了 5 个 0 还是 1000 个 0。

一个解决办法,就是在传输数据信号的同时,附加一个时钟信号,用来同步两端的传输,接受者在时钟信号的辅助下对数据信号采样,就可以正确解析出发送的数据了,比如 I2C 就是这样做的,SDA 来传输数据,SCL 来传输同步时钟:

虽然这样解决了问题,但是却需要附加一根时钟信号线来传输时钟。因为USB没有时钟信号,有没有不需要附加的时钟信号,也能保持两端的同步呢?

有的,这就是 RZ 编码(Return-to-zero Code),也叫做归零编码。

3. RZ 编码(Return-to-zero Code)
RZ 编码(Return-to-zero Code),也叫做归零编码。在 RZ 编码中,正电平代表逻辑 1,负电平代表逻辑 0,并且,每传输完一位数据,信号返回到零电平,也就是说,信号线上会出现 3 种电平:正电平、负电平、零电平:

从图上就可以看出来,因为每位传输之后都要归零,所以接受者只要在信号

### USB 协议中的 NRZI 编码原理 NRZI(Non-Return-to-Zero Inverted)是一种用于 USB 数据传输的编码方式。在这种编码方案中,逻辑值通过信号的变化与否来表示。具体而言,当数据流中有逻辑 `0` 时,信号会发生电平翻转;而当数据流中有逻辑 `1` 时,信号保持不变[^1]。 #### NRZI 编码的特点 NRZI 编码的主要特点是它利用了信号的状态变化而非绝对状态来传递信息。这种方式可以减少直流成分的影响,从而提高信道利用率并降低电磁干扰的可能性。然而,为了防止长时间连续相同的比特序列导致接收端难以维持同步,USB 协议还引入了一种机制——即强制周期性的信号跳变[^2]。 #### NRZI 编码实现过程 以下是基于 Python 的简单模拟代码片段展示如何将二进制字符串转换成对应的 NRZI 编码: ```python def nrzi_encode(binary_data): encoded_signal = [] current_level = True # Assume initial level is high (True) for bit in binary_data: if bit == '0': # A zero causes a transition. current_level = not current_level elif bit != '1': raise ValueError(f"Invalid input character {bit}") encoded_signal.append('H' if current_level else 'L') return ''.join(encoded_signal) binary_input = "110100" encoded_output = nrzi_encode(binary_input) print(f"Binary Input: {binary_input} -> Encoded Output: {encoded_output}") ``` 上述函数接受一串由字符 `'0'` 和 `'1'` 组成的输入,并返回相应的 NRZI 表示形式。其中,“H”代表高电平,“L”则对应低电平[^3]。 #### NRZI 编码解析方法 在实际应用中,解码器会持续监测接收到的波形以恢复原始数据。每当检测到一次电压跃迁,则记录下一个 `0`;如果没有观察到任何改变,则认为该位置存储的是 `1`。值得注意的是,由于缺乏明确的时间基准点可能引起累积误差问题,因此通常还需要额外采用诸如位填充技术之类的措施加以解决[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值