不归零制编码、归零制编码、NRZI

本文详细介绍了USB采用的NRZI编码方式及其工作原理,包括NRZI如何通过信号翻转来表示数据,以及如何解决同步问题。此外,文章还对比了RZ、NRZ与NRZI的不同,并解释了曼彻斯特编码的特点。

在传送分组时,USB应用了NRZI编码方式。

信号电平的一次反转代表1,电平不变化表示0,并且在表示完一个码元后,电压不需回到0

  不归零制编码是效率最高的编码

  缺点是存在发送方和接收方的同步问题

  单极性不归零码,无电压(也就是元电流)用来表示"0",而恒定的正电压用来表示"1"。每一个码元时间的中间点是采样时间,判决门限为半幅度电平(即0.5)。也就是说接收信号的值在0.5与1.0之间,就判为"1"码,如果在O与0.5之间就判为"0"码。每秒钟发送的二进制码元数称为"码速"。

  双极性不归零码,"1"码和"0"码都有电流,但是"1"码是正电流,"0"码是负电流,正和负的幅度相等,故称为双极性码。此时的判决门限为零电平,接收端使用零判决器或正负判决器,接收信号的值若在零电平以上为正,判为"1"码;若在零电平以下为负,判为"0"码。

  以上两种编码,都是在一个码元的全部时间内发出或不发出电流(单极性),以及发出正电流或负电流(双极性)。每一位编码占用了全部码元的宽度,故这两种编码都属于全宽码,也称作不归零码NRZ (Non Return Zero)。如果重复发送"1"码,势必要连续发送正电流;如果重复发送"0"码,势必要连续不送电流或连续发送负电流,这样使某一位码元与其下一位码元之间没有间隙,不易区分识别。归零码可以改善这种状况。

RZ,NRZNRZI编码解释

        RZ 编码(Return-to-zero Code),即归零编码
            在 RZ 编码中,正电平代表逻辑 1,负电平代表逻辑 0,并且,每传输完一位数据,信号返回到零电平,

        也就是说,信号线上会出现 3 种电平:正电平、负电平、零电平:
        



        从图上就可以看出来,因为每位传输之后都要归零,所以接受者只要在信号归零后采样即可,这样就不在需要单独的时钟信号。
        实际上,RZ 编码就是相当于把时钟信号用归零编码在了数据之内。这样的信号也叫做自同步(self-clocking)信号。
        这样虽然省了时钟数据线,但是还是有缺点的,因为在 RZ 编码中,大部分的数据带宽,都用来传输“归零”而浪费掉了。
        那么,我们去掉这个归零步骤,NRZ 编码(Non-return-to-zero Code)就出现了,和 RZ 的区别就是 NRZ 是不需要归零的:
        NRZ 编码(Non-return-to-zero Code),不归零编码。

        



    这样,浪费的带宽又回来了,不过又丧失宝贵的自同步特性了,貌似我们又回到了原点,其实这个问题也是可以解决的,不过待会儿再讲,先看看什么是 NRZI:

    NRZI 编码(Non-Return-to-Zero Inverted Code)和 NRZ 的区别就是 NRZI 用信号的翻转代表一个逻辑,信号保持不变代表另外一个逻辑。

    USB 传输的编码就是 NRZI 格式,在 USB 中,电平翻转代表逻辑 0电平不变代表逻辑1(NRZI 遇 0 翻转遇 1 不变):

        


                    
        翻转的信号本身可以作为一种通知机制,而且可以看到,即使把 NRZI 的波形完全翻转,所代表的数据序列还是一样的,
        对于像 USB 这种通过差分线来传输的信号尤其方便.

现在再回到那个同步问题:
        的确,NRZ 和 NRZI 都没有自同步特性,但是可以用一些特殊的技巧解决。比如,先发送一个同步头,内容是 0101010 的方波,让接受者通过这个同步头计算出发送者的频率,然后再用这个频率来采样之后的数据信号,就可以了。
        在 USB 中,每个 USB 数据包,最开始都有个同步域(SYNC),这个域固定为 0000 0001,这个域通过 NRZI 编码之后,就是一串方波(复习下前面:NRZI 遇 0 翻转遇 1 不变),接受者可以用这个 SYNC 域来同步之后的数据信号。
        此外,因为在 USB 的 NRZI 编码下,逻辑 0 会造成电平翻转,所以接受者在接受数据的同时,根据接收到的翻转信号不断调整同步频率,保证数据传输正确.
        但是,这样还是会有一个问题,就是虽然接受者可以主动和发送者的频率匹配,但是两者之间总会有误差。假如数据信号是 1000 个逻辑1,经过 USB 的 NRZI 编码之后,就是很长一段没有变化的电平,在这种情况下,即使接受者的频率和发送者相差千分之一,就会造成把数据采样成 1001 个或者 999 个 1了。
        
        USB 对这个问题的解决办法,就是强制插 0,也就是传说中的 bit-stuffing,如果要传输的数据中有 7 个连续的 1,发送前就会在第 6 个 1 后面强制插入一个 0,让发送的信号强制出现翻转,从而强制接受者进行频率调整。接受者只要删除 6 个连续 1 之后的 0,就可以恢复原始的数据了。
        
        既然说编码,那就顺便把另一种极常用的编码也说一下把:曼彻斯特编码
        曼彻斯特( Manchester )码是一种双相码。用高电平到低电平的转换边表示 0 ,而用低电平到高高电平的转换边表示 1 。

    注:以上关于电平的表示,具体环境或者不同教材给出的规定可能不同,但是原理相同!

转载于:https://www.cnblogs.com/lifan3a/articles/5257369.html

<think> 我们正在讨论NRZI编码(非归零反相编码)。根据用户提供的引用材料,我们可以总结如下: NRZI编码规则: 根据引用[1]和[2]: - 信号电平翻转表示0 - 信号电平不变表示1 同时,为了解决连续1导致的同步问题,USB协议采用了位填充机制:当出现连续6个1时,在第6个1后面强制插入一个0,然后再进行NRZI编码。接收端在检测到连续6个1后会自动移除随后的一位(即那个插入的0),从而恢复原始数据。 此外,我们还可以补充一些NRZI编码的特性: 1. 编码过程: - 起始状态:通常约定一个初始电平(如高电平或低电平)。 - 对于要发送的每一位数据: - 如果该位是0,则翻转当前电平(从高变低或从低变高)。 - 如果该位是1,则保持当前电平不变。 2. 同步问题: 当传输连续多个1时,由于电平保持不变,接收端无法从信号中提取时钟信息(因为时钟恢复依赖于信号跳变)。因此需要位填充机制来保证最小跳变密度。 3. 与曼彻斯特编码的比较(引用[3]提到了曼彻斯特编码): - 曼彻斯特编码:每个位中间都有跳变,因此自带时钟信息,但带宽利用率较低(因为跳变多)。 - NRZI编码:在传输连续0时跳变频繁,但传输连续1时无跳变,因此需要位填充来保证最小跳变。 下面我们按照用户要求的格式进行回答: </think> ### NRZI 编码(非归零反相编码)详解 #### 一、核心编码规则 1. **电平变化逻辑**: - **0 的表示**:信号电平发生翻转(高→低 或 低→高)[^2] - **1 的表示**:信号电平保持不变(维持前一位状态)[^1][^2] - 初始电平约定:通常起始于高电平或低电平预设值 2. **波形生成示例**: 假设二进制序列 $10011010$,初始电平为高: ```mermaid timeline 二进制序列: 1 0 0 1 1 0 1 0 NRZI波形: 高 → 高 → 低 → 高 → 高 → 高 → 低 → 高 → 低 操作说明: 保持 翻转 翻转 保持 保持 翻转 保持 翻转 ``` 图示说明: - 第1位 `1`:保持高电平 - 第2位 `0`:高→低(翻转) - 第3位 `0`:低→高(翻转) - 第4位 `1`:保持高电平 - ... 依此类推 #### 二、同步问题与位填充机制 1. **连续1的缺陷**: - 当传输连续多个 `1` 时,电平长期不变(例如序列 $111111$) - 接收端无法提取时钟信号(无电平跳变边缘)[^1] 2. **USB协议解决方案**: ```mermaid graph LR A[原始数据] -->|检测连续6个1| B[插入1个0] B --> C[NRZI编码] D[接收端] -->|识别连续6个1| E[移除后续0] E --> F[恢复原始数据] ``` - **发送端**:在连续6个 `1` 后强制插入 `0`(例如 $111111→111111\boldsymbol{0}$)[^1] - **接收端**:检测到连续6个 `1` 自动删除下一个比特 - 插入概率:$ P_{\text{插入}} = \frac{1}{64} $(6比特全 `1` 的概率) #### 三、技术特性分析 | 特性 | NRZI 编码 | 曼彻斯特编码[^3] | |--------------------|-------------------------|----------------------| | **时钟恢复** | 依赖电平跳变(需位填充) | 每比特中间强制跳变 | | **带宽效率** | 高($\geq 95\%$) | 低($\leq 50\%$) | | **抗干扰性** | 中等(依赖差分信号) | 高(跳变携带数据) | | **功耗** | 低(连续 `1` 无跳变) | 高(恒定跳变) | #### 四、典型应用场景 1. **USB 2.0 物理层**: - 结合差分信号(D+/D-线)实现 $480 \text{ Mbps}$ 传输[^1] - 位填充保证最小跳变密度:$ \geq \frac{1}{7} \text{ UI} $(单位间隔) 2. **其他通信系统**: - 光纤通道(Fibre Channel) - IEEE 1394(FireWire)基础模式 - 磁记录存储系统(硬盘编码) > 💡 **设计优势**: > 在传输大量连续 `1` 的数据时(如空白文件),NRZI 通过减少电平翻转次数显著降低功耗,这对移动设备尤为重要[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值