一、概述
1.1、相关模块
1.直接提供诊断的模块:DCM(诊断通信管理)、DEM(诊断事件管理)、FIM(功能抑制管理器)
2.需要的其它模块:CANTP、FRTP、LINTP、SOAD
1.2、ISO 14229
1.该标准是UDS(Unified Diagnostic Service,统一诊断服务),定义了车辆诊断系统如何与车载电子控制单元进行通信的通用语言和规则。
2.包含一组在诊断测试仪与ECU之间串行传输的诊断服务。
3.规定了待发送消息的含义以及ECU对消息的响应行为所需的数据和信息。
1.3、DID(数据标识符)
1.3.1、经典角度(面向通信协议)

1.3.2、AUTOSAR角度(面向对象)
每个数据标识符都支持一个可能操作的总集,但通常只有其子集可用于特定的数据标识符。
1.4、DCM-DEM-FIM模型

二、CANTP-CAN传输层

1.CANTP是PDU路由和CAN接口之间的模块
2.CAN TP模块的主要目的是对长度超过8字节的诊断报文进行分段与重组:TP消息被称为N-SDU(网络层服务数据单元);SF(单帧)、FF(首帧)和CF(连续帧)的处理使用N-PDU(网络层协议数据单元)
3.支持不同的寻址格式:功能寻址和物理寻址;正常寻址,扩展寻址,混合寻址
三、DCM(诊断通信管理)
3.1、概述
1.DCM是网络独立的,为诊断服务提供通用的API
2.该AUTOSAR基础软件的功能由外部诊断工具使用,例如在开发、生产、维修或法规性OBD检测过程中。
3.DCM处理不同的诊断协议:OBD(车载诊断系统);增强型诊断
4.对于诊断会话处理,DCM也负责处理下列规范中与网络无关的部分:UDS的应用;排放相关系统的要求
5.确保诊断数据流;管理诊断状态:诊断部分、安全状态;检查诊断服务请求被支持;检查这个服务可能被执行在当前部分并且伴随当前安全状态
6.DCM位于通信服务层;在通信过程中,DCM接收了来自PDU路由的诊断消息;DCM将检查诊断消息;依赖于SID(诊断服务号),应用层的相关调用将被完成。
7.支持的服务:UDS;OBD;FBL交互
3.2、DCM ComM请求
1.DCM 通过 ComM 直接请求和释放通信:
(1)在处理进行中的通信服务期间:Ⅰ.DCM 在接收到 UDS 请求时调用 ComM_DCM_ActiveDiagnostic(Dcm_TpRxIndication);Ⅱ.DCM 在发送UDS 响应时调用 ComM_DCM_InactiveDiagnostic(Dcm_TpTxIndication)
(2)切换到非默认会话:ComM_DCM_ActiveDiagnostic
(3)切换到默认会话:ComM_DCM_InactiveDiagnostic
2.通信控制服务是一个例外,由BswN操作。
3.此外,DCM 使用BswM_DCM API 将其当前模式通知给 BSWM。
4.在处理进行中的诊断会话期间保持通信通道被请求:Ⅰ.默认会话,从发送 UDS 请求到收到 ECU 的 UDS 响应之间,只会收到一个 comM 请求。
3.3、模式管理
1.DCM 根据其接收到的 UDS 请求,向 BswM 发送模式请求。
2.DCM 充当诊断功能的管理者:
(1)0x10:DCM诊断会话控制;(2)0x11:DCM ECU复位;(3)部分0x11服务:DCM模式快速下电;(4)0x28:DCM通信控制;(5)0x85:DCM控制DTC设置;(6)0x86:DCM在事件上的响应
四、DEM(诊断事件管理)
4.1、模块操作

SWC通常调用Dem_SetEventStatus接口通知故障事件。BSW通过调用Dem_ReportErrorStatus接口设置内部接口。无论什么时候监控软件检测到事件,将通知DEM,DEM会记录这次事件。
4.2、事件
事件由以下部分组成:状态;去抖;指示器;DTC信息;规定一个事件的额外信息:(1)冻结帧;(2)扩展数据记录
4.3、OBD功能
1.仅支持立法定格帧(记录0),记录1及以上的记录将被忽略
2.DEM计算一些内部的PID(参数标识符,paramete identifier)
3.0x0D的PID号车速是所有OBD控制器需要的
五、FIM(功能抑制管理器)

应用必须去询问FIM是否某个功能能被运行或不能被运行:(1)功能抑制管理器(FIM)为每个功能标识符(FID)存储抑制条件,并在事件发生时由诊断事件管理器(DEM)触发;(2)功能抑制管理器(FIM)向诊断事件管理器(DEM)请求当前事件状态,并在收到请求时评估对应功能标识符的(抑制)条件。