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,就可以恢复原始的数据了。

NRZ、NRZI编码相关推荐

  1. NRZ与NRZI编码

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

  2. 编码(RZ NRZ NRZI)

    Frm: https://jingyan.baidu.com/album/39810a23addccbb637fda66a.html?picindex=1 RZ 编码(Return-to-zero C ...

  3. 线路编码(NRZ,NRZI,8B/10B,Manchester等)

    0.前言 编码根据作用和场景不同分为信源编码,信道编码和线路编码. 信源编码:降低信源符号之间的相关性和冗余度,通过编码提高每个符号的信息量.具体说,就是针对信源输出符号序列的统计特性来寻找某种方法, ...

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

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

  5. c语言usb串口输出,C语言实现模拟USB对8bit数据的NRZI编码输出

    USB的NRZI编码方式,将原数据进行处理,原数据为0时,编码成电平翻转,原数据为1时,编码成电平不翻转,USB要发送数据的时候,硬件把数据流转化成为NRZI编码,然后经过USB的差分线D+和D-将数 ...

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

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

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

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

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

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

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

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

最新文章

  1. 中国引领全球主导人工智能竞赛
  2. Response 输出文件流过程中的等待效果
  3. 使用 SAP Uiveri5 遇到 passport 依赖的问题以及解决方案
  4. Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)
  5. springmvc防止重复提交拦截器
  6. ospf路由协议源码学习
  7. iPhone 13或有8款配色;vivo百万年薪招工程师;特斯拉新增行车记录视频紧急情况自动保存功能|极客头条...
  8. python中修饰器_python 中的修饰器
  9. 谢希仁编著《计算机网络》1-6章汇总
  10. 从日志中截取某个时间段的日志分析
  11. DSP,从入门到入土
  12. VOC2007.annotation文件解读
  13. IT学生解惑真经(转) (真的好经典!)
  14. nginx界面管理工具之nginxWebUI 搭建与使用
  15. 阿里云混合云重磅发布 全栈建云智能管云极致用云
  16. 查看windows系统和office是否永久激活(转载)
  17. 台式电脑共享笔记本电脑的无线网络
  18. 穷人跟懒人 富人跟勤快人
  19. Prometheus配置企业微信报警
  20. MySQL二维表转一维表

热门文章

  1. html5做 涂色游戏,h5 canvas益智类填色画游戏代码
  2. ps:Netty服务端主动关闭问题
  3. 服务器部署随笔-nfs minio 端口映射
  4. html5绘制草,利用html5实现canvas海底水草动画特效
  5. 為何Bulk In Bulk Out 會被stall ?
  6. 2023年 假期 和 调休(法定)
  7. (附源码)小程序 心理治愈 毕业设计041506
  8. 2022年你还不会serverless?看看这篇保姆级教程(中)
  9. 随机生成大量学生信息,可插入到学生表进行有关项目的练习
  10. 库克暗示苹果或推革命性电视产品