UDS诊断服务基础详解之四-27服务

1 27服务的总体介绍

1.1 定义

     通俗的说UDS诊断的27服务是提供一种加密解密的方法,有一些对ECU的特定的操作,往往这些特定的操作会涉及到安全性或者更高级别的访问权限,这时候就需要诊断仪使用27服务来对ECU进行解密,解密完成后才能对ECU进行相应的操作。

     具体解密过程如下:

       主要注意的是会话模式的切换,重置以及安全等级切换后,原有解锁状态的ECU应该立即锁定。

1.2 需要注意的事项

     (1)27服务是成对出现的,SF的基数位一般是请求Seed,SF的偶数位一般是发送Key。

     (2)一个ECU可以有多个安全等级,安全等级的区分是通过SF来区分的,安全性之间的编号具有任意性,不代表各个安全性之间有任何关系,通俗的讲就是各安全等级之间的解锁并不具备关联性。

     (3)同一个时刻,只能有一个安全等级处于解锁状态。

2 27服务的请求格式2.1 27服务的请求格式

        27服务的请求格式分为两种:

       (1)第一种是请求Seed,格式如下:

字节参数名称参数约定数值(Hex)
Byte1Request Service Identifier
请求ID
M27
Byte2SubFunction=SecurityAccessType
子功能=请求种子
M0x01,0x03,0x05,0x07-0x7D
Byte3
.
.
Bytem
SecurityAccessDataRecord={
parameter#1
.
.
parameter#m
}
U0x00-0xFF
.
.
0x00-0xFF
0x00-0xFF

      (2)第二种是发送钥匙,请求格式如下:

字节参数名称参数约定数值(Hex)
Byte1Request Service Identifier
请求ID
M27
Byte2SubFunction=SecurityAccessType=SeedKey
子功能=发送秘钥
M0x02,0x04,0x06,0x08-0x7E
Byte3
.
.
Bytem
SecurityKey={
Key#1(高字节)
.
.
Key#n(低字节)
}
U0x00-0xFF
.
.
0x00-0xFF

 2.2 27服务子功能参数定义

子功能说明Cvt
0x00ISO保留值M
0x01车辆制造商定义的安全级别的requestSeed(请求种子)U
0x02车辆制造商定义的安全级别的SeedKey(发送密钥)U
0x03,
0x5,
0x7-0x41
车辆制造商定义的不同安全级别的requestSeed(请求种子)U
0x04,
0x6,
0x8-0x42
车辆制造商定义的不同安全级别的SeedKey(发送密钥)U
0x43-0x5EISO保留值 M
0x5FISO26021-2定义的值U
0x60ISO26021-2发送的密钥U
0x61-0x7E由系统供应商规定U
0x7FISO保留M

2.3 支持的否定响应码

     27服务支持的否定响应码包括以下:12,13,22,24,31,35,36,37。 

否定响应码含义
0x12不支持子服务
0x13请求的消息长度与特定的服务规定的长度不匹配或者说参数格式与特定的服务规定的格式不匹配
0x22表明ECU当前的状态条件不允许该请求
0x24请求序列错误,表明收到的是非预期的请求序列
0x31请求超出范围
0x35密钥无效,诊断仪发送的密钥与ECU内存中的密钥不匹配
0x36超出尝试次数,诊断仪尝试获得安全访问的次数超过了ECU安全策略允许值
0x37请求所需延时时间未到

3 举例说明

     Step1(请求种子): 

      诊断仪:02 27 01 AA AA AA AA AA

      ECU肯定响应:04 67 01 35 A3  55 55 55

     备注: 35A3是ECU发送给诊断仪的种子

    Step2(发送密钥): 

      诊断仪:03 27 02 C3 C4 AA AA AA 

      备注:C3C4是通过安全算法计算出来的密钥

      ECU肯定响应:02 67 02 55 55 55 55 55

4 总结

     27服务就为大家介绍到这里啦,有什么疑问欢迎各位留言哦,下一期我们介绍14服务~

UDS(Unified Diagnostic Services)是一种用于车辆诊断的标准协议,它定义了一套诊断服务和通讯机制,可用于汽车电子控制单元(ECU)之间进行通信和诊断。 31. 将要求来自所选控制单元的信息发回给UDS诊断工具或依据请求来在所选控制单元中执行一个操作的服务称为?答案是:Read Data By Identifier(按标识符读取数据)。 Read Data By Identifier是UDS诊断服务中的一种基础服务。它通过在请求中指定一个标识符来读取所选控制单元中的数据,然后将这些数据返回给UDS诊断工具。 在使用Read Data By Identifier服务时,UDS诊断工具会向所选的控制单元发送一个请求,请求中包含要读取的数据的标识符。控制单元根据这个标识符,从自己的存储器中读取相应的数据,并将其返回给UDS诊断工具。这样,UDS诊断工具就可以获得所需的数据,用于诊断和故障排除。 Read Data By Identifier服务的应用场景很广泛。例如,当车辆发生故障时,UDS诊断工具可以使用该服务来获取与故障相关的数据,以帮助诊断工程师分析和解决问题。此外,厂商和技术支持人员还可以通过Read Data By Identifier服务来获取车辆的状态信息、性能参数等。 总之,Read Data By Identifier是UDS诊断服务中的一项重要基础服务,它允许UDS诊断工具从所选控制单元中读取数据,并帮助诊断工程师进行故障诊断和解决问题。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值