当前位置: 首页 > news >正文

CAN学习笔记3:STM32 CAN控制器介绍

STM32 CAN控制器

1 概述

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

2 bxCAN 特性

  1. 波特率最高可达1M bps
  2. 支持时间触发通信(CAN的硬件内部定时器可以在TX/RX的帧起始位的采样点位置生成时间戳)
  3. 具有3级发送邮箱
  4. 具有3级深度的2个接收FIFO
  5. 可变的过滤器组(最多28个)

3 CAN 控制器模式

CAN的控制器模式有工作模式、测试模式和调试模式。

3.1 工作模式

CAN控制器的工作模式有三种:初始化模式、正常模式和睡眠模式。工作流程如下图:
在这里插入图片描述

3.2 测试模式

CAN控制器的测试模式有三种:静默模式、环回模式和环回静默模式。在初始化模式下进行配置。
在这里插入图片描述

4 CAN是如何工作的(CAN框图)

4.1 CAN通信框图简化版

在这里插入图片描述
在这里插入图片描述

4.2 CAN框图

在这里插入图片描述
① CAN内核
包含各种控制/状态/配置寄存器,可以配置模式、波特率等
②发送邮箱
用来缓存待发送的报文,最多可以缓存3个报文
③接收FIFO
缓存接收到的有效报文
④接收过滤器
筛选有效报文

4.3 接收过滤器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
屏蔽位寄存器中位值为1,表示与ID要必须匹配;位值为0,表示可不与ID匹配。
在使能过滤器情况下,总线上广播的报文ID与过滤器的配置都不匹配,CAN控制器会丢弃该报文,不会进入到接收FIFO中。
注意:标识符选择位IDE和帧类型RTR需要一致。不同过滤器组的工作模式可以设置为不同。

4.4 CAN控制器位时许

在这里插入图片描述

5 相关寄存器

http://www.lryc.cn/news/101388.html

相关文章:

  • 软工导论知识框架(二)结构化的需求分析
  • [SQL挖掘机] - 算术函数 - abs
  • vue拼接html点击事件不生效
  • 【Spring】Spring之依赖注入源码解析
  • 【微软知识】微软相关技术知识分享
  • 12.python设计模式【观察者模式】
  • 重生之我要学C++第五天
  • 复习之linux高级存储管理
  • HuggingGPT Solving AI Tasks with ChatGPT and its Friends in Hugging Face
  • java工程重写jar包中class类覆盖问题
  • Mybatis基于注解与XML开发
  • 数字化转型导师坚鹏:数字化时代扩大内需的8大具体建议
  • M1/M2 通过VM Fusion安装Win11 ARM,解决联网和文件传输
  • Linux中显示系统正在运行的进程的命令
  • vite中安装less
  • Aduino中eps环境搭建
  • python——案例二 求两个数的和
  • 一文了解 Android 车机如何处理中控的旋钮输入?
  • 小红书推广 方法总结
  • 通讯录的实现(超详细)——C语言(进阶)
  • 3D 渲染技巧-如何创建高质量写实渲染?
  • fastadmin采坑之获取当前登录admin用户的信息
  • 【Spring AOP + 自定义注解 + 动态数据源 实现主从库切换读写分离】—— 案例实战
  • 【LeetCode每日一题合集】2023.7.24-2023.7.30
  • 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(14)-Fiddler断点(breakpoints)实战,篡改或伪造数据
  • ELK + Fliebeat + Kafka日志系统
  • Scaling Instruction-Finetuned Language Models
  • rust 闭包函数
  • MySQL 实现分库和分表的备份 2023.7.29
  • 20230728----重返学习-跨域-模块化-webpack初步