AUTOSAR架构下EcuM唤醒源事件详解

原创 汽车电子嵌入式 2023-07-14 08:25

前言

最近的项目负责网络管理部分,网路唤醒和ECU系统的休眠关系紧密,对系统的唤醒源事件感觉理解的不是很透彻,今天就来理一理AUTOSAR架构下的唤醒源事件。本文就先介绍AUTOSAR架构下EcuM模块管理的唤醒源事件,然后介绍每一个和唤醒源相关的接口函数及其适用场景,然后回答以下几个问题:

1.唤醒源有哪几种状态,每个状态之间是怎么切换的?

2.唤醒源会影响系统的下电/休眠流程吗?

3.断电系统,唤醒后没有Wakeup Sequences, Wakeup validation sequence么?

正文

1.唤醒源状态

EcuM模块管理所有的唤醒源,每个唤醒源有四个状态:ECUM_WKSTATUS_NONE,ECUM_WKSTATUS_PENDING,ECUM_WKSTATUS_VALIDATED, ECUM_WKSTATUS_EXPIREDECU上电后(复位后)每个唤醒源处于ECUM_WKSTATUS_NONE状态。

 

从上图可以看出,唤醒源的每次状态切换都需要通过BswM_EcuM_CurrentWakeup接口通知到BswM模块。


ECUM_WKSTATUS_NONE切换到ECUM_WKSTATUS_PENDINGECUM_WKSTATUS_VALIDATED状态


唤醒源事件可以通过底层的AUTOSAR标准模块(如:Can Transceiver等)主动上报(需要配置Transceiver的唤醒源检测功能),也可以通过手写模块来轮询检测上报(不配置AUTOSAR标准模块的唤醒检测功能,全部统一由手写模块来管理)。无论是配置还是手写模块,统一使用EcuM_SetWakeupEvent接口上报唤醒源事件,EcuM模块根据该唤醒源是否配置了校验切换唤醒状态从ECUM_WKSTATUS_NONE切换到ECUM_WKSTATUS_PENDINGECUM_WKSTATUS_VALIDATED状态。



ECUM_WKSTATUS_PENDING状态切换到ECUM_WKSTATUS_VALIDATED状态


背景知识1:本地(如IGN硬线)唤醒源唤醒一般不配置(在EcuM模块中配置)唤醒源的校验(Validation),远程网络(如Can唤醒)唤醒源一般配置唤醒源检验。CAN网络唤醒需要配置CanTrcvCanIf模块,且一般配置只有收到NM网络管理报文唤醒,也就是说,只有收到NM网络管理报文后CanIf才会设置一个有效唤醒源的标志FlagEcuM的轮询检测可以通过CanIf_CheckValidation读取唤醒标致。


背景知识2:想分析唤醒事件是不是有效的总线唤醒源(网络管理报文),需要Ecu有正常的收发报文能力,想要收发报文,TransceiverController两个模块均需要启动。一般来讲,Transceiver会在程序初始化时进入正常的工作模式,而Controller进入正常的工作模式是EcuM调用EcuM_StartWakeupSources的结果,而该接口为Callout函数,内部功能自定义实现,一般在EcuM_StartWakeupSources中调用CanSM_StartWakeupSourceCanSM模块会开启Can Controller。也就是说,在EcuM模块调用CanIf_CheckValidation校验唤醒源事件前,需要先调用EcuM_StartWakeupSources


EcuMMainfunction中会轮询唤醒源状态,在检测到唤醒源状态切换为ECUM_WKSTATUS_PENDING后就会开启唤醒源状态校验: EcuM_MainFunction --> EcuM_CheckValidation --> CanIf_CheckValidation -->读取网路唤醒源标志 --> 如果唤醒源标志置位则调用EcuM_ValidateWakeupEvent,唤醒源头从ECUM_WKSTATUS_PENDING状态切换到ECUM_WKSTATUS_VALIDATED状态。



ECUM_WKSTATUS_PENDING状态切换到ECUM_WKSTATUS_EXPIRED


EcuMMainfunction在轮询唤醒源状态时并没有检测到有效的唤醒源(通过CanIf_CheckValidation并没有读取到有效的唤醒标志,比如通过应用报文唤醒ECU后设置了WakeupEvent),在ValidateWakeup timer超时(Expired)后就会切换唤醒转到到ECUM_WKSTATUS_EXPIRED



从其他状态切换到ECUM_WKSTATUS_NONE:


系统中调用调用了EcuM_ClearWakeupEvent接口后,唤醒源状态切换回ECUM_WKSTATUS_NONE。唤醒源的清除需要User去调用,如果是手写模块监控唤醒源的话,可以实时Set/Clear唤醒源,如果通过AUTOSAR标准模块管理唤醒源的话,在系统满足休眠条件前清除掉所有唤醒源,在进入Shutdown的判断条件中加上唤醒源都不为Pending/Valid的条件。


2.唤醒源相关的接口函数

EcuM提供以下接口来获取唤醒源专题:

· EcuM_GetPendingWakeupEvents

· EcuM_GetValidatedWakeupEvents

· EcuM_GetExpiredWakeupEvents


通过以下接口操作唤醒源的状态:

· EcuM_ClearWakeupEvent

· EcuM_SetWakeupEvent

· EcuM_ValidateWakeupEvent

· EcuM_CheckWakeup

· EcuM_DisableWakeupSources

· EcuM_EnableWakeupSources

· EcuM_StartWakeupSources

· EcuM_StopWakeupSources


EcuM_GetPendingWakeupEvents

EcuM_GetValidatedWakeupEvents

EcuM_GetExpiredWakeupEvents

这三个接口用来获取唤醒源的状态,一般在BswM管理ECU状态中会使用,也就是上文所说的在ECU进入Shutdown/Sleep状态前会通过这几个接口来判断唤醒状态是不是都已经为NONE状态了。


EcuM_ClearWakeupEvent

EcuM_SetWakeupEvent

EcuM_ValidateWakeupEvent

3个接口的分析见第2章节的分析


EcuM_CheckWakeup

这个接口为Callout函数,也就是内容由User自定义实现。这个函数只有深度休眠系统/EcuM走GoSleep Sequence才会用到,一般EcuM_CheckWakeup -> CanIf_CheckWakeup -> CanTrcv_CheckWakeup,CanTrcv_CheckWakeup函数中会检测收发器(TJA1043)的STB和ERR引脚来判断是否有总线唤醒事件,如果有的话吗,CanTrcv_CheckWakeup调用EcuM_SetWakeupEvent上报唤醒事件。如果配置了Check Wakeup Timeout的话,在EcuM_CheckWakeup函数中调用EcuM_StartCheckWakeup,启动相应WakeupSourceCheckWakeupTimer,如果唤醒源的检查是异步完成的(CheckWakeupTimer),CheckWakeupTimer参数是EcuM延迟ECU关闭的时间的初始值,一般不配置CheckWakeupTimer


EcuM_DisableWakeupSources

EcuM_EnableWakeupSources

这两个接口为Callout函数,也就是内容由User自定义实现。这两个函数只有深度休眠系统/EcuMGoSleep Sequence才会调用到。深度休眠系统需要在下电前把唤醒引脚配置为中断口,在休眠起来后把唤醒引脚的中断属性Disable,可以通过这两个Callout函数实现。也就是在EcuM_EnableWakeupSources函数Enbale唤醒引脚的INT功能,在EcuM_DisableWakeupSources函数中Disable唤醒引脚的INT功能。


EcuM_StartWakeupSources

EcuM_StopWakeupSources

这两个接口为Callout函数,也就是内容由User自定义实现。EcuM_Mainfunction在检测到唤醒源事件由ECUM_WKSTATUS_NONE切换到ECUM_WKSTATUS_PENDING状态时调用EcuM_StartWakeupSources。在EcuM_StartWakeupSources中一般判断唤醒源是网络唤醒源后调用CanSM_StartWakeupSourceCanSM最终会开启Can Controller,这样Can模块就能正常接收报文,为后面的EcuM_CheckValidation校验做好准备。EcuM_StartWakeupSources需要在EcuM_CheckValidation前调用,因为唤醒源校验需要Can Controller能接收报文 

 

EcuM_Mainfunction在检测到唤醒源事件由ECUM_WKSTATUS_PENDING切换到ECUM_WKSTATUS_EXPIED状态时调用EcuM_StopWakeupSources。在EcuM_StopWakeupSources中一般判断唤醒源是网络唤醒源后调用CanSM_StopWakeupSourceCanSM最终会关闭Can Controller,这样Can模块就不能接收报文,为系统休眠做好准备。

 

3.问题回答

问题1:唤醒源有哪几种状态,每个状态之间是怎么切换的?

:唤醒源有ECUM_WKSTATUS_NONE, ECUM_WKSTATUS_PENDING, ECUM_WKSTATUS_VALIDATED, ECUM_WKSTATUS_EXPIRED四种状态,具体切换参考第2节。


问题2:唤醒源会影响系统的下电/休眠流程吗?

:会。但是EcuM_Flex不会去check唤醒源的状态,需要我们自己把唤醒状态的条件加到ECU系统状态切换条件中去。根具体的说,在调用EcuM_GoDown/EcuM_GoHal前需要判断说有唤醒源是不是都已经NONE状态了。


问题3:断电系统,唤醒后没有Wakeup Sequences, Wakeup validation sequence么?

:有。EcuMWakeup validation sequence和断电系统或者深度休眠系统无关。



参考文档:

1.Specification of ECU State Manager AUTOSAR CP Release 4.4.0


推荐阅读

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


End




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

汽车电子嵌入式

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


评论
  • 串口调试助手软件:XCOM 也是一款专为嵌入式开发和硬件调试设计的强大工具,如正点原子串口调试助手 XCOM V2.6。这款软件支持多种串口参数配置,满足不同开发需求,广泛应用于嵌入式系统开发、硬件调试以及电子爱好者的项目开发中。XCOM在嵌入式开发和硬件调试中的作用主要体现在以下几个方面: 1. 串口通信测试:XCOM作为一款强大的串口调试工具,允许用户通过计算机的串口进行数据的发送与接收,从而实现对串口通信的测试。这对于验证硬件设备的通信协议、确保数据传输的正确性至关重要。 2. 数据发
    丙丁先生 2024-12-15 11:56 84浏览
  • 霍尔传感器的原理        霍尔传感器是一种固体的传感器,其输出电压与磁场强度成比例。顾名思 义,这种器件是依赖于霍尔效应原理工作的。霍尔效应原理是在导体通电 和加有磁场的情况下,在导体的横向 上会产生电压。电子(在实践中多数载流子最常被使 用)在外部电场的驱动下会产生“漂移”,当暴露于磁场中时,这些运动 的带电粒子会受到一个垂直于电场和 磁场的力的作用。这个力会让导体的边缘充电,一边为正,一边为负。边
    锦正茂科技 2024-12-14 11:41 67浏览
  • 擎天柱,这个名字听起来就像是从科幻电影里走出来的英雄。但今天,我们要聊的不是那个变形金刚,而是一款同样令人兴奋的实验板——Ai8051U-LQFP48 转 89C52-DIP40 核心功能实验板。这款实验板就像是电子世界的“擎天柱”,它拥有强大的力量和无限的潜力,等待着我们去发掘和探索。 想象一下,你手中握着的不是一块普通的电路板,而是一张通往未来科技世界的门票。Ai8051U芯片,这颗强大的心脏,内置了硬件浮点运算单元(TFPU@120MHz),让你的计算速度飞起来,就像给机器人装上了翅膀。
    丙丁先生 2024-12-16 13:02 106浏览
  • 在现代软件开发领域,效率和可靠性是企业在竞争中取胜的关键。本文将深入探讨 ANA Systems 如何通过引入业界领先的 CI/CD 平台——CircleCI,克服传统开发流程的瓶颈,实现开发运营效率的全面提升。同时,本文还将详细解析 CircleCI 的核心优势,包括其强大的自动化功能、广泛的工具整合能力,以及为企业量身定制的支持服务,揭示其如何助力 ANA Systems 在「新一代国内旅客项目」中脱颖而出。这一案例将为企业优化开发流程、提升竞争力提供重要的实践参考。ANA Systems
    艾体宝IT 2024-12-16 16:44 105浏览
  • 【富芮坤FR3068x-C】+开发环境疑问非常荣欣参加了这次《富芮坤FR3068x-C》评测活动,在搭建开发环境时,本人就遇到很大问题,主要有3个。第1个问题:本人按照《FR306x开发环境说明书》中的1章安装软件,keil5.36版本以上,并且打开sdk中uart工程,按照要求设置了Device配置如下: ARM Compiler选项链接文件配置但是编译结果如下:有23个warning,都是连接脚本中找不到,请问这样工程是否有问题?第2个问题:按照《FR306x开发环境说明书》中要求,需要电脑
    shenwen2007_656583087 2024-12-17 00:59 67浏览
  • 近年来,云终端凭借便捷、高效、高性价比的优势正逐步在各行各业渗透。研究机构IDC的数据显示,2024上半年,中国云终端市场总体出货量达到166.3万台,同比增长22.4%,销售额29亿元人民币,同比增长24.9%,均超预期。紫光展锐积极携手各大合作伙伴,共同打造云端生态,大力推动云终端在政企、金融类等领域应用落地。 云终端增长势头良好 两大应用场景被看好云电脑将传统个人电脑的硬件资源和软件应用虚拟化,并通过网络提供给用户。这种模式的核心在于:用户不需要高性能的本地硬件,仅通过互联网连接
    紫光展锐 2024-12-16 18:11 80浏览
  • 全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股票代码:AMS)于10月23日在深圳益田威斯汀酒店举办了艾迈斯欧司朗中国发展中心(以下简称,CDC)圆桌论坛。本次论坛以“智能化时代,以多元应用场景和技术 助力中国市场加速发展”为核心议题,探讨在人工智能驱动的市场趋势下,CDC如何助力中国伙伴把握时代机遇,推动大中华地区业务稳健增长,展示了艾迈斯欧司朗对中国市场的信心。立足中国 贴近本土客户需求在全球经济增速放缓和国际形势复杂多变的背景下,中国市场依然保持了稳定的增长势态,并释放出强大的
    艾迈斯欧司朗 2024-12-16 18:00 116浏览
  • 一、引言在数字化时代,芯片作为现代科技的核心,其制造过程却常被视作神秘的黑箱。菊地正典的《大话芯片制造》为我们揭开了这层神秘的面纱,以通俗易懂的方式,全面系统地介绍了芯片制造的各个环节。作为一名电子信息技术专业的教育工作者,我深感这本书不仅为学生提供了宝贵的知识资源,也让我对芯片制造及其在现代社会中的作用有了更深刻的理解。二、生活中的芯片印记芯片的影响渗透到我们日常生活的每一个角落。从智能手机的闹钟唤醒,到交通卡的便捷支付,再到智能家居的智能化功能,芯片以其强大的运算和处理能力,为我们的现代生活
    月光 2024-12-16 11:52 84浏览
  • 在现代生活中,我们经常会遇到需要检测电线是否带电的情况。这时,一款好用的数显测电笔就显得尤为重要了。今天,我想跟大家分享一下DELIXI数显测电笔的使用方法,通过一个故事来讲述它如何帮助我们解决生活中的小麻烦。 在一个阳光明媚的周末,小明决定对他家的电路进行一次全面的检查。他知道,虽然自己不是专业的电工,但有了DELIXI数显测电笔的帮助,他也能轻松应对。 小明拿出了DELIXI数显测电笔,这款测电笔设计得非常人性化,操作起来也很简单。他首先注意到了测电笔上的两个按键:DIRECT(A键)和
    丙丁先生 2024-12-16 12:58 74浏览
  • 1. 磁性材料的磁化曲线磁性材料是由铁磁性物质或亚铁磁性物质组成的,在外加磁场H 作用下,必有相应的磁化强度M 或磁感应强度B,它们随磁场强度H 的变化曲线称为磁化曲线(M~H或B~H曲线)。磁化曲线一般来说是非线性的,具有2个特点:磁饱和现象及磁滞现象。即当磁场强度H足够大时,磁化强度M达到一个确定的饱和值Ms,继续增大H,Ms保持不变;以及当材料的M值达到饱和后,外磁场H降低为零时,M并不恢复为零,而是沿MsMr曲线变化。材料的工作状态相当于M~H曲线
    锦正茂科技 2024-12-17 10:40 62浏览
  • 概述 Cyclone 10 GX器件的ALM结构与Cyclone V类似,所以在Cyclone 10 GX器件上实现TDC功能理论上是可以完全参考甚至移植自Cyclone V系列的成功案例。但是,现实却是更多的问题出现当在Cyclone 10 GX使用和Cyclone V同样策略实现TDC的时候。 本文主要记录在Cyclone 10 GX器件上实现TDC时的探索,并为后续TDC设计、测试等展开前期研究。Cyclone 10 GX ALM结构 如图1所示,Cyclone 10 GX器件的ALM结构
    coyoo 2024-12-14 17:15 90浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-14 20:56 70浏览
我要评论
1
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦