网站首页 > 技术文章 正文
本文分享车载诊断中常用Service 22.
该服务主要用于读取车载ECU的状态信息,这些状态信息由OEM和Supplier定义。常见信息包括:
- 系统状态ECU支持的信息
这些状态信息反应了ECU的系统状态信息,该类DID在UDS协议中已经定义(大小和属性内容),比如:
F18C:ECUSerialNumberDataIdentifier
F190:VINDataIdentifier
F195:systemSupplierECUSoftwareVersionNumberDataIdentifier
F197:systemNameOrEngineTypeDataIdentifier
等等,具体可以参看UDS附录表
这些内容都有一个特点:都是静态状态信息,可以ECU下线时写入到ECU内存中,后续直接通过Service 22 + DID读取该状态信息即可。
- ECU支持的数字或模拟状态信息
这些信息反应出ECU的运行状态信息,在协议中也是由OEM和Supplier自定义的内容。常见的是
ECU供电电压、ECU运行电流、ECU当前温度、车辆转速、车辆胎压等等。OEM在诊断需求规范中定义好该运行状态信息对应DID的名称和大小。
本文以如下内容,分享Service 22内容:
- UDS对Service 22定义
- 用图形说明Service 22
- CDD数据库编辑
- CAPL(With CDD and without CDD)
UDS对Service 22定义
UDS关于Service 22定义请求格式如下:
相应格式:
以及对应Service 22否定响应的NRC处理机制:
由UDS协议定义该服务可知:
- Service 22后可加多个DID,具体需要参看涉及项目ECU的诊断需求规范;
- 给出的NRC处理机制是General,具体可以在诊断需求规范中细化。
用图形说明Service 22
此处分两部分:
- 静态数据读取
- 动态数据读取
A:静态数据读取
这类数据在读取前已经存在于ECU芯片内存中,Tester直接读取,操作流程如下:
基于响应,获取需要读取的状态信息。
B:动态数据读取
动态数据读取稍微比静态数据繁琐些:
读取过程:Tester发送Service 22 + DID,ECU芯片及时获取该DID对应的数据信息内容,该内容通过采样模块连接对应的传感器(比如温度传感器),实时获取Tester测试时,当前的温度值
CDD数据库编辑
关于Service 22在CANdelaStudio中的编辑,重点在于DID的编辑方法。大致流程分享如下:
- 基于CDDT新建CDD文件后,勾选自己所需要的Class:
注:Class在CDD中表示“类”,UDS没有强制性定义。只是工具按照使用习惯进行定义,方便使用者快速找到一个诊断条例在诊断数据库中具体哪一个位置。
- 在DIDs(DID库)中编辑需求规范中定义的DID,此处需要注意的是基于需求规范,编辑DID名称和对应的数据解析关系(Data type)
如下在Trace截图:
若没有Data Type,对于DID显示的内容会是如上图通信报文,有Data type
另外如上回答了在编辑DID名称和Data type名称不一致的区别。鉴于对技术的严谨性,编辑CDD时,两者保持一致。
- 对于DID data type
常用如上图三种:
- Raw Value:一般用于整数型数据,比如表述VIN码值
- Text Table:枚举型数据,通过枚举可以将所有可能性列举出来(常用于开关量):
- Linear:线性数据用于数字信号与模拟信号之间的转换:
编辑好DID后,将DID划分到不同的类下面即可!
CAPL验证Service 22
脚本如下:
void mainTest()
{
diagSetTarget("Ecu");
getExtendedSession();
testWaitForTimeout(1000);
readInformationRequest();
testWaitForTimeout(1000);
}
getExtendedSession()
{
diagRequest Ecu.Extended_Diagnostic_Session_Start req1;
diagSendRequest(req1);
}
readInformationRequest()
{
long res;
diagRequest Ecu.VIN_Read req2;
res=diagSendRequest(req2);
if(res==0)
{
write("ECU give the positive response");
}
else
{
write("ECU give the negtive response");
}
}
对应的Trace:
愿你我相信时间的力量,
做一个长期主义者!
-----------------------------------
作者简介 | 穿拖鞋的汉子
汽车电子工程师
公众号:车载诊断技术
chuantuoxiedehanzi@163.com
来,每天进步一点点!
- 上一篇: UDS之29服务:认证服务
- 下一篇: 漫话UDS之Service 27
猜你喜欢
- 2024-12-14 鉴源实验室:车载ECU嵌入式设备的诊断测试 - 会话和安全控制
- 2024-12-14 AUTOSAR学习笔记之服务层介绍
- 2024-12-14 大众汽车为所有ID.系列引入OTA无线更新
- 2024-12-14 纯电动汽车整车控制器软件设计
- 2024-12-14 AUTOSAR BSW介绍
- 2024-12-14 AUTOSAR概述
- 2024-12-14 什么是AUTOSAR(一)——AUTOSAR概述
- 2024-12-14 UDS网络层介绍
- 2024-12-14 CAN编程介绍
- 2024-12-14 想要快速进阶车载测试!这些基础问题你一定要知道
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)