从零开始:统一诊断服务UDS PART3

十、UDS诊断命令备忘录

1. $10服务诊断会话控制

        通俗一点讲就是授权控制。汽车ECU里面可以对某些操作设定有特定权限,你如果需要操作这些功能,诊断仪需要请求到对应权限才能允许操作。诊断会话控制服务在ECU中用于切换至不同的诊断会话,对应的SID为0x10

       通常包含3个子功能: 01 Default(默认会话),02 Programming(编程会话),03 Extended(扩展会话),ECU上电时,进 入的是01默认会话。 默认会话权限最小,可操作的服务少;扩展模式通常用于解锁高权限诊断服务,例如写入数据/参数、 读写诊断码;编程模式用于解锁bootloader相关的诊断服务,即程序烧录。

        这三个子功能可以相互跳转,当然也可根据实际需求设定这些功能的跳转关系。如果进入了一个非 默认会话的状态,一个定时器会运转,如果一段时间内没有请求,那么到时间后,诊断退回到默认会 话01(最低权限)。当然,我们有一个$3E的服务,可以使诊断保持在非默认的状态。

         这三个会话模式好比普通项目成员(默认会话)、项目组长(扩展会话)和会计(编程会话)的关系,小职员权限最小,小职员有的权限项目组长全有,项目组长还多了些其他的高端权限(如写数据、例程控制)。会计则不同,它有些自己独有的权限(刷写程序),但项目组的很多权限它没有(读/擦故障码),因为它只干会计相关的事,本身不参与项目。

         这里来一张权限表格。带颜色的区域代表需要解锁操作

例:会话控制指令实例

对象

指令

指令解析

Tester

02 10 01 00 00 00 00 00 

0x02中的0代表这是一个网络层单帧SF,2表示数据长度为2byte,0x10是当前服务的代号,0x01是子功能,进入默认会话。

ECU

06 50 01 00 32 00 C8 AA

肯定响应,0x06中的0代表这是一个网络层单帧SF,6表示数据长度为6byte,0x40=0x10+0x40,表示对SID的肯定回复,01是子功能。

Tester

02 10 02 00 00 00 00 00 

同第一行,申请进入02子状态

ECU

03 7F 10 7E AA AA AA AA

否定响应,0x03同上,0x7F表示否定响应,0x10是回复的SID,0x7E是对应的NRC码。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值