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控制器介绍_第1张图片

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

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

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

3.CAN控制器的测试模式

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

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

CAN控制器介绍_第2张图片

总线的正常节点

CAN控制器介绍_第3张图片

可总计总线的流量

CAN控制器介绍_第4张图片

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

CAN控制器介绍_第5张图片

自检,不影响总线。

4.CAN控制器的框图

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

1)CAN内核

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

2)发送邮箱

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

3)接收FIFO

缓存接收到的有效报文

4)接收过滤器

筛选有效报文

CAN内核

CAN控制器介绍_第6张图片

发送邮箱

CAN控制器介绍_第7张图片

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

接收FIFO

CAN控制器介绍_第8张图片

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

接收过滤器

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

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

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

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

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

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

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

CAN控制器介绍_第9张图片

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个符合条件的报文

CAN控制器介绍_第10张图片

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

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

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

5.CAN控制器位时序

CAN控制器介绍_第11张图片

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

同步段SYNC_SEG

时间段1BSK ,=PTS + PBS1。

时间段2BS2

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

你可能感兴趣的:(CAN总线,网络,can协议)