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

CCP基本命令—选择标定数据页、获取DAQ列表大小

文章目录

  • 前言
  • 一、CCP的实操报文
  • 二、SELECT_CAL_PAGE—选择标定数据页
  • 三、GET_DAQ_SIZE—获取DAQ列表大小
  • 总结

前言

大家好,我是左工,经过多天的努力,我们终于迎来了CCP基本命令的最后一讲,从下一篇开始我们将开始学习CCP协议的代码实现。基本命令的学习虽然枯燥,但这是CCP协议实现的基础,希望大家能坚持学完。今天我们介绍的两个命令是:选择标定数据页(SELECT_CAL_PAGE,0x11)和获取DAQ列表大小(GET_DAQ_SIZE,0x14)。


一、CCP的实操报文

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

点击“建立连接”之后,在报文窗口的前几帧报文我们已经在文章CCP基本命令—连接请求、版本获取、CCP基本命令—ECU的ID获取、数据上传、CCP基本操作流程与效果展示和CCP基本命令—激活的标定页获取、内存传输地址设置中进行了详细的解释。今天我们继续来解读后面10帧报文的信息。

二、SELECT_CAL_PAGE—选择标定数据页

“选择标定数据页”这条命令的功能是在ECU内部实现的。该条命令与上一篇文章CCP基本命令—激活的标定页获取、内存传输地址设置中的SET_MTA常常组合使用。SET_MTA设置MTA0后,再执行SELECT_CAL_PAGE命令,ECU会将激活状态下的标定页地址改成先前设置的MTA0地址。该命令的代码是0x11,CRO格式如下所示。

这个命令的CRO比较简单,只有命令代码和CTR。如果大家对CRO和CTR概念忘记了,请参看文章CCP 基本概念与核心原理和CCP的消息基本格式。针对SELECT_CAL_PAGE命令的DTO格式如下。

这个DTO也比较简单,只返回了故障码和命令序号。有了上面的基本知识我们来解析一下前两帧报文。

第一帧报文是上位机软件用ID为0x10的CAN报文发送了一帧命令帧(CMD)。第0字节为命令代码0x11,意思是选择标定数据页。第1字节为命令序号0x0E,也就是上位机软件发出的第0x0E(十进制14)号。

第二帧报文是ECU用ID为0x2D的CAN报文发送了一帧响应帧(RES)。第0字节为PID码0xFF,意思是这是一个命令返回消息CRM-DTO,是对某个命令的反馈。第1字节为0x00,错误代码为0x00,查看文章CCP的消息基本格式中错误代码定义,这个代码的意思是“确认/无错误”。第2字节是0x0E,意思是该响应帧是对第0x0E号命令的响应。由于前面已经将MTA0地址设置为0x0000 0000了(参看文章CCP基本命令—激活的标定页获取、内存传输地址设置),所以这条命令执行完之后激活状态的标定页地址就是0x0000 0000。

三、GET_DAQ_SIZE—获取DAQ列表大小

看名字就知道“获取DAQ列表大小”这条命令用来给文章CCP 基本概念与核心原理中提到的数据采集模式(Data Acquisition,DAQ)服务的。该条命令用来获取某个特定DAQ列表的大小,即其中ODT列表的个数,并清空当前DAQ列表内的数据,为下次DAQ通信做准备。如果GET_DAQ_SIZE命令选定的DAQ列表不存在或不可用,从设备返回的ODT列表个数为0。同时该命令还对DAQ列表进行初始化并中止该DAQ列表当前的通信。

上面的描述中多了一个ODT列表的概念,那么这个ODT列表是什么意思呢?ODT 的全称是 Object Descriptor Table(对象描述表),是DAQ的重要概念。DAQ通信的实现需要借助DAQ列表和ODT列表。每个上传周期,对应一个DAQ列表。如同一个ECU内,有10ms、25ms和50ms三种上传周期,a2l文件中就会定义三个事件通道,对应三个DAQ列表。

一个DAQ列表下又可包含多个ODT列表,ODT列表中存放具体需要上传的数据变量的信息,包括数据变量的存放地址,数据长度及其偏移地址。每个ODT列表的最大元素数目为7,可存放7个单字节数据变量的信息。ODT列表需要转换成DAQ-DTO(参看文章CCP的消息基本格式)的形式才能向上位机软件发送。每个ODT列表都有一个唯一的绝对编号(也就是PID号),对应一个DAQ-DTO。注意,ODT列表是存放在ECU内部的信息,DAQ-DTO是外发的报文信息,这是两个不同的概念。同时每个ODT列表还有一个相对编号,表征了该ODT列表在所在DAQ列表中的位置,排在最前的ODT列表相对编号为0,总的ODT列表数目不能超过254。GET_DAQ_SIZE的命令代码是0x02。该命令的CRO格式如下所示。

对于上表中中的CAN ID标识符,如果所给出的ID不正确,则返回一个错误代码。反馈DTO格式如下所示。

有了这些知识我们来解析一下第三、四帧报文。

第三帧报文是上位机软件发送了命令帧。第0字节为0x14,获取DAQ列表大小。命令序号承接了前面序号继续排序为0x0F号。第2字节为0x00,表示需要获取0号DAQ列表的大小。第3字节是无效字节。第4~7字节为0x0000 002D,表示需要响应的ECU的CAN报文ID为0x2D。相对应的,ECU回复了第四帧报文作为ECU的响应。CAN报文ID就是0x2D。该报文的第0字节为0xFF,是一个命令回复PID。第1字节为0x00,表明确认/无错误。第2字节是0x0F,表明是对0x0F号命令的回复。第3字节为0x54,表示0号DAQ列表的ODT格式为0x54(十进制84)个。第4字节为0x00表明该DAQ列表中第一个ODT的PID编码为0。

我们可以从后面的报文看见,上位机软件继续的询问后续1号,2号和3号DAQ列表的大小。1号和2号DAQ列表的大小都是84,当询问到3号列表的时候,ECU回复的大小是0,表示ECU中不存在3号DAQ列表。上位机软件就停止了继续询问。


总结

今天我们依托于实际用例了解了选择标定数据页和获取DAQ列表大小。到现在为止ECU连接之后的重要指令我们就全部讲解完成了,在这个过程中相信大家对CCP的命令使用有了初步的了解,对CCP的基本概念也比较熟练了。针对CCP中其他命令,有了前面及基础知识,大家应该可以自己很轻松的弄明白。如果还有哪些命令有疑惑,大家可以给左工私信,左工会根据大家的反馈单独讲解。关于命令部分左工就完成了所有计划内容。下一期,左工将讲解如何编写ECU代码,实现CCP协议。请敬请收藏关注,不迷路。

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

相关文章:

  • 导入Rsoft接口库
  • 网络通信与 TCP/IP 五层协议模型详解
  • 2026年质量好的异性拉伸件公司推荐:五金拉伸件生产厂家推荐几家 - 行业平台推荐
  • No.103.基于博途的PLC三种模式通行时间可调的复杂路口交通灯程序设计与仿真,带登录系统登...
  • 2026年比较好的食品生产线公司推荐:麦片生产线/糖果生产线/复合薯片生产线值得信赖的生产厂家 - 行业平台推荐
  • java基于springboot的毕业生招聘职位推荐系统设计
  • java关键字之final学习
  • 基于Vue.js的电商前端模板:Vue-Dashboard-Template的设计与实现
  • 2026年比较好的包装机公司推荐:给袋包装机/巧克力包装机/糖果枕式包装机工厂直供哪家专业 - 行业平台推荐
  • Windows应用程序漏洞及防御
  • 2025 1-12
  • 线缆中的正向、反向、同向、异向的具体意思是什么?
  • 低温传感器质量检测的具体步骤
  • 从2026消费趋势洞察看春节礼品推荐方向,附选购清单 - yangyuan-shunfeng
  • Day2-MySQL-SQL-1
  • 2026年重庆特色美食评测:这几家口碑老店值得专程前往,特色美食/火锅店/社区火锅/火锅/美食,特色美食品牌推荐 - 品牌推荐师
  • 校园跑腿服务平台的技术实现与案例分析
  • 为什么要深入学习JVM底层原理
  • 快看2026年2月国内热门智适应动力模块工厂推荐排行,回风箱式电子除尘净化器/空调机组,智适应动力模块供应厂家选哪家 - 品牌推荐师
  • Whatever
  • 2026年国产CRM排行榜深度解析:十款本土客户管理系统终极指南 - 纷享销客智能型CRM
  • 盘点加油卡回收的4个关键步骤,轻松解决常见问题 - 团团收购物卡回收
  • 有人已经用小龙虾OpenClaw偷钱和数据了!
  • 2026年进口岩板品牌服务商家怎么收费,价格大揭秘 - 工业品牌热点
  • ClaudeCode安装并配置第三方模型
  • HN2302GN_20V4A 封装SOT23 MOSFET场效应管详细分析(核心应用场景与电路)
  • 3关键字B+树构建详解
  • 2026年中小企业主必看:北京代理记账公司选型指南与精准适配建议 - 十大品牌推荐
  • Vibe Coding氛围编程
  • 上海佳航 JH-T7 全自动电位滴定仪测定酱油中氯化钠含量应用方案