当前位置: 首页 > news >正文

CCP基本命令—种子获取、ECU解锁

文章目录

  • 前言
  • 一、CCP的实操报文
  • 二、解锁流程
  • 三、GET_SEED—种子获取
  • 四、UNLOCK—ECU解锁
  • 总结

前言

大家好,我是左工,在前面文章CCP基本命令—ECU的ID获取、数据上传中,我们介绍了CCP协议的两个命令:ECU的ID获取(EXCHANG_ID,0x17)和数据上传(UPLOAD,0x04)。今天我们来介绍另外两个命令:种子获取(GET_SEED,0x12)和ECU解锁(UNLOCK,0x13)。


一、CCP的实操报文

在文章CCP基本操作流程与效果展示中,当我们将ECU和上位机软件通过CAN卡硬件连接在一起后,我们在上位机软件上点击“建立连接”按钮,用于建立上位机和ECU之间的逻辑连接,如下图所示。

点击“建立连接”之后,在报文窗口的前几帧报文我们已经在文章CCP基本命令—连接请求、版本获取和CCP基本命令—ECU的ID获取、数据上传进行了详细的解释。今天我们来解读后面12帧报文的信息。从命令码可以看出,这12帧报文就是把0x12和0x13命令用了三遍。因此我们只需要了解这两个命令,就能完全理解这12帧报文了。

二、解锁流程

在文章CCP基本命令—ECU的ID获取、数据上传中我们了解到,通过ECU的ID获取命令,我们可以确认CCP支持哪些功能和哪些功能被锁定保护了。那么这些被锁定保护的功能如何解除锁定呢?解锁流程很简单如下图所示。

上位机软件先向ECU申请一个4字节的种子,然后根据种子计算一个密钥返还给ECU。如果密钥正确,那么ECU就会解锁该功能。依靠上面的流程,每次只能解锁一个功能或资源。由于示例中的ECU支持三种功能,所以解锁流程被执行了三遍。下面还有一个问题,计算密钥的算法从哪里设置呢?我们可以回看前面的文章CCP基本操作流程与效果展示,这里加载了一个包含密钥算法,用于解锁ECU功能的.dll解锁文件。上位机就是靠这个算法计算密钥的。一般情况下,这个.dll文件是由主机厂提供的,这样零部件供应商即使参与了开发过程,也无法获取密钥算法,从而保证了产品的安全性。

下面我们来看看具体的命令使用方法。

三、GET_SEED—种子获取

GET_SEED主要是用来向ECU申请种子。该命令的代码是0x12,CRO格式如下所示。

上面出现的CRO、CTR、PID和ERR等概念如果忘记了,请参看文章CCP 基本概念与核心原理和CCP的消息基本格式。我们重点解释一下其他几个字节的意义。CRO中“请求开放的功能字节”与功能之间的对应关系如下图所示。其中,标定(CAL)、DAQ通讯模式(DAQ)和程序烧写(PGM)分别是CCP常用的三个功能。

针对GET_SEED命令反馈的DTO格式如下所示。

对于DTO中“请求功能当前保护状态”字节值为“假0x00”时,表示该功能没有被保护,不需要UNLOCK命令解锁;“请求功能当前保护状态”字节值为“真0x01”时,表示该功能被保护了,需要UNLOCK命令解锁。有了上面的基本知识我们来解析一下前两帧报文。

第一帧报文是上位机软件用ID为0x10的CAN报文发送了一帧命令帧(CMD)。第0字节为命令代码0x12,意思是发起了一个种子请求GET_SEED。第1字节为命令序号0x06,也就是上位机软件发出的第0x06(十进制6)号。第2字节为0x01,二进制为0000 0001,表示请求开放的功能为第0位对应的CAL功能,也就是标定功能。

第二帧报文是ECU用ID为0x2D的CAN报文发送了一帧响应帧(RES)。第0字节为PID码0xFF,意思是这是一个命令返回消息CRM-DTO,是对某个命令的反馈。第1字节为0x00,错误代码为0x00,查看文章CCP的消息基本格式中错误代码定义,这个代码的意思是“确认/无错误”。第2字节是0x06,意思是该响应帧是对第0x06号命令(也就是上面的GET_SEED命令)的响应。第3字节0x01,表示CAL标定功能当前受保护状态为真,需要UNLOCK命令解锁。第4~7字节表示种子为:0x01,0x00,0x00,0x00。

四、UNLOCK—ECU解锁

通过GET_SEED命令获得的种子,上位机软件通过计算可以获得密钥。上位机软件通过UNLOCK命令将密钥返回给ECU的。UNLOCK命令代码是0x13。该命令的CRO格式如下所示。

反馈DTO格式如下所示。

这里重点说一下第3字节“各项功能当前状态”。这个字节各位与功能对应状态也是如下表所示。如果对应位为“1”,那么对应的功能已经解锁,如果是“0”,那么对应的功能没有解锁。

我们来解析一下第三、四帧报文。


第三帧报文是上位机软件发送了命令帧。第0字节为0x13,ECU解锁。命令序号承接了前面序号继续排序为0x07号。第2~7字节表示密钥为0x02,0x01,0x01,0x01,0xFF,0xFF。ECU回复了第四帧报文作为ECU的响应。第0字节为0xFF,是一个命令回复PID。第1字节为0x00,表明认/无错误。第2字节是0x07,表明是对0x07号命令的回复。第3字节“各项功能当前状态”是0x01,二进制为0000 0001,表示第0位对应的CAL功能已经解锁了。

我们可以看见剩余几帧报文都是重复使用GET_SEED和UNLOCK指令。UNLOCK命令回复中“各项功能当前状态”位,由0x01(二进制为0000 0001),变为了0x03(二进制为0000 0011),最后变为了0x43(二进制为0100 0011),表明标定(CAL)、DAQ通讯模式(DAQ)和程序烧写(PGM)三个功能被依次解锁了。


总结

今天我们依托于实际用例了解了种子获取和ECU解锁命令。相信大家对CCP的命令使用有了初步的了解。后续左工会继续依托于实际应用向大家其他命令的具体使用方法。请敬请收藏关注,不迷路。

http://www.jsqmd.com/news/461036/

相关文章:

  • 2026年靠谱的洗卸二合一洗面奶品牌推荐:洗卸二合一洗面奶销售厂家推荐 - 品牌宣传支持者
  • 数模混合芯片:Bug最爱藏在交界处
  • 芯片公司的尴尬真相:连软件工程1.0都没做到
  • 养虾实战教程:我用OpenClaw做了个能盯盘,也能深度复盘的投资agent
  • Gmc设置满50$运费促销点击次数增长2130%、展示次数增长215%、点击率增长607%
  • 数据团队新死法:不是做得差,是做得“够用“
  • 外包员工“工具化”:当职场人沦为可替换的“零件”
  • google merchant center(Gmc) 配送和退货 实现美国仓单品满足50$在SERP页面免运费
  • 【MySQL数据库】--借助AI快速画数据库ER图
  • 【数据库】--PostgreSQL 详细安装教程
  • Flutter 三方库 growth_standards 的鸿蒙化适配指南 - 实现标准化的儿童生长曲线计算、支持 WHO 规范与健康管理数据可视化
  • Flutter 三方库 fast_base 的鸿蒙化适配指南 - 实现极速的基础架构搭建、支持响应式 Repository 封装与业务模型注入
  • 【精度】【核内同步】applyTopKTopPWithSorted算子精度问题定位
  • Pytorch2 PyTorch 张量(Tensors)完全指南
  • PyTorch4 Transforms 保姆级教程|ToTensor Lambda 实战
  • PyTorch5 构建神经网络保姆级教程|从层到模型全拆解
  • 2026年质量好的混纺PTFE滤袋厂家推荐:混纺PTFE滤袋厂家选择指南 - 品牌宣传支持者
  • C++ Lambda表达式:高效编程利器
  • C++进阶:从C到C++的完美过渡
  • 2026年口碑好的PTFE滤袋公司推荐:针刺毡PTFE滤袋实力厂家推荐 - 品牌宣传支持者
  • 宝鸡钛棒源头厂家/宝鸡钛棒现货工厂怎么挑?2026宝鸡钛合金棒厂家推荐:宝鸡鹰翔钛业,源头厂家实力供应 - 栗子测评
  • 精选2026宝鸡纯钛棒厂家推荐/TC4钛棒生产厂家推荐:宝鸡鹰翔钛业生产厂家直供 - 栗子测评
  • 精选2026甲基丙基酰氧基硅烷供应商/烷基硅烷生产厂家:杭州杰西卡,源头直供与定制化方案 - 栗子测评
  • “现代战争”天梯赛习题
  • 2026纳米二氧化钛厂家|二氧化钛分散液源头厂家-优选宁波极微纳 - 栗子测评
  • Flutter 三方库 commander_ui 的鸿蒙化适配指南 - 构建大屏控制台风格 UI、支持指令式交互与极客风格面板
  • 宿舍管理系统厂家怎么选?2026学生宿舍管理系统推荐:掌门物联科技-创新校园住宿管理智能化新体验 - 栗子测评
  • 学生公寓门锁哪家好?2026掌门物联科技:用智慧公寓系统打造住宿管理新生态 - 栗子测评
  • 高校智能锁哪家好?2026精选优质校园安全出入管理系统厂家:掌门物联科技铸造校园安全出入防线 - 栗子测评
  • 环氧树脂地坪批发怎么选?2026年优质供应商实力解析 - 2026年企业推荐榜