CAN 二: STM32 CAN控制器

1、CAN控制器介绍

(1)STM32 CAN控制器(bxCAN),支持CAN 2.0A和CAN 2.0B Active版本协议。

  • bxCAN存在于F1、F4、F7系列的STM32。
  • H7系列称作FDCAN。

(2)CAN 2.0A 只能处理标准数据帧且扩展帧的内容会识别错别,而CAN 2.0B Active可以处理标准数据帧和扩展数据帧。CAN  2.0B Passive只能处理标准数据帧且扩展帧的内容会忽略。

(3)bxCAN主要特点:

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

2、CAN控制器模式

(1)CAN控制器的工作模式有三种:初始化模式、正式模式和睡眠模式。

(2)CAN复位后进入睡眠模式,可以降低功耗;进入初始化模式,对寄存进行配置;进入正常模式,CAN总线同步,开发接收和发送数据。

(3)CAN控制器的测试模式有三种:静默模式、环回模式和环回静默模式。这些模式在初始化模式下进行配置。

(4)各种模式示意图如下:

  • 正常模式:可向总线发送或接收数据;总线的正常节点。
  • 静默模式:只向总线发送1不能发送0(发送接收的应答信号),可从总线接收数据;可统计总线的流量。
  • 环回模式:发送的数据直接到接收,也就是自发自收(总线可监测发送的数据),不能从总线接收数据;用于自检。
  • 环回静默模式:发送的数据直接到输入(总线不可监测法发送的数据),不能从总线接收数据;用于自检,且不影响总线。

(5)CAN还有调试模式。

3、CAN控制器框图

3.1、框图简介

(1)CAN内核包含各种控制/状态/配置寄存器,可以配置模式、波特率等。

(2)发送邮箱用来缓存待发送的报文,最多可以缓存3个报文。

(3)接收FIFO:缓存接收到的有效报文。

(4)接收过滤器:筛选有效报文。

3.2、发送处理流程

  • 发送优先级由邮箱中报文的标识符决定。标识符数值越低,优先级越高。如果标识符值相同,邮箱编号小的先被发送。
  • ID:发送标识符;DLC:发送的长度;DATA:发送的数据。

3.3、接收处理流程

  • 有效报文指的是(数据帧直到EOF段的最后一位都没有错误),且通过过滤器组对标识符过滤。
  • FIFO锁定功能决定丢失的是最新收到的报文还是最初存入FIFO的报文。

3.4、接收过滤器

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

(2)每个过滤器组都有两个32位寄存器CAN_FxR1和CAN_FxR2。

  • 寄存器的位宽可配置。位宽可设置32位或16位,寄存器存储的内容就有所区别。
    • 过滤器组Reg32位16位(寄存器由两部分组成)
      CAN_FxR1

      STDID[10:0]、EXTID[17:0]、

      IDE、RTR

      STDID[10:0]、EXTID[17:15]、

      IDE、RTR

      CAN_FxR2

      STDID[10:0]、EXTID[17:0]、

      IDE、RTR

      STDID[10:0]、EXTID[17:15]、

      IDE、RTR=

  • 寄存器的选择模式可配置。根据过滤器组的选择模式不同,寄存器的作用不尽相同。
    • 选择模式可设置屏蔽位模式标识符列表模式,寄存器内容的功能就有所区别。
    • 屏蔽位模式,可以选择出一组符合条件的报文。寄存器内容功能相当于是否符合条件,相当于关键词的搜索。(过滤器组Reg中的bit值:1必须匹配,0不用关心)
    • 标识符列表模式,可以选择出几个特定ID的报文。寄存器内容功能就是标识符本身,相当于白名单。

(3)举例如下:

  • 通常16位用于筛选标准数据帧。
  • 通常32位用于筛选扩展数据帧。

(5)过滤器寄存器

  • 屏蔽位寄存器中位值为1,标识与ID要必须匹配;位值为0,标识可不与ID匹配。
  • 在使能过滤器情况下,总线上广播的报文ID与过滤器的配置不匹配,CAN控制器会丢弃该报文,不会进入到接收FIFO中。
  • 注意:标识符选择位IDE(标准帧/扩展帧)和帧类型RTR(数据帧/遥控帧)需要一致。不同过滤器组的工作模式可以设置为不同。

4、CAN控制器位时序

(1)STM32F103中CAN外设时钟为36M,时钟周期便是 1/36000000秒。

(2)STM32F407中CAN外设时钟为42M,时钟周期便是 1/42000000秒。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/231052.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

unity中:搭建在线AR应用

使用Imagine WebAR - Image Tracker插件部署WebGL应用 在使用Imagine WebAR - Image Tracker插件进行WebGL应用开发时,有两个关键知识点需要掌握: 1. 部署到支持HTTPS的服务器 由于WebGL应用需要访问用户的摄像头,因此必须在支持HTTPS的服…

挡墙边界提取

基于点云对挡墙边界进行提取 算法思路 将点转到极坐标系下,并得到极坐标系下的索引值,并输出距离信息。 double getCellIndexFromPoints(double x, double y, int& chI) {// 计算点到原点的欧几里得距离double distance sqrt(x * x y * y);// 将…

s26.Rocky Linux、CentOS和Ubuntu系统初始化脚本v7版

Rocky Linux、CentOS和Ubuntu系统初始化脚本 Shell脚本源码地址: Gitee:https://gitee.com/raymond9/shell Github:https://github.com/raymond999999/shell 可以去上面的Gitee或Github仓库代码拉取脚本。 版本功能v7版更新内容1.由于v…

请将图转换成以某个结点为根结点的树

题目要求:请将图转换为以某个结点为根结点的数。然后,输出所有从根结点到叶子结点的路径。 例如: 示例输入, 6 0 1 1 2 1 4 3 4 4 5期望输出, 1 0 1 2 1 4 3 1 4 5 解题思路1:创建一个全局布尔型数组…

煤老板自述三十年

《煤老板自述三十年》 这本书是一位煤老板站在他的角度与高度为读者所描写的他们眼中的社会与江湖,大胆、真实、开拓眼界。这本书讲述了很多真相,它无所不包,充满了各种江湖气息。煤老板们身为财富领军人物,经历过我们大部分人难…

基于Java技术的选课管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Vue3.0在软件开发中的能力展示

经过技术的调整与迁移之后,JNPF开发平台已经上线了Vue3.0版本。 JNPF是从 2014 开始研发低代码前端渲染,2018 年开始研发后端低代码数据模型,发布了JNPF开发平台。 基于SpringBootVue3的全栈开发平台,微服务、前后端分离架构&…

LeetCode-数组-重叠、合并、覆盖问题-中等难度

435. 无重叠区间 我认为区间类的题型,大多数考验的是思维能力,以及编码能力,该类题型本身并无什么算法可言,主要是思维逻辑,比如本题实际上你只需要能够总结出重叠与不重叠的含义,再加上一点编码技巧&#…

学生备考使用台灯到底好不好?公认好用的护眼台灯推荐

在现代生活中,许多学生的学习压力越来越大,面临的近视几率也越来越大,特别是初中生,眼睛发育还未完全,使用不恰当的灯光也会对眼睛造成损害,特别是护眼台灯。虽然护眼台灯在功能上能够提供充足、柔和的光线…

【投稿优惠|检索稳定】2024年信息系统、工程与数字化经济国际会议(ICISEDE 2024)

2024年信息系统、工程与数字化经济国际会议(ICISEDE 2024) 2024 International Conference on Information Systems and Engineering and the Digital Economy(ICISEDE 2024) [会议简介] 2024 年信息系统、工程与数字化经济国际会议(ICISEDE 2024)将于 2024 年 1 月 20 日在厦门…

Docker 部署 2FAuth 服务

拉取最新版本的 2FAuth 镜像: $ sudo docker pull 2fauth/2fauth:latest在本地预先创建好 2fauth 目录, 用于映射 2FAuth 容器内的 /2fauth 目录。 使用以下命令, 在 前台 运行 2FAuth 容器: $ sudo docker run -it --rm --name 2fauth -p 10085:8000/tcp -v /ho…

【漏洞复现】FLIR AX8红外线热成像仪命令执行漏洞

漏洞描述 eledyne FLIR 设计、开发、制造以及强大的传感和意识技术。自透射热图像、可见光图像、可见频率分析、来自测量和诊断的先进威胁测量系统以及日常生活的创新解决方案。 Teledyne FLIR 提供多种产品用于政府、国防、工业和商业市场。我们的产品,紧急救援人员,军事人…

SAP UI5 walkthrough step9 Component Configuration

在之前的章节中,我们已经介绍完了MVC的架构和实现,现在我们来讲一下,SAPUI5的结构 这一步,我们将所有的UI资产从index.html里面独立封装在一个组件里面 这样组件就变得独立,可复用了。这样,无所什么时候我…

基于物联网的智能仓管理系统方案

基于物联网的智能仓管理系统方案 一、项目背景 随着企业业务的快速发展,传统的人工仓库管理方式已经无法满足现代企业的需求。仓库运营效率低下、货物出入库错误、库存不准确等问题不断涌现。因此,我们提出一个基于物联网技术的智能仓管理系统方案&…

3DMAX UV贴图修改插件安装卸载方法

3DMAX UV贴图修改插件安装卸载方法 3dMax贴图修改插件PolyUnwrapper是为纹理艺术家设计的一整套专业工具,尤其适用于建筑和游戏行业。 它包含许多功能,将大大帮助您改进UV展开的工作流程。 【主要功能特点】 -多重缝合。一次缝合多个壳 -自定义打包算…

基于ssm志愿者招募网站源码和论文

网络的广泛应用给生活带来了十分的便利。所以把志愿者招募管理与现在网络相结合,利用java技术建设志愿者招募网站,实现志愿者招募的信息化。对于进一步提高志愿者招募管理发展,丰富志愿者招募管理经验能起到不少的促进作用。 志愿者招募网站…

Premiere Pro 2024 新功能有哪些?视频剪辑软件PR2024更新内容及问题修复

PR软件“基于文本的编辑”中的填充词检测与批量删除功能 “基于文本的编辑”可让您检测“呃”和“嗯”填充词并批量删除它们,从而使您的转录文本更加准确。就像处理停顿一样,您可以单击填充词并将其从序列转录文本中删除。填充词与语言无关,…

高通CRM的v4l2驱动模型

概述下crm中v4l2框架的初始化创建流程: 对于CRM主设备的v4l2框架创建过程: 1、分配和初始化v4l2 device对象 2、分配和初始化media device对象,然后将v4l2 device中mdev绑定到media device上 3、分配和初始化video device对象&#xff0c…

基于OpenCV的人脸识别系统案例

基于OpenCV的人脸识别系统案例 人脸识别简介代码实现案例应用情况 下面将介绍如何使用Python和OpenCV库构建一个简单但强大的人脸识别系统。人脸识别是计算机视觉领域的一个重要应用,具有广泛的实际用途,从安全门禁到娱乐应用。 人脸识别简介 人脸识别是…

在微信小程序中如何改变默认打开的页面

在微信小程序中,在我们编写页面的时候,可能会在重新渲染的时候导致页面跳转到默认打开的页面上,为了提升用户的一个体验,我们可以设置一些内容来修改小程序默认打开的页面,提升开发者的开发体验。 当我们打开一个微信…