bxCAN 工作模式

news2024/9/24 13:20:27

bxCAN 工作模式

bxCAN 有三种主要的工作模式:初始化、正常和睡眠。硬件复位后,bxCAN 进入睡眠模式以降低功耗,同时 CANTX 上的内部上拉电阻激活。软件将主控制寄存器(CAN_MCR---CAN master control register)的初始化请求位 (INRQ---Initialization request) 或睡眠模式请求位(SLEEP---Sleep mode request)置 1,以请求 bxCAN 进入初始化或睡眠模式。
一旦进入该模式,bxCAN 即将主状态寄存器(CAN_MSR---CAN master status register)的初始化确认位  (INAK---Initialization acknowledge) 或睡眠确认位(SLAK---Sleep acknowledge)置 1,以确认该模式,同时禁止内部上拉电阻。
如果主状态寄存器(CAN_MSR---CAN master status register)的初始化确认位(INAK---Initialization acknowledge) 和睡眠确认位(SLAK---Sleep acknowledge)均未置 1,则 bxCAN 将处于正常模式。进入正常模式之前,bxCAN 必须始终在 CAN 总线上实现同步。为了进行同步,bxCAN 将等待 CAN 总线空闲(即,已从CANRX上监测到 11 个连续的隐性位)。


初始化模式

当硬件处于初始化模式时,可以进行软件初始化。为进入该模式,采用软件将主控制寄存器(CAN_MCR---CAN master control register)的初始化请求位 (INRQ---Initialization request)置 1,并等待硬件将主状态寄存器(CAN_MSR---CAN master status register)的初始化确认位(INAK---Initialization acknowledge)置 1 来确认请求。
如想退出初始化模式,采用软件将主控制寄存器(CAN_MCR---CAN master control register)的初始化请求位 (INRQ---Initialization request)清零。一旦硬件将主状态寄存器(CAN_MSR---CAN master status register)的初始化确认位(INAK---Initialization acknowledge)清零,bxCAN 即退出初始化模式。
在初始化模式下,所有从 CAN 总线传入和传出的消息都将停止,并且 CAN 总线输出 CANTX 的状态为隐性(高)。
进入初始化模式不会更改任何配置寄存器。
为初始化 CAN 控制器,软件必须设置位时序寄存器 (CAN_BTR---CAN bit timing register) 和 主控制寄存器(CAN_MCR---CAN master control register)。
为初始化与 CAN 筛选器组相关的寄存器(模式、尺度、FIFO 分配、激活和筛选器值),软件必须将筛选器主寄存器(CAN_FMR---CAN filter master register)的筛选器初始化模式位 (FINIT---Filter init mode) 置 1。筛选器的初始化也可以在初始化模式之外进行。
注意: FINIT=1 时,CAN 接收停用。

筛选器值激活与否,也可通过设置筛选器激活寄存器(CAN_FA1R---CAN filter activation register)的相关筛选器激活位(FACTx---Filter active)来修改。
如果某个筛选器组未使用,建议将其保持未激活状态(将相应 FACT 位保持清零)。


正常模式

一旦初始化完成,软件必须向硬件请求进入正常模式,这样才能在 CAN 总线上进行同步,并开始接收和发送。
进入正常模式的请求可通过将主控制寄存器(CAN_MCR---CAN master control register)的初始化请求位 (INRQ---Initialization request)清零来发出。bxCAN 进入正常模式,并与 CAN 总线上的数据传输实现同步后,即可参与总线活动。执行这一步时,需要等待出现一个由 11 个连续隐性位(总线空闲状态)组成的序列。硬件通过将主状态寄存器(CAN_MSR---CAN master status register)的初始化确认位(INAK---Initialization acknowledge)清零,来确认切换到正常模式。
筛选器值的初始化与初始化模式无关,但必须要在筛选器处于未激活状态(筛选器激活寄存器(CAN_FA1R---CAN filter activation register)的相关筛选器激活位(FACTx---Filter active)清零)时进行。筛选器尺度和模式配置必须在进入正常模式之前完成。


睡眠模式(低功耗)

为降低能耗功耗,bxCAN 具有低功耗模式,称为睡眠模式。软件通过将主控制寄存器(CAN_MCR---CAN master control register)的睡眠模式请求位(SLEEP---Sleep mode request)置 1 而发出请求后,即可进入该模式。该模式下,bxCAN 时钟停止,但软件仍可访问 bxCAN 邮箱。
在 bxCAN 处于睡眠模式时,如果软件通过将主控制寄存器(CAN_MCR---CAN master control register)的初始化请求位 (INRQ---Initialization request) 置 1 来请求进入初始化模式,则必须同时将主控制寄存器(CAN_MCR---CAN master control register)的睡眠模式请求位(SLEEP---Sleep mode request)清零。
软件将主控制寄存器(CAN_MCR---CAN master control register)的睡眠模式请求位(SLEEP---Sleep mode request)清零或检测到 CAN 总线活动时,bxCAN 即被唤醒(退出睡眠模式)。
检测到 CAN 总线活动后,如果主控制寄存器(CAN_MCR---CAN master control register)的自动唤醒模式位(AWUM---Automatic wakeup mode)置 1,硬件将通过清零主控制寄存器(CAN_MCR---CAN master control register)的睡眠模式请求位(SLEEP---Sleep mode request)来自动执行唤醒序列。如果主控制寄存器(CAN_MCR---CAN master control register)的自动唤醒模式位(AWUM---Automatic wakeup mode)清零,在发生唤醒中断时,软件必须将主控制寄存器(CAN_MCR---CAN master control register)的睡眠模式请求位(SLEEP---Sleep mode request)清零才能退出睡眠模式。
注意: 如果使能唤醒中断(中断使能寄存器(CAN_IER---CAN interrupt enable register) 唤醒中断使能位(WKUIE---Wakeup interrupt enable)置 1),即使 bxCAN 自动执行唤醒序列,一旦检测到 CAN 总线活动,也会发生唤醒中断。
主控制寄存器(CAN_MCR---CAN master control register)的睡眠模式请求位(SLEEP---Sleep mode request)清零后,一旦 bxCAN 与 CAN 总线同步,即会退出睡眠模式,请参见图 225:bxCAN工作模式。一旦硬件将主状态寄存器(CAN_MSR---CAN master status register)的睡眠确认位(SLAK---Sleep acknowledge)清零,即会退出睡眠模式。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024-01-22(MongoDB)

1.Mongodb使用的业务场景: 传统的关系型数据库/mysql在“三高”需求以及应对web2.0的网站需求面前,有点力不从心,什么是“三高”需求: a. 对数据库高并发的读写需求 b. 对海量数据的高效率存储和访问需求 c. 对数据库的高可扩…

二、arcgis 点shp数据处理

在工作中,很多时候客户会提供点坐标,那么要想把点坐标生成shp文件,有两种方法(坐标系CGCS2000): 1.当只有个位数的点坐标时,可以直接在arcgisMap中添加,具体步骤如下: …

表达式计算

四则运算表达式可以用表达式树表达,如下图后序遍历 现给你一个字符串,代表一个后序遍历形式的四则运算表达式,请计算出表达式的结果:(只输出整数部分) 注:除法只保留整数部分;5/4 1 输入: 一个…

华为云磁盘性能指标(参考)

MD[华为云磁盘性能指标(参考)] 云硬盘(Elastic Volume Service, EVS) 根据性能,磁盘可分为极速型SSD V2、极速型SSD、通用型SSD V2、超高IO、通用型SSD、高IO、普通IO。 性能指标(参考),测速说明:操作系统-windows …

6 时间序列(不同位置的装置如何建模): GRU+Embedding

很多算法比赛经常会遇到不同的物体产生同含义的时间序列信息,比如不同位置的时间序列信息,风力发电、充电桩用电。经常会遇到该如此场景,对所有数据做统一处理喂给模型,模型很难学到区分信息,因此设计如果对不同位置的…

CHS_02.2.2.2+调度的目标 调度算法的评价指标

CHS_02.2.2.2调度的目标 调度算法的评价指标 知识总览CPU利用率系统吞吐量周转时间等待时间响应时间 知识回顾 在这个小节中 我们会学习一系列用于评价一个调度算法好坏的一些评价指标 知识总览 包括cpu利用率 系统吞吐量 周转时间 等待时间和响应时间 那在学习的过程中 要注意…

Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南

SQL注入—sqli-labs靶场 零、前言一、环境搭建①、VirtualBox②、Kali Linux③、Docker 二、闯关开始1、Less-1——union2、Less-2—数字型—union3、Less-3—)—union4、Less-4—")—union5、Less-5——布尔盲注6、Less-6—"—布尔盲注7、Less-7—))7.1—布尔盲注7.…

Redis 面试题 | 05.精选Redis高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

小白水平理解面试经典题目LeetCode 594 最大和谐字符串

594 最大和谐字符串 这道题属于字符串类型题目,解决的办法还是有很多的,暴力算法,二分法,双指针等等。 题目描述 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 现在,给你一个整数数组 nums …

线性代数的学习和整理23:用EXCEL和python 计算向量/矩阵的:内积/点积,外积/叉积

目录 1 乘法 1.1 标量乘法(中小学乘法) 1.1.1 乘法的定义 1.1.2 乘法符合的规律 1.2 向量乘法 1.2.1 向量:有方向和大小的对象 1.2.2 向量的标量乘法 1.2.3 常见的向量乘法及结果 1.2.4 向量的其他乘法及结果 1.2.5 向量的模长(长度&#xff0…

SCCB接口

文章目录 概述引脚传输时序起始/结束信号三线模式两线模式 传输周期3阶段写传输周期2阶段写传输周期2阶段读传输周期阶段一 ID Address阶段二 子地址/读数据阶段三 写数据 SCCB与IIC区别未完待续(还有代码)... 概述 SCCB(Serial Camera Control Bus&…

【江科大】STM32:定时器中断

文章目录 TIM(Timer)定时器根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型基本定时器通用定数器 高级定时器 时钟(时钟电路)的作用是什么:设置定时器触发中断普通方法:预分频器时序…

项目工程下载与XML配置文件下载:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(十)

XPCIE1032H功能简介 XPCIE1032H是一款基于PCI Express的EtherCAT总线运动控制卡,可选6-64轴运动控制,支持多路高速数字输入输出,可轻松实现多轴同步控制和高速数据传输。 XPCIE1032H集成了强大的运动控制功能,结合MotionRT7运动…

如何在Linux上部署Nexus私服

如何在Linux上部署Nexus私服 Nexus 是一个强大的仓库管理解决方案,由Sonatype公司开发。它主要用于软件开发中各种依赖包和构件的存储、管理和分发。 1、为什么要部署nexus? 统一管理依赖:在软件开发过程中,项目通常会依赖大量的…

【数据结构与算法】3.顺序表

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点&…

Unity 建造者模式(实例详解)

文章目录 说明实例1:构建游戏角色实例2:构建游戏场景实例3:构建UI界面 说明 在Unity中,建造者模式(Builder Pattern)是一种创建型设计模式,它通过分离对象构建过程的复杂性,允许您以…

钡铼新品 BL120 Modbus工业协议转换网关

随着物联网技术的迅猛发展,人们深刻认识到在智能化生产和生活中,实时、可靠、安全的数据传输至关重要。在此背景下,高性能的物联网数据传输解决方案——协议转换网关应运而生,广泛应用于工业自动化和数字化工厂应用环境中。 钡铼…

【吃灰开发板复活】DIY全志V3s随身终端屏幕适配,LVGL以及各种外设驱动移植教程

在上周的文章中介绍了一款因作者想要学习Linux而动手DIY的终端设备V3S-PI, 《梦回2004!我用全志V3s做了个成本100元,功能媲美MP4的随身终端》:梦回2004!我用全志V3s做了个成本100元,功能媲美MP4的随身终端…

为什么电脑降价了?

周末,非常意外地用不到3000元买到了一款2023年度发布的华为笔记本I5,16G,500G,基本是主流配置,我非常意外,看了又看,不是什么Hwawii,或者Huuawe。然后也不是二手。为什么呢?因为在ALU和FPU之外&…

JAVA:OFD Reader Writer 开源库技术解析

1、简述 OFD Reader & Writer 是一个由开源社区推动的 OFD 文件处理库,它旨在提供对 OFD 格式文件的读取和写入功能。这一开源项目为开发者提供了强大而灵活的工具,使得在应用程序中处理和生成 OFD 文件变得更加容易和高效 开源地址:htt…