打印
[技术相关]

SWM系列之CAN功能应用笔记

[复制链接]
791|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、 CAN简介
控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。
CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。
二、 CAN硬件接口
CAN总线为差分传输,可以很好的抵制共模干扰,如图,CAN-H和CAN-L的波形中间穿插了一个共模干扰,但是经过差分后的信号,很好的过滤掉了这个共模干扰。
需要注意的是,CAN总线有5V和3.3V之分,两种电压类型的CAN总线并不兼容,实际使用的时候注意区分。
三、 CAN数据包解析
如图,一个CAN总线数据包,由仲裁段(ID)、控制段、数据段、CRC等部分组成 。
标准帧、扩展帧主要是ID不一样,其它都一样,每个数据包最大可包含64bit(8byte)的数据。
四、 CAN发送逻辑
CAN RX接收CAN总线上的波形数据,故:CAN TX发送的数据,也会被自己RX接收,因此CAN可以监控自己数据是否发送成功。
CAN发送数据的时候,其他CAN设备接收了数据之后,如果CRC校验通过,会在ACK SLOT时间发送“显性”位填充,因此总线上不能只有一个节点,因为无接收节点在ACK SLOT时间内 发送“显性”位填充,而始终保持隐性,发送方会认为数据发送失败。
五、 CAN软件应用
i. 采样点设置
受总线上容性器件影响,CAN总线波形上升沿下降沿会变得平滑,采样点设置尤其重要,过前或者过后采集到的波形可能压差不符合压差标准而出现误采样数据出错的现象,一般推荐采样点82%左右
程序初始化的时候,根据实际需要的波特率以及采样点来确定参数的大小,计算的时候注意CAN模块寄存器BRP位宽可以满足设置的数据大小,防止寄存器溢出。
ii. 使用逻辑
用户可以设置CAN总线的自动重发机制,如果长时间数据都没有发送成功,建议取消发送。
推荐开启Error中断,当总线发生错误的时候,可以提前处理,也可以定期查询SR,出现Busoff之后做相应处理。
当出现了Error之后,需要排查出现Error的原因,解决了问题,才会使通信变得更稳定。

使用特权

评论回复

相关帖子

沙发
tpgf| | 2023-7-3 17:00 | 只看该作者
很多厂家的can模块都不太容易调试 这是为什么呢

使用特权

评论回复
板凳
chenqianqian| | 2023-7-3 20:38 | 只看该作者
汽车上的主流通信方式,现在是不是已经升级到CANFD了

使用特权

评论回复
地板
nawu| | 2023-7-4 07:43 | 只看该作者
can的crc校验是底层硬件解决的 并不呈现给我们吧

使用特权

评论回复
5
aoyi| | 2023-7-4 08:00 | 只看该作者
nawu 发表于 2023-7-4 07:43
can的crc校验是底层硬件解决的 并不呈现给我们吧

这个不需要我们手动添加 应该是底层自行验证了

使用特权

评论回复
6
zljiu| | 2023-7-4 08:28 | 只看该作者
我们配置CAN总线的自动重发机制的时候,最多可以重发多少次嗯

使用特权

评论回复
7
gwsan| | 2023-7-4 09:21 | 只看该作者
can总线上的容性器件的总的电容大小有限制吗

使用特权

评论回复
8
tfqi| | 2023-7-4 09:48 | 只看该作者
汽车CAN总线设计规范对于CAN节点的输入电容有着严格的规定,每个节点不允许添加过多容性器件,否则节点组合到一起后,会导致总线波形畸变,通讯错误增加

使用特权

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

本版积分规则

认证:广东华芯微特集成电路有限公司
简介:华芯微特是一家由留美归国资深技术团队创立的中国芯片设计公司,是国家高新技术企业。2014年进军MCU产业,专注于32位MCU研发设计,并针对细分市场提供参考解决方案。

44

主题

337

帖子

6

粉丝