🙋♂️【UDS诊断服务介绍合集】系列💁♂️点击跳转
文章目录
- 一、服务概述
- 1.0x34服务——请求下载数据
- 1.1.0x34格式
- 2.0x36服务——数据传输
- 2.1.0x36格式
- 3.0x37服务——退出上传下载
- 3.1.0x37格式
一、服务概述
Client端使用Routine Control服务来执行定义的步骤序列并获取特定序列的相关结果。该服务有极大的灵活性。Service31的典型用途可以包括擦除内存、重置定义的数据、覆盖正常服务控制策略以及控制ECU值随时间变化的功能。
通过Service31可以启动特定序列、停止运行该特定序列、请求运行结果。该服务以往常用于ECU在做Software Update时,应用于检查刷写条件是否满足、传输数据完整性以及独立性检测。
1.0x34服务——请求下载数据
1.1.0x34格式
格式:34+①数据格式标识符(1byte)+②地址和长度标识符(1byte)+③存储地址(m个byte)+④存储容量(n个byte)
②的参数代表篇③、④所占字节长度
②的低4bit表示③,高4bit表示④;eg.③占0xa byte,④占b byte,则②为0xab
①高4bite 表示压缩方法,低4bite表示加密方法,一般是0x00;
常规用法:
34 00 44 +4Bytes Address+4Bytes Length
响应:
74+lengthFormatIdentifier+maxNumberOfBlockLength
lengthFormatIdentifier:高4个bit表示下面的maxNumberOfBlockLength参数占几个字节,低4个bit默认0
maxNumberOfBlockLength : 目标ECU允许Tester传输最大的字节数
举例:
请求:34 00 44 00 00 00 00 00 00 04 00
响应:74 20 08 02
2.0x36服务——数据传输
2.1.0x36格式
诊断仪向ECU传数据——下载
ECU向诊断仪传数据——上传
格式:36+①blockSequenceCounter+ ② transferRequestParameterRecord
① 0x34服务后,发送的第一个0x36服务时候①=0x01,每次0x36服务后,请求自增1,
当增加到0xFF,下次再请求0x36,①=0x00
②处为传输的数据
响应:76+③blockSequenceCounter +④ transferRequestParameterRecord
③与请求中的①一致
④刷写过程中不使用该参数,在使用0x35服务请求时,会使用该参数(数据上传)
3.0x37服务——退出上传下载
3.1.0x37格式
格式:37+transferResponseParameterRecord
transferResponseParameterRecord :字节长度和参数格式,厂家自定义的,没有定义默认字节数据为0
响应:77