前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >UDS诊断之31服务

UDS诊断之31服务

作者头像
xbai921031
发布2022-05-25 15:17:28
发布2022-05-25 15:17:28
11.1K0
举报

RoutineControl(0x31)—— 例程控制

这个服务是用来执行一系列操作序列的,是笔者见过的用途最广泛的一个服务,可以根据需求进行一些服务定制,例如擦除内存,一些自学习流程,故障自检测,配置某些数据参数等。

例程控制可以用来进行以下操作:

  • 开始一个例程
  • 结束一个例程
  • 查看例程执行结果

1.服务请求报文定义

图1 服务请求报文定义

Sub-function定义:

图2 0x31服务支持的子服务

2.肯定响应

图3 肯定响应报文定义

routineControlType:对应服务请求的子服务

routineIdentifier:例程ID

routineInfo:这部分是自定义的,提供一种机制,使测试工具根据这个值来实施一些流程

routineStatusRecord:提供一些额外的信息,也是自定义的

3.支持的NRC

图4 支持的NRC

4.示例

(1)Sub-function = startRoutine

发送请求:31 01 02 01

肯定响应:71 01 02 01 32 (报文最后一个字节为汽车制造商自定义的状态)

(2)Sub-function = stopRoutine

发送请求:31 02 02 01

肯定响应:71 02 02 01 30 (报文最后一个字节为汽车制造商自定义的状态)

(3)Sub-function = requestRoutineResult

发送请求:31 03 02 01

肯定响应:71 03 02 01 30 33 8F(报文最后三个字节为汽车制造商自定义的状态)

(4)Sub-function = startRoutine with routineControlOption

发送请求:31 01 02 02 06 01 (最后两个字节为ControlOption)

肯定响应:71 01 02 02 32 33 8F(报文最后三个字节为汽车制造商自定义的状态)

以上就是0x31服务,与之类似的还有一个0x2F服务,只是对比31服务2F服务应用范围较窄,一般可以模拟一下车的灯光控制等,但是如果较复杂的流程的话还是用31服务多一些,感兴趣的读者可以自行了解一下。

以上就是本期内容,如有问题欢迎私信。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的程序喵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档