一、诊断
Autosar的诊断功能:标定、软件更新、功能检查、错误处理。
Autosar的诊断模块:
(1)Det(Default/Development Error Tracer) 默认或开发错误追踪————系统服务
用于开发过程的错误跟踪,可以将各个配置模块的错误进行跟踪(可以进行记录或者使能断点)
(2)Dem(Diagnostic Event Manager) 诊断事件管理————系统服务
用来记录和存储诊断事件的,将这些诊断事件及相关信息(冻结帧及扩展数据)记录到EEPROM
(3)Fim(Function Inhibition Manager) 功能————系统服务
当一些error出现的时候,禁止一些功能;FIM根据故障内容(DEM模块)对功能进行禁用或者降级(出于安全考虑将部分功能禁用)
(4)ECUM(ECU State Management)————系统服务
ECU 的状态管理
(5)Dcm(Diagnostic Communication Manager) 诊断通信管理————通信服务
诊断通信的管理,依据协议UDS(Unified Diagnostic Services——ISO14229),主要提供读写数据、读取DTC、通信管理等服务
二、诊断协议——诊断协议(UDS ISO14229)
三、诊断流程
1)SWC: → 把故障及状态报给DEM
2)DEM: → 把当前故障加入到fault memory、触发FIM
3)BSW: → 给DEM报故障(如NVM写入失败或者排队任务数溢出或者校验错误)
4)ECUM: → 在不同时序调用DEM的初始化工作
5)FIM: → 给SWC提供一个控制机制,可以使能或者失能SWC的功能
6)DCM: → 把请求命令和写入目标给到DEM
DEM: → 轮询DCM的任务请求,并实现数据的填充,后通知DCM任务完成
(DCM:读取DTC和清除DTC(根据DTC读冻结帧(也叫快照)(19 04 xx xx xx yy)))
7)NVM: → 存储DEM中非易失性存储模块的数据
Rte(Application) | 诊断服务的实现 (0x22(读取数据或状态)、0x2E(写数据或状态)、0x2F(功能IO控制)、0x31(例程控制)) |
BSW | 网络通信管理 (0x28服务) |
DEM模块 | 诊断数据的传输 (0x14(清除DTC)、0x19(读取DTC)) |
DCM | 0x10(诊断会话控制) 、0x11(ECU复位)、 0x27(安全访问)、0x28(通信控制) 、0x3E(待机握手) |
四、诊断事件管理(DEM)
诊断事件管理模块作为AutoSar诊断模块的重要组成部分,主要负责处理和存储诊断事件(错误)和关联数据。
DEM模块包括诊断数据的传输(0x14(清除DTC)、0x19(读取DTC))
DEM模块相关标准包括:ISO 14229(UDS)和ISO 15031(OBD)。
扩展数据(Extended):
该数据在DTC的状态Pending置上后便会一同保存在非易失性存储单元(EEPROM),对两个常用数据进行说明
冻结帧(Freeze Frame):
记录发生故障时的工况(SnapShot:由一些列的DID组成),当DTC状态位Confirmed位由0置为1时将记录snapShot。
快照SnapShot是一群DID数据的集合,每个DTC在Confirm时可以生成快照,将当时的一些关键数据存储在NVM中。诊断仪可以通过19服务读取SnapShot的具体数据
二、诊断通信管理(DCM)
诊断通信管理(Diagnostic Communication Manager, DCM)模块作为AutoSar诊断模块的重要组成部分,主要负责诊断数据流和管理诊断状态,包括诊断会话、安全状态及诊断服务分配等。
诊断通信管理(DCM)主要包括三个子模块:
(1)诊断服务层(Diagnostic Service Layer,DSL)
确定诊断数据请求和响应的数据流;监控和确保诊断请求和响应的时序,管理诊断状态。用于诊断请求的处理及诊断时序的控制。(处理诊断请求;处理诊断响应;管理安全等级)
(2)诊断服务分配(Diagnostic Service Dispatcher, DSD)
接收到的诊断请求转发给数据处理器;当数据处理器触发时,通过PDUR传输诊断响应。用于诊断服务的分配、服务执行环境及条件,会从接收的数据识别请求的服务类型(0x10、0x27、0x22)。(检查诊断服务;汇总响应数据)
(3)诊断服务进程(Diagnostic Service Processing, DSP)
处理实际的诊断请求