NRZ与NRZI编码解释
RZ 编码(Return-to-zero Code),即归零编码。

在 RZ 编码中,正电平代表逻辑 1,负电平代表逻辑 0,并且,每传输完一位数据,信号返回到零电平,也就是说,信号线上会出现 3 种电平:正电平、负电平、零电平:

从图上就可以看出来,因为每位传输之后都要归零,所以接受者只要在信号归零后采样即可,这样就不在需要单独的时钟信号。实际上, RZ 编码就是相当于把时钟信号用归零编码在了数据之内。这样的信号也叫做自同步(self-clocking)信号。

这样虽然省了时钟数据线,但是还是有缺点的,因为在 RZ 编码中,大部分的数据带宽,都用来传输“归零”而浪费掉了。

那么,我们去掉这个归零步骤,NRZ 编码(Non-return-to-zero Code)就出现了,和 RZ 的区别就是 NRZ 是不需要归零的:

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

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

USB 传输的编码就是 NRZI 格式,在 USB 中,电平翻转代表逻辑 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 。

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

NRZ与NRZI编码相关推荐

  1. NRZ、NRZI编码

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

  2. RZ,NRZ,NRZI

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

  3. 几种编码方式(RZ、NRZ、NRZI、曼彻斯特编码)

    此文转自:http://blog.sina.com.cn/s/blog_78e87ba10102wj9g.html 在数字电路中,组成一连串信息的基元就是0和1,无论是在CPU.DSP.MCU甚至是个 ...

  4. 编码(NRZ、NRZI、曼彻斯特、4B

    转自:http://book.2cto.com/201506/52119.html 正如之前已提到的,本章讨论的大部分功能是由网络适配器(network adaptor)完成的,它是一个将节点连接到链 ...

  5. 编码(NRZ、NRZI、曼彻斯特、4B/5B)

    将节点和链路变成可用构件的第一步,是清楚它们如何连接,以使比特从一个节点传输到另一个节点.正如在前一节中提到的,信号是在物理链路上传播的.因此,我们的任务是将源节点准备发送的二进制数据编码为链路能够传 ...

  6. RZ、NRZ、NRZI、曼彻斯特编码

    转自:http://blog.sina.com.cn/s/blog_78e87ba10102wj9g.html 在数字电路中,组成一连串信息的基元就是0和1,无论是在CPU.DSP.MCU甚至是个数字 ...

  7. RZ、NRZ、NRZI、曼彻斯特编码(针对)

    (2016-09-26 20:05:56) 正在上传-重新上传取消​转载▼ 标签: 杂谈 it 分类: Electronic 在数字电路中,组成一连串信息的基元就是0和1,无论是在CPU.DSP.MC ...

  8. 编码技术-RZ、NRZ、NRZI、曼彻斯特、差分曼彻斯特等

    编码技术(RZ.NRZ.NRZI.曼彻斯特.差分曼彻斯特等) - 知乎 编码技术就看这章

  9. 曼彻斯特编码,差分曼彻斯特编码和NRZI编码

    曼彻斯特编码 曼彻斯特编码(Manchester Encoding),也叫做相位编码( Phase Encode,简写PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据. 在曼 ...

最新文章

  1. Nature好文:过去150年,科学与产业经历四段情缘!
  2. 必须重启计算机才能关闭用户控制,Win10如何彻底关闭用户帐户控制?Win10关闭用户控制方法...
  3. 为什么叫python编程-为什么建议大家学习Python编程呢?老男孩Python入门
  4. 牛客网 二叉树的层序遍历
  5. intellij中出現org.apache.hadoop.fs.FSDataInputStream解決方案
  6. 查看linux电脑总内存,如何查看Linux系统中的内存使用情况的命令呢?
  7. 做了三年Java,docker网络映射配置
  8. emlog评论ajax,Emlog评论通过QQ获取昵称资料
  9. C# 时时监听目录文件改动
  10. 《程序员修炼之道--从小工到专家》读书笔记
  11. java 斗地主出牌算法_Golang算法实战之斗地主一
  12. Android 6.0 Marshmallow
  13. 极限脱出 量子计算机,《极限脱出3:零时困境》难点解密攻略 剧情通关密码一览...
  14. 量子计算机需要的物理知识,量子计算机和物理学上的量子力学关系大吗?
  15. 2015美国大学计算机科学专业排名,2015年USNews美国大学计算机科学专业研究生排名...
  16. java生成随机密码,包含大小写字母,数字,特殊字符等
  17. 数码宝贝服务器连接中断,数码宝贝新世纪服务器满了 问题解决方法分享
  18. 调查显示,41%的下一代家族企业接班人希望未来五年成为执行董事
  19. android小米8.0系统拍照并显示,谷歌相机8.0版本被成功提取,可移植到小米、一加等手机上...
  20. 性格测试小软件有哪些,十个有趣的性格小测试 测试你是什么性格

热门文章

  1. 西农大 Java 实验四 第一题
  2. Prometheus监控运维实战十: 主机监控指标
  3. 中e管家3种理财方法教你抵御风险
  4. 大学计算机课本前言,“大学计算机基础”书目前言
  5. 聊一聊基于激光雷达的车道线检测该怎么做
  6. coco数据集 解析下载
  7. 数通IA实验题目topo
  8. Linux学习笔记(一)(服务器环境搭配 常用命令 文件属性)
  9. jsp无法编译java_org.apache.jasper.JasperException:无法为JSP编译类:
  10. qq空间营销方案讲解