节点唤醒方式
本地唤醒:唤醒源来源于自身模块,比如常说的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节点。(参考BSWM和ECUM的上下电流程)
远程唤醒:唤醒源来源于自身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拉低.
下图以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被正常供电,程序开启正常运行;
————————————————
本文来源于网络,原文链接:https://blog.csdn.net/xiandang8023/article/details/139030190
End
「汽车电子嵌入式在CSDN上同步推出AUTOSAR精进之路专栏,本专栏每个模块完全按实际项目中开发及维护过程来详细介绍。模块核心概念介绍、实际需求描述、实际工程配置、特殊需求介绍及背后原理、实际工程使用经验总结。目的是让读者看完每一个章节后能理解原理后根据需求完成一个模块的配置或者解决一个问题。」
点击文章最后左下角的阅读原文可以获取更多信息
或者复制如下链接到浏览器获取更多信息
https://blog.csdn.net/qq_36056498/article/details/132125693
文末福利
2.为便于技术交流,创建了汽车电子嵌入式技术交流群,可尽情探讨AP,CP,DDS,SOME/IP等前沿热点话题,后台回复“加群”即可加入;
注:本文引用了一些第三方工具和文档,若有侵权,请联系作者删除!
推荐阅读
汽车电子嵌入式精彩文章汇总第一期:20210530-20230703
汽车电子嵌入式精彩文章汇总第2期
TC3xx芯片GTM模块-CMU,CCM,TBU详解
TC3xx芯片GTM模块-TOM详解
AUTOSAR架构下PWM模块配置实践
TC3xx芯片GTM模块-TIM详解
AUTOSAR架构下ICU模块配置实践
TC3xx芯片电源管理系统PMS详解
TC3xx DMA模块详解
TC3xx芯片SMU模块详解
如何监控TC3xx芯片PFlash的ECC错误
TC3xx芯片RAM的错误检测
TC3xx芯片的总线内存保护
AUTOSAR架构下MCAL Modules软件分区问题分析
AUTOSAR架构下内部看门狗复位检测
嵌入式基础:环形缓冲区ring buffer
编译链接专题第1篇-make和makefile介绍
编译链接专题第2篇-初识makefile结构
编译链接专题第3篇-初识makefile中的伪目标
编译链接专题第4篇-变量和变量的不同赋值方式
编译链接专题第5篇-预定义变量的使用
编译链接专题第6篇-变量的高级主题(上)
编译链接专题第7篇-变量的高级主题(下)
编译链接专题第8篇-条件判断语句
End
欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!
汽车电子嵌入式
微信扫描二维码,关注我的公众号