一、CCP简介
CCP – CAN Calibration Protocol,CAN标定协议;是基于CAN协议实现的一种功能,该功能的主要作用是能够在线实时标定数据,并实现数据的上传与下载。CCP与XCP之间有什么联系?XCP被细分为协议层和传输层。协议层为XCP,传输层为CAN、USB、Ethernet、CANFD,本文的X代表CAN。常用的标定工具有vector公司的CANape、ETAS公司的INCA;
二、CCP通讯方式
采用主从方式,标定工具作为MASTER,发送命令报文(CRO),ECU作为SLAVE应答(DTO)。
polling(查询模式)
由主设备主动向从设备发送指令,从设备做出反馈应答,“一问一答”模式。效率相对较低,实现简单,占用ECU内存空间少;
DAQ(数据采集)
主设备发送一条请求指令后,从设备按照一定周期自动向主设备上报数据;效率高,实现复杂,数据量大,占用ECU内存空间大;
通讯过程中通过指令接收报文(CRO)和数据传输报文(DTO)实现数据及信息的传递。
指令接收报文(CRO),发送指令。
数据传输方向:master -> slave;报文中携带一个指令和在从设备中执行的指令参数;
1:CMD | 2:CTR | 3-8:Date and Parameter |
CMD:命令代码。如连接命令0x01,
CTR: 命令计数器。保证命令和应答的一致性。
数据传输报文(DTO),DTO出了应答命令外,还包括从数据主动上传的DAQ数据包。
1:PID | 2:ERR | 3:CTR | 4-8: Data and Parameter |
PID:包标识 [0XFE-0xFF],0XFF表示命令应答,0XFE表示错误报文
ERR:应答码
CTR: 命令计数器,与命令中的计数器对应。
1:PID | 2-8:DAQ VALUE |
PID:包标识 [0X00-0xFD],在DAQ模式下,此标识对应于相应的ODT标识(一次设置最多254个ODT)。表示后面的上传数据是此ODT中元素索引表中对应的变量值。
DAQ VALUE:ODT中元素索引表中对应的变量值,最大7个字节。
数据传输方向:slave -> master;DTO分为如下几类消息:
1、错误返回消息CRM;2、事件消息;3、数据采集;
三、指令列表
四、CCP功能实现
CCP的功能是通过以上的指令进行组合来实现的,主要包括以下功能:会话登录功能、块数据下载功能、块数据上传功能、校验数据初始化功能、数据采集列表初始化功能、代码更新功能。
- 会话登录指令流程
- CONNECT 逻辑连接
- GET_CCP_VERSION 获取CCP协议版本
- EXCHANGE_ID 交换节点标识符
- GET_SEED 获取key的seed数据
- UNLOCK 使用接收到的密钥解密
- SET_S_STATUS 设置会话状态
- 块数据上传/下载指令流程
- CONNECT 逻辑连接
- SET_MTA 将内存传输地址设置为目标块
- UPDOWN/UPLOAD 进行块数据下载/进行块数据上传
- 数据校验指令流程
- CONNECT 逻辑连接
- SET_S_STATUS 设置会话状态
- SET_MTA 将内存传输地址设置为目标块
- BUILD_CHKSUM 构建块的校验和
- DOWNLOAD 若是校验和不匹配,继续下载
- SELECT_CAL_PAGE 选择校准数据页面
- SET_S_STATUS 设置会话状态位CAL=1
- 列表数据采集指令流程
- CONNECT 逻辑连接
- SET_S_STATUS 设置会话状态DAQ=0
- GET_DAQ_SIZE 获取DAQ大小,创建DAQ列表
- SET_DAQ_PTR 设置DAQ数据指针
- WRITE_DAQ 填充DAQ列表数据
- SET_S_STATUS 设置会话状态位DAQ=1
- START_STOP 开始传输DAQ-DTO数据,并设置相关参数
- 软件更新指令流程
- CONNECT 逻辑连接
- SET_MTA 内存传输地址设置为目标块
- CLEAR_MEMORY 清除从设备的内存
- PROGRAM 程序取决与扇区大小
- PROGRAM size=0 程序结束
五、CCP相关功能测试方法
结合测试上位机,并采集报文进行同步分析的方式,完成以下功能的测试项目。
1、DAQ数据上传数据
- 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加变量的地址并设置为观测模式,将上传方式设置为DAQ模式,建立主从设备的数据连接,添加观测变量,启动数据采集。预期结果,ECU周期性的上传报文。分析报文的传输流程符合设计预期指令流程。
2、polling方式上传数据
- 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加变量的地址并设置为观测模式,将上传方式设置为polling模式,建立主从设备的数据连接,添加观测变量,启动数据采集。预期结果,ECU周期性的上传报文。分析报文的传输流程符合设计预期指令流程。
3、主从设备安全访问
- 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加正确的安全算法,建立主从设备的数据连接。预期结果,ECU可以正常标定。分析报文的传输流程符合设计预期指令流程。
- 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加错误的安全算法,建立主从设备的数据连接。预期结果,ECU不能正常标定。分析报文的传输流程符合设计预期指令流程。
4、在线标定功能
- 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加变量的地址并设置为标定模式,建立主从设备的数据连接,修改添加的标定变量。预期结果,程序中的功能按照标定的参数执行。分析报文的传输流程符合设计预期指令流程。
5、标定数据下载
- 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加标定数据区域的映射地址,选择下载文件,开启下载模式。预期结果,程序更新成功,按照预期功能运行。分析报文的传输流程符合设计预期指令流程。
本文暂时没有评论,来添加一个吧(●'◡'●)