基于图莫斯的CAN UDS升级上位机-LabVIEW版本(四):TOOMOSS_SID27_SecurityAccess.vi — 安全访问
发布时间:2026/9/10 22:59:31 作者:尧图编辑部 阅读量:1,286
:TOOMOSS_SID27_SecurityAccess.vi — 安全访问)
1. 引言在UDS刷写流程中,安全访问(0x27 Service)是最关键的一道防线。它的作用是防止未经授权的操作——在刷写固件之前,ECU会要求上位机证明自己拥有合法的访问权限。这个验证过程通常基于种子-密钥(Seed-Key)机制:上位机请求种子:发送27 01请求,ECU返回一个随机数(种子)上位机计算密钥:将种子输入到车厂提供的专用DLL中,计算出对应的密钥上位机发送密钥:发送27 02+ 密钥,ECU验证通过后开放刷写权限TOOMOSS_SID27_SecurityAccess.vi就是负责完成这个完整流程的子VI。它调用通信基座发送请求和接收响应,并通过调用外部安全访问DLL(通常由车厂提供)完成种子到密钥的转换。2. 子VI功能概述2.1 设计目标发送27 09请求种子,接收ECU返回的种子数据调用外部安全访问DLL,将种子转换为密钥发送27 0A+ 密钥,接收ECU的验证结果返回最终执行状态2.2 UDS 0x27服务协议说明请求种子(27 09):请求:Byte 0: SID = 0x27, Byte 1: subFunction = 0x9 响应(肯定):Byte 0: SID = 0x67, Byte 1: subFunction = 0x09, Byte 2~N: 种子数据发送密钥(27 0A):请求:Byte 0: SID = 0x27, Byte 1: subFunction = 0x0A, Byte 2~N: 密钥数据 响应(肯定):Byte 0: SID = 0x67, Byte 1: subFunction = 0x0A否定响应(两种请求共用):Byte 0: SID = 0x7F, Byte 1: 0x27, Byte 2: NRC2.3 输入参数控件类型说明设备句柄U32由TOOMOSS_OpenDev(CAN).vi返回的设备句柄通道号枚举(CAN1/CAN2)选择使用CAN1还是CAN2通道物理地址U32请求报文ID(发送给ECU的CAN ID)响应地址U32期望的响应报文ID(ECU回复的CAN ID)安全访问DLL库路径字符串车厂提供的安全访问DLL的完整路径2.4 输出参数控件类型说明响应数据U8数组完整的安全访问响应数据(包含27 02的响应)返回值I320表示成功,-1表示失败错误信息字符串失败时的错误描述3. 前面板设计