唤醒事件(也称唤醒源)有效性验证为什么要设置一段时间?

前言
上一篇中讲只有transceiver、controller处于正常工作模式以后才能有效的收发报文,进而才能识别报文的类型(nm message、xcp message、diagnostic message、app message)。但识别出这些报文需要一个前提:ecu上电同时整个主程序运行起来,且需要一定的时间去识别报文类型。
项目中,唤醒事件(也称唤醒源)有效性验证为什么要设置一段时间?ecu上电,整个主程序如何运行起来?
本篇就上述问题进行分析。
唤醒事件有效性验证时间分析
在实际的网络管理项目中,大家可能会遇到这样的需求:收到有效唤醒事件(如:网络管理报文),网络激活,报文正常收发;如果收到的报文是非网络管理报文,ecu需要保持一定时间后休眠(如:ecu保持5s,即5s内ecu处于供电状态)。注意后者网络仍然在bsm(bus sleep mode),只能此时间内接收报文,不能发送报文。如果ecu在该时间内收到有效唤醒事件(多数是网络管理报文,也可能是有效的power on信号报文),网络将激活,进而进行正常的报文收发。
注意:ecu唤醒是网络唤醒的前提条件,ecu唤醒并不一定网络唤醒,如果网络激活(进入normal mode)则ecu一定唤醒(run模式)。
为什么要ecu保持一段时间呢?这里说一下个人理解,ecu自身并不知道唤醒事件是不是有效,ecu只要被供电就从启动文件指定的位置开始执行程序。如果要识别该唤醒事件是不是有效需要上层模块(ecum)识别,而ecum从开始验证到确认该事件的有效性需要调用底层模块确认(如:controller或者transceiver),这需要时间,且ecum的验证和确认一般是异步执行,这也需要时间。上述时间其实并不长,项目不同执行的时间不等(每个项目初始化模块数量和读nvm时间不同),但多数在几十毫秒内执行完,但又为什么会要求1s或者5s或者更长呢?个人理解:ecu被唤醒,整个冷启动(可以理解为与电压相关的启动)花费了“较长”的时间,废了这么大劲立马shutdown有点“过分”,如果ecu下电又被干扰起来还需要重头再来(各个模块、外设初始化、读nvm等),既然这样还不如等待一段时间确定没有有效唤醒事件以后,ecu再走shutdown流程,进而避免ecu频繁的唤醒->休眠->唤醒,注意是ecu,不是网络被唤醒->休眠->唤醒,网络只有有效唤醒源才能激活。
ecu上电,程序运行过程分析
ecu如果要正常的运行程序,则需要供电,之后程序开始执行:启动文件->bootloader->application,进入“main”函数,也就是我们熟知的用户代码程序。用户代码程序包含aswc的runnable以及各个模块的main handler(如:cantrcv_30_tja1145_mainfunction),这些程序在os的调度下周期性或者事件触发执行,这也是上层模块可以收到消息和处理消息的基础。
这里主要分析ecum管理的上电到程序运行过程。autosar中,ecum分为flexible和fixed两种类型,因为fixed并不支持多核且不灵活,本文主要讨论flexible类型的ecum。
如上图(1)所示,c init code一般是应用程序的main函数,即ecum_init在应用程序的main函数被调用,ecum将控制ecu的启动流程,ecum调用startos,让os完成task的激活。
ecum_init并不能完成mcu所有的初始化动作,在startpreos sequence阶段主要完成det模块(最先完成初始化,以便其它模块可以上报开发错误)以及一些硬件外设的初始化,如mcu、port、internal watchdog等(主要根据项目需求设置要初始化的外设模块)。
如上图,ecum_startuptwo将完成schm(os),bsw模块的初始化,其中各个模块的初始化(can_init、canif_init等)在bswm中完成。程序所需的所有外设、模块初始化之后,启动scheduler 定时,即周期性的执行bsw/swcs任务,至此application程序得以运行。


滑动变阻器的使用和注意事项
OPPO首款全面屏F5国外发布,终于有理由买vivoX20了
0glasses AR发布了其最新的面向C端的AR眼镜产品——RealX
LED舞台应用的创新空间在哪?
英伟达机器人实验室专注于厨房辅助机器人等10多个项目
唤醒事件(也称唤醒源)有效性验证为什么要设置一段时间?
AMD RX 6900 XT官方成绩已经超越了RTX 3090
移动装置测量需求再进化 基础仪器换机潮涌现
汇编驱动IMX6ULL LED灯
Silicon Labs MCU大佬在做原始设计时选了哪些晶体?
电机驱动系统里导致EOS的一些常见根源是什么?
解锁光学设计“隐藏”功能,拉满“技能点”进阶光学高手
16bit/24bit模数转换器MS5192T介绍
波音737 MAX 10系列飞机目前已经获得了超过550架订单
盈方微拟购买华信科及World Style 49%股权
德国考虑禁用华为部分设备?
网络摄像机的照明度
通信教程01 什么是并行通信?什么是串行通信?
利用LDC2114与电感式触摸技术设计智能手表按键
磁翻板液位计选型需要考虑的七大因素