CAN控制器介绍

1.CAN控制器基础知识

STM32 CAN控制器(bxCAN),支持CAN2.0A和CAN 2.0B Active版本协议。CAN2.0A只能处理标准数据帧且扩展帧的内容会识别错误,而CAN2.0B Active可以处理标准数据帧和扩展数据帧。CAN2.0B Passive只能处理标准数据帧且扩展帧的内容会忽略。

bxCAN主要特点:

波特率最高可达1Mbps

支持时间触发通信(CAN的硬件内部定时器可以在TX\RX的帧起始位的采样点位置生成时间戳。)

具有3级发送邮箱

具有3级深度的2个接收FIFO

可变的过滤器组(最多28个)

2.CAN控制器工作模式

CAN控制器工作模式分为三种:初始化模式、正常模式、睡眠模式。

睡眠模式:复位后进入睡眠模式,can总线处于睡眠状态,可以降低功耗。

正常模式:CAN总线同步后,开始接受和发送数据。

初始化模式:对寄存器配置时,需进入初始化模式,进行软件初始化

3.CAN控制器的测试模式

CAN控制器的测试模式分为三种:静默模式、环回模式、环回静默模式。

这三种测试模式的配置,都是在初始化工作模式下进行配置的。

总线的正常节点

可总计总线的流量

可用来自检,自发自收,对总线有影响

自检,不影响总线。

4.CAN控制器的框图

F1型.注意:F1中互联型产品才有2个CAN控制器,F4/F7产品都有2个CAN控制器

1)CAN内核

包含各种控制/状态/配置寄存器,可以配置模式、波特率等

2)发送邮箱

用来缓存待发送的报文,最多可以缓存3个报文

3)接收FIFO

缓存接收到的有效报文

4)接收过滤器

筛选有效报文

CAN内核

发送邮箱

发送优先级由邮箱中报文的标识符决定。标识符数值越低优先级越高。如果标识值相同,邮箱小的先被发送。

接收FIFO

有效报文指的是(数据帧直到EOF段的最后一位都没有错误),并且通过过滤器组对标识符过滤。

接收过滤器

当总线上报文数据量很大时,总线上的设备会频繁获取报文,占用CPU。过滤器的存在,选择性接收有效报文,减轻系统负担。

每个过滤器组都有两个32位寄存器CAN_FQR1和CAN_FQR2。根据过滤器组的工作模式不同,寄存器的作用不尽相同。

位宽可设置32位或16位,寄存器存储的内容就有所区别。

选择模式可设置屏蔽位模式或标识符列表模式,寄存器内容的功能就有所区别。

屏蔽位模式,可以选择出一组符合条件的报文。寄存器内容功能相当于是否符合条件。

标识符列表模式,可以选择出几个特定ID的报文。寄存器内容功能就是标识符本身。

REG中bit值代表的是匹配与否:1必须匹配0不用关心。

1个32位过滤器——标识符屏蔽

CAN_FxR1作为标识符寄存器

CAN_FxR2作为屏蔽位寄存器

过滤出:1组符合条件的报文

2个32位过滤器——标识符列表

CAN_FxR1作为标识符寄存器

CAN_FxR2作为标识符寄存器

过滤出:2个符合条件的报文

2个16位过滤器——标识符屏蔽

CAN_FxR1作为标识符和屏蔽位寄存器

CAN_FxR2作为标识符和屏蔽位寄存器

过滤出:2组符合条件的报文

4个16位过滤器——标识符列表

CAN_FxR1作为2个标识符寄存器

CAN_FxR2作为2个标识符寄存器

过滤出:4个符合条件的报文

屏蔽位寄存器中位值为1,表示与ID要必须匹配;位值为0,表示可不与ID匹配。

在使能过滤器情况下,总线上广播的报文ID与过滤器的配置都不匹配,CAN控制器会丢弃该报文,不会进入到接收FIFO中。

注意:标识符选择位IDE和帧类型RTR需要一致。不同过滤器组的工作模式可以设置为不同。

5.CAN控制器位时序

STM32的CAN外设位时序分为三段:

同步段SYNC_SEG

时间段1BSK ,=PTS + PBS1。

时间段2BS2

通信双方波特率需要保持一致,才能通信成功。

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一道光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值