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

摘要:
具有时钟线的常见传输协议使用NRZ编码或差分NRZ编码。事实上,NRZI编码方法非常简单,即信号电平反转表示0,信号电平不变表示1。然而,对于高速数据,这种编码方法无疑是这些编码方法中最好的。与NRZI编码相比,曼彻斯特编码不受长期信号状态不变导致的时钟信号丢失的影响,因此这种编码方法在以太网通信中非常常见。

以下内容转自http://blog.sina.com.cn/s/blog_78e87ba10102wj9g.html

       在数字电路中,组成一连串信息的基元就是0和1,无论是在CPU、DSP、MCU甚至是个数字计数器中,数字电路在其中能够处理的信息也只有0和1,而对于任何外界的信息,计算机都能通过两个量来描述,那就是0和1。而对于数字通信来说,想要用0和1来传递你想传达的信息,则必须要通过一种特殊的约定来进行同步,这种约定就是编码。两台设备要想进行有线通信,最终都是将想要传达的信息转变成一串比特流,进而在传输线上进行传输。常规数字通信为数据线+时钟线的形式,但对于高速信号而言,时钟线和数据线长度的稍稍偏差,就会造成接收端无法满足数据采样的建立时间,故会导致数据出错。而最好的方式就是将时钟信号和数据信号用同一根线来传递,所以出现了一些比较特殊的编码,是的时钟和数据能够融合在一起。下面主要讨论5中常用的编码方式:

 
1.RZ(Return Zero Code)编码
       RZ编码也成为归零码,归零码的特性就是在一个周期内,用二进制传输数据位,在数据位脉冲结束后,需要维持一段时间的低电平。举个图例吧:
 RZ、NRZ、NRZI、曼彻斯特编码第1张
图1 RZ码示意图
 
 
图中红色的线表示数据,只占据一部分的周期,剩下周期部分为归零段。而归零码而分为单极性归零码和双极性归零码,图1表示的是单极性归零码,即低电平表示0,正电平表示1。对于双极性归零码来说,则是高电平表示1,负电平表示0。如下图所示:
RZ、NRZ、NRZI、曼彻斯特编码第2张
图2 双极性RZ码示意图

这种编码方式虽说能够同时传递时钟信号和数据信号,但由于归零需要占用一部分的带宽,故传输效率也就收到了一定的限制,假设数据传输时间为t,一个周期时间为T,则这种传输效率η=t/T。
 
 
 
 
 
 
2.NRZ(Non Return Zero Code)编码
       NRZ编码也成为不归零编码,也是我们最常见的一种编码,即正电平表示1,低电平表示0。它与RZ码的区别就是它不用归零,也就是说,一个周期可以全部用来传输数据,这样传输的带宽就可以完全利用。一般常见的带有时钟线的传输协议都是使用NRZ编码或者差分的NRZ编码。因此,使用NRZ编码若想传输高速同步数据,基本上都要带有时钟线,因为本身NRZ编码无法传递时钟信号。但在低速异步传输下可以不存在时钟线,但在通信前,双方设备要约定好通信波特率,例如UART。
RZ、NRZ、NRZI、曼彻斯特编码第3张
图3 NRZ编码示意图
 
 
 
 
 
3.NRZI(Non Return Zero Inverted Code)编码
       NRZI编码的全称为反向不归零编码,这种编码方式集成了前两种编码的优点,即既能传输时钟信号,又能尽量不损失系统带宽。对于USB2.0通信的编码方式就是NRZI编码。其实NRZI编码方式非常的简单,即信号电平翻转表示0,信号电平不变表示1。例如想要表示00100010(B),则信号波形如下图所示:
RZ、NRZ、NRZI、曼彻斯特编码第4张
图4 NRZI编码示意图
 
 
 
由图可以看到,当电平状态发生变化时,表示的数据为0。在传输的数据中,很少出现全1的状态,故接收端可以根据发送端的电平变化确定采样时钟频率。但是有时候依然会出现数据为全1的状态,也就是说信号线一直保持一个状态,这个时候时钟信号就无法传输,接收端就无法同步时钟信号,这该如何解决呢?解决方式就是在一定数量的1之后强行插入一个0,就是说若信号线状态一直持续一段时间不变的话,发送端强行改变信号线的状态,接收端则只需要将这个变化忽略掉就可以了。在USB2.0的协议中规定为传输7个1则在数据中插入一个0。例如有一段数据为:1111 1111 (B)要发送,则整个传输线上的电平状态是这样的:
RZ、NRZ、NRZI、曼彻斯特编码第5张
图5
 
 
 
5.曼彻斯特编码
曼彻斯特编码方式和NRZI编码十分相似,只不过它是利用信号的跳变方向来决定数据的。在位中间,信号由高向低跳变表示数据0,信号由低向高跳变表示数据1。举个图例吧,若要表示数据1001 1010(B),则信号波形图如下图所示:
RZ、NRZ、NRZI、曼彻斯特编码第6张
图6 曼彻斯特编码示意图
 
       曼彻斯特编码方式也如前面所说,虽然传输了时钟信号,但也损失了一部分的带宽,主要表现在相邻相同数据上。但对于高速数据来说,这种编码方式无疑是这几种编码方式中最优的,相比NRZI编码,曼彻斯特编码不存在长时间信号状态不变导致的时钟信号丢失的情况,所以在这种编码方式在以太网通信中是十分常用的。
 
 
 
6、差分曼彻斯特编码
     差分曼彻斯特码,又叫条件双相码(CDP码)。它是改进型的曼彻斯特编码,其特点是在每一位周期的中间,波形都有变化,如果在两位周期交界处电平没有变化,则表示“1”:有变化,则表示“0”(在信号位中间总是将信号反相;在信号位开始时不改变信号极性,表示逻辑“1”:在信号位开始时改变信号极性,表示逻辑“0”)。
 
判断一个位是0还是1要结合前面的那一位,如果他和前面的相同,表示0,和前面的不同,表示1
 
RZ、NRZ、NRZI、曼彻斯特编码第7张
       总结了以上这几种编码方式,其实最终体现的都是一个问题,就是如何将时钟信号传递出去,对于任何数字通信而言,时钟信号都是首先要考虑的问题,因为同步通信在接收端对数据进行采样时,都是利用发送端发出的时钟信号作为采样基准源,只有保证优质的数据信号和时钟信号被传送出来,才能够保证采样端不会在亚稳态区中进行采样而导致数据的错误。以上内容都是个人的浅见,如有不足或不对之处,欢迎指正,我定虚心请教!

免责声明:文章转载自《RZ、NRZ、NRZI、曼彻斯特编码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇kafka时间轮简易实现(二)jQuery源码学习之一 (采用匿名函数自执行模式)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

通信知识科普

手机开机后的步骤:  1. 首先搜索124个信道,即所有的BCH通道, 决定收到的广播信道BCH强度, (BCH 的承载的信息是距Mobile最近的BTS; 呼叫信息);  2. 跟网络同步时间和频率, 由FCH/SCH调整频率和时间  3. 解码BCH的子通道BCCH.  4. 网络检查SIM 卡的合法身份.是否是网络允许的SIM 卡。  5. 手机的位...

MII、RMII、GMII接口的详细介绍

概述:         MII (Media Independent Interface(介质无关接口)或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口和一个MAC和PHY之间的管理接口。     数据接口包括分别用于发送器和接收器的两条独立信道,每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。...

Python接口自动化-接口基础(一)

一、接口的定义 1.接口是前后端沟通的桥梁,是数据传输通道,包括外部接口、内部接口,内部接口又包括:上层服务与下层 服务接口、同级接口; 2.接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法, 使其能被内部修改而不影响外界其他实体与其交互的方式; 二、接口的分类 1.按用途: 电脑等信息机器硬件组件间的接口...

《图解 HTTP》 摘要一

学习过程对书本的内容的摘要以及总结,逐步完善,带有个人理解成分。 Web 及网络基础 使用 HTTP 协议访问 Web 客户端:通过获取请求获取服务资源的 Web 浏览器等 HTTP 全称:HtyperText Transfer Protocol WWW 全称:Wrold Wide Web SGML 标准通用标记语言 全称:Standard Gener...

GSM嗅探

GSM初探 大家应该都听说过HTTP协议,又听说WEB服务,每一个服务的背后都有一个协议在工作着。所谓的没有规矩不成方圆,说的就是这个道理,每一个细小的部分,都已经规定好,只要按照协议执行,就不会出现问题。同样,GSM手机可以拨打电话,也就离不开相关协议的支持,这里就来介绍GSM协议。全球移动通信系统GlobalSystemforMobileCommu...

004.UDP--拼接UDP数据包,构造ip头和udp头通信(使用原始套接字)

一.大致流程: 建立一个client端,一个server端,自己构建IP头和UDP头,写入数据(hello,world!)后通过原始套接字(SOCK_RAW)将包发出去。 server端收到数据后,打印UDP数据并发送确认消息(yes),client收到yes后将其打印。 二.其中: client端IP:192.168.11.104 端口:8600 ser...