在接触了多种汽车控制器研的数据传输形式之后,发现除了模拟量,数字量和频率量之外,还有很有协议类信号,比如SPI、CAN、SENT、UART、AK和PSI5等,再一深究就会涉及到编码方式。因此本文将介绍几种数据传输编码方式,包括RZ编码的单极性和双极性,NRZ编码的特点,NRZI编码如何兼顾时钟和数据,以及曼彻斯特和差分曼彻斯特编码如何通过信号跳变携带信息。此外,还将讨论单端信号和差分信号的优缺点及其应用。
1 编码种类
1.1 RZ(Return Zero Code)编码
RZ编码也称为归零码,就是在 一个周期内,用二进制传输数据位,在数据脉冲结束后,需要维持一段时间的低电平。RZ编码又分为两种:
1)单极性归零码。低电平表示0,正电平表示1,如下图:
红色的线表示数据,只占据一部分的周期,剩下周期部分为归零段。
2)双极性归零码。高电平表示1,负电平表示0,如下所示:
RZ编码特点:能同时传递时钟信号和数据信号 ,但由于归零,需要占用一部分的带宽。1.2 NRZ(Non Return Zero Code)编码NRZ编码也称不归零编码,即正电平表示1,低电平表示0。它与RZ码的区别就是它不用归零,也就是说,一个周期可以全部用来传输数据,这样传输的带宽就可以完全利用。使用NRZ编码若想传输高速同步数据,基本上都要带有时钟线,因为本身NRZ编码无法传递时钟信号。但在低速异步传输下可以不存在时钟线,但在通信前,双方设备要约定好通信波特率,例如UART。一般常见的带有时钟线的传输协议都是使用NRZ编码或者差分的NRZ编码,如下示意:
1.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 的方波,让接受者通过这个同步头计算出发送者的频率,然后再用这个频率来采样之后的数据信号,就可以了。利用信号的跳变方向来决定数据 的。在位中间,信号由高向低跳变表示数据0,信号由低向高跳变表示数据1 (这个起始也可以反过来,看具体怎么约定),波形示意图如下:(数据1001 1010)1.5 差分曼彻斯特编码
差分曼彻斯特编码就是在 位起始点 的跳变,来判断数据的高低,每个位中间都会翻转,来保证时钟信号。
1)单端信号
单端信号指的是用一个线传输的信号,参考一般为地。单端信号是在一跟导线上传输的与地之间的电平差。当把信号从A点传递到B点时,需保证A点和B点的地电势是一样的(或者通过一根地线来保证)。优点是成本低,缺点是抗干扰能力比较差。
其中,
所以,一般单端信号用于低频电路中,适合于高幅度信号,不适合低幅度信号。差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相等,相位相差180度,极性相反。在这两根线上传输的信号就是差分信号。比如CAN总线信号,如下所示:差分信号常用于高速电路中,例如 LVDS(低电压差分信号)。差分信号如上图的下半部分,顾名思义,差分信号就是两条信号线。差分(difference)又名差分函数或差分运算,差分的结果反映了离散量之间的一种变化,是研究离散数学的一种工具。它将原函数 f(x) 映射到 f(x+a) - f(x+b) ,根据这个公式可以推出差分输出信号如何计算了,所以看到上面的图片可以推出输出信号的幅度为什么会是那个样子。差分信号的两条传输线会随着地端同时变化,因此其差值是固定的,因此证明出差分信号的抗干扰能力比较强,同时噪声也会被同时加载到两条传输线上,其差值也为零。两条传输线也会抑制电磁干扰( EMI ),原理为:两根线靠得很近且信号幅值相等,这两根线与地线之间的耦合电磁场的幅值也相等,同时他们的信号极性相反,其电磁场将相互抵消。因此对外界的电磁干扰也小。差分信号时序定位准确,差分信号的接受端是两根线上的信号幅值之差发生正负跳变的点,作为判断逻辑0/1跳变的点的。而普通单端信号以阈值电压作为信号逻辑0/1的跳变点,受阈值电压与信号幅值电压之比的影响较大,不适合低幅度的信号。差分信号也有缺点,其缺点也是其优点造成的:在PCB设计时,单端信号可以只有一根信号线,地线走地平面。然而差分信号一定要走两根等长、等宽、紧密靠近、且在同一层面的线,这样会发生走线密集的情况。常见的差分信号通信协议有 CAN Bus、RS485和RS422、USB、Ethernet(以太网)、PCI-E、SATA、HDM、LVDS 等。以上就是关于几种编码的介绍,在汽车控制器研发过程中,可能并不会直接影响你的开发工作,但是对于更深入理解你所做的工作会有一定意义。更多内容可参考:创作不易,欢迎点赞再看收藏关注!
汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。