计算机系统应用教程网站

网站首页 > 技术文章 正文

漫话UDS之Service 19(二)

btikc 2024-12-14 10:07:13 技术文章 31 ℃ 0 评论


接着上篇文章:

主要讲述了ECU诊断中用到的DTC Status以及Service 19 02作用和用法。

本文接着上篇内容继续分享Service 19 另外两个重要且常用的子服务:

  • Service 19 04
  • Service 19 06

Service 19 04为快照信息(冻结帧),内容是记录车载控制器发生故障(DTC对应的故障)时,记录当时车载控制器的运行环境信息,环境信息包括什么?这个由OEM在制定诊断需求规范时定义。常见是ECU电压值、电流值、ECU温度、里程表、发送机转速、时间戳等等。目的是简化技术人员的故障隔离过程。

Service 19 06为扩展类数据存储,比如记录:

故障发生次数

线路老化次数

本文以以下内容为主题,分享该内容:

协议的定义(Service 19 04 / 06)

图形化说明(Service 19 04 / 06)

数据库编辑(CANdelaStudio)

CAPL应用(Service 19 04 / 06)

协议的定义(Service 19 04 / 06)

快照信息也叫冻结帧(不同协议或应用场景叫法不同而已),作用是当控制器发生故障时,记录发生故障时,控制器的一些环境信息。例如控制器发生故障时,当前的电压值、电流值、温度或者时间戳。记录发生故障时的环境信息,当Tester有需要时,发送Service 19 04来获取。

格式如下(重点):

其中涉及到参数解释:

SRN:Snapshot Record Number,快照序列号;

NoID: Number of Identifiers, i.e. number of DIDs;

DID:Data ID;

SD:Snapshot Data;

e.g. 定义DTC 0x 010203快照序列号:

Snapshot Record Number 01 = first occurrence;

Snapshot Record Number 02 = Last occurrence;

快照信息通过DID来反馈:

DID1 : Time Stampt;

DID2:Vehicle Speed;

当控制器检测出发生DTC 0x 010203所对应的故障时,将发生故障时对应的DID1和DID2记录

在整个控制器运行周期,记录统计类相应的数据内容,使用Service 19 06.

格式如下:

EDRN:Extended Data Record Number;

EDR: Extended Data Record;

在需求规范中,定义Extended Data Record Number序列号并定义其内容:

Extended Data Record Number 01 = Aging counter;

Extended Data Record Number 02 = Fault Detection Counter;

Extended Data Record Number 03 = Occurrence counter;

在编辑数据库中勾选每一个DTC所支持以上定义的计数内容。

图形化说明(Service 19 04 / 06)

  1. 定义两个快照序列号:

Snapshot Record Number 01 = first occurrence;

Snapshot Record Number 02 = Last occurrence;

如下图,第一次出现DTC故障时,对应的快照信息(见下);

最后一次(Tester检测时往前算的最后一次)出现故障对应的环境信息(同上见下)。

在理想状况下,应该是发生一次故障记录一次快照信息,但是考量到ECU芯片内存,所以采取如下策略:记录第一次和最后一次,其中间发生的后一次将前一次覆盖。


2、定义三个Extended Data Record Number序列号并定义其内容:

Extended Data Record Number 01 = Aging counter;

Extended Data Record Number 02 = Fault Detection Counter;

Extended Data Record Number 03 = Occurrence counter;

对应ECU中不同DTC可以选择支持不同的扩展数据序列号,对应就是请求不同的数据内容。

当需要都显示出时,用FF。

Extended Data Record Number 01 = Aging counter;

Extended Data Record Number 03 = Occurrence counter;

Extended Data Record Number 01 = Aging counter;

Extended Data Record Number 02 = Fault Detection Counter;

Extended Data Record Number 03 = Occurrence counter;

DTC2

DTC1

数据库编辑(CANdelaStudio)

关于使用CANdelaStudio编辑CDD文件(对应快照信息):

  1. 首先定义快照序列号:
  1. 对应添加DTC支持的快照信息(时通过DID来表达快照信息):

对应所有DTC都支持的快照信息,如下操作

对应不同DTC,支持不同DID快照信息,如下操作:

关于使用CANdelaStudio编辑CDD文件(对应扩展类存储数据):

Extended Data Record Number 01 = Aging counter;

Extended Data Record Number 02 = Fault Detection Counter;

Extended Data Record Number 03 = Occurrence counter;

  1. 首先编辑Extended Data Record Number:
  1. 不同DTC选择支持不同Extended Data Record Number:

支持与否,看OEM关于此ECU的诊断需求规范。

CAPL应用(Service 19 04 / 06)

使用CAPL测试ECU快照信息:

variables

{

long handle;

}

void MainTest ()

{

byte readSnapshotRecordNumber [6]={0x19,04,07,08,09,01};


handle =CanTpCreateConnection(0);

CanTpSetTxIdentifier(handle,0x610);

CanTpSetRxIdentifier(handle,0x612);

CanTpSendData(handle,readSnapshotRecordNumber,6);

testWaitForTimeout(2000);

}

测试Trace:

工程等同Service 19 06.

以上内容,希望对读者你有所帮助。



愿你我相信时间的力量,

做一个长期主义者!

-----------------------------------

作者简介 | 穿拖鞋的汉子

汽车电子工程师

公众号:车载诊断技术

chuantuoxiedehanzi@163.com

来,每天进步一点点!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表