CAN网络管理(TJA1145如何实现MCU的休眠唤醒)

news2024/11/16 15:55:57

节点唤醒方式

本地唤醒: 唤醒源来源于自身模块,比如常说的KL15,控制器由KL15线供电,即只能在钥匙置于“ACC”或者“ON”档时运行软件和维持CAN通信

  • 对于正在运行的CPU软件,无论它处在什么状态,只要Hardware OFF,PMIC供电立即切断,3.3V,5.0V立即消失,程序立即停止运行,ECU系统进入OFF模式,不存在Sleep模式。该状态下PMIC也不消耗电能,ECU系统的电能消失是0,比较KL30节点的Sleep模式最节省电能。
  • KL15节点没有下电流程,随时可能终止运行,没有时间进入AfterRun模式和做Eeprom最终存储。WakeUp信号的消失后ECU直接进入OFF模式,不存在Sleep模式,不耗费电能。
  • KL30节点有完整的下电流程,软件根据WakeUp信号的消失可以控制自己按步骤进入AfterRun模式,存储数据到flash,设置PMIC进入Sleep模式。ECU进入Sleep模式只有PMIC在耗电。AutoSar网络管理只针对KL30节点。(参考BSWMECUM的上下电流程)

远程唤醒: 唤醒源来源于自身ECU节点所在的网络报文

  • 网络唤醒是以网络管理报文为基础来协同整个网络“同睡同醒”,CanNM采用分布式的直接网络管理方式来发送自身节点所需的网络管理请求及自身网络管理状态,并接受来自网络上其他ECU节点的网络管理请求与状态。"同睡同醒"机制的目的是确保所有节点在睡眠和唤醒操作上保持同步。当一个节点准备进入睡眠模式时,它会通过网络发送一个特殊的同步消息,通知其他节点它即将进入睡眠状态。其他节点接收到该消息后,会做出相应的响应,以确保整个系统在同一时间进入睡眠状态。同样地,当一个节点准备唤醒时,它会发送一个唤醒消息来通知其他节点。其他节点接收到唤醒消息后,会做出相应的响应,以确保整个系统在同一时间唤醒。
  • 该状态机的状态类型可分为“三大三小”。

“三大”指的是Bus Sleep Mode、Network Mode、Prepare Bus-Sleep Mode;

“三小”则值得是Network Mode下的三个子状态:Repeat Message State、Normal Operation Mode、Ready Sleep Mode。

  • 一旦进入Network Mode,计时器T_NM_Timeout就会启动,只要成功接收到来自总线上的NM报文或者成功发送至总线NM报文,都会将该计时器T_NM_Timeout重置。一旦T_NM_TIMEROUT 超时,那么就会离开该状态转而进入Prepare Bus-Sleep状态。
  • 报文发送与接受状态

“Bus-Sleep”阶段,只接收NM报文唤醒,不发送任何报文;

“Pre-Bus-Sleep”阶段,同样仅允许接收NM报文,对于早已在发送Buffer中的APP报文应发送完毕后立刻停止APP报文;

“Network Mode”模式下,除了在Ready Sleep阶段不允许发送NM报文之外,其余阶段APP报文与NM报文正常收发;

CanNM报文周期性的向MCU发送,如果一旦一段时间没有收到,MCU就通过SPI向TJA115的寄存器写数据,要进入sleep模式,之后TJA1145在向PMIC拉低

如何让TJA1145进入sleep和wakeup状态

下图以TJA1043简单说明can报文如何使MCU进入到休眠唤醒状态:

  • S1:MCU满足休眠条件时,通过发送SPI相应指令让TJA1145进入Sleep状态;

例如下面的用法:

简单的指令代码实现就是下图:

  • S2:TJA1145进入到Sleep状态后,INH引脚就会拉低,控制5V或者3V关闭电源输出,间接导致MCU整个系统处理掉电状态,此时TJA1145始终处于供电状态(由于BAT始终有电),整个ECU成功进入到休眠状态;
  • S3:TJA1145虽然处于Sleep状态,属于极低功耗状态,同步也检测着网络是否存在有效唤醒源;
  • S4:当TJA1145发现有效唤醒源之后,就会自动从Sleep状态切换成Standby状态,在Standby状态下INH引脚拉高,此时5V与3V便会正常输出,从而MCU被正常供电,程序开启正常运行;

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

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

相关文章

【Tools】微服务工程中的通用功能模块抽取

Catalog 通用功能模块抽取一、需求二、步骤三、细节 通用功能模块抽取 一、需求 在微服务工程中,可能有一些工具类、实体类是多个微服务通用的,如果在每个微服务中都复制粘贴这些工具类,会产生很多重复性的代码,对开发来说也很繁…

吴恩达2022机器学习专项课程C2W2:实验Relu激活函数

目录 代码修改1.Activation2.Dense3.代码顺序 新的内容1.总结上节课内容2.展示ReLU激活函数的好处3.结论 代码案例一代码案例二1.构建数据集2.构建模型 2D1.构建数据集2.模型预测3.扩展 代码修改 1.Activation (1)需要添加代码from tensorflow.keras i…

5.小程序页面布局 - 记账页面(名目布局、绘制键盘、引用picker时间选择组件)

文章目录 1. 小程序页面布局 - 记账页面1.1. 记账页面的布局1.1.1. 样例1.1.2. 页面解构1.1.3. 内容布局的实现1.1.3.1. 填坑(display:flex)1.1.3.2. 突破(display:grid)1.1.3.3. 应用 1.1.4. 点击图片加背景色1.1.5. 添加一个键盘1.1.6. 日期选择组件 1. 小程序页面布局 - 记账…

Liunx基本指令以及权限(个人笔记)

Linux指令和权限 1.指令1.1ls指令1.2pwd命令1.3cd指令1.4touch指令1.5mkdir指令1.6rm指令1.7man指令1.8cp指令1.9mv指令1.10cat指令1.11less指令1.12head指令1.13tail指令1.14date显示1.15Cal指令1.16find指令1.17grep指令1.18zip/unzip指令1.19tar指令1.20bc指令1.21uname -r指…

SQLServer表变量

表变量是本地变量的一种特殊类型,它有助于临时存储数据; 要声明表变量,使用declare,而局部变量的名称必须以符号开头; TABLE关键字指定此变量是表变量,然后还要定义列名和数据类型; 下面定义一个表变量&#xff0c…

光伏项目怎么做预算?

随着可再生能源行业的蓬勃发展,光伏行业也得到了扩张。许多想要加入光伏项目投资的人,都在为怎样为项目做预算而苦恼,今天我就来跟大家分析下可以怎么做。 一、了解市场需求,确定预算目标 在制定光伏项目预算方案之前&#xff0c…

Vue CLI 的服务介绍与使用(2024-05-20)

1、介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 vue/cli 实现的交互式的项目脚手架。 通过 vue/cli vue/cli-service-global 实现的零配置原型开发。 一个运行时依赖 (vue/cli-service),该依赖: 可升级…

docker-如何将容器外的脚本放入容器内,将容器内的脚本放入容器外

文章目录 前言docker-如何将容器外的脚本放入容器内,将容器内的脚本放入容器外、1. docker 如何将容器外的脚本放入容器内1.1. 验证 2. 将容器内的脚本放入容器外 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊&…

JKI State Machine的特点与详细介绍

JKI State Machine是一种基于状态机的LabVIEW架构,由JKI公司开发。它广泛用于开发复杂的应用程序,提供了一种灵活且可扩展的结构,适用于多种任务的管理和执行。其设计目标是提高开发效率、代码可读性和可维护性。 2. 基本架构 JKI State Ma…

Spring Boot 中缓存的用法

缓存(Caching)是提升应用性能的重要手段之一,通过减少不必要的数据计算和数据库访问,显著提高系统的响应速度。在 Spring Boot 中,缓存机制被集成得非常好,使得我们能够快速、方便地使用缓存功能。本文将介…

基于Android studio 订餐、外卖系统

目录 项目介绍 图片展示 运行环境 获取方式 项目介绍 具有登录,注册,修改密码,查看关于开发信息(可以填写自己的信息) 我的:可以查看菜品详情,填写份数,加入购物车, 购物车:可…

【IDEA软件应用篇】IDEA基础开发设置和开发快捷键

IDEA是一种集成开发环境,可以运行java代码。 本篇文章你将收获到下面的知识: (1)IDEA如何设置字体大小快捷键 (2)如何解决每次进IDEA时,进去的页面都是上次使用完时的那个页面 (3&am…

使用yum下载rpm包

1、命令格式 yum install --downloadonly --downloaddir<directory> <package-name> --downloadonly&#xff1a;只下载选项而不进行安培训--downloaddir&#xff1a;指定下载目录&#xff0c;默认下载的RPM包会保在/var/cache/yum/x86_64/[centos|fedora-versio…

Linux系统下Mysql忘记密码怎么解决

一、对Mysql配置文件进行设置 1、找到/etc/mysql/my.cnf路径下&#xff0c;用Vi命令编辑my.cnf配置文件&#xff0c;命令如下&#xff1a; # 以管理员身份登录 sudo su # 输入管理员密码 # 登录成功后&#xff0c;找到Mysql的配置文件-->Mysql配置文件默认在此 cd /etc/my…

异相(相位不平衡)状态下的合成器效率分析-理论与ADS仿真

异相&#xff08;相位不平衡&#xff09;状态下的合成器效率分析-理论与ADS仿真 12、ADS使用记录之功分器设计中简单介绍了威尔金森功分器的设计方法。一般来讲&#xff0c;功分器反过来就能作为合路器使用&#xff0c;在输入信号相位一致的情况下&#xff0c;各种合路器的效率…

YOLOv8独家改进:mamba系列 | 视觉态空间(VSS)块结合C2f二次创新,提升捕捉广泛的上下文信息 | VMamba2024年最新成果

💡💡💡创新点:Mamba UNet采用了纯基于视觉Mamba(VMamba)的编码器-解码器结构,融入了跳跃连接,以保存网络不同规模的空间信息。这种设计有助于全面的特征学习过程,捕捉医学图像中复杂的细节和更广泛的语义上下文。我们在VMamba块中引入了一种新的集成机制,以确保编…

Linux之共享内存mmap用法实例(六十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

通过注意力调节实现更好的文本到图像生成对齐

近年来&#xff0c;生成性AI技术在众多领域取得了前所未有的进步。大规模预训练模型的出现激发了各种下游任务中的新应用。这在文本到图像生成领域尤为明显&#xff0c;例如Stable Diffusion、DALL-E 2和Imagen等模型已经显著展示了它们的能力。尽管如此&#xff0c;复杂提示中…

Go语言的pprof工具是如何使用的?

文章目录 Go语言的pprof工具详解pprof的使用runtime/pprofnet/http/pprof 快速开始获取采样数据通过pprof工具进行性能分析总结 Go语言的pprof工具详解 Go语言作为一个高性能、高并发的编程语言&#xff0c;对性能优化有着极高的要求。在Go语言的标准库中&#xff0c;pprof是一…

架构篇44:互联网架构模板:“平台”技术

文章目录 运维平台测试平台数据平台管理平台小结当业务规模比较小、系统复杂度不高时,运维、测试、数据分析、管理等支撑功能主要由各系统或者团队独立完成。随着业务规模越来越大,系统复杂度越来越高,子系统数量越来越多,如果继续采取各自为政的方式来实现这些支撑功能,会…