[AutoSar]BSW_Diagnostic_001 (UDS)诊断概述及入门


  

关键词

嵌入式、C语言、autosar、OS、BSW、UDS、diagnostic

平台说明

项目Value
OSautosar OS
autosar厂商vector , EB
芯片厂商TI 英飞凌
编程语言C,C++
编译器HighTec (GCC)
autosar版本4.3.1
参考文档TechnicalReference_Dcm.pdf AUTOSAR_SRS_DiagnosticLogAndTrace.pdf AUTOSAR_SWS_DiagnosticCommunicationManager.pdf AUTOSAR_SWS_DiagnosticEventManager.pdf AUTOSAR_SWS_FunctionInhibitionManager.pdf- 【14229-1.2.3】,【15765-1.2.3.4】. 【11898】

在这里插入图片描述
  
  
>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  
  

缩写描述
DEMDiagnostic Event Manager
DETDevelopment Error Tracer
DDMDiagnostic Data Modifier
DCMDiagnostic Communication Manager
DIDData Identifier
SIDServer Identifier
DDIDDynamic DID
RIDRoutine Identifier
PIDParameter Identifier
NRCNegative Response Code
OSIopen systems interconnection
DSDDiagostic Service Dispatcher (submodule of the DCM module)
DSLDiagnostic Session Layer (submodule of the DCM module)
DSPDiagnostic Service Processing (submodule of the DCM module)
DTCDiagnostic Trouble Codes

一、背景

  当ECU 封装好甚至说是车造好了后,要是车出现故障了,我们不可能首先一来就把车拆开找问题出在哪吧,这样费力不讨好。为了避免上诉情况,开发了一套诊断协议,诊断仪或者远程只需要通过这套协议就能获取到故障码和故障数据,方便定位是哪个位置出了问题,对症下药。除了故障诊断,通过这套协议还能实现标定,程序升级等功能。
  但是,如果各个供应商或者主机厂自己开发自己的协议,会导致成本和排查的复杂性。于是,基于ISO 14229 的协议便应运而生了,所以UDS 全称为Unified Diagnostic Services。其中,UDS ISO 14229-1:2013 和 ISO 15765-3:2004(后面被14229-3 代替) 为互补标准,是基于CAN总线应用层的。

请添加图片描述
  如下图所示,14229-1和14229-3适用于应用层,14229-2适用于会话层,15765-2适用于传输层也就是CANTP[AutoSar]BSW_Com012 CAN TP 模块介绍。11898是CAN总线相关协议,其中定义了CAN 报文结构和can传输的相关要求。

在这里插入图片描述

二、Autosar Diagnostic 总览

   Autosar 诊断规范包括Diagnostics Communication Manager(DCM),Diagnostic Event Manager(DEM)和Function Inhibition Manager(FIM),这三个模块结合使用以实现完整的整车诊断功能。
在这里插入图片描述

三、常用的UDS 服务

  
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、否定响应代码(NRC - negative response codes)

   注意:否定响应代码有优先级,具体优先级请查看具体服务对应的NRC。

在这里插入图片描述

五、什么是SID

   SID(Server Identifier)就是如上述第三节所述,分为了六个大类的UDS服务。其中有的SID支持子服务(sub-function),以0x27服务为例,支持的sub-function 如下:
在这里插入图片描述
例如:使用0x01 subfunction
在这里插入图片描述

六、什么是DID RID

6.1 DID

  DID(Data Identifier),在逻辑上表示一个对象(例如,进风口门位置,电压或者相关温度等)或对象集合,一般都是与产品系统相关的信息和一些配置信息。一般用于0x22 (readDataByIdentifier), 0x2E (writeDataByIdentifier), and 0x2F
(inputOutputControlByIdentifier)。
  DID由两个byte组成,代表的意思请参考ISO_14229_1 Table C.1 — DID data-parameter definitions
在这里插入图片描述
  发送请求格式:minimum length is 3 byte (SI + DID)

举个栗子:0XF190(VIN number) 读取VIN
在这里插入图片描述

6.2 RID

  RID(Routine Identifier),例程控制的ID,一般都是些与标定、烧录相关的耗时耗资源操作,一般用于 0x31 SID。
  DID由两个byte组成,代表的意思请参考ISO_14229_1 F.1 RoutineIdentifier (RID) definition
在这里插入图片描述

  发送请求格式:at least 4 (SI+SubFunction+RID Parameter)
  举个栗子:请求执行0x0201 routine 读取车辆指定信息。
在这里插入图片描述

七、功能寻址和物理寻址

   一辆车上有多个ECU,诊断仪和这些ECU的UDS有两种寻址方式:
物理寻址: 一对一,诊断仪对其中一个ECU进行通信,发送的UDS报文ID为ECU的物理ID。
**功能寻址:**一对多,一个诊断仪对多个通功能ID的ECU进行通信,发送的UDS报文为ECU的功能ID。
在这里插入图片描述

八、UDS请求和响应规则

  

8.1 请求格式

   SID + (sub_function)+ parameter

8.2 响应格式

   肯定响应: ( SID + 0x40) + (sub_function)+ parameter

   否定响应:0X7F + SID +NRC

8.3 正响应抑制

   在sub_function中,bit7 为 抑制位。如果置为1,则代表该请求如果是正响应则不回复,以节约通信资源减小负载。
在这里插入图片描述
  
  
>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  
  

  • 61
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老灰╮(╯-╰)╭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值