0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

EcuM是如何知道有唤醒事件呢?

冬至配饺子 来源:开心果 Need Car 作者:开心果 Need Car 2022-08-23 11:39 次阅读

前言

在AUTOSAR中,Ecu的唤醒流程并不能简单的看作是对各个外设模块的供电动作。Autosar给了软件开发人员很大的自由度去设计目标项目Ecu的唤醒动作,而自由度越大的代价就是开发人员需要很好的设计Ecu的唤醒时序,提供Ecu唤醒过程的鲁棒性。

唤醒源的状态

在EcuM中规定了唤醒源的4中状态:NONE、PENDING、VALIDATED、EXPIRED。四种状态关系的切换关系如下所示:

poYBAGMES7WAJoCFAADeSJyKHwM989.png

当Ecu上电时,唤醒源的初始状态是NONE,当唤醒源状态切换到NONE时,需要通知到BswM模块,上图也可以看出,唤醒源的每次状态切换都需要通知到BswM模块,通知接口:BswM_EcuM_CurrentWakeup。

EcuM是如何知道有唤醒事件呢?EcuM如果想知道有唤醒Ecu的事件,最好的方式就是给底层提供一个接口或者注册一个回调,Autosar里规定了标准接口:EcuM_SetWakeupEvent。当有唤醒事件发生时,底层的硬件模块(例如:Transceiver、Sensor)最先识别到,之后通过该接口上报给EcuM。

EcuM主函数会轮询检测底层上报的唤醒事件,如果想进一步的分析唤醒事件是不是有效的总线唤醒源(网络管理报文),需要Ecu有正常的收发报文能力,想要收发报文,Transceiver和Controller两个模块均需要启动。一般来讲,Transceiver会在程序初始化时进入正常的工作模式,而Controller进入正常的工作模式是EcuM调用EcuM_StartWakeupSources的结果,而该接口的内部功能的实现由开发者自行把控,autosar并未做硬性的要求。

启动Transceiver和Controller,建立了报文的正常收发能力,Ecu即可进一步的将报文上报上层模块,如:CanIf,即此时Ecu可以拿到总线的RawData,不管是不是网络管理报文,Ecu都可以做进一步的功能实现,如收到诊断报文唤醒网络等。

一般来说,会在EcuM模块配置两个时间参数,CheckWakeup和ValidateWakeup时间,如果CheckWakeup时间走完走完没有判断到有效的唤醒源,则调用EcuM_StopWakeupSources关闭唤醒源,这里多数关闭controller,进而Ecu失去通信能力。

ValidateWakeup时间参数配置与否决定了是否使用唤醒事件的验证功能,如果配置该参数,且验证唤醒事件有效后则通知ComM使能通信,调用ComM接口:ComM_EcuM_WakeupIndication。如果该参数没有配置,则EcuM不在绕圈,直接通知BswM唤醒事件有效,通知ComM开启通信。个人理解:该参数配置较合理。

第一:可以验证唤醒事件的有效性,避免因总线抖动等干扰造成的非预期Ecu唤醒;

第二:如果使用的Transceiver没有Pn功能,Ecu会因总线的扰动而不断的唤醒,假设总线有应用报文没有网络管理报文,ValidateWakeup时间给0,Ecu将会不断的走上下电流程,如果下电选择OFF流程(实际项目中很多开发人员没有开启Reset流程的Operation,即直接冷启动,这不符合autosar规范,也不安全),将会带来未知问题(如果Ecu内核有一定时间内唤醒次数限制,超过阈值则可能上锁保护),设置该参数可以有效的延迟Ecu唤醒频率。


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8575

    浏览量

    151014
  • 总线
    +关注

    关注

    10

    文章

    2878

    浏览量

    88051
  • AUTOSAR
    +关注

    关注

    10

    文章

    360

    浏览量

    21553
收藏 人收藏

    评论

    相关推荐

    【AI技术支持】ESP32-C3-MINI-1U模组睡眠模式下唤醒死机问题

    启明云端/01你是否曾遇到过?在使用ESP32-C3-MINI-1U模组,ESP-IDF版本为idf5.0.1时,在睡眠模式下上电唤醒概率失败,模组死机,串口没有任何信息打印,为什么?启明云端
    的头像 发表于 10-23 08:01 505次阅读
    【AI技术支持】ESP32-C3-MINI-1U模组睡眠模式下<b class='flag-5'>唤醒</b>死机问题

    干货分享 | TSMaster—LIN 唤醒与休眠机制

    在汽车总线中常见的唤醒方式硬线唤醒、网络唤醒和特定信号唤醒,而LIN总线则是通过休眠帧与唤醒
    的头像 发表于 09-25 08:03 1562次阅读
    干货分享 | TSMaster—LIN <b class='flag-5'>唤醒</b>与休眠机制

    请问esp32c6 wifi6 twt如何在程序里知道CPU已经唤醒

    30mA。 在twt建立后,从电流曲线能看到板子确实在按照约定的时间在唤醒休眠中循环,但是这个过程中例程里没有日志输出。 我比较好奇的是,在代码中有没有办法知道何时唤醒?或者说,能否在唤醒
    发表于 06-07 08:23

    蓝牙模块唤醒原理是怎样的?

    具有一项独特的功能——唤醒功能。本文将详细介绍蓝牙模块唤醒的工作原理。  一、蓝牙模块唤醒的基本原理  蓝牙模块唤醒的工作原理主要基于低功耗蓝牙(BLE)技术。低功耗蓝牙技术是一种实现
    的头像 发表于 05-27 15:52 1440次阅读
    蓝牙模块<b class='flag-5'>唤醒</b>原理是怎样的?

    三星贴片电容规格哪些?怎么选择

    在这里可以明确的告诉大家,三星贴片电容的规格很多。目前有上百种电三星贴片电容的规格,因为不同的三星贴片的规格,所适用的电器是不一样的。那么三星贴片的电容哪些?如果大家想要知道三星
    的头像 发表于 05-24 16:31 361次阅读
    三星贴片电容规格<b class='flag-5'>有</b>哪些<b class='flag-5'>呢</b>?怎么选择<b class='flag-5'>呢</b>?

    stm8s halt之后无法唤醒怎么解决?

    我用的是003f3p6,现在遇到一件很奇怪的事,在连接STLINK的时候,单片机可以很正常地从halt模式中唤醒,但是如果不连接的话,就会无法唤醒,不知道有人遇到过同样的情况吗?求帮助!
    发表于 05-08 08:18

    stop mode下怎么实现按下矩阵键盘的任意键将系统唤醒

    请问有没有大佬知道stop mode下怎么实现按下矩阵键盘的任意键将系统唤醒?用WAKEUP 能实现吗?
    发表于 05-06 07:08

    操作FreeRTOS时,执行__WFI()导致系统滴答中断无法唤醒设备怎么解决?

    内核时钟全部关闭了,导致滴答中断无法触发,不知道是不是这样的原因 2、如果__WFI()无法使用滴答中断唤醒,那能否用普通定时器唤醒,怎么样能够让普通定时器去替代系统滴答 希望
    发表于 04-24 08:29

    PC端打开串口助手,怎么会影响到STM32的WKUP唤醒

    。 问题: PC端 打开串口助手,怎么会影响到 STM32 的 WKUP 唤醒? 难道是串口什么信号引脚干扰了内核唤醒? 非常感谢!
    发表于 04-24 08:26

    DCM模块唤醒网络主动与被动唤醒机制探讨

    CanNm专题机从Prepare Bus-Sleep Mode切换到Nework Mode的Repeat Message State是如果是通过CanNm_PassiveStartUp()条件切换的就是被动唤醒,如果是通过CanNm_NetworkRequest()条件切换的就是主动
    发表于 03-15 11:20 1048次阅读
    DCM模块<b class='flag-5'>唤醒</b>网络主动与被动<b class='flag-5'>唤醒</b>机制探讨

    stm32进入stop模式后,为什么uart还能触发中断并唤醒stm32

    我的理解是stm32进入stop模式后,外设时钟都停掉了,比如uart的时钟,也就是说uart无法收数据了,为什么uart还能触发中断并唤醒stm32
    发表于 03-15 08:16

    STM32WL55启用Radio初始化,RTC待机唤醒模式失效的原因?

    排查了很久,发现使用了Radio.Init();函数后原本使用的Standby模式被一直唤醒(程序使用的是RTC5秒唤醒),老哥知道原因吗?
    发表于 03-12 08:34

    电动汽车的ECU进入休眠后,目前有3种唤醒模式,CAN总线和AC电压的唤醒设计原理是什么?

    电动汽车的ECU进入休眠后,目前有3种唤醒模式,我想知道CAN总线和AC电压的唤醒设计原理是什么?
    发表于 02-02 06:19

    贴片加工厂生产前对PCB进行烘烤什么用

    在贴片加工厂待过的朋友们都知道,一般PCB在贴片之前都会放到烤箱进行烘烤(特殊板材除外),这样做什么用?接下来小编就为大家一一解析。
    的头像 发表于 01-12 11:10 881次阅读

    aducm360进入低功耗无法唤醒是什么原因导致的?如何解决?

    ,NVIC_EnableIRQ(EINT4_IRQn); EiCfg(EXTINT2,INT_EN,INT_RISE);//外部中断2,NVIC_EnableIRQ(EINT2_IRQn); 可是实际工作时,串口可以唤醒CPU,返回相应指令, 但外部中断4,却无法唤醒
    发表于 01-11 07:45