900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > CAN总线技术 | 物理层02 - CAN总线的异步串行通讯

CAN总线技术 | 物理层02 - CAN总线的异步串行通讯

时间:2023-12-25 13:29:20

相关推荐

CAN总线技术 | 物理层02 - CAN总线的异步串行通讯

文章目录

一、前言二、如何解决波特率误差带来的通信错误?三、填充位

一、前言

广州虹科录制的CAN总线技术课程非常不错,建议同学们学习一下。B站的地址:/video/BV1gD4y1U7bJ?p=1

CAN总线使用异步串行通讯,相比同步串行通讯,CAN总线省去了一根用于同步的时钟线(CLK)。有优点,多半会带来一些缺点,缺点就是同步问题。

根据波特率做采样,波特率的误差会产生通信错误。为什么?CAN总线上的各个CAN节点的波特率来源于各个节点上的晶振(例如,STM32上的CAN控制器上的时钟频率就是从PCB上的晶振进行倍频后再分频得到)。晶振会有误差,外加上其他误差。说白了,各个节点的波特率都设置500K。但是,由于误差问题肯定不会完全等于500K。

二、如何解决波特率误差带来的通信错误?

CAN总线规定信号的“跳变沿时刻”进行同步,将误差累计限制在两个跳变沿之间。

接着问题又来了:当发送数据出现都为0或者1的时候,同样不跳变造成误差累计怎么办法呢?

三、填充位

采用填充位在连续5个相同位后插入一个相反位(CAN控制负责插入该填充位),产生跳变沿,用于同步。如下图所示:

还有疑问:为什么5个连续相同位之后才使用填充位呢?答:CAN总线在刚发明的时候,设计人员做了大量的测试来验证5个填充位比较合适。

总之,CAN总线为了解决异步串行通讯带来的缺点(波特率误差导致的通讯错误),增加了跳变沿时刻同步与填充位的功能。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。