AUTOSAR架构下唤醒源检测函数EcuM_CheckWakeup详解

原创 汽车电子嵌入式 2024-11-11 07:56

前言

在《AUTOSAR 架构下EcuM唤醒源事件详解》一文中我们介绍了EcuM_CheckWakeup函数:

这个接口为Callout函数,也就是内容由User自定义实现。这个函数只有深度休眠系统/EcuMGoSleep Sequence才会用到,如果配置了Check Wakeup Timeout的话,在EcuM_CheckWakeup函数中调用EcuM_StartCheckWakeup,启动相应WakeupSourceCheckWakeupTimer,如果唤醒源的检查是异步完成的(CheckWakeupTimer),CheckWakeupTimer参数是EcuM延迟ECU关闭的时间的初始值,一般不配置CheckWakeupTimer

有粉丝对这个函数的使用还是有以下问题:

如下是我的解答:

 

这个函数的使用确实非常灵活,和ECU的设计及芯片的使用都强相关,我们再理一理这个函数的基本概念然后给出一些实际的工程使用经验。



注:本文章引用了一些第三方工具和文档,若有侵权,请联系作者删除!

正文

1.AUTOSAR标准描述

1.1 EcuM_CheckWakeup用来干什么

官方解释EcuM调用该callout来轮询唤醒源。唤醒源的ISR也应该调用它来设置锁相环,并检查可能连接到同一中断的其他唤醒源。


个人理解EcuM_CheckWakeup是一个callout函数,也就说EcuM_CheckWakeup需要用户自定义实现,比如我们ECU设计为:


Can唤醒

EcuM_Chekwauep应该实现为

EcuM_CheckWakeup(EcuM_WakeupSourceType wakeupSource){    If(CanWakeupsource == wakeupSource)    {        CanIf_CheckWakeup(wakeupSource);    }}

Lin唤醒

EcuM_CheckWakeup(EcuM_WakeupSourceType wakeupSource){    If(LinWakeupsource == wakeupSource)    {        LinIf_CheckWakeup(wakeupSource);    }}

Flexray唤醒

EcuM_CheckWakeup(EcuM_WakeupSourceType wakeupSource){    If(FlexrayWakeupsource == wakeupSource)    {        FlexrayIf_CheckWakeup(wakeupSource);    }}

ICU唤醒

EcuM_CheckWakeup(EcuM_WakeupSourceType wakeupSource){    If(ICUWakeupsource == wakeupSource)    {        ICU_CheckWakeup(wakeupSource);    }}

GPT唤醒

EcuM_CheckWakeup(EcuM_WakeupSourceType wakeupSource){    If(GPTWakeupsource == wakeupSource)    {        GPT_CheckWakeup(wakeupSource);    } }

xxx_CheckWakeup()函数中会按照具体唤醒源类型去检查有没有唤醒事件产生,如果检测到唤醒源就会调用EcuM_SetWakeupEvent();设置唤醒源事件。


比如使用TJA1040 CanTrcv唤醒:

EcuM_CheckWakeup()->CanIf_CheckWakeup()->CanTrcv_CheckWakeup(), 最终CanTrcv回去判断CanTrcvSTBRX引脚来判断唤醒源事件有没有产生。




其他类型的唤醒(CAN, LIN, Flexray,ICU,GPT.e.g.)过程类似,主要是是如何判断唤醒源产生不一样。


值得注意的是如果不能EcuM_CheckWakeup函数调用结束之前,EcuM_SetWakeupEvent被调用(也就说在EcuM_CheckWakeup的调用栈中调用EcuM_SetWakeupEvent,也就说EcuM_CheckWakeup同步调用EcuM_SetWakeupEvent),那么就需要配置CheckWakeupTimeout(后文详细介绍).

EcuM_CheckWakeup函数应该实现为如下形式:

EcuM_CheckWakeup(EcuM_WakeupSourceType wakeupSource){    EcuM_StartCheckWakeup(wakeupSource); /*开启异步唤醒源检测超时计时器*/    If(xxxWakeupsource == wakeupSource)    {        xxx_CheckWakeup(wakeupSource);    }}

1.2 EcuM_CheckWakeup在哪里被调用

EcuMGo Sleep Sequence中会调用该函数来检测有没有唤醒事件产生。


背景知识EcuMSleep Phase会根据ECU的具体设计走Go Halt Sequence或者走Go Poll Sequence.

Case 1: 如果ECUGo Halt Sequence, 则最终ECU会调用Mcu_SetMode进入到Halt状态(CPU停止运行,代码不在运行),需要通过外部中断唤醒,中断处理函数中调用EcuM_CheckWakeup检测唤醒源。


Case 2:如果ECUGo Poll Sequence, 则最终ECU会调用Mcu_SetMode进入到Polling状态(CPU不会停止运行,代码继续运行),EcuM开始调用EcuM_CheckWakeup轮询检测唤醒源事件。


从上文可知,如果走shutdown OffECU不会使用到EcuM_CheckWakeup.


1.3 EcuM_CheckWakeup的使用场景

1.3.1 GPT中断检测唤醒源

Ecu进入到Halt状态,GPT中断唤醒ECU,在GPTISR->EcuM_CheckWakeup->GPT_CheckWakeup->EcuM_SetWakeupEvent.


1.3.2 EcuM轮询GPT检测唤醒源

Ecu进入到Polling状态,Ecu调用EcuM_CheckWakeup->GPT_CheckWakeup轮询检测唤醒源。


1.3.3 ICU中断检测唤醒源


1.3.4 其他

其他的Lin,Can,Flexray,CanTrcv等都类似,具体可以参考EcuMAUTOSAR文档。


2.AUTOSR工具相关配置

EcuM模块中的每个唤醒源都有一个Check Wakeup Timeout的配置参数,如下图所示:


官方解释


个人理解:当唤醒源事件产生时,如果能保证在EcuM_CheckWakeup->xxx_CheckWakeup的调用栈中检测到唤醒源并调用EcuM_SetWakeupEvent设置唤醒源,则不需要配置这个TimeOut参数。实际工程项目中一般都不配置这个参数


3.唤醒源检测和唤醒源校验的区别

上文已经详细介绍了EcuM_CheckWakeup的作用以及其使用场景。说到底,EcuM_CheckWakeup就是为了检测唤醒源然后调用EcuM_SetWakeupEvent来设置唤醒事件,那么EcuM收到上报的唤醒事件后又会怎么操作了?-- 调用EcuM_ValidateWakeupEvent校验唤醒源是不是有效(需要配置唤醒源校验)。

5.实际工程经验总结

注意:实际工程中都希望ECU在整车休眠后功耗最低,所以都会选择走Shutdown Off或者Go Halt,一般不会选着走Go Poll.所以下文仅描述Shutdown Off或者Go Halt的场景。


从上文可知,EcuM_CheckWakeupECU的休眠唤醒强相关,从《AUTOSAR架构下ICU唤醒详解》一文可知不同的芯片平台的休眠唤醒是不一样的,所以实际工程情况比较复杂。如下图所示,只有S32K进入到VLPS模式或者TC3xx芯片进入到Slep模式后才会中断唤醒继续运行软件,其他场景MCU直接复位了,也就没有ISR->EcuM_CheckWakeup这个过程了。


就算是MCU被唤醒后软件能继续运行,实际工程中为了降低软件实现的复杂度,MCU被唤醒后都会直接或间接的复位,这样ISR->EcuM_CheckWakeup这个过程有没有都无所谓。

总之,在实际工程中,EcuM_CheckWakeup这个函数基本用不到



End

「汽车电子嵌入式在CSDN上同步推出AUTOSAR精进之路专栏,本专栏每个模块完全按实际项目中开发及维护过程来详细介绍。模块核心概念介绍、实际需求描述、实际工程配置、特殊需求介绍及背后原理、实际工程使用经验总结。目的是让读者看完每一个章节后能理解原理后根据需求完成一个模块的配置或者解决一个问题。」


点击文章最后左下角的阅读原文可以获取更多信息


或者复制如下链接到浏览器获取更多信息

https://blog.csdn.net/qq_36056498/article/details/132125693


文末福利




1
.如需汽车电子嵌入式收集的学习文档,
后台回复“

资料

即可免费下载;

2.为便于技术交流,创建了汽车电子嵌入式技术交流群,可尽情探讨AP,CP,DDS,SOME/IP等前沿热点话题,后台回复“加群”即可加入;



注:本文引用了一些第三方工具和文档,若有侵权,请联系作者删除!


推荐阅读

汽车电子嵌入式精彩文章汇总第一期:20210530-20230703

汽车电子嵌入式精彩文章汇总第2期

汽车电子嵌入式精彩文章汇总第3期

【OS】AUTOSAR OS Event实现原理

【OS】AUTOSAR OS Spinlock实现原理(下篇)

【OS】AUTOSAR OS Spinlock实现原理(上篇)

CanNm处于PBS状态下接收到一帧诊断报文DCM会响应吗

TC3xx芯片CAN模块详解

AUTOSAR OS Alarm实现原理

AUTOSAR OsTask切换原理

TC3xx 芯片SPI模块详解

AUTSOAR ComStack如何实现PDU只收不发的

AUTOSAR OsStack监控原理

AUTOSAR架构下ICU唤醒详解

CanNm报文的触发发送详解

Can报文能发不能收问题分析



End


欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!

汽车电子嵌入式

微信扫描二维码,关注我的公众号

评论 (0)
  • 为通过金融手段积极推进全球绿色发展,国际金融论坛(IFF)于2020年创立了“IFF全球绿色金融奖”,旨在对全球绿色金融领域取得突出成绩的机构及创新性的解决方案进行表彰和奖励。该奖项依托IFF“高层次、高水平、国际化”一流智库资源优势,积极促进绿色金融领域的国际交流合作和创新实践,助力联合国可持续发展目标的实现。“IFF全球绿色金融奖”重点关注和鼓励那些促进经济增长模式转型、防治环境污染、应对气候变化,以及致力于提高能效水平、强化节能减排实效的绿色金融创新解决方案。该奖项面向全球,是对政策创新、
    华尔街科技眼 2025-04-24 20:43 20浏览
  • 2025-4-25全球信息报告出版商Global Info Research(环洋市场咨询)发布了【2025年全球市场高介电常数材料总体规模、主要生产商、主要地区、产品和应用细分研究报告】,报告主要调研全球高介电常数材料总体规模、主要地区规模、主要生产商规模和份额、产品分类规模、下游主要应用规模以及未来发展前景预测。统计维度包括销量、价格、收入,和市场份额。同时也重点分析全球市场主要厂商(品牌)产品特点、产品规格、价格、销量、销售收入及发展动态。历史数据为2020至2024年,预测数据为2025
    用户1745398400862 2025-04-25 08:48 46浏览
  •   航空兵训练与战术对抗仿真平台系统解析   北京华盛恒辉航空兵训练与战术对抗仿真平台系统是现代军事训练的关键工具,借助计算机技术构建虚拟战场,支持多兵种协同作战模拟,为军事决策、训练及装备研发提供科学依据。   应用案例   目前,已有多个航空兵训练与战术对抗仿真平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润航空兵训练与战术对抗仿真平台。这些成功案例为航空兵训练与战术对抗仿真平台的推广和应用提供了有力支持。   一、系统架构与核心功能   系统由模拟器、计算机兵力生
    华盛恒辉l58ll334744 2025-04-24 16:34 149浏览
  •   有效样本分析决策系统平台全面解析   一、引言   北京华盛恒辉有效样本分析决策系统在当今数据驱动的时代,企业、科研机构等面临着海量数据的处理与分析挑战。有效样本分析决策系统平台应运而生,它通过对样本数据的精准分析,为决策提供有力支持,成为提升决策质量和效率的关键工具。   应用案例   目前,已有多个有效样本分析决策系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润有效样本分析决策系统。这些成功案例为有效样本分析决策系统的推广和应用提供了有力支持。   二、平台概述
    华盛恒辉l58ll334744 2025-04-24 11:13 117浏览
  •   海上训练与保障调度指挥平台系统解析   北京华盛恒辉海上训练与保障调度指挥平台系统是现代海上作战训练的核心枢纽,融合信息技术、GIS、大数据及 AI 等前沿技术,旨在实现海上训练高效组织、作战保障科学决策。以下从架构功能、应用场景、系统优势及发展挑战展开解读。   应用案例   目前,已有多个海上训练与保障调度指挥平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润海上训练与保障调度指挥平台。这些成功案例为海上训练与保障调度指挥平台的推广和应用提供了有力支持。   一
    华盛恒辉l58ll334744 2025-04-24 15:26 130浏览
  • 引言:语音交互的智能化跃迁在全球化与智能化深度融合的今天,语音交互设备的应用场景已从单一提示功能向多语言支持、情感化表达及AI深度交互演进。传统离线语音方案受限于语种单一、存储容量不足等问题,而纯在线方案又依赖网络稳定性,难以满足复杂场景需求。WT3000A离在线TTS方案,通过“本地+云端”双引擎驱动,集成16国语种、7种方言切换、AI大模型对话扩展等创新功能,重新定义语音提示器的边界,为智能硬件开发者提供更灵活、更具竞争力的语音交互解决方案。一、方案核心亮点离在线双模融合,场景全覆盖离线模式
    广州唯创电子 2025-04-25 09:14 41浏览
  •   通用装备论证与评估系统平台解析   北京华盛恒辉通用装备论证与评估系统平台是服务军事装备全生命周期管理的综合性信息化平台,通过科学化、系统化手段,实现装备需求论证、效能分析等核心功能,提升装备建设效益。   应用案例   目前,已有多个通用装备论证与评估系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润通用装备论证与评估系统。这些成功案例为通用装备论证与评估系统的推广和应用提供了有力支持。   一、系统分层架构   (一)数据层   整合装备性能、作战、试验等多源异
    华盛恒辉l58ll334744 2025-04-24 16:14 141浏览
  •   高海拔区域勤务与装备保障调度系统平台解析   北京华盛恒辉高海拔区域勤务与装备保障调度系统平台专为高海拔特殊地理环境打造,致力于攻克装备适应、人员健康保障、物资运输及应急响应等难题。以下从核心功能、技术特点、应用场景及发展趋势展开全面解读。   应用案例   目前,已有多个高海拔区域勤务与装备保障调度系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润高海拔区域勤务与装备保障调度系统。这些成功案例为高海拔区域勤务与装备保障调度系统的推广和应用提供了有力支持。   一、核心
    华盛恒辉l58ll334744 2025-04-24 10:13 120浏览
  •   陆地装备体系论证与评估综合平台系统解析   北京华盛恒辉陆地装备体系论证与评估综合平台系统是契合现代军事需求而生的专业系统,借助科学化、智能化手段,实现对陆地装备体系的全方位论证与评估,为军事决策和装备发展提供关键支撑。以下从功能、技术、应用及展望展开分析。   应用案例   目前,已有多个陆地装备体系论证与评估综合平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润陆地装备体系论证与评估综合平台。这些成功案例为陆地装备体系论证与评估综合平台的推广和应用提供了有力支持。
    华盛恒辉l58ll334744 2025-04-24 10:53 125浏览
  • 引言在智能语音技术飞速发展的今天,语音交互已成为消费电子、智能家居、工业控制等领域的标配功能。传统的ISD系列录音芯片虽应用广泛,但其高成本与功能局限性逐渐难以满足市场对高性价比、高灵活性的需求。推出的WT2000P录音语音芯片,凭借其卓越性能、低功耗设计及高度可定制化特性,成为ISD系列芯片的理想替代方案,助力开发者突破产品创新瓶颈。一、WT2000P产品概述WT2000P是一款专为嵌入式语音场景设计的多功能录音芯片,采用ESOP8封装,体积小巧(尺寸仅4.9mm×3.9mm),集成度高,支持
    广州唯创电子 2025-04-25 08:44 30浏览
  • 最近,途虎养车发布的2024年财报数据,可谓相当吸睛。全年营收达到147.59亿元,同比增长8.5%,这个数字直观地展现了途虎在市场上的强大吸金能力,在行业里稳稳占据前列。利润方面同样出色,毛利37.46亿元,毛利率提升0.7个百分点至25.4%;经调整净利润6.24亿元,同比增长 29.7%,经营利润同比更是增长104%至3.31亿元,盈利能力显著增强,这样的利润增长幅度,在同行业中十分亮眼。在用户规模上,途虎养车同样成绩斐然。累计注册用户近1.4亿,同比增长20.4%,交易用户数达2410万
    用户1742991715177 2025-04-24 19:12 31浏览
  • 随着轻薄笔记本的普及,再加上电竞玩家对于高画质音视频体验的需求日益高涨,如何让轻薄笔记本在兼顾轻便携带性的同时,还能提供足以支持3A(AAA/Triple-A game)大作的良好运算性能,便成为各家品牌急欲突破的共同难题。然而,对于主打轻巧便携的轻薄笔记本而言,若要内置独立显卡,势必要先突破空间受限的瓶颈,同时还需解决散热问题,确实难以兼顾两全!对此,“Thunderbolt”与“OCuLink”这两项技术应运而生。用户可以通过这两种传输接口,再搭配外接显卡盒(eGPU)及高性能显卡(如NVI
    百佳泰测试实验室 2025-04-24 17:56 35浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦