打印
[其他产品]

CAN信号中插入反码位的作用

[复制链接]
760|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
先来了解一下常用的两种编码规则
1.非归零编码(Non Return Zero Code)简称NRZ,使用单个电平表示0或1,一个周期可以全部用来传输数据,这样传输的带宽就可以完全利用。一般常见的带有时钟线的传输协议都是使用NRZ编码或者差分的NRZ编码。因此,使用NRZ编码若想传输高速同步数据,基本上都要带有时钟线,因为本身NRZ编码无法传递时钟信号。但在低速异步传输下可以不存在时钟线,但在通信前,双方设备要约定好通信波特率,例如UART。
2.曼彻斯特编码,利用信号的跳变方向来决定数据,每个位都会包含一个电平变化,可以用来同步时钟,但也损失了一部分的带宽,对于高速数据来说,这种编码方式无疑是这几种编码方式中最优的,曼彻斯特编码不存在长时间信号状态不变导致的时钟信号丢失的情况,所以在这种编码方式在以太网通信中是十分常用的。

CAN的信号传输使用的是NRZ编码,由于NRZ编码的信号电平可能长时间保持不变(例如数据中连续多个相同的位),因此有必要采取适当的措施以确保不超过两个信号沿之间最大允许的时间间隔。重新同步可通过应用“位填充”的方法实现,这种方法是在一定数量的恒定位电平之后将一个反码插入到位流中。CAN使用的位填充宽度是5位,发送器一检测到5个连续相同值的序列,它就会在实际传输的位流中插入一个反码位,这样就保证了具有足够同步能力的最高传输性能。这种类型的编码还提供非常良好的信号辐射特性(总线辐射的能量大致上和传输信号的频率以及信号边沿的数量成比例)。

使用特权

评论回复
沙发
捉虫天师| | 2024-7-18 10:47 | 只看该作者
准备学习一下慢切斯特编码。看到有的单片机带这个,不太懂。

使用特权

评论回复
板凳
捉虫天师| | 2024-7-18 11:02 | 只看该作者
认真看了这个帖子和时序图,懂了。UART属于非归零码。就是低电平表示0,高电平表示1.换到曼彻斯特编码就是不管是1还是0都要经历电平变化,这样可以表示数据是在线的。在一个BIT周期内的上升沿周期表示0,下降沿周期表示1.

使用特权

评论回复
地板
tpgf| | 2024-7-18 12:03 | 只看该作者
在什么情况下我们需要插入反码位呢

使用特权

评论回复
5
paotangsan| | 2024-7-18 12:40 | 只看该作者
这算是一种变相的数据加密方式吗

使用特权

评论回复
6
wakayi| | 2024-7-18 13:27 | 只看该作者
收发双方会自动识别不同的编码规则吗

使用特权

评论回复
7
xiaoqizi| | 2024-7-18 13:59 | 只看该作者
曼彻斯特编码的应用非常广泛  并不局限于can通讯

使用特权

评论回复
8
wowu| | 2024-7-18 21:41 | 只看该作者
以太网通讯的硬件是不是就极大的保证了信号免受干扰呢

使用特权

评论回复
9
renzheshengui| | 2024-7-18 22:13 | 只看该作者
曼彻斯特编码的抗干扰能力是不是更好点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

695

帖子

6

粉丝