CCP的消息基本格式
文章目录前言一、CCP的消息类型1.命令接收对象—CRO2.数据传输对象—DTO二、CCP的命令代码三、CCP的错误代码总结前言大家好我是左工在前面文章CCP 基本概念与核心原理和CCP基本操作流程与效果展示中我们介绍了CCP协议的基本概念、基本操作流程和效果。现在大家基本了解CCP的意义、用途和便利性。从今天开始我们就进入了更加技术性的学习了解CCP协议技术细节。CCP协议是通过CAN报文实现信息交互的因此CAN报文的格式也就是消息格式是CCP协议最核心最基础的概念。所以我们先从CCP协议的最基本知识点——消息基本格式入手学习。一、CCP的消息类型在文章CCP 基本概念与核心原理中左工已经介绍了上位机向ECU发送的命令帧Command叫做命令接收对象Command Receive ObjectCROECU向上位机发送的响应帧Response叫做数据传输对象Data Transmission Object。今天我们来详细了解这两帧报文的格式。1.命令接收对象—CRO我们先聊比较简单的命令帧的CRO的格式。CRO是上位机软件向ECU发送的消息包括命令代码和命令参数信息。该消息由8个字节组成具体结构如下所示。CMD是命令代码Command Code的简称CCP协议规定了28条命令每个命令都有一个相对应的命令代码。CTR是命令序号Command Counter的简称它是CRO命令发送的序号按照命令的发送顺利依次递增。本文后半部分详细的罗列了所有命令。2.数据传输对象—DTO与CRO相比数据传输对象DTO就稍微复杂一些。数据传输对象按照不同的用途可以分为三种命令返回消息Command Return MessageCRM-DTO事件消息Event Message-DTO数据采集消息Data Qcquisition-DTODAQ-DTO命令返回消息CRM-DTO顾名思义就是针对命令帧的回复。因为根据CCP的规定当ECU收到一个CRO后必须回复一帧DTO。这个CRM-DTO就是为这种机制存在的。事件消息Event Message-DTO是当ECU内部发生错误时ECU主动发出的因此不需要CRO触发。CRM-DTO和Event Message-DTC的消息格式是一样的如下所示。PID是包标识符Packet ID的意思主要用来表示DTO的类型。PID0xFE命令返回消息CRM-DTCPID0xFF事件消息Event Message-DTOPID0x00~0xFD数据采集消息DAQ-DTOERR是错误代码Error Code的意思主要用来表示CRO请求命令的执行情况或者ECU内部发生了什么错误。如果ERR为0x00表示CRO命令被正确执行了。CTR与CRO中的定义相同也是命令序号的意思。CCP规定DTO的CTR必须与对应的CRO中的CTR相同才能算响应完成。数据采集消息DAQ-DTO是ECU向外持续发送的测量量信息。它的格式比较简单如下所示。PID依然是是包标识符Packet ID。上位机软件会根据测量值的发送周期和字节大小自动分配一个PID值。在启动数据采集时上位机软件会通过CRO指令将需要观测的测量值及PID码发送给ECUECU根据PID码打包数据通过DAQ-DTO发送出来。上位机软件收到DAQ-DTO后也会根据PID解压信息并显示出来。二、CCP的命令代码上一节提到了上位机软件会发送命令代码CMD给ECU实现标定和测量功能。本节我们就介绍一下CCP的命令代码到底是什么样子。CCP共有28条命令其中11条是必选命令17条是可选命令每条命令都有自己独立的CMD代码。由于CCP的开放性我们可以根据需要只选择其中一部分命令实现。如下是CCP的全部28条命令。命令CMD解释1CONNECT0x01连接请求2EXCHANGE_ID0x17获取ECU的ID3TEST0x05测试ECU连接状态4SET_MTA0x02设置内存传输地址5DNLOAD0x03下载5个字节到ECU6DNLOAD_60x23下载6个字节到ECU7UPLOAD0x04从ECU上传5个字节8SHORT_UP0x0F从ECU快速上传5个字节9GET_DAQ_SIZE0x14获取DAQ列表的大小10SET_DAQ_PTR0x15设置DAQ列表指针11WRITE_DAQ0x16写DAQ列表12START_STOP_ALL0x08启动或停止所有数据传输13START_STOP0x06驱动或停止部分数据传输14DISCONNECT0x07断开连接请求15SET_S_STATUS0x0C设置ECU会话状态16GET_S_STATUS0x0D获取ECU会话状态17BUILD_CHKSUM0x0E计算校验和18CLEAR_MEMORY0x10清除内存19PROGRAM0x18编程指定大小20PROGRAM_60x22编程6个字节21MOVE0x19内存转移22GET_ACTIVE_CAL_PAGE0x09获取激活标定页23GET_CCP_VERSION0x1B获取CCP协议版本24UNLOCK0x13解锁ECU25GET_SEED0x12获取种子26SELECT_CAL_PAGE0x11选择标定页27DIAG_SERVICE0x20诊断服务28ACTION_SERVICE0x21操作服务以上命令组合起来就能实现丰富CCP功能。比如当我们在上位机软件中点击“建立连接”时。上位机会自动调用CONNECT、GET_CCP_VERSION、EXCHANGE_ID、UPLOAD、GET_SEED等命令实现上位机软件与ECU的联接。后续左工会通过实例向大家介绍CCP命令的详细格式和用法。三、CCP的错误代码下面我们进入了今天学习的最后一部分——错误代码。前面我们命令返回消息和事件消息的格式中提到其报文的第1字节是错误代码ERR的意思。那么ECU一般会反馈哪些错误代码呢请看下表。代码描述10x00确认/无错误20x01DAQ处理器超载30x10指令处理器忙40x11DAQ处理器忙50x12内部超时60x18请求密钥70x19阶段状态请求80x20冷启动请求90x21标定数据初始化请求100x22DAQ列表初始化请求110x23更新代码请求120x30未知指令130x31指令句法错误140x32参数超出许可范围150x33访问被拒绝160x34超载170x35访问锁止保护180x36资源/功能暂不可用这18条错误码中我相信大家可以从描述中大概猜出部分错误码的意义有一部分可能完全看不明白。大家不要担心今天大家就混个脸熟就行了。后续左工会依托于实例向大家详细说明ECU内部发生了什么情况才会调用这些错误码。总结今天我们了解了CCP消息的基本格式。左工仅讲了核心概念帮助大家了解CCP的核心原理。更详细的内容大家可以从CCP的标准文档中查到。如果大家找不到文档或者阅读困难可以给左工发私信。后续左工会依托于实际应用向大家详细介绍和解析CCP中各种命令的具体使用方法。请敬请收藏关注不迷路。

相关新闻

Claude Code、Codex、OpenCode 和 Gemini CLI的介绍

Claude Code、Codex、OpenCode 和 Gemini CLI的介绍

总结如果做工程 / 科研代码:Claude Code 是目前最强的 CLI 级 coding agent Codex 适合 IDE 内写代码 OpenCode 适合研究 Agent 本身 Gemini CLI 更像“聪明一点的命令行百科全书”一、Claude Code(Anthropic)1. 核心定位Claude Code 是“真正…

2026/7/3 14:18:55 阅读更多 →
第6章 从蓝图到现实:商业需求文档的实战演绎与决策推演

第6章 从蓝图到现实:商业需求文档的实战演绎与决策推演

第6章 从蓝图到现实:商业需求文档的实战演绎与决策推演 在产品经理的武器库中,商业需求文档(BRD)不是一份普通的说明文件,而是一份“作战纲领”和“融资计划书”的结合体。它要在产品动工之前,清晰地回答一…

2026/7/3 14:18:56 阅读更多 →
第5章 产品内核的塑造与竞争方略

第5章 产品内核的塑造与竞争方略

第5章 产品内核的塑造与竞争方略 在移动互联网的激烈竞争中,一个产品能否立足乃至胜出,远不止于功能的堆砌或界面的炫丽。其根基在于产品经理如何精准定义产品的核心、洞察其内在类型与气质,并在此基础上制定出清晰的战略与灵活的战术。这好比…

2026/7/3 14:18:56 阅读更多 →

最新新闻

Perlite研究应用:学术笔记管理与分享系统的终极指南

Perlite研究应用:学术笔记管理与分享系统的终极指南

Perlite研究应用:学术笔记管理与分享系统的终极指南 【免费下载链接】Perlite A web-based markdown viewer optimized for Obsidian 项目地址: https://gitcode.com/GitHub_Trending/pe/Perlite Perlite是一个基于Web的Markdown查看器,专为Obsid…

2026/7/5 15:50:40 阅读更多 →
MetaCodable宏编程入门:快速掌握Swift Codable高级用法

MetaCodable宏编程入门:快速掌握Swift Codable高级用法

MetaCodable宏编程入门:快速掌握Swift Codable高级用法 【免费下载链接】MetaCodable Supercharge Swifts Codable implementations with macros meta-programming. 项目地址: https://gitcode.com/gh_mirrors/me/MetaCodable 想要提升Swift开发效率&#xf…

2026/7/5 15:48:39 阅读更多 →
【信息科学与工程学】【数据中心】【容灾备份】第三十一篇 云数据中心各类CPU计算型业务跨数据中心容灾设计方案

【信息科学与工程学】【数据中心】【容灾备份】第三十一篇 云数据中心各类CPU计算型业务跨数据中心容灾设计方案

一、云数据中心各类CPU计算型业务跨数据中心指标 1. Web应用服务 设计领域 设计子类 特征/函数 参数/指标 用途说明 数据中心内设计 数据中心间设计 网络设计​ 数据中心内网络 1. 负载均衡网络 2. 应用层网络 3. 数据库网络 4. 缓存网络 5. 管理网络 1. 带宽:>…

2026/7/5 15:44:38 阅读更多 →
K-Means 聚类的目标函数:簇内误差平方和

K-Means 聚类的目标函数:簇内误差平方和

1. 什么是 K-Means? K-Means 是一种无监督、迭代式的聚类算法: 给定数据集 {x₁, x₂, …, xₙ} 与预设簇数 K,算法把样本划分为 K 个不相交的簇 C₁, C₂, …, Cₖ,使得同一簇内样本尽可能相似,不同簇间样本尽可能远离…

2026/7/5 15:44:38 阅读更多 →
【信息科学与工程学】计算机科学与自动化——第三十八篇 质量工程 02 云数据中心质量工程

【信息科学与工程学】计算机科学与自动化——第三十八篇 质量工程 02 云数据中心质量工程

云数据中心质量工程体系(规划-评估-测试-验证-交付) 编码 阶段 层级 核心领域 子领域 质量属性/活动 关键交付物/指标 核心方法/工具 评估标准 挑战与风险 1 核心理念 战略层 质量哲学 可靠性即产品 将数据中心可靠性、性能、安全作为可销售、可承诺的服务产品…

2026/7/5 15:42:38 阅读更多 →
net 跨平台也是一句谎言

net 跨平台也是一句谎言

以前很热炒跨平台,主要是由于硅谷挑战微软霸主地位的热情,但是冷静下来后,跨平台往往不是那么一回事。假设你有个软件,所谓的跨平台,你只需要为第二个平台上重新编译一次就行了,这样很难么? c语…

2026/7/5 15:40:38 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻