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

车载软件架构 --- AUTOSAR AP/CP中诊断的区别

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

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

周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧!
旧人不知我近况,新人不知我过往,近况不该旧人知,过往不与新人讲。纵你阅人何其多,再无一人恰似我。

时间不知不觉中,来到新的一年。2024结束,2025开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。

在这里插入图片描述

一、什么是诊断

首先,举个一个简单的例子来说明诊断的重要性:

想象你的汽车是一个经常生病的孩子,每当它出现问题时,它会哭泣(警告灯亮起)。而诊断技术就像是医生的听诊器,帮助你准确找出宝宝为什么哭泣,从而迅速治疗。

职责划分:在实际开发过程中,OEM的电子电器架构部门(EE),会在某个项目节点之前向各ECU的供应商提供相应的诊断调查表作为诊断开发的需求输入。供应商内部的系统工程师则负责根据诊断调查表设计ECU内部诊断架构和细节实现。

在这里插入图片描述

诊断调查表里一般包括通讯地址、DID、DTC、RID、快照等等一些服务要求,这些基本概念不多赘述。诊断依赖于通讯进行实现,下面主要聊聊这些需求在AP和CP中的实现。

一、DEM DCM FIM

在CP中,诊断主要依赖DCM/DEM/FIM来实现。在车载Classic AUTOSAR(汽车开放系统架构)中,诊断功能主要依赖DCM(Diagnostic Communication Manager,诊断通信管理器)、DEM(Diagnostic Event Manager,诊断事件管理器)和FIM(Function Inhibition Manager,功能抑制管理器)三个核心模块协同实现。以下详细解析各模块的功能及协作机制:

1、 DCM(诊断通信管理器)

作为诊断系统的“通信中枢”,负责管理与外部诊断工具(如诊断仪)的交互。支持UDS(统一诊断服务,ISO 14229)协议,提供读取故障码(DTC)、清除故障码、读写数据等服务。控制诊断会话的安全等级(如默认会话、编程会话)和通信模式(如全通信、静默通信)。:确保诊断请求与响应的时序正确性,避免通信阻塞。

子模块如下:

-> DSL(Diagnostic Session Layer):处理诊断请求/响应数据,监控时序。

-> DSD(Diagnostic Service Dispatcher):分配诊断服务请求至对应处理单元。

-> DSP(Diagnostic Service Processor):执行具体的诊断服务逻辑。

2、DEM(诊断事件管理器)

作为诊断系统的“故障大脑”,负责故障事件的检测、记录与状态管理。

-> 故障码(DTC)管理:接收来自传感器或软件组件(SWC)的故障上报,生成标准DTC(如P0101表示空气流量传感器故障);

-> 故障状态跟踪:监控故障的生命周期(如故障发生、确认、恢复),记录故障发生时的环境数据(如车速、温度)作为“冻结帧”;

-> 存储与恢复:将故障信息存储至非易失性存储器(NVM),确保下电后数据不丢失。

当DCM收到外部工具的“读取DTC”请求时,DEM提供故障码列表及关联数据。清除故障码操作通过DEM更新NVM中的故障状态。

3、FIM(功能抑制管理器)

作为诊断系统的“安全卫士”,在故障发生时抑制关键功能,避免进一步风险。

功能:

-> 功能抑制决策:根据DEM上报的故障严重程度,决定是否禁用相关功能(如发动机扭矩限制、辅助驾驶关闭);

-> 抑制规则配置:通过预定义的“故障-功能”映射表(如“电机过热故障”触发“动力输出限制”),实现灵活的策略管理。

与DEM协作:

DEM检测到严重故障后,通知FIM触发功能抑制。FIM通过修改功能权限状态(如设置FID标志位),阻止相关软件组件(SWC)执行危险操作。

协同工作流程示例

-> 故障检测:车载传感器检测到电机温度超限,软件组件(SWC)向DEM上报故障事件;

-> 故障记录:DEM生成DTC(如P1234),记录冻结帧数据,并更新NVM存储;

-> 功能抑制:DEM通知FIM故障等级,FIM根据规则禁用电机全功率输出;

-> 外部诊断:维修技师通过诊断仪(DCM接口)读取DTC及冻结帧,定位故障根源。

在这里插入图片描述

总结

DEM (Diagnostic Event Manager):

想象DEM是一个“日记作者”,每当车辆中的某个部分出现问题,它就会在日记中记下这个问题(诊断事件)。DEM会记录这些问题,并将它们传递给NVRAM Manager来保存。

在我们的类比中,NVRAM Manager就像是一个“书柜”,专门存放DEM写的日记。这样,即使车辆关机,这些日记(诊断事件)也不会丢失,因为它们被保存在EEP或Flash中。

DEM(诊断事件管理器)

核心职责:作为系统的"事件记录中枢",DEM持续监控ECU状态,捕获故障事件(如传感器失效、通信超时),并通过统一接口将事件分类存储至NVRAM。

关键动作

-> 事件优先级划分(如DTC严重等级)

-> 关联预配置的抑制策略(触发FIM)

-> 提供事件生命周期管理(如清除故障码需安全验证)

-> NVRAM Manager(非易失存储管理)

协作机制

-> 采用分页存储优化写入效率,平衡EEPROM/Flash擦写次数

-> 为DEM提供带校验的存储服务(如CRC验证防数据篡改)

DCM (Diagnostic Communication Manager):

DCM可以被视为一个“翻译官”。当外部设备(如OBD扫描器)想要与车辆通信并获取诊断信息时,它们会发送特定的命令或请求。DCM的任务是确保这些命令被正确解读和执行。

在UDS协议中,比如当你想要读取故障码,你需要发出特定的请求。DCM就会根据这个请求,从“日记作者”(DEM)处获取相应的信息,并翻译成外部设备能够理解的语言(通讯方式这里比较复杂)返回。

FIM (Function Inhibition Manager):

FIM就像是一个“警卫”。当“日记作者”(DEM)记录到某些特定的问题时,FIM会确保车辆的某些功能被禁用,以防止进一步的损害。

例如,如果控制器检测到故障,FIM就像一个负责安全的警卫,它会迅速关闭可能导致问题的部分(如shutdown某个SWC),以防止更大的损坏。

典型场景:发动机失火故障处理

故障触发与记录

ECU检测到气缸3失火率超阈值,DEM生成P0303故障码,标记为Class C(影响排放)

NVRAM Manager使用异步写入队列保存数据,避免阻塞实时任务

功能安全干预

FIM收到DEM事件后,查询抑制矩阵:

Level 1:限制转速至3000rpm(持续2个驾驶循环)

Level 2:若故障再现,激活跛行模式(最高车速30km/h)

技师诊断交互

DCM接收OBD扫描器的0x19 02请求(读取待处理故障码)

DEM校验请求权限后返回{P0303, 0x23(未确认故障), 0x01(Class C)}

技师修复后,DCM处理0x14服务清除故障码,FIM同步解除限制

设计进阶:模块协作优化策略

事件驱动架构

采用Pub-Sub模型(如AUTOSAR DEXT模板),DEM作为事件总线,减少模块间耦合

抑制策略热更新

FIM通过XCP协议动态加载抑制矩阵,支持OTA升级安全策略

存储负载均衡

NVRAM Manager实施磨损均衡算法,将DEM高频数据分区存储至FRAM+Flash混合介质

误区澄清

FIM并非被动响应DEM

实际部署中,FIM会集成硬件看门狗,直接监听关键传感器(如制动压力),实现多层级安全防护

DCM的协议无关性

通过ISO 22900(ODX)标准转换层,同一DCM实例可支持DoIP/CAN FD等多种物理链路

通过这种精密分工,车辆在确保功能安全的前提下,实现了故障可追溯、风险可控制、数据可交互的完整诊断生态。

在这里插入图片描述

故障响应流程:首先,应用层SWC将数据传递给DEM。随后,DEM分析并确定具体的故障,进而通知FIM。FIM在接到通知后,迅速判定并选择直接回调SWC或采用轮询方式来禁用SWC。

故障存档流程:应用层的SWC首先传递故障数据至DEM。DEM不仅会转发给FIM,还会与NVRAM Manager交互,确保将故障信息储存在EEP或Flash内,这有助于未来的维护和诊断工作。

在这里插入图片描述

二、DM

在AP中,诊断主要依赖DM实现,简单来说DM集成了DCM/DEM/FIM的功能。

Diag在AP中的位置 图来源于Vector

DM是AUTOSAR AP的诊断管理器。它是一个中介,负责接收和发送诊断信息,包括处理来自外部工具的诊断请求和与车辆内部其他系统的交互。简单说,就像医院的接待员,负责与患者通讯并根据病情给出处理建议或者引导到相关科室。

在这里插入图片描述

DM的协作流程示例:OTA升级故障处理

车辆远程升级过程中网络中断,触发诊断事件。

事件捕获

DM检测到升级服务(Software Cluster)的“下载超时”事件,生成动态DTC(如U0155);

调用持久化服务存储事件上下文(如失败的分片序号)。

功能安全响应

DM查询安全策略库,要求“软件更新集群”进入回滚模式;

通过服务代理通知网关模块限制非关键通信带宽,优先保障诊断通道。

外部交互

云端诊断工具通过DoIP发送请求(读取故障日志);

DM解析请求后,聚合多个软件集群的日志数据,生成标准ODX格式报告返回。

DM在AUTOSAR AP中代表诊断架构的范式转变——从“分散式模块协作”到“中心化服务枢纽”。它既继承了传统诊断的核心逻辑(如DTC管理、安全抑制),又通过服务化、动态化设计适应智能汽车的复杂需求(如OTA、车云协同)。理解DM需跳出CP的模块边界,聚焦其服务编排能力与跨域诊断视角。

在这里插入图片描述

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者

相关文章:

  • Python functools 模块的 @lru_cache 装饰器介绍
  • wps字符很分散
  • 【STM32】SPI通信协议W25Q64Flash存储器芯片(学习笔记)
  • OSS Browser2.0安装使用(阿里云对象存储OSS 图形化界面工具2.0版本)
  • 集成学习(下):Stacking集成方法
  • iPaaS集成平台安全通信的挑战与保障策略
  • MyBatis之参数传递
  • 网络故障排查指南:分治法与排除法结合的分层诊断手册
  • Diamond软件的使用--(5)查看原语
  • 【HTTP 传输过程中的 cookie】
  • 基于springboot和vue项目使用docker部署项目到服务器
  • 【DeepSeek 学c++】dynamic_cast 原理
  • Linux驱动学习笔记(六)
  • HAL库中串口中断开启
  • 23种设计模式(扩展)
  • Elasticsearch 倒排索引 和 正排索引
  • 健康养生:拥抱生活,从呵护身心开始
  • [OpenCV】相机标定之棋盘格角点检测与绘制
  • 集成学习(Ensemble Learning)基础知识2
  • 2025-03-21 Unity 网络基础3——TCP网络通信准备知识
  • 马上评|“衣服越来越难买”,对市场是一个提醒
  • 深圳拟出让3宗居住用地,共计用地面积6.77公顷
  • 媒体:“西北大学副校长范代娣成陕西首富”系乌龙,但她的人生如同开挂
  • 经济日报整版聚焦:上海构建法治化营商环境,交出高分答卷
  • 联合国秘书长欢迎中美经贸高层会谈成果
  • 智能手表眼镜等存泄密隐患,国安部提醒:严禁在涉密场所使用