can总线程序讲解_STM32实例CAN通信STM32F1 CAN 介绍

本文介绍了STM32F1系列芯片的bxCAN控制器,支持CAN 2.0A和2.0B协议,最高波特率可达1Mbps。bxCAN具备3个发送邮箱和2个接收FIFO,可配置为时间触发通信。STM32F103ZET6拥有1个CAN控制器,而STM32F105/107互联网型有2个。文章详细解析了CAN控制器的内部结构,包括控制寄存器、位时序、发送邮箱、接收FIFO和验收筛选器,以及四种工作模式:正常模式、静默模式、回环模式和静默回环模式。
摘要由CSDN通过智能技术生成

    STM32F1 芯片自带 bxCAN 控制器 (Basic Extended CAN),即基本扩展 CAN,可与 CAN 网络进行交互,它支持 2.0A 和 B 版本的 CAN 协议。旨在以最少的CPU 负载高效管理大量的传入消息,并可按需要的优先级实现消息发送。在攸关安全性的应用中,CAN 控制器提供所有必要的硬件功能来支持 CAN 时间触发通信方案。

    STM32F1 的 bxCAN 的主要特性有:

·支持 CAN 协议 2.0A 和 2.0B 主动模式

·波特率最高达 1Mbps

·支持时间触发通信

·具有 3 个发送邮箱

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

·可变的过滤器组( 互联网产品中有 28 个, CAN1 和 CAN2 共享,其他STM32F103xx 有 14 个)

    我们使用的 STM32F103ZET6自带 1 个 CAN 控制器,而 STM32F105/STM32F107互联网型含有 2 个 CAN 控制器,互联网型只是比 STM32F103 多一个而已。下面我们就来看下互联网型它内部结构,如下图所示:

02cb10a00b486596d4a63b5e5d2bf7c3.png

    从CAN 内部结构图可以看出,CAN1 是主设备,CAN2 是从设备。框图中的“存储访问控制器”是由 CAN1 控制的,CAN2 无法直接访问存储区域,所以如果使用 CAN2 的时候必须先使能CAN1 外设的时钟,我们使用的 STM32F103ZET6只含有 CAN1。框图中主要包含 CAN 控制内核、发送邮箱、接收 FIFO 以及验收筛选器,下面我们就依次进行简单介绍。

(1)标号 1:CAN 控制内核

    CAN 控制内核包含了各种控制/状态寄存器,我们主要讲解其中的主控制寄存器 CAN_MCR 及位时序寄存器 CAN_BTR。

①控制寄存器 CAN_MCR主控制寄存器 CAN_MCR 负责管理 CAN 的工作模式,寄存器如下:

b4545415a1e6e4754e3489f43231e3d4.png

②位时序寄存器(CAN_BTR)

    CAN 外设中的位时序寄存器 CAN_BTR 用于配置测试模式、波特率以及各种位内的段参数。该寄存器如下:

edbb05424c2857f33be62892fa8356af.png

1.测试模式

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值