写点什么

详解 UDS CAN 诊断:SecurityAccess Service(SID:0X27)

  • 2023-01-05
    北京
  • 本文字数:1557 字

    阅读完需:约 5 分钟

详解UDS CAN诊断:SecurityAccess Service(SID:0X27)

诊断和通信管理功能单元(Diagnostic and communication management functional unit)包含 10 种服务,本篇博文将详细讲解 SecurityAccess Service(SID:0X27)的特性和协议。

​本篇博文素材来源于:ISO 14229-1-2020:规范和要求。

对汽车电子、CAN 通信、UDS 诊断技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~

在学习本篇博文之前推荐学习:

详解UDS CAN诊断:什么是UDS(ISO 14229)诊断?

详解UDS CAN诊断:DiagnosticSessionControl Service(SID:0X10)

很多关联知识已经详细讲解过,这里不再赘述了。

客户端使用 SecurityAccess Service 请求安全解锁服务端,SecurityAccess Service 用于将客户端的数据上传到服务端或者将服务器的数据下载到服务端时候的安全访问。

客户端使用 SecurityAccess Service 请求安全解锁服务端流程如下所示:

第 1 步:客户端发送 seed 请求;

第 2 步:服务端发出 seed;

第 3 步:客户端发送 key 密钥,依据服务端发出的 seed 进行处理;

第 4 步:服务端解析客户端发过来的 key 密钥,如果无误则完成安全解锁功能。

1、诊断请求

客户端发送 seed 请求协议:0X27 0X** 0X&&(A_Data.A_PCI.SI 和 A_Data.Parameter 1~k 数据)。

其中:

  • 0X27 是服务 ID(SID),1 字节;

  • 0X**是服务的子功能,当 requestSeed 为奇数时发送 send 命令,范围为:0X01~0X7F 中的奇数,1 字节;

  • 0X&&是可选项,用于在请求种子信息时将数据传输到服务器,它可以包含服务端中验证的客户端标识,长度不固定。

客户端发送 key 密钥协议:0X27 0X** 0X&&(A_Data.A_PCI.SI 和 A_Data.Parameter 1~k 数据)。

​其中:

  • 0X27 是服务 ID(SID),1 字节;

  • 0X**是服务的子功能,当 sendKey 为偶数时发送 key 密钥命令,范围为:0X01~0X7F 中的偶数,1 字节;

  • 0X&&的值是通过将获取服务端发出 seed 数值进行安全算法生成的,所以这个值是随着服务端发出 seed 数值的变化而变化,长度不固定。

在 ISO 14229-1-2020 协议中规定了各类 requestSeed 和 sendKey 的意义和使用场景,如下所示:

​标准中也规定了 seed 请求和 key 密钥的对应关系:


2、诊断响应

诊断响应有肯定响应和否定响应两种类型。

2.1、肯定响应

肯定响应表示服务端回复客户端请求成功,响应协议:0X67 0X** 0X&&(A_Data.A_PCI.SI 和 A_Data.Parameter 1~k 数据)。

​其中:

  • 0X67 是响应服务的 SID,相当于 0X27+0X40,1 字节;

  • 0X**是响应服务的子功能,范围为:0X00~0X7F,1 字节。例如,客户端使用 0X01 子服务,此时肯定响应的子服务就是 0X01;

  • 0X&&的存在取决于 securityAccessType 参数,seed 参数是服务端发来的数据,客户端在安全访问服务端时需要使用该值计算密钥,长度不固定。

2.2、否定响应

否定响应表示客户端或者服务端存在问题,否定响应会提示失败原因。

响应协议:0X7F 0X** 0X&&(A_Data.A_PCI.NR_SI、A_Data.A_PCI. SI 和 A_Data.Parameter 1 数据)

其中:

  • 0X7F 是否定响应固定数值,1 字节;

  • 0X**是诊断服务 ID(SID),本篇博文使用的是 0X27 服务,则否定响应会返回 0X27,1 字节;

  • 0X&&是 NRC 错误码,描述了返回错误的原因,1 字节。

SecurityAccess Service(SID:0X27)有 8 种类型错误,如下所示:




UDS诊断 ISO 14229 1~8整套协议-中英文最新版


详解CAN总线:什么是CAN总线?

详解CAN总线:高速CAN总线和低速CAN总线的特性

详解CAN总线:CAN协议分层结构及功能

详解CAN总线:CAN节点硬件构成方案

详解CAN总线:常用CAN连接器的使用方法

详解CAN总线:CAN总线报文格式—数据帧

详解CAN总线:标准数据帧和扩展数据帧​​​​​​

详解CAN总线:CAN总线报文格式—遥控帧

详解CAN总线:CAN总线报文格式—错误帧

详解CAN总线:CAN总线报文格式—过载帧

详解CAN总线:CAN总线报文格式—帧间隔

一文搞懂CAN和CAN FD总线协议

CAN与CAN FD通信之间存在的问题

详解CAN总线:CAN总线故障界定与管理

详解CAN总线:CAN总线通信优先级机制

发布于: 2023-01-05阅读数: 17
用户头像

【研究方向】物联网、嵌入式、AI、Python 2018-02-09 加入

嵌入式工程师,创客爱好者,公众号:美男子玩编程,全网粉丝10万+。 CSDN博客专家、微软IoT领域MVP、华为云云享专家、阿里云专家博主、知乎认证科学技术领域答主。

评论

发布
暂无评论
详解UDS CAN诊断:SecurityAccess Service(SID:0X27)_汽车电子_不脱发的程序猿_InfoQ写作社区