CAN_总线_STM32 (1)

 

 

目录

1:STM32_CAN

2:bx_CAN控制器框图

3:STM32_CAN发送,接受流程

4:STM32CAN通信位时序


 


1:STM32_CAN

eg:STM32F407ZGT6

前面只是对CAN通信做一个基本的描述,在STM32上,自带了基本扩展CAN外设,称bxCAN,

  • CAN1:主bxCAN,用于管理bxCAN与512字节SRAM存储器之间的通信。
  • CAN2:从bxCAN,无法直接访问SRAM存储器,但两个bxCAN单元共享512字节SRAM存储器
  • 波特率最高达1Mbps
  • 支持时间触发通信
  • 具有3个发送邮箱
  • 具有3级深度的2个接受FIFO
  • 可变的筛选器组(也称过滤器组,最多28个)

bxCAN有三种主要的工作模式:初始化、正常、睡眠,还有测试模式和调试模式,具体看数据手册

2:bx_CAN控制器框图

CAN_总线_STM32 (1)_第1张图片

筛选器组,可以设置你需要的数据,不需要的就不接受,就是为降低CPU处理CAN通信的开销

STM32 CAN控制器每个筛选器组由2个32位寄存器组成,根据位宽不同,每个筛选器组可提供1个32位的筛选器或2个16位的筛选器

筛选器可配置为:屏蔽位模式、标识符列表模式 

通过CAN_FM1R(筛选器模式寄存器)和CAN_FS1R(筛选器尺度寄存器)可配置筛选器的位宽和模式

  • 为了过滤出一组标识符,应该设置筛选器组工作在屏蔽位模式
  • 为了过滤出一个标识符,应该设置过滤器工作在标识符列表模式
  • 应用程序不用的筛选器组,应该保持在禁用状态(通过CAN_FA1R设置)。
  • 通过CAN_FFA1R的设置,可以将筛选器组关联到FIFO0/FIFO1
  • 筛选器组中的每个筛选器,都被编号为(即:筛选器编号)从0开始,到某个最大数值-取决于筛选器组的模式和位宽的设置。

3:STM32_CAN发送,接受流程

CAN_总线_STM32 (1)_第2张图片

CAN_总线_STM32 (1)_第3张图片 报文FIFO具有锁定功能(由CAN_MCR,RFLM位控制),锁定后,新数据将丢失,不锁定则新数据将替代老数据

4:STM32CAN通信位时序

CAN_总线_STM32 (1)_第4张图片

 

你可能感兴趣的:(STM32,通信)