【车载开发系列】UDS诊断---安全访问服务($0x27)

这篇具有很好参考价值的文章主要介绍了【车载开发系列】UDS诊断---安全访问服务($0x27)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【车载开发系列】UDS诊断—安全访问服务($0x27)

一.概念定义

该服务提供了一种保护机制,该机制用来保护访问限制的诊断服务。
加密策略采用种子和密钥相关联的方法。采用随机产生的种子,通过安全算法得到唯一的秘钥。
若秘钥匹配正确则可以调用受到保护的诊断服务。这个服务解锁的是处在某个安全等级下的服务。

二.安全控制过程

  1. 诊断工具请求种子;
  2. ECU发送种子,并根据安全算法计算密钥;
  3. 诊断工具根据接收到的种子也进行密钥计算,并进行发送;
  4. ECU接收到密钥,与自身计算的密钥进行比较;
  5. ECU根据比较结果决定自身是否解锁,并返回响应(肯定/否定响应)信息
    【车载开发系列】UDS诊断---安全访问服务($0x27)

三.报文格式

1)请求种子

以请求进入01安全等级为例(请求Seed的"Sub-function"不一定要是01,也可以是03、05,或者07-7D之间的任意奇数值,代表不同的安全等级),则此时请求种子的格式如下:
【车载开发系列】UDS诊断---安全访问服务($0x27)
ECU收到请求后,应当生成随机的种子,并通过响应报文返回种子。响应报文格式如下:
其中种子及密钥均为 4 字节(32 位)的数值
【车载开发系列】UDS诊断---安全访问服务($0x27)【车载开发系列】UDS诊断---安全访问服务($0x27)

2)发送密钥

以请求进入01安全等级为例,在接收到前面一小节生成的种子后,诊断工具将根据车产定义的安全算法进行密钥的计算。并进行密钥的发送。此时密钥的发送格式如下:
(发送密钥时的第二个字节值不一定就是02(01+1),可以是04、06,或者08-7E间的任意偶数值,不过注意要是之前请求Seed的"Sub-function"+1,即像01对应02,03对应04,07对应08这样对应起来。)
【车载开发系列】UDS诊断---安全访问服务($0x27)
ECU收到SendKey之后,肯定响应报文格式如下:
【车载开发系列】UDS诊断---安全访问服务($0x27)

3)否定响应

请求Seed和SendKey他们两个在失败的时候,都返回以下格式的否定响应。【车载开发系列】UDS诊断---安全访问服务($0x27)

四.否定响应码列表

如果诊断工具发送一个无效的密钥,ECU拒绝请求并发送否定响应码 35h“密钥无效(InvalidKey),安全访问失败计数加 1。该计数器的初始值为零。
当失败计数器数值达到一定回数时,ECU 需要等待10 秒方可接受下次“请求种子”(Request Seed)报文并返回 36h(请求次数超出限制)否定响应。
在这 10s 内,任何“SecurityAccess- RequestSeed”都将不被处理,且 ECU 返回 37h(延时时间未到)否定响应。
对于35/36/37这三个错误码,需要比较关注一下。这三个错误往往是成对出现的。

Hex(bit6~0) Description 描述 说明
0x12 subFunctionNotSupported 功能不支持 如果子功能参数不支持,发送此否定响应码
0x13 incorrectMessageLengthOrInvalidFormat 报文长度错误 如果报文长度错误,发送此否定响应码
0x24 requestSequenceError 请求序列错误 在接收到“sendKey”子功能前没有先接收到“requestSeed”请求报文
0x35 invalidKey 密钥无效 接收到预期的“sendKey”子功能但是密钥值与 ECU 内部存储或计算的密钥不相等
0x36 exceededNumberOfAttempts 超出密钥访问次数限制 延迟定时器因为超过最大允许失败尝试的次数激活
0x37 requiredTimeDelayNotExpired 超时周期未到,延时时间未到 在 ECU 要求的超时周期未到之前,发送了尝试获取安全访问权限的请求报文

五.参数定义

子功能关联的安全等级由整车厂定义。在这里我们只要知道0x01和0x02输入一个安全级,而0x09和0x0A输入一个安全级别,必须成对的使用。

Hex Description 描述
0x01 requestSeed to reach security level: Unlocked (Level 1) 请求种子以进入安全级别:解锁(级别 1)
0x02 sendKey to reach security level: Unlocked (Level 1) 发送密钥以进入安全级别:解锁(级别 1)
0x09 RequestSeed to reach security level: Unlocked (Flash,Level2) 请求种子以进入安全级别:解锁(级别 2)
0x0A sendKey to reach security level: Unlocked (Flash,level2 发送密钥以进入安全级别:解锁(级别 2)

在某一时间只有一个安全级别可以被激活。例如,如果与请求种子 09h 相关联的安全级别已激活,而诊断工具成功请求解锁与请求种子 01h相关联的安全级别,此时只有与请求种子01h相关联的安全级别支持的受限功能被解锁。文章来源地址https://www.toymoban.com/news/detail-437145.html

六.注意事项

  1. ECU上电或者Reset复位操作之后, ECU处在locked状态;
  2. 同一时刻只有1个安全等级是 active ,与这个安全等级相关的功能和诊断服务可以使用,其它安全等级相关功能和诊断服务是not active 。
  3. 1个ECU内部可以有多个安全等级,安全等级之间是否关联取决于诊断规范的定义,如果没有关联,就是例如解锁安全等级2时,无需先解锁安全等级1.
  4. 如果当收到RequestSeed时,ECU已经处在unlocked状态,应给出positive response, 其中seedValue 0x00
  5. 具体的安全加密算法由车厂自行决定的。
  6. SecurityAccess服务定义了三种状态(两个不同级别):锁
    定、解锁(级别 1)、解锁(级别 2)

到了这里,关于【车载开发系列】UDS诊断---安全访问服务($0x27)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【车载开发系列】UDS诊断---读取DTC信息($0x19)

    UDS可以简单理解为一套完整的通讯协议框架,其目的在于规范各种行车电脑和ECU之间的通讯。0x19服务其实是读取DTC信息的服务。 1)DTC概念 故障存储相关的0x19和0x14服务。 当系统检测到了一个错误或者是一个故障发生的时候,会将相对应的数值故障码进行存储,那么这个对应

    2024年01月15日
    浏览(57)
  • UDS诊断系列之七 安全访问(27)服务(番外)附录I

    附录I的主要内容是通过一个状态图来描述ECU在安全访问的各状态之间的切换条件,以及如何进行状态切换即切换过程中都需要执行哪些操作。 下面直接先上图。 图看起来流程很多,但实际上很简单,先说图中的四个状态: A - ECU没有接收过任何安全访问的请求,或者刚刚接

    2024年02月10日
    浏览(53)
  • UDS统一诊断服务【一】诊断会话控制0X10服务

    最近在做诊断相关的开发工作,将自己接触到的知识点记录下来。前面的文章已经介绍过UDS的一些基础知识,和基本的一些概念,不清楚的可以查看之前的文章:UDS基础知识介绍 诊断会话控制服务 DiagnosticSessionControl ,SID是0X10,主要功能是控制服务端的会话模式切换。一般默

    2024年02月03日
    浏览(182)
  • 车载诊断协议UDS——诊断刷写(Software Update)

    刷写,顾名思义就是两个动作:刷和写: 刷是擦除ECU芯片内存上原有的数据; 写是重新在ECU芯片内存上写入新的数据(Application or Calibration Data……);         在控制器量产之初,会将valid application data烧录到控制器芯片内存上。但随着时间推移,控制器中运行代码出现

    2024年02月08日
    浏览(65)
  • 车载诊断NRC - UDS Negative Response Code

    下表中列出了ISO14229-1:2013(E)中定义的否定响应码及其使用条件: 否定响应码的取值范围为0x00 - 0xFF,被分为三组: 0x00:服务器内部实现否定响应码判断逻辑时使用,表示要给出肯定响应。 0x01 – 0x7F:诊断通信相关的否定响应码。 0x80 – 0xFF:服务器收到诊断服务请求时,由

    2023年04月08日
    浏览(49)
  • 车载诊断协议DoIP系列 —— DoIP会话模式(安全与非安全)

    我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠自己,四海皆为家。人生的

    2024年02月19日
    浏览(68)
  • 【车载开发系列】诊断故障码中的Debounce策略

    故障诊断通常由诊断事件管理Dem模块和SW-C共同完成,即先由SWC中的Monitor Function对故障条件实时监控,并不断将故障条件的判定结果上报给Dem模块,而在Dem为了防止所有的故障误报,在其处理过程中增加一个Debouncing(去抖动)环节,也就是采用Debounce算法来确定事件的最终状态。

    2024年02月09日
    浏览(63)
  • Autosar诊断实战系列16-UDS19 06扩展数据配置及工程问题讨论

    在本系列笔者将结合工作中对诊断实战部分的应用经验进一步介绍常用UDS服务的进一步探讨及开发中注意事项, Dem/Dcm/CanTp/Fim模块配置开发及注意事项,诊断与BswM/NvM关联模块的应用开发及诊断capl测试脚本开发等诊断相关实战内容。 Autosar诊断实战导读快速链接:

    2024年02月09日
    浏览(46)
  • uds的0x14服务介绍

    0x14服务是UDS(Unified Diagnostic Services)中的诊断服务之一。具体而言,0x14服务是用于执行ClearDTC(Drive Train Controller)操作的服务。Drive Train Controller通常指的是车辆驱动控制器,包括发动机控制单元、传动控制单元、制动控制单元等。 执行ClearDTC操作后,UDS 0x14服务可以清除D

    2024年02月09日
    浏览(51)
  • uds的0x11服务介绍

    UDS(Unified Diagnostic Services)是一种汽车电子系统的诊断协议,目标是提供具有通用性、标准化和可互换性的诊断接口。在UDS中,0x11服务主要用于对ECU的存储器进行读取和写入操作,其具体介绍如下: 0x11服务被称为“安全访问(Request Upload / Request Download)”,是UDS协议的两项

    2023年04月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包