之前两篇文章对CCP标定协议作了初步的介绍,大家也应该有了一定的了解,本文将对CCP标定协议的实现进行介绍,让大家能够进一步理解CCP标定协议。目前CCP协议最新版本是V2.1,在Vector的官网上提供了相应的参考例子,本文基于Vector提供的CCP协议示例在STM32F103平台上进行了移植,实现了参数的监控测量
CCP标定协议示例实现功能及流程介绍
数据定义区间说明
在前面《如何实现标定》一文介绍了标定是基于RAM和ROM数据的映射来实现的,本文是基于STM32F103平台进行移植的,其RAM大小为0x10000byte,其中非标标定参数在RAM中的配置为0x20000000到0xF000区间,标定参数定义在0x2000F000到0x20010000区间,相应的标定ROM区间为0x807F000到0x8080000,标定RAM和ROM区间大小配置一定要一致。
CCP标定通讯流程说明
Vector提供的CCP示例代码只实现了参数的监控,没有对参数标定后Flash刷写功能部分。本文也先基于示例实现代码的移植,实现CCP通讯和参数的监控,使用了Vector的CANape作为标定上位机,上位机发送CRO报文ID为0x100,控制器响应DTO报文ID为0x101,采集了示例的通讯报文数据,在介绍具体实现过程前,先为大家梳理一下整个实现的流程:
![](https://img-blog.csdnimg.cn/img_convert/1fb73fdc37fcfb170603ae1508939a18.png)
CCP标定协议实现流程指令介绍
下面将根据采集的通讯报文数据,按照实现流程的指令详细介绍具体实现过程:
连接-CONNECT
连接过程实现比较简单,CRO报文有效数据长度为3个字节,DTO报文有效数据长度也为3个字节。如果控制器能够支持CCP连接,直接回复肯定响应就可以建立起连接了,否则回复错误代码。
CRO报文定义:
![](https://img-blog.csdnimg.cn/img_convert/5502e564b718b4e629262afa57feacff.png)
DTO报文定义: