先来了解一下常用的两种编码规则
1.非归零编码(Non Return Zero Code)简称NRZ,使用单个电平表示0或1,一个周期可以全部用来传输数据,这样传输的带宽就可以完全利用。一般常见的带有时钟线的传输协议都是使用NRZ编码或者差分的NRZ编码。因此,使用NRZ编码若想传输高速同步数据,基本上都要带有时钟线,因为本身NRZ编码无法传递时钟信号。但在低速异步传输下可以不存在时钟线,但在通信前,双方设备要约定好通信波特率,例如UART。
2.曼彻斯特编码,利用信号的跳变方向来决定数据,每个位都会包含一个电平变化,可以用来同步时钟,但也损失了一部分的带宽,对于高速数据来说,这种编码方式无疑是这几种编码方式中最优的,曼彻斯特编码不存在长时间信号状态不变导致的时钟信号丢失的情况,所以在这种编码方式在以太网通信中是十分常用的。
CAN的信号传输使用的是NRZ编码,由于NRZ编码的信号电平可能长时间保持不变(例如数据中连续多个相同的位),因此有必要采取适当的措施以确保不超过两个信号沿之间最大允许的时间间隔。重新同步可通过应用“位填充”的方法实现,这种方法是在一定数量的恒定位电平之后将一个反码插入到位流中。CAN使用的位填充宽度是5位,发送器一检测到5个连续相同值的序列,它就会在实际传输的位流中插入一个反码位,这样就保证了具有足够同步能力的最高传输性能。这种类型的编码还提供非常良好的信号辐射特性(总线辐射的能量大致上和传输信号的频率以及信号边沿的数量成比例)。
|