Advertisement

adaptive autosar的诊断模块DM是如何实现诊断的?

阅读量:

Adaptive AUTOSAR (Adaptive Automotive Open System Architecture) 是一种用于汽车电子控制单元(ECU)的软件架构标准,旨在支持高度动态和功能丰富的现代汽车应用。与经典的AUTOSAR标准不同,Adaptive AUTOSAR专注于满足汽车电子系统的高计算能力要求、灵活性和安全性,特别是在自动驾驶和高级驾驶辅助系统(ADAS)等复杂应用中。

在Adaptive AUTOSAR中,诊断模块是系统中非常重要的部分,它负责监控、检测和报告系统中的故障与异常情况。为了实现这一目标,Adaptive AUTOSAR提供了一种诊断管理框架,该框架包括诊断功能、故障管理、故障代码管理和健康监测等功能。

以下是详细的步骤介绍,涵盖诊断模块的开发和工作流程。

1. 诊断模块的基本概念

在Adaptive AUTOSAR中,诊断模块基于Diagnostic Communication Manager (DCM) 和 Diagnostic Event Manager (DEM) 来实现诊断功能。这些模块的主要作用是:

- 故障检测与管理:通过传感器、执行器或其他诊断方法检测到故障。

- 故障代码管理:对不同的故障进行分类和编码,使其在系统中易于识别和处理。

- 诊断通信:通过标准的通信协议(如UDS或ISO 14229)与外部设备(如诊断工具、维修站)进行故障报告和查询。

- 健康监控:提供汽车ECU状态和健康状况的监测,及时检测潜在的故障。

诊断服务管理

诊断服务管理是诊断模块的核心部分,负责处理诊断请求和响应。它包括以下几个步骤:

  • 请求验证 :检查诊断请求的格式和内容是否合法。
  • 服务检查 :确认请求的诊断服务是否受支持。
  • 会话和安全检查 :确保请求在正确的会话和安全级别下进行。

Adaptive AUTOSAR使用统一诊断服务(UDS)协议进行诊断通信。UDS协议定义了一系列标准化的诊断服务,用于读取和清除故障代码、执行控制单元重置等操作1

事件管理

事件管理模块负责监控和记录系统中的诊断事件,如故障检测和状态变化。它可以根据预定义的条件触发相应的诊断服务。

2. Adaptive AUTOSAR 诊断模块的工作流程

诊断模块的工作流程可以从以下几个方面进行详细描述:

2.1 故障检测

诊断功能首先需要在ECU内部进行故障检测。这个过程可以基于多种传感器数据、状态监测或通过内建的算法进行自诊断。常见的诊断方法包括:

- 传感器值检查:比如检查传感器输出值是否超出正常范围。

- 自诊断功能:ECU通过自身的内部算法和状态来判断其是否出现故障。

- 对比法:将当前数据与预设的正常值进行对比,若偏离过大则认为存在故障。

2.2 故障代码生成

一旦检测到故障,系统需要生成相关的故障代码,通常称为故障诊断代码(DTC)。这些代码遵循ISO 14229或UDS标准进行编码,便于外部诊断工具识别和处理。

- DTC(故障代码):每个故障事件都有一个对应的代码。DTC通常由ECU内部的诊断模块生成,并通过诊断通信接口(如CAN、Ethernet)发送给诊断设备。

- 故障记录:ECU会将故障事件记录在内存中(如故障内存),以便后续分析和检索。每个故障可能与发生时间、频率等信息一起记录。

2.3 故障的分类与存储

诊断模块根据故障的严重性、类型和发生频率,将故障分为不同的等级。例如:

- 永久性故障(Permanent DTC):这些故障一旦发生,不会自动清除,直到维修或处理完成后才能消除。

- 暂时性故障(Intermittent DTC):这些故障是偶发的,通常会自动消除。

- 历史故障:记录历史中曾经发生过的故障。

2.4 故障报告和诊断服务

在实现故障检测和故障代码生成后,Adaptive AUTOSAR通过诊断服务将故障信息提供给外部设备(如诊断工具、维修站)。此过程通常依赖于UDS(Unified Diagnostic Services)协议,标准的诊断操作包括:

- 读取故障代码:允许诊断工具读取并显示车辆的故障代码。

- 清除故障代码:在修复问题后,允许清除ECU的故障代码。

- 读取实时数据:允许诊断工具读取当前ECU的实时数据,以便进一步分析。

3. 开发流程

开发Adaptive AUTOSAR诊断模块通常包括以下几个步骤:

3.1 需求分析

- 诊断需求收集:首先,开发团队需要根据车辆的功能需求、法规要求和故障管理策略收集诊断需求。通常,汽车制造商会规定必须支持的故障码类型、诊断服务、通信协议等。

- 诊断功能规划:根据车辆的功能特性,设计相应的诊断功能,例如哪些模块需要支持自诊断、故障报告和通信。

3.2 诊断模块设计

- 诊断通信管理器(DCM):负责实现UDS协议、故障代码查询、清除操作等功能。

- 诊断事件管理器(DEM):负责记录和管理故障事件,包括错误的检测、存储、清除及其状态更新。

- 故障码管理:设计并实现故障码分类和存储逻辑,确保故障代码符合ISO 14229标准。

3.3 诊断模块实现

- 软件组件(SWC)开发:根据设计需求实现诊断功能,确保模块能够与汽车的ECU硬件、传感器和执行器正确交互。

- 通信协议实现:实现UDS或其他诊断协议,以便与外部诊断工具进行交互。

- 数据存储与管理:实现故障码存储机制,并确保ECU能够存储和恢复故障事件。

3.4 集成与测试

- 单元测试:确保每个诊断模块(如DCM、DEM)都能独立工作。

- 系统集成:将诊断模块集成到整体系统中,确保所有模块在实时运行时能正常检测故障和进行故障报告。

- 诊断工具测试:使用诊断工具验证故障码是否能正确读取和清除,确保与外部设备的通信正常。

- 故障仿真:通过仿真测试引入各种故障,验证诊断模块的有效性和可靠性。

3.5 调试与优化

- 性能优化:确保诊断模块在实时环境中的响应时间和计算资源使用优化。

- 兼容性检查:确保系统在不同的硬件平台、不同的ECU上能够正确工作。

4. 运行时工作流程

在运行时,Adaptive AUTOSAR诊断模块的工作流程包括:

1. 监控与检测:实时监控传感器和执行器的状态,判断是否发生故障。

2. 故障识别与报告:一旦检测到故障,生成故障代码并记录到故障内存中。

3. 故障信息传输:通过诊断通信协议(如UDS)与外部诊断工具进行交互,传输故障信息。

4. 故障处理:系统可以基于诊断结果进行故障处理或执行相关的容错策略,确保系统的安全性和稳定性。

总结

Adaptive AUTOSAR的诊断模块是基于标准的诊断服务和通信协议(如UDS)实现的,主要用于故障检测、故障代码生成、诊断通信等功能。它的开发涉及需求分析、模块设计、协议实现、系统集成等多个阶段,确保ECU能够实时有效地监测故障并与外部诊断工具进行交互。

全部评论 (0)

还没有任何评论哟~