基础概述

简介: 基础概述

参考文档

缩写

  • 以下是诊断通信管理文档中可能涉及到的缩写:
缩写 描述
API Application Programming Interface - 应用程序编程接口
CAN Controller Area Network - 控制器区域网络
CEMR ControlEnableMaskRecord - 控制启用掩码记录
Dcm Diagnostic Communication Manager - 诊断通信管理器
Dem Diagnostic Event Manager - 诊断事件管理器
Det Default Error Tracer - 默认错误跟踪器
DID Data Identifier - 数据标识符
DSD Diagnostic Service Dispatcher - 诊断服务调度程序(Dcm 模块的子模块)
DSL Diagnostic Session Layer - 诊断会话层(Dcm 模块的子模块)
DSP Diagnostic Service Processing - 诊断服务处理(Dcm 模块的子模块)
DTC Diagnostic Trouble Codes - 故障诊断码
ID Identifier - 标识符
LIN Local Interconnect Network - 本地互联网络
MCU Micro-Controller Unit - 微控制器
MOST Media Orientated System Transport - 面向媒体的系统传输
NRC Negative Response Code - 否定响应码
OBD On-Board Diagnosis - 车载诊断
OSI Open Systems Interconnection - 开放系统互连
PDID Periodic Data Identifier - 周期性数据标识符,由 Dcm 在通过周期性标识符读取数据的请求之后周期性地发送
PDU Protocol Data Unit - 协议数据单元
PID Parameter Identifier - 参数标识符
RCRRP Response correctly received - response pending - 正确收到响应-响应挂起
RID Routine Identifier - 例程标识符
ROE Response On Event - 事件响应
RTE Runtime Environment - 运行时环境
SAP Service Access Point - 服务接入点
SDU Service Data Unit - 服务数据单元
SID Service Identifier - 服务标识
SW-C Software-Component - 软件组件
TP Transport Protocol - 传输协议
UDS Unified Diagnostic Services - 统一诊断服务
Xxx_ Placeholder for an API provider - API提供程序的占位符
SPRMIB suppressPosRspMsgIndicationBit - 消息抑制响应指示位

介绍和功能概述

  • DCM SWS 描述了 AUTOSAR 基本软件模块 Dcm(诊断通信管理器)的功能、API 和配置
  • Dcm 模块为诊断服务提供了一个通用的 API
  • Dcm 模块的功能在开发、制造或服务期间被外部诊断工具(Tester)所使用
  • 外部诊断工具与车载自动存储器应用程序之间的通信概述图如下所示:

  • Dcm 模块可确保诊断数据流安全,并管理诊断状态,特别是诊断会话和安全状态。此外,Dcm 模块会根据诊断状态检查是否支持该诊断服务请求,以及是否可以在当前会话中执行该服务
  • Dcm 模块提供了 OSI 7层(如下图)模型中的第 5 层到第 7 层:

  • 在 OSI 第 7 层上,Dcm 模块提供了一套广泛的 ISO14229-1 服务。此外,Dcm 模块提供了支持文件 SAEJ1979ISO15031-5 中定义的 OBD 服务 0101−0A 的机制。通过这些服务,AUTOSAR OBD 功能能够满足全球所有轻型 OBD 法规的要求(加利福尼亚 OBDII、EOBD、日本 OBD 和所有其他)
  • 在 OSI 第 5 层,Dcm 模块处理以下规范的独立于网络的部分:
  • ISO15765-3:统一诊断服务的实施(CAN上的UDS)
  • ISO15765-4:排放相关系统的要求,第 5 章 “会话层”
  • 在 AUTOSAR 体系结构中,诊断通信管理器位于通信服务(服务层),如下图所示

  • Dcm 模块是独立于网络的
  • 所有网络特定的功能(CAN、LIN、FlexRay 或 MOST 等网络的具体功能)都在 Dcm 模块之外处理
  • PDU 路由器(PduR)模块为 Dcm 模块提供与网络无关的接口
  • Dcm 模块接收来自 PduR 模块的诊断消息
  • Dcm 模块在内部处理和检查诊断消息
  • 作为处理请求的诊断服务的一部分,Dcm 将与其他 BSW 模块或 SW 组件(通过 RTE)进行交互,以获得请求的数据或执行请求的命令
  • 通常,Dcm 将收集到的信息进行汇编,并通过 PduR 模块发回消息

相关规范

  • AUTOSAR 提供了基本软件模块的通用规范 SWS BSWGeneral,该规范也适用于诊断通信管理器
  • 因此,SWS BSW General 应被视为诊断通信管理器的附加和必要规范

与其他模块的依赖关系

  • AUTOSAR 诊断通信管理器(DCM)与其它软件模块的以来关系如下图:

  • 诊断事件管理器(DEM):DEM 模块提供检索与故障记忆相关的所有信息的功能,以便 Dcm 模块能够通过读取故障记忆中的数据来响应测试者的请求
  • 协议数据单元路由器(PduR模块):PduR 模块提供发送和接收诊断数据的功能。PduR 为诊断应用层和底层传输层提供 SAP 接口
  • 通信管理器(ComM):ComM 模块提供的功能使得 Dcm 模块可以指示诊断通信的状态“活动”和“非活动”。Dcm 模块提供了处理通信要求 “Full-/Silent-/No-Communication” 的功能。另外,如果 ComM 模块请求,Dcm 模块提供启用和禁用诊断通信的功能
  • SW-C 和 RTE:Dcm 模块能够分析接收到的诊断请求数据流,并处理与诊断通信相关的所有功能,如协议处理和定时。基于对请求数据流的分析,Dcm 模块收集响应数据流,并将例程或 IO 控制执行委托给 SW-Cs。如果任何数据元素或功能状态不能由 Dcm 模块本身提供,则 Dcm 通过端口接口从 SW-Cs 或通过直接函数调用从其他 BSW 模块请求数据或功能状态
  • BswM:如果 Dcm 的初始化是从引导加载程序跳转的结果,则 Dcm 通知 BswM 应用程序已更新
  • 加密服务管理器(Csm):加密服务模块提供广泛的加密算法。Csm 用于身份验证计算
  • 密钥管理器(KeyM):密钥管理器模块提供对证书处理和 API 的支持,以通过证书实现经过身份验证的诊断

Dcm 中的子模块

  • Dcm 实现了ISO-14229 的协议,功能上实现上还是非常复杂的,所以 .AUTOSAR 对 Dcm 进行了分解设计,把 Dcm 模块分解成了以下子模块:
  • 诊断会话层(DSL - Diagnostic Session Layer)子模块:DSL 子模块负责确保与诊断请求和响应相关的数据流,监督和保证诊断协议中时间相关的问题,并管理诊断状态(特别是诊断会话和安全)
  • 诊断服务分发器(DSD - Diagnostic Service Dispatche)子模块:DSD 子模块处理诊断数据流,通过网络接收新的诊断请求,并将其转发给数据处理器,当数据处理器(如:DSP 子模块)触发时,通过网络传输诊断响应
  • 诊断服务处理(DSP - Diagnostic Service Processing)子模块:DSP 子模块负责处理实际的诊断业务(分别为子业务)请求
  • 下图概述了 Dcm 模块内的子模块 DSP、DSD 和 DSL 之间的接口【注:这些子模块的实现及其之间的接口不是强制性的。引入它们只是为了提高规范的可读性】

脚注说明

  • ISO14229-1:统一诊断服务(UDS)- 第 1 部分:应用层(2013-03 发布)
  • ISO15031-5:道路车辆 - 车辆与排放相关诊断外部设备之间的通信——第5部分:排放相关诊断服务
  • SAE J1979:SAE J1979 是由美国汽车工程师学会(SAE)制定的一项标准,旨在定义汽车诊断和数据通信的统一规范
  • ISO15765-3:控制器局域网(CAN)诊断-第3部分:统一诊断服务(CAN 上的 UDS)(2004 10-06 发布)
  • ISO15765-4:控制器局域网(CAN)诊断-第4部分:要求排放相关系统(2005 01-04 发布)
  • AUTOSAR glossary:见 “AUTOSAR_TR_Glossary” 文档
  • SWS BSWGeneral:基本软件模块通用规范(AUTOSAR_SWS_BSWGeneral)
目录
相关文章
|
3月前
|
SQL Java 关系型数据库
JAVAJDBC概述
JAVAJDBC概述
20 0
|
Java 微服务 Spring
spirngCloud框架-概述篇
spirngCloud框架-概述篇
|
9月前
|
存储 机器学习/深度学习 数据挖掘
FusionInsight概述
FusionInsight概述
188 0
|
11月前
|
存储
8.1 TEB与PEB概述
在开始使用`TEB/PEB`获取进程或线程ID之前,我想有必要解释一下这两个名词,PEB指的是进程环境块`(Process Environment Block)`,用于存储进程状态信息和进程所需的各种数据。每个进程都有一个对应的`PEB`结构体。TEB指的是线程环境块`(Thread Environment Block)`,用于存储线程状态信息和线程所需的各种数据。每个线程同样都有一个对应的`TEB`结构体。PEB中包含了进程的代码、数据段指针、进程的环境变量、进程启动参数信息以及加载的dll信息等。PEB结构体中的`FS段寄存器`通常被设置为`0x30`,指向当前进程的`PEB`结构体。其他
153 1
|
9月前
|
程序员 Linux C语言
01 C++ - 概述
01 C++ - 概述
58 0
|
开发框架 IDE .NET
C#基础Ⅰ-概述
C#基础Ⅰ-概述
|
存储 缓存 JSON
Dockerflie概述
Dockerflie概述
124 0
推荐系列(二):生成候选者概述
生成候选者概述 在上一节介绍了推荐系统的基本框架: 可以看到,生成候选人(generate candidate)是推荐的第一阶段,也被称作retrieve。给定查询,系统生成一组相关候选者。下表显示了两种常见的候选生成方法: 类型 定义 实例 基于内容的过滤 使用项目之间的相似性来推荐与...
1357 0
|
机器学习/深度学习 人工智能 算法
|
人工智能 算法 C语言
[从C到C++] 1.2 C++概述
[TOC] 20世纪80年代,AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事在C语言的基础上成功开发出C++语言。C++语言是一种混合型语言,它保留了C语言所有的优点,同时又增添了面向对象的编程机制,我们可以将C++语言视为C语言的改进和扩展。
2014 0