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功能

Autosar学习笔记——(三)诊断服务相关推荐

  1. Spring Cloud 学习笔记(三) 之服务治理模块Spring Cloud 服务发现与消费

    2019独角兽企业重金招聘Python工程师标准>>> 一.前言 前面的文章我们已经讲了如何搭建服务注册中心,如何搭建客户端去注册.接下来我们讲一下服务的发现与消费 二.服务注册 1 ...

  2. 【小猫爪】AUTOSAR学习笔记06-Communication Stack之ComM模块

    [小猫爪]AUTOSAR学习笔记06-Communication Stack之ComM模块 前言 1 ComM简介 2 ComM功能介绍 2.1 PNC 状态管理 2.2 Channel状态管理 2. ...

  3. 【小猫爪】AUTOSAR学习笔记01-AUTOSAR架构简介

    [小猫爪]AUTOSAR学习笔记01-AUTOSAR架构简介 前言 1 背景介绍 2 基本概念 3 方法论 4 分层软件架构 4.1 Application Layer(APP) 4.2 Basic ...

  4. 【小猫爪】AUTOSAR学习笔记02-Communication Stack简介

    [小猫爪]AUTOSAR学习笔记02-Communication Stack简介 前言 1 简介 2 CAN消息的传播路径 2.1 Com服务 2.2 Dcm服务 2.3 SM服务和NM服务 3 补充 ...

  5. 【小猫爪】AUTOSAR学习笔记17-AUTOSAR OS

    [小猫爪]AUTOSAR学习笔记17-AUTOSAR OS 前言 1 OS 基础 1.1 Startup和Shundown 1.2 Task 1.3 Counter 1.4 Alarm 1.5 Res ...

  6. 【小猫爪】AUTOSAR学习笔记16-Memory Stack之Nvm模块

    [小猫爪]AUTOSAR学习笔记16-Memory Stack之Nvm模块 前言 1 Memory Stack结构 2 NvM模块 2.1 Block 2.2 数据结构 2.3 Redundant B ...

  7. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  8. SAP FSM 学习笔记(四) : 现场服务技师使用的移动应用

    这个系列的前三篇文章: SAP FSM 学习笔记(一) : 使用API消费FSM的数据 SAP FSM 学习笔记(二) : SAP FSM的微信接入 SAP FSM 学习笔记(三) : 在微信里创建S ...

  9. 【小猫爪】AUTOSAR学习笔记03-Communication Stack之CanIf模块

    [小猫爪]AUTOSAR学习笔记03-Communication Stack之CanIf模块 前言 1 CanIf简介 2 功能介绍 2.1 发送缓冲区 2.2 CAN Controller 模式控制 ...

  10. K8S 学习笔记三 核心技术 Helm nfs prometheus grafana 高可用集群部署 容器部署流程

    K8S 学习笔记三 核心技术 2.13 Helm 2.13.1 Helm 引入 2.13.2 使用 Helm 可以解决哪些问题 2.13.3 Helm 概述 2.13.4 Helm 的 3 个重要概念 ...

最新文章

  1. jQuery中的事件机制深入浅出
  2. 干掉Navicat:正版,MySQL官方客户端真香!
  3. 追求极致的AI·OS——AI·OS引擎平台
  4. mac安装和卸载mysql_小白自学MySQL笔记(一):Mac环境的安装和启动
  5. 前端技巧:谷歌浏览器的font boosting[Text Autosizer]
  6. Ionic3 环境搭建以及基础配置实现(更新中)
  7. 原生安卓苹果APP-java抢单派单系统平台源码
  8. ROS 可视化(一): 发布PointCloud2点云数据到Rviz
  9. 单片机C语言任何位置跳转到任何指定地址 -转
  10. ubuntu系统配置双网卡方法
  11. 2021-09-08 全排列
  12. 希腊字母表(含读音)
  13. .net xml转json
  14. rxbus 源码_从 RxBus 这辆兰博基尼深入进去
  15. python 红黑树_手把手教你43行代码写红黑树(包括删除操作)
  16. mysql时间函数之hour,minute,second用法_前进的火车_新浪博客
  17. POJ2187-最远点对-旋转卡壳(怎么开心怎么读)
  18. 【vscode软件安装配置vue】
  19. .Net 6.0中的新增特性_.Net 6.0中的新增功能
  20. sonarQube安装使用介绍、扫描Vue代码

热门文章

  1. 机器学习-支持向量机(python3代码实现)
  2. 第三十四届广东金融科技交流会顺利举行,墨云分享风险验证技术新思路
  3. lspci 常用命令及其实现原理简述
  4. P1577切绳子问题
  5. html5 图片局部马赛克,javascript - JS实现马赛克图片效果完整示例
  6. 智能指纹锁迎来大风口,能否在三年内成为大众消费品?
  7. windows 系统密码破解工具(适合各种版本windows)
  8. 快速启动以管理员身份运行命令行窗口命令
  9. 如何判断一个网站是WordPress搭建的网站以及网站SEO网络推广
  10. git仓库的基本使用_码云中国