车载软件架构 --- 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的功能。
DM是AUTOSAR AP的诊断管理器。它是一个中介,负责接收和发送诊断信息,包括处理来自外部工具的诊断请求和与车辆内部其他系统的交互。简单说,就像医院的接待员,负责与患者通讯并根据病情给出处理建议或者引导到相关科室。
DM的协作流程示例:OTA升级故障处理
车辆远程升级过程中网络中断,触发诊断事件。
事件捕获
DM检测到升级服务(Software Cluster)的“下载超时”事件,生成动态DTC(如U0155);
调用持久化服务存储事件上下文(如失败的分片序号)。
功能安全响应
DM查询安全策略库,要求“软件更新集群”进入回滚模式;
通过服务代理通知网关模块限制非关键通信带宽,优先保障诊断通道。
外部交互
云端诊断工具通过DoIP发送请求(读取故障日志);
DM解析请求后,聚合多个软件集群的日志数据,生成标准ODX格式报告返回。
DM在AUTOSAR AP中代表诊断架构的范式转变——从“分散式模块协作”到“中心化服务枢纽”。它既继承了传统诊断的核心逻辑(如DTC管理、安全抑制),又通过服务化、动态化设计适应智能汽车的复杂需求(如OTA、车云协同)。理解DM需跳出CP的模块边界,聚焦其服务编排能力与跨域诊断视角。
搁笔分享完毕!
愿你我相信时间的力量
做一个长期主义者
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37508.html
如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!