CAN(二)

  • STM32 的 CAN 外设简介

STM32 的芯片中具有 bxCAN 控制器 (Basic Extended CAN), 它支持 CAN 协议 2.0A 和2.0B 标准。
该 CAN 控制器支持最高的通讯速率为 1Mb/s;可以自动地接收和发送 CAN 报文,支持使用标准 ID 和扩展 ID 的报文;外设中具有 3 个发送邮箱,发送报文的优先级可以使用软件控制,还可以记录发送的时间;具有 2 个 3 级深度的接收 FIFO,可使用过滤功能只接收或不接收某些 ID 号的报文;可配置成自动重发;不支持使用 DMA 进行数据收发。

  • 特点

● 支持CAN协议2.0A和2.0B主动模式
● 波特率最高可达1兆位/秒
● 支持时间触发通信功能
发送
● 3个发送邮箱
● 发送报文的优先级特性可软件配置
● 记录发送SOF时刻的时间戳
接收
● 3级深度的2个接收FIFO
● 可变的过滤器组:
─ 在互联型产品中, CAN1和CAN2分享28个过滤器组
─ 其它STM32F103xx系列产品中有14个过滤器组
● 标识符列表
● FIFO溢出处理方式可配置
● 记录接收SOF时刻的时间戳
时间触发通信模式
● 禁止自动重传模式
● 16位*运行定时器
● 可在最后2个数据字节发送时间戳
管理
● 中断可屏蔽
● 邮箱占用单独1块地址空间,便于提高软件效率
双CAN
● CAN1:是主bxCAN,它负责管理在从bxCAN和512字节的SRAM存储器之间的通信
● CAN2:是从bxCAN,它不能直接访问SRAM存储器
● 这2个bxCAN模块共享512字节的SRAM存储器

  • STM32CAN框图

CAN(二)

  • 工作模式

CAN(二)

  • 测试模式

CAN(二)

CAN(二)

CAN(二)

  • 发送状态

CAN(二)

  • 接收状态

CAN(二)

  • 过滤器模式设置

CAN(二)

  • STM32中CAN的位时序

CAN(二)

  • 附录

   测试代码 基于正点原子战舰:

https://github.com/kks1234/STM32/tree/master/23.CAN%E9%80%9A%E4%BF%A1%E5%AE%9E%E9%AA%8C