CCP协议讲解

CCP协议讲解

CCP协议简介

CCP:CAN Calibration Protocal,即CAN总线标定协议。此协议规定了在CAN总线通信的基础上进行标定时要遵循的一种交互方式。与CCP协议对应的还有一个XCP协议(基于任意总线的标定协议)。由于我司当前主流产品都带有CAN协议,因为标定协议基本选用CCP。

 

CCP核心概念

 

CCP协议讲解

1、CRO 与 DTO

CCP的报文分为两种:CRO、DTO。CRO为标定工具发给ECU的请求(Request),DTO为ECU发给标定工具的响应(Response)。这里,标定工具作为整个交互活动的发起方,被称为Master,而ECU被称为Slave。

 

CCP协议不涉及多帧传输。

 

2、DAQ

意为Data Acquisition,即数据获取,是CCP的主要应用。在标定时,标定工具需要实时获取ECU的指定参数值。在完成配置后,ECU可以自动周期性的汇报参数值(而不需要Master每次都额外发送请求来获取)。上述ECU配置过程以及后续的主动周期性汇报参数的过程,可以理解为DAQ

 

3、ODT

Object Descripter Table,即目标描述列表。结构如下:

 

CCP协议讲解

一个ODT可以对应1个或多个的参数起始地址及其长度。所有的参数的长度之和不能超过7个字节(首个字节为PID)。一个ODT可以装载进一帧DTO(这里可称为DAQ - DTO)发送

 

4、DAQ list

DAQ list 对应一个特定的发送方式(特定的周期、特定的ID…)。不同的参数,若发送方式一样,那么就可以对应一个DAQ list。 不同DAQ list 对应不同的发送方式

 

一个DAQ list 可以包含多个ODT,如下图:

 

CCP协议讲解

实际发送DAQ list时,若包含N个ODT,就需要发送N帧DAQ-DTO (PID从0至 N-1)

 

5、Event Channel

Event Channel 与 DAQ list 一一对应,相当于对DAQ list编了号。在CCP的接口函数中,会用Event Channel的数值指代特定的DAQ list

 

报文格式

CCP协议讲解

CRO报文格式:CMD+CTR+Parameter

其中,CMD代表命令,长度为1个字节;CTR代表CMD Counter(命令计数器),长度为1个字节;

 

DTO的报文分为三种类型

l  PID = 255、格式:PID+CMD Return(or ERR)+CTR

PID固定为255时,DTO报文为命令响应报文,此报文是对命令的一个响应。 DTO报文中的CMD、CTR参数与CRO报文中的CMD、CTR参数一致。

当执行命令出错时,DTO报文中的CMD参数,会用一个ERR参数替代,代表错误类型

 

此报文的发送是由CRO命令报文触发。

 

l  PID = 254、格式:PID+ERR+CTR

PID固定为254时,DTO报文为事件型报文,反应当前遇到的错误。当从设备检测到内部发生错误机制时,由从设备自行向主设备发送,报告其当前的运行状态,并请求主设备暂停当前工作进程以处理发生的错误。

此报文的发送是由从设备检测到错误时,自主发送,无需CRO报文触发。

 

l  0 ≤  PID < 254、格式:PID+DATA

此时报文为DAQ - DTO数据获取报文。当主设备对从设备配置完成后(建立好ODT和DAQ list),发送数据获取命令,从设备便会周期性的发送DAQ – DTO报文,汇报数据。

 

CCP命令说明

CCP的命令,可以简单梳理为以下几大类:

1、 启动、停止

CCP协议讲解

此类命令用来建立/断开 连接、获取CCP版本信息、获取Slave信息、获取种子、请求解锁、启动/停止DAQ list数据发送。

可以理解为,上述命令用于真正标定前的准备工作和标定后的结束工作。

 

2、 DAQ list配置

CCP协议讲解

此类命令,用来标定前,建立ODT和DAQ list,方便监测和标定数据

 

3、 数据传输

CCP协议讲解

此类命令,用于主设备和从设备之间的数据传输,包括数据下载、数据上载、数据清除等。

 

4、 其他服务函数

此类命令包括设置/获取从设备参数、执行特定的诊断服务等命令。这里不再一一列举。

 

参考文档

ASAP Standard:《CAN Calibration Protocol Version 2.1》

猜你喜欢

转载自blog.csdn.net/win2000_li/article/details/89207937