RZNRZNRZ1曼彻斯特编码
Posted bobuddy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RZNRZNRZ1曼彻斯特编码相关的知识,希望对你有一定的参考价值。
1、RZ(Return Zero Code)编码
也称为归零码,特性就是在一个周期内,用二进制传输数据位,在数据位脉冲结束后,需要维持一段时间的低电平。
RZ编码又分为两种:
单极性归零码
低电平表示0,正电平表示1,如下图:
红色的线表示数据,只占据一部分的周期,剩下周期部分为归零段
双极性归零码
高电平表示1,负电平表示0
RZ编码特点:能够同时传递时钟信号和数据信号,但由于归零,需要占用一部分的带宽
2、NRZ(Non Return Zero Code)编码
也称不归零编码,即正电平表示1,低电平表示0。它与RZ码的区别就是它不用归零,也就是说,一个周期可以全部用来传输数据,这样传输的带宽就可以完全利用
使用NRZ编码若想传输高速同步数据,基本上都要带有时钟线,因为本身NRZ编码无法传递时钟信号。但在低速异步传输下可以不存在时钟线,但在通信前,双方设备要约定好通信波特率,例如UART
一般常见的带有时钟线的传输协议都是使用NRZ编码或者差分的NRZ编码
示意图
3、NRZI(Non Return Zero Inverted Code)编码
反向不归零编码,集成了前两种编码的优点,即既能传输时钟信号,又能尽量不损失系统带宽
编码方式:当电平状态发生变化时,表示的数据为0,信号电平不变表示1 (开始)
USB2.0通信的编码方式就是NRZI编码
波形示意图:(表示00100010)
特点:
1)在传输的数据中,很少出现全1的状态,故接收端可以根据发送端的电平变化确定采样时钟频率
2)如出现数据为全1的状态,也就是说信号线一直保持一个状态,这个时候时钟信号就无法传输,接收端就无法同步时钟信号,这该如何解决呢?
解决方式:
在一定数量的1之后强行插入一个0,就是说若信号线状态一直持续一段时间不变的话,发送端强行改变信号线的状态,接收端则只需要将这个变化忽略掉就可以了
USB2.0的协议中规定为传输7个1则在数据中插入一个0
举例发送数据1111 1111 ,如下图:
NRZ 和 NRZI 都没有自同步特性,但是可以用一些特殊的技巧解决。比如,先发送一个同步头,内容是 0101010 的方波,让接受者通过这个同步头计算出发送者的频率,然后再用这个频率来采样之后的数据信号,就可以了
4、曼彻斯特编码
利用信号的跳变方向来决定数据的。在位中间,信号由高向低跳变表示数据0,信号由低向高跳变表示数据1
波形示意图:(数据1001 1010)
以上是关于RZNRZNRZ1曼彻斯特编码的主要内容,如果未能解决你的问题,请参考以下文章