最近学习CCP协议,总结了下:
1、
CCP(CAN Calibration Protocol)是一种基于CAN总线的匹配标定协议。ECU都需要经过匹配标定的过程,从而确定其运行参数和控制参数。有时为了实现对ECU的精确控制以及参数匹配修改,满足预定的要求,必须对ECU进行精确的匹配标定以及优化各项控制参数。基于此,ASAM自动化测试系统标准协会(Association for Standardization of Automation and Measuring Systems)制定了CCP协议。更形象地说,CCP协议实现了ECU在运行过程中,内部变量的在线监测以及有需要时对某些变量的在线修改。监测ECU的内部变量可以测试ECU运行的正确性,若发现某个变量的值不是我们期望的,我们可以标定它,修改成期望的值。举例来说,我们要监测ECU中发动机的转速,若发现发动机转速是错误的,不是我们所需要的,我们立即就可以修改它成正确的我们需要的转速。
2、
上面我们对CCP有了个总体的印象,对CCP能够做什么有了了解,下面我们关键的是要怎么实现它。
基于CCP协议的ECU标定采用主-从通信方式,主设备通过CAN总线与多个从设备相连。其中主设备是测量标定系统MCS(Measurement Calibration System),从设备是需要标定的ECU。在这里测量标定系统我介绍一下CANape。CANape是一款ECU标定和测试工具。与CCP协议相结合,能完成对ECU标定,同时还能在ECU运行期间直接访问内存并进行操作。从上面的介绍,现在我们心中应该至少有这么一个框图(如下),通过CAN总线,CANape可以读出ECU中的变量,同时CANape也能写ECU中的变量。
3、
CCP属于CAN总线的应用层协议,它占用CAN报文两个ID标志符,即CRO(Command Receive Object)和DTO(Data Transmission Object),使用数据帧中数据场的8个字节。CRO用于主设备向从设备发送命令,DTO则用于从设备发送至主设备数据,ID标识符可以自行约定。CRO数据场的第一个字节为命令代码CMD(Command Code),CCP协议共规定了28条命令。从设备通过CMD代码判断主设备请求的是哪条命令。数据场的第二个字节是命令计数器CTR(Command Counter)。余下6个字节为命令参数,每条命令有各自对应的命令参数。CRO帧格式如下:
| Byte0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
| CMD |
CTR |
参数 |
|||||
DTO数据场第一个字节PID定义了DTO的类型,用以标示DTO的类型;第2个字节为命令返回/错误代码ERR(Command Return-/Error Code),第3字节CTR是命令计数器,该位数值与其对应的CRO的CTR值相对应,DTO格式如下:
| Byte0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
| PID |
ERR |
CTR |
参数 |
||||
DTO分三种类型:
1)
2)
3)
| Byte0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
| PID |
|
||||||
根据CCP协议,主设备首先与从设备建立逻辑连接。建立逻辑连接后,主、从机之间所有的数据传递均由主机控制,从机执行主机命令后返回包含命令响应值或错误代码等信息的报文。任何一个从机都可以定时地根据由主机通过控制命令所设置的列表来传递内部的数据。所以说数据的传递是由主机初始化,由从机来执行,并且是由固定的循环采样频率或事件触发的。
4、CCP协议工作模式
5、两种模式对应的处理过程
6、测量标定系统的总体框图介绍
CANape里已经集成了CCP和CAN的驱动,CANape发送命令的形式是通过测量窗口的配置。举例来说,如要测量发动机的转速,首先根据ECU里的map文件确定转速在ECU中的地址,配置成A2L格式的数据库文件,在测量配置窗口配置转速这一变量,设置成polling模式,新建一个显示窗口添加该变量,运行CANape即可实现转速的在线监测。
7、标定数据库(A2L)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/130075.html