当前位置:网站首页>【UDS统一诊断服务】四、诊断典型服务(5)— 功能/元件测试功能单元(例行程序功能单元0x31)
【UDS统一诊断服务】四、诊断典型服务(5)— 功能/元件测试功能单元(例行程序功能单元0x31)
2022-04-23 05:47:00 【明如正午】
四、诊断典型服务(5)— 功能/元件测试功能单元(例行程序功能单元)
我自己汇总了一张表格,免积分下载,对应学习,效果更好!
链接:https://download.csdn.net/download/sinat_40003796/85031818
各功能单元诊断服务:
- 诊断和通信管理功能单元
- 数据传输功能单元
- 读故障信息功能单元(存储数据传输功能单元)
- 在线编程功能单元(上传下载功能单元)
- 功能/元件测试功能单元(例行程序功能单元)
- 输入输出控制单元(0x2F)
本文主要讲解“功能/元件测试功能单元(例行程序功能单元)”,其余的见其它文章。
————————————————————
“功能/元件测试功能单元(例行程序功能单元)”包括的服务:

(1)RoutineControl (0x31)服务
- 用于远程请求启动、停止某个例程或请求例程的执行结果
请求报文:

子功能routineControlType:

肯定响应:

RoutineControl (0x31)-详细介绍
31服务是调用ECU内置的一些操作序列的接口,这个服务的应用很灵活,因为厂家可以根据自己的需要为ECU定义各种各样的内部操作,而要执行这些操作只需要调用31服务就好了。典型的用途包括检查边界条件、清除闪存、对数据进行校验、对软硬件依赖性进行校验等,甚至有需要的话可以进行恢复出厂设置的操作,还有很多与ECU自身逻辑功能相关的操作也可以定义。

31服务的request由4部分组成 :
- SID, 服务ID
- sub-function,用于标识要执行什么动作,启动(0x01)、停止(0x02)、查询结果(0x03)?
- routineIdentifier,用于标识要执行的routine
- routineControlOptionRecord,这是一个可选参数,用于标识routine执行时所需要的参数,由各家自定义它的内容
举例1:
假设用0x0809这个ID来代表检查ECU是否满足软件刷写条件(比如车速、转速为0,KL15接通等)的routine。
tester发送31 01 08 09来启动0x0809这个routine
如果所有条件都满足,则ECU返回71 01 08 09作为echo即可,如果条件不满足,则ECU返回71 01 08 09 XX YY ZZ,后边的XX YY ZZ则表明哪些条件不满足,具体的内容就由厂家自己定义了。
举例2:
假设用0xFF00这个ID来代表清除ECU闪存的的routine。
tester发送31 01 FF 00 80 00 00 00 00 00 FF FF来启动FF 00 这个routine
80 00 00 00代表起始地址,00 00 FF FF代表数据长度(65535个字节)
如果正确执行了上面的routine,擦除了对应区域的数据,则ECU返回71 01 FF 00。
版权声明
本文为[明如正午]所创,转载请带上原文链接,感谢
https://star-302.blog.csdn.net/article/details/123712167
边栏推荐
猜你喜欢

定位器

【UDS统一诊断服务】一、诊断概述(3)— ISO 15765体系结构

Mysql database foundation

SQL -- data filtering and grouping

Robocode教程7——雷达锁定

【UDS统一诊断服务】三、应用层协议(1)

The most practical chrome plug-in

MySQL groups are sorted by a field, and the first value is taken

Dynamic creation and release, assignment and replication of objects

Addition, deletion, modification and query of MySQL table
随机推荐
Feign请求日志统一打印
安全授信
爬西瓜视频url
Formation à la programmation
Basic knowledge of network in cloud computing
selenium+PhantomJS破解滑动验证2
利用文件保存数据(c语言)
Flask操作多个数据库
MySQL advanced query
Rust:单元测试(cargo test )的时候显示 println 的输出信息
日志
Robocode教程4——Robocode的游戏物理
Arcpy为矢量数据添加字段与循环赋值
D. Optimal partition segment tree optimization DP
NVIDIA Jetson: GStreamer 和 openMAX(gst-omx) 插件
深拷贝和浅拷贝的区别
Robocode教程7——雷达锁定
Mysql database foundation
word排版遇到的格式问题
SVN简单操作命令