当前位置: 首页 > news >正文

车载诊断框架 --- ECU运行周期operation cycle

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身边有这样灵性的人,一定要好好珍惜他们眼中有神有光,干净,给人感觉很舒服,有超强的感知能力有形的无形的感知力很强,能感知人的内心变化喜欢独处,好静,清静,享受孤独,不打扰别人不喜欢被别人打扰,在自己人世界里做着自己喜欢的事。

时间不知不觉中,来到新的一年。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)缩短断电响应时间。

在这里插入图片描述

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者

相关文章:

  • MFC 自定义十六进制显示控件
  • 重生之我要当云原生大师(二十)访问网络附加存储:
  • Java:204 基于springboot零食销售商城的设计与实现
  • DOS网络安全
  • 2025年软件测试行业趋势分析
  • Vue2官网教程查漏补缺学习笔记 - Part2深入了解组件 - 4插槽5动态组件异步组件6处理边界情况
  • IntelliJ IDEA集成本地化部署的DeepSeek
  • FaGeL:将LLMs用于具身智能研究的最佳案例
  • export default与export区别
  • Hutool - Cache:简单而强大的缓存实现
  • 书籍推荐:《书法课》林曦
  • Jmeter+Jenkins接口压力测试持续集成
  • 【旋转框目标检测】基于YOLO11/v8深度学习的遥感视角船只智能检测系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
  • Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat
  • CMake 判断 Mac编译环境是Intel的还是Arm的?
  • 初识camel智能体(一)
  • 【java面向对象的三大特性】封装、继承和多态
  • 【使用大模型prompt辅助PPT制作】
  • 【2025深度学习系列专栏大纲:深入探索与实践深度学习】
  • LM Studio无设置代理,更改镜像源方法(MAC)
  • 上海市委常委会扩大会议传达学习习近平总书记考察上海重要讲话和在部分省区市“十五五”时期经济社会发展座谈会上的重要讲话精神
  • 女租客欠租后失联,房东开门后无处下脚:40平公寓变垃圾场
  • 体坛联播|米兰逆转热那亚豪取3连胜,阿诺德官宣离开利物浦
  • “五一”假期预计全社会跨区域人员流动累计14.67亿人次
  • 儿童文学作家周晴病逝,享年57岁
  • 2年就过气!ChatGPT催生的百万年薪岗位,大厂不愿意招了