文章目录

  • 前言
  • 一、理论描述
  • 二、使用步骤
    • 1.总述
    • 2.请求
    • 3.响应
  • 总结

->返回总目录<-

前言

简称: “SecurityAccess”,安全访问
功能: 由于(保密、排放或安全的原因),安全访问服务提供一种方法以方便访问受限制的数据或诊断服务。


一、理论描述

1,例如,上传/下载程序或数据至 ECU、读取 ECU 特殊位置中内存数据等诊断服务一般需要执行安全访问,
因为下载不恰当的程序或数据 至 ECU 可能破坏电子设备,或影响汽车的排放和功能安全。
(说白了就是防止乱刷程序到ECU)

2,支持安全访问的 ECU 应该实现种子和密钥的合理算法,该算法应在特定文档中(整车厂会给出算法规范)记录,
而只有特定的少数人(软件开发人员)可以访问该文档。

3,当外部测试工具(CANoe等上位机)从 ECU 中请求安全访问类型时,安全访问过程就开始了。
当外部测试工具提供的安全密钥与ECU 计算的安全密钥匹配时,将授予对 ECU 的安全访问权。

二、使用步骤

1.总述

举例子:某整车厂针对0x27服务的需求如下:
请求Seed(种子) 27 01
发送Key(密钥) 27 02
数据长度为4Byte

Step1: 诊断工具发送 “SecurityAccess-RequestSeed” 请求种子报文(27 01 ),ECU会回复一个带Seed数据的报文
(67 01 22 33 44 55 )。注: 此时ECU已经在代码里使用Seed计算出Key了。

Step2: 诊断工具收到ECU回复的Seed(如22 33 44 55),然后根据整车厂给出的算法,计算出Key(如 AA BB CC DD )。然后
发送包含密钥的“SecurityAccess-SendKey” (27 02 AA BB CC DD)服务报文给 ECU 请求比较密钥(Step1中计算的Key)。
如果密钥一致, ECU 使能(解锁)诊断工具对特定服务的使用权限和对特定数据的访问权限,
并通过“SecurityAccess-SendKey” 肯定响应(67 02)报文指出 ECU 和诊断工具认证成功。

Step3: 如果密钥不相符,此访问被认为是一次错误的访问尝试;(ECU回复NRC35:密钥无效) 如果是无效的密钥或者其他原因被
拒绝访问要求诊断工具从头开始重新发送“SecurityAccess-RequestSeed” 请求报文;如果连续密钥无效三次,
ECU回复NRC36:超过最大尝试次数。此时需要等待10秒后才可以请求27 01服务,否则ECU回复NRC37:延时要求不满足

2.请求


第一个字节就是SID,后边的一个字节 用于标识将要访问的安全访问类型。下图红色框内是请求Seed的帧格式,
绿色框 是请求对比密钥的帧格式。

3.响应

1)正响应

见CANoe报文数据图中的蓝色框。
Response ID: 67
securityAccessType=requestSeed :01
securitySeed:00 95 00 06


见CANoe报文数据图中的黄色框。
Response ID: 67
securityAccessType=SendKey:02

2)否定响应
支持的否定响应如下,一般工作上根据整车厂给的诊断输入文档来选择要支持的NRC码。

博主平日项目中,常需要支持的是NRC 0x12,0x13,0x22,0x24,0x35,0x36,0x37,0x7F。

NRC12: 子服务不支持(根本没有27 00服务,安全访问类型不支持00)

NRC13: 请求报文数据长度有误(请求数据27 01只有两个字节。而下图中请求的是27 01 00)
27前面的03是指发送报文的数据长度:27 01 00.

NRC22: 请求条件不满足
(一般整车厂会告诉你NRC22的满足条件,例如:车速>3km/h,电源过欠压时候,请求服务,ECU便回复该NRC)

NRC24: 请求顺序不正确(不按套路出牌,一上来就请求27 02去对比密钥了)

NRC35: 密钥对比有误(在请求27 02时候,输入错误的Key并且发送。)

NRC36: 超过最大解锁尝试次数(错误一次 NRC35,错误第二次NRC35,错误第三次NRC36)

NRC37: 延时要求不满足(回复NRC36之后,10秒延时时间内再次请求27 01)

NRC7F: 当前会话下服务不支持
(整车厂要求该安全访问服务,需要在Extend session会话下支持。10 01是默认会话,因此回复7F 27 7F )

总结

0x27服务还是比较有意思的,之前博主一直是手写代码的,现在的项目考虑到了功能安全,整车厂要求是Autosar架构的,
因此现在开发都是使用DaVinCi软件开发生成代码,很强大的软件(德国佬的确很6)。下一章0x28控制通信服务见!

->返回总目录<-

【UDS】ISO14229之0x27服务相关推荐

  1. 跟我学UDS(ISO14229) ———— 0x19 服务参数介绍

    相关链接:跟我学UDS(ISO14229) ---- 0x19(ReadDTCInformation) 目录 DTCStatusMask 工作状态 bit 作用说明 切换逻辑 DTCExtendedD ...

  2. 跟我学UDS(ISO14229) ———— 0x11(ECUReset)

    0x11(ECUReset)服务的主要作用是使用ECUReset服务来请求服务器重置.该服务根据嵌入在ECUReset请求消息中的resetType参数值的内容,请求服务器有效地执行服务器重置. 在服 ...

  3. 【车载开发系列】UDS诊断---链接控制服务($0x87)

    [车载开发系列]UDS诊断-链接控制服务($0x87) 诊断---链接控制服务($0x87) [车载开发系列]UDS诊断---链接控制服务($0x87) 一.概念定义 二.应用场景 三.报文格式 1) ...

  4. 【UDS】ISO14229之0x19服务

    文章目录 前言 一.理论描述 1.服务分类 2.状态掩码 二.操作步骤 1.请求 2.回复 总结 ->返回总目录<- 前言 简称: "ReadDTCInformation&quo ...

  5. 【UDS】ISO14229之0x14服务

    文章目录 前言 一.理论描述 二.使用步骤 1.请求 2.响应 总结 ->返回总目录<- 前言 简称: "ClearDiagnosticInformation",清除D ...

  6. 【UDS】ISO14229之0x3E服务

    文章目录 前言 一.理论描述 二.使用步骤 1.请求 2.响应 总结 ->返回总目录<- 前言 简称: "TesterPresent",测试工具保持连接服务 功能: 此 ...

  7. 【UDS】ISO14229之0x2F服务

    文章目录 前言 一.理论描述 二.使用步骤 1.请求 2.响应 总结 ->返回总目录<- 前言 简称: "InputOutputControlByIdentifier" ...

  8. 【UDS】ISO14229之0x28服务

    文章目录 前言 一.理论描述 二.使用步骤 1.请求 2.响应 总结 ->返回总目录<- 前言 简称: "CommunicationControl",通信控制 功能: ...

  9. 车载网络测试 - UDS诊断篇 - 诊断服务$10

    上一篇我们在(车载网络测试 - UDS诊断篇 - 诊断数据简析)中 有介绍各个服务的数据的格式,接下来的篇幅就是对各个服务做进一步的介绍,以便大家学习和了解:今天我们说的就是会话控制,有地方也叫会话切 ...

最新文章

  1. java逻辑符号怎么打_Java的逻辑运算符?
  2. Task05:青少年软件编程(Python)等级考试模拟卷(一级)
  3. centos6.2安装桌面环境 与中文支持
  4. 8086微型计算机原理答案,8086微型计算机原理与应用(吴宁)习题答案(第三章)
  5. # 删除注册表项键值_强制删除:让你的电脑上不再有“顽固”程序
  6. sql 视图嵌套视图_SQL视图
  7. 怎么卸载apowerrec_如何删除windows10自带应用
  8. Android studio的UI组件
  9. 初学者指南:什么是算法?11行伪代码给你讲明白
  10. django-演练-英雄的编辑
  11. OpenShift 4 之在不同的项目之间推送Image
  12. 技术分享连载(八十六)
  13. 我为什么坚持写博客?
  14. (Python)BiliBili(手机端缓存视频转换)
  15. aws篇12 搭建一个推流、读流、RTSP服务器
  16. printf函数输出问题
  17. 为什么做抓包测试 及抓包 http 原理图解分析
  18. MACD指标5种背离分析(图解)
  19. Android逻辑卷管理LVM,LINUX——LVM逻辑卷管理
  20. OF-Config介绍

热门文章

  1. 让程序员增添一些浪漫情怀的代码
  2. linux下patch文件使用
  3. python为你写诗_为你写诗:3 步搭建 Serverless AI 应用
  4. 护肤:食盐美容4招 控油除痘去黑头 - 生活至上,美容至尚!
  5. HTML5是XHTML的升级版本,支持HTML5新布局 酷盘Web版全新升级
  6. 渗透测试工具集成系统环境
  7. 《2016年度中国互联网巴士行业研究报告》发布
  8. PostgreSQL Substring字符串截取函数
  9. LeetCode之855_考场就座
  10. 我的世界java边境之地_我的世界边境之地你会怎么去? 下界传送门只需要几个小时...