Autosar学习笔记——(三)诊断服务

1. 汽车诊断的定义

1.1 在线诊断(Onboard Diagnostic System)

通过车辆自带的在线诊断系统对ECU的软硬件及各传感器参数进行某些常见故障的实时监控与发现,当系统判断电控系统出现故障时,会以仪表警示灯亮的形式来告知驾驶者,并在ECU的EEPROM或Flash内对相关DTC(Diagnostic Trouble Codes)进行存储,以便后续车辆被送至售后处,工程师对其进行故障检测时读取分析处理。

1.2 离线诊断(Offboard Diagnostic System)

将外部设备(如道通,元征公司生产的诊断仪)接在OBD诊断口上与整车网络各ECU进行通讯,以对各模块数据实行监控与检测分析。诊断设备通过发送满足诊断协议(如UDS)定义的诊断服务来实现诸如对已存储DTC的读取(如UDS的0x19服务)与清除(0x14服务),利用其他的整车控制指令来实现对车辆的动静态控制。

2.Autosar中和诊断相关模块

从上面离线诊断的过程描述中,我们知道需要在ECU的EEP或者Flash中读取存储的DTC,这就涉及到诊断事件的管理(DEM),需要通过CAN总线将DTC传送到诊断仪上进行解读显示,这就涉及到诊断通信管理(DCM),还有些其他的模块需要参与诊断,下面我们详细介绍。

2.1 诊断事件管理器DEM

诊断事件管理器DEM(Diagnostic Event Manager)负责直接处理与DTC相关的诊断服务,例如UDS中的0x19(读取故障码)及0x14(清除故障码)的服务,在ECU运行过程中,Monitor Function会进行持续的status检测,一旦出现疑似故障时,会直接调用DEM来进行故障check,确认后即可完成将诊断故障数据写入到EEPROM或者Flash中的过程。

2.2 诊断通信管理器DCM

诊断通信管理器DCM(Diagnostic Communication Manager)确保诊断数据流,并且管理诊断状态,特别是诊断对话期(0x10 Session Control)和安全状态(0x27 Security Access)。另外,DCM检查诊断服务请求是否被支持,以及根据诊断状态判断服务是否可以在当前对话期中执行。

DCM为所有诊断服务提供连接到AUTOSAR-RTE的接口。另外DCM也处理一些基本诊断服务。

在AUTOSAR体系结构中,诊断通信管理器(DCM)处在通信服务中(服务层)。DCM是应用和PDU路由器封装的车辆网络通信(CAN、LIN、FlexRay和MOST)之间的中间层。DCM与PDU路由器之间有一个接口。在通信过程中,DCM从PDU(Protocol Data Unit)路由器接收诊断消息。

DCM在其内部处理、检查诊断消息,并把消息传送到AUTOSAR SW组件进一步处理。根据诊断服务ID,将执行应用层中的相应调用。

DCM必须是网络无关的,所以协议和消息配置在DCM的下层。这需要连接到PDU路由器的网络无关接口。

DCM由以下功能块组成:

  • DSP - Diagnostic Service Processing

DSP主要包含了完整实现的诊断服务,这些服务在不同的应用之中是通用的(例如,访问故障数据),所以不需要由应用实现。

  • DSD-Diagnostic Service Dispatcher

DSD的目的是处理诊断数据流。这里的处理意味着:

通过网络接收新的诊断请求并发送到数据处理器。

当被应用触发时,通过网络传送诊断响应(AUTOSAR SW-Component或DSP)。

  • DSL-Diagnostic Session Layer

DSL保证数据流与诊断请求和响应有关。DSL也监督和确保诊断协议计时。进一步,DSL管理诊断状态。
功能禁止管理器FIM

2.3 功能禁止管理器FIM

功能禁止管理器FIM(Function Inhibition Manager)负责提供软件组件和软件组件功能的控制机制。功能由一个、多个或部分有相同权限/禁止条件的可执行实体构成。通过FIM方法,对这些功能的禁止可以配置甚至修改。所以,极大地提高了功能在新系统环境下的适应性。

FIM意义上的功能与可执行实体是不同并且独立的类型。可执行实体主要由调度需求来区分。与此相对的是,功能由禁止条件来分类。FIM服务关注SW-C的功能,但是并不局限于此。BSW的功能也能够使用FIM服务。

功能被指定了一个标识符(FID – function identifier),以及该特定标识符的禁止条件。功能在执行之前获得它们各自的权限状态。如果禁止条件应用于特定标识符,对应的功能将不再执行。

FIM与DEM密切相关,因为诊断事件和它们的状态信息作为禁止条件被提供给FIM。如果检测到了失效,并且事件报告给了DEM,那么FIM禁止FID和对应的功能。

为了处理功能和关联事件的关系,功能的标识符和禁止条件必须引入到SW-C模板中(与BSW等价),并且在配置期间构造数据结构以处理标识符对于特定事件的敏感性。这些关系在每个FIM中是唯一的。

RTE和FIM之间没有功能上的联系。在AUTOSAR中,RTE按照接口和调度需求处理SW-C。与此相对的是,FIM处理禁止条件并通过标识符(FID)为控制功能提供支持机制。因此,FIM概念和RTE概念不互相干扰。

2.4 开发错误跟踪器DET

开发错误跟踪器DET(Development Error Tracer)主要用于在开发期间跟踪和记录错误。API参数给出了追踪源和错误类型:

  • 错误所在的模块

  • 错误所在的功能

  • 错误类型

由软件开发者和软件集成者在特定应用和测试环境下为API功能选择最优的策略。可能包括以下功能:

  • 在错误报告API内设置调试器断点

  • 计算报告的错误

  • 在RAM缓存中记录调用和传递的参数

  • 通过通信接口发送报告的错误到外部日志

DET仅仅是对SW开发和集成的辅助,并不一定要包含在产品代码中。API已经定义,但是功能由开发者根据特定需求来选择/实现。

数据交互及接口如下:
在这里插入图片描述

参考文章:
AutoSar之诊断事件管理
AUTOSAR架构诊断功能简介
AutoSAR系列讲解(入门篇)4.7-BSW的Diagnostics功能

  • 2
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值