我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。
老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:
简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身边有这样灵性的人,一定要好好珍惜他们眼中有神有光,干净,给人感觉很舒服,有超强的感知能力有形的无形的感知力很强,能感知人的内心变化喜欢独处,好静,清静,享受孤独,不打扰别人不喜欢被别人打扰,在自己人世界里做着自己喜欢的事。
时间不知不觉中,来到新的一年。2024结束,2025开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。

一、运行周期概念
ECU(Electronic Control Unit,电子控制单元)软件运行周期,即Operation Cycle,在汽车电子控制系统中具有特定的含义和重要性。以下是对ECU软件运行周期(Operation Cycle)的解释:
1、定义与理解
Operation Cycle定义了要运行的检测的开始和结束条件。在Operation Cycle开始时开始检测故障DTC,结束时停止检测。它可以看作是一个监控运行(monitor to run)的起止条件,一个操作循环可以包含多个监控循环test period。
类型与实例:
在Autosar等标准中,Operation Cycle有多种类型,如点火循环、上下电循环、OBD驾驶循环、暖机循环等。
点火循环一般指KL15满足off->on->off状态变化时为一个点火循环。
上下电循环可以理解为ECU从完全断电到供电的过程。
2、状态与设置
状态:在DEM(Diagnostic Event Manager,诊断事件管理器)中,Operation Cycle的状态包括DEM_CYCLE_STATE_START和DEM_CYCLE_STATE_END。
可以通过接口Dem_SetOperationCycleState设置Operation Cycle的状态。在程序初始化、DEM模块初始化时,将Operation Cycle设置为DEM_CYCLE_STATE_START;在Shutdown时序中,将Operation Cycle设置为DEM_CYCLE_STATE_END。
设置与控制:
Dem_SetOperationCycleState接口可以由SWC(Software Component,软件组件)调用,即Operation Cycle的起始和结束可以由上层控制。如果想获取当前Operation Cycle状态,可以通过Dem_GetOperationCycleState接口。
3 、与复位的关系
复位类型:ECU复位类型包括Application Reset、System Reset、异常复位(Trap)、诊断复位(如11服务、10 02/82)、Cold Start等。
复位与Operation Cycle:
一般和电压相关的复位类型(如冷启动)需要执行ECU的上下电时序,可以看作一个完整的操作循环。对于某些复位类型(如Application Reset),如果不会执行完整的Shutdown时序,则可能不被视为一个新的Operation Cycle。
复位后的处理:
在复位后,通常建议清除监控的所有中间变量,以避免DTC(Diagnostic Trouble Code,诊断故障代码)误报。例如,如果保留了故障检测计数器(FDC)等中间变量,可能会导致DTC上报过快。
4、应用与意义
周期性任务调度:
在ECU软件中,为了实现系统的实时性和可靠性,通常采用周期型任务调度方式。Operation Cycle作为检测的开始和结束条件,在周期性任务调度中起着重要作用。
故障检测与诊断:
Operation Cycle是故障检测和诊断的基础。在Operation Cycle内,根据预设的监控条件和周期进行故障检测。如果检测到故障,则根据故障检测计数器和确认阈值等参数进行故障确认和DTC存储。
软件设计与优化:
了解Operation Cycle的概念和原理有助于ECU软件的设计和优化。例如,在软件设计中需要合理设置监控条件和周期、处理复位后的状态恢复等问题;在软件优化中需要关注CPU负载和Task超时等问题以确保系统的稳定性和实时性。
二、实例化运行周期
操作周期的开始时间最迟在ECU完成启动序列时,并在ECU发生以下事件后的企业标准启动时间(比如2500毫秒)内启动,具体有如下类型:

1、ECU上电(电源连接至ECU);
当电源首次连接到ECU时,ECU需要从无电状态启动。这是ECU操作周期的初始触发点之一。
2从睡眠模式唤醒(ECU收到唤醒请求)或实施者定义的其他等效模式。
ECU在睡眠模式下消耗的能量极少,但当收到唤醒请求时,它会从睡眠状态转为活动状态。这个唤醒过程也应触发操作周期的开始。
3、触发硬重置(非通过诊断服务发起,参见参考文献[ISO14229]对“硬重置”的定义)。
硬重置是一种强制性的ECU重启方式,不是通过诊断服务发起的。硬重置完成后,ECU应启动一个新的操作周期。
4、发送请求硬重置的诊断服务的肯定响应(参见参考文献[ISO14229]对“硬重置”的定义)。
当通过诊断服务请求硬重置,并且ECU发送了肯定响应后,这也应触发一个新的操作周期的开始。
5、操作周期的停止时间最早在ECU开始执行其关闭序列时,并在发生以下ECU事件之前停止:

6、断电(电源与ECU断开连接)。
当电源与ECU断开连接时,ECU的操作周期自然结束。这是ECU关闭的明确信号。
7、进入睡眠模式(ECU进入睡眠模式)或实施者定义的其他等效模式。
为了节能,ECU可能会在没有活动任务时进入睡眠模式。进入睡眠模式之前,ECU应完成其操作周期的关闭序列。

对于断点需要注意事项:
A:关闭序列关键步骤:
数据持久化:保存故障码(DTC)、自适应学习值至非易失存储(NVM)。
执行器安全复位:关闭喷油器、回位节气门,避免机械损伤。
资源释放:释放共享内存、关闭中断,防止资源泄漏。
B:实时性保障:
使用高优先级任务抢占式处理关闭流程。
通过硬件支持(如电源管理IC)缩短断电响应时间。

搁笔分享完毕!
愿你我相信时间的力量
做一个长期主义者