最近学习CCP协议,总结了下:

1、  CCP协议概述

CCP(CAN CalibrationProtocol)是一种基于CAN总线的匹配标定协议。ECU都需要经过匹配标定的过程,从而确定其运行参数和控制参数。有时为了实现对ECU的精确控制以及参数匹配修改,满足预定的要求,必须对ECU进行精确的匹配标定以及优化各项控制参数。基于此,ASAM自动化测试系统标准协会(Associationfor Standardization of Automation and MeasuringSystems)制定了CCP协议。更形象地说,CCP协议实现了ECU在运行过程中,内部变量的在线监测以及有需要时对某些变量的在线修改。监测ECU的内部变量可以测试ECU运行的正确性,若发现某个变量的值不是我们期望的,我们可以标定它,修改成期望的值。举例来说,我们要监测ECU中发动机的转速,若发现发动机转速是错误的,不是我们所需要的,我们立即就可以修改它成正确的我们需要的转速。

2、  CCP通信

上面我们对CCP有了个总体的印象,对CCP能够做什么有了了解,下面我们关键的是要怎么实现它。

基于CCP协议的ECU标定采用主-从通信方式,主设备通过CAN总线与多个从设备相连。其中主设备是测量标定系统MCS(MeasurementCalibrationSystem),从设备是需要标定的ECU。在这里测量标定系统我介绍一下CANape。CANape是一款ECU标定和测试工具。与CCP协议相结合,能完成对ECU标定,同时还能在ECU运行期间直接访问内存并进行操作。从上面的介绍,现在我们心中应该至少有这么一个框图(如下),通过CAN总线,CANape可以读出ECU中的变量,同时CANape也能写ECU中的变量。

3、  CCP协议报文帧格式

CCP属于CAN总线的应用层协议,它占用CAN报文两个ID标志符,即CRO(Command ReceiveObject)和DTO(Data TransmissionObject),使用数据帧中数据场的8个字节。CRO用于主设备向从设备发送命令,DTO则用于从设备发送至主设备数据,ID标识符可以自行约定。CRO数据场的第一个字节为命令代码CMD(CommandCode),CCP协议共规定了28条命令。从设备通过CMD代码判断主设备请求的是哪条命令。数据场的第二个字节是命令计数器CTR(CommandCounter)。余下6个字节为命令参数,每条命令有各自对应的命令参数。CRO帧格式如下:

Byte0

1

2

3

4

5

6

7

CMD

CTR

参数

DTO数据场第一个字节PID定义了DTO的类型,用以标示DTO的类型;第2个字节为命令返回/错误代码ERR(CommandReturn-/Error Code),第3字节CTR是命令计数器,该位数值与其对应的CRO的CTR值相对应,DTO格式如下:

Byte0

1

2

3

4

5

6

7

PID

ERR

CTR

参数

DTO分三种类型:
1) CRM (Command Return Message):由从设备发送,反馈CRO命令的报文。PID=0xFF;

2) EventMessage:当从设备检测到内部发生错误机制时,由从设备自行向主设备发送,报告其当前的运行状态,并请求主设备暂停当前工作进程以处理发生的错误。PID=0xFE;
3) DAQ-DTO(DataAcquisition-DTO):用于DAQ模式,由从设备定期向主设备发送。PID(0x00~0xFD);报文格式如下:

Byte0

1

2

3

4

5

6

7

PID

上传的数据

根据CCP协议,主设备首先与从设备建立逻辑连接。建立逻辑连接后,主、从机之间所有的数据传递均由主机控制,从机执行主机命令后返回包含命令响应值或错误代码等信息的报文。任何一个从机都可以定时地根据由主机通过控制命令所设置的列表来传递内部的数据。所以说数据的传递是由主机初始化,由从机来执行,并且是由固定的循环采样频率或事件触发的。

4、CCP协议工作模式 
   CCP定义了两种工作模式:Polling(查询)模式及DAQ(Data Acquisition Command)模式。查询模式下,主设备与从设备间每一次通信都由主设备发送命令来起始,从设备收到主设备命令后,执行相应操作并反馈一帧报文。这种工作模式需要主机与从机之间进行“一问一答”信息交互,工作效率不高,但实现简单,占用ECU内存资源较小。 DAQ模式使从设备可以脱离主设备命令控制按一定周期自动向主设备上传数据。DAQ模式下,主设备首先发送一条请求DAQ命令,从设备收到后,按命令中参数自行配置并组织需要上传数据,然后按一定周期自主向主设备上传数据。这种模式不需要主机命令逐步控制,工作效率高,但实现较复杂,需要上传数据量很大,会占用大量ECU内存空间。

5、两种模式对应的处理过程

定义两种处理器只是为了更好的理解接收CRO报文后的处理过程,DAQ模式首先也还得经过命令处理器对命令进行解读,若为DAQ命令则转给DAQ处理器处理。

1)、针对Polling模式的命令处理器

命令处理器主要是获取并解读主设备的CCP命令,并执行该命令;命令执行完后,向主设备发送应答;若执行出错,应答中应包含向主设备报错的信息;若主设备命令要求对DAQ进行操作,则该操作传送给DAQ处理器处理,由DAQ处理器完成DAQ操作。

2)、DAQ处理器实现DAQ模式

DAQ处理器的任务是根据主设备的需要,定时向CAN总线上发送DAQ数据。DAQ模式,简单的说就是由ECU组织,定期的向CANape发送数据。DAQ传送的数据由一系列的表来组织,这些表称为ODT,每个ODT表包含7个元素。这些ODT描述的参数需要ECU用DAQ-DTO帧周期发送给CANape用来监测。当ECU的DAQ机制启动后,ECU按CANape里设定的周期,将每个ODT表描述的参数当前的值顺次放入相应的DAQ-DTO帧中,然后发送给CANape。

标定的实现过程:CANape发送GET_DAQ_SIZE命令(参数为指定的list号),得到指定的list的ODT数量,并且得到该list中DTO的第一个PID号,然后发送SET_DAQ_PTR命令(参数为list号,ODT号,ODT中的元素号),指定需要初始化的元素。最后,根据命令SET_DAQ_PTR设置的具体元素,发送WRITE_DAQ命令(参数为元素的byte大小,元素的地址),通过反复地执行SET_DAQ_PTR和WRITE_DAQ这两条命令,初始化一个具体的ODT表,然后初始化完一个具体的List表,最后初始化完所有的list表。这样,CANape就完成了ODT的初始化工作。之后开始和停止DAQ数据的传输。CANape发送START_STOP命令(可以准备DAQ数据的上传),发送START_STOP_ALL来上传所有准备好的DAQ数据。ECU采集指定的数据后以DTO的形式上传给CANape,实现DAQ模式。

6、测量标定系统的总体框图介绍

测量标定系统的简单框图如下图所示。主设备发送CRO报文到总线,经过ECU CAN Driver的接收,由CAN Driver与CCPDirver的接口函数把接收的报文转给命令处理器,由命令处理器解析命令,若是查询模式的命令,则根据命令返回相应的CRM报文;若是DAQ模式的命令,则转给DAQ处理器进行处理,之后按命令给定的周期,自己组织采集需要的数据,通过DAQ-DTO报文的形式返回给主设备。

CANape里已经集成了CCP和CAN的驱动,CANape发送命令的形式是通过测量窗口的配置。举例来说,如要测量发动机的转速,首先根据ECU里的map文件确定转速在ECU中的地址,配置成A2L格式的数据库文件,在测量配置窗口配置转速这一变量,设置成polling模式,新建一个显示窗口添加该变量,运行CANape即可实现转速的在线监测。

7、标定数据库(A2L)

CANape与ECU之间的通信需要一个描述文件支持,这个文件称为ASAP2描述文件。CANape对ECU参数标定和数据测量都是基于这个文件,该文件记录了ECU中各参数详细信息,如标定参数和测量变量ECU中存储地址、存储结构、数据类型和转换公式等。CANape中,每个标定参数和测量数据都会有一个变量名,如发动机温度、冷却水温度。当CANape需要访问某个变量时,找到ASAP2描述文件中变量名,找到该变量在ECU中的存储地址、数据长度等信息。为了对ASAP2文件进行维护和修改,CANape集成了一个ASAP2Editor的数据库编辑器,生成和修改ASAP2控制器描述文件。所有信息都能对话框形式进行设置和修改。该数据库编辑器还能工作在独立模式下,以生成一个A2L格式的控制器描述文件。 当ECU底层程序修改后,一些标定参数和测量数据内存址可能发生变动,CANape支持linker map文件自动更新ASAP2文件里的信息。Map文件是ECU底层程序编译时由编译器生成一种映射文件,Map文件可以自动更新ASAP2文件,保证了测量与标定变量时地址的一致性。

汽车电子 CCP学习相关推荐

  1. 汽车电子 CIS 学习(二) 之port_driver、proto_driver、vdev_driver注册代码分析

    汽车电子 CIS 学习(一) 之 UART PORT 二.车机目录介绍 三.port_driver.proto_driver.vdev_driver注册代码分析 3.1 cis_register_po ...

  2. CCP学习二——通信流程

    1 概述   CCP通信按信息传输方式分为:POLLING(问答)和DAQ方式   按功能模式分为三种:SESSION(会话).CAL(标定).DAQ(查询)   工作流程一般为,程序初始化完成后,通 ...

  3. 细说汽车电子通信总线之LIN总线协议详解

    内容提要 1. LIN总线概述 1.1 LIN总线特点及发展历史 1.2 LIN 总线协议的物理层(收发器) 2. LIN总线报文帧结构(Message Frame Structure)详解 2.1 ...

  4. can总线报文是固定的吗_CAN总线负载率的计算方式

    今天这篇文章主要是介绍当前汽车中使用的总线的类型及负载率的计算方式,用于汽车电子工程师学习及应用在日常工作中:当前汽车中常见总线类型是CAN,CAN FD, FlexRay及LIN总线:今天我们先介绍 ...

  5. 汽车电子PKE与RKE学习笔记

    简介 因自己从事的工作对于汽车电子有一定了解与认知,今天给大家分享一些自己学习PKE与RKE时的学习笔记,希望能给大家一些启示,同时不对的地方请批评指正. 随着汽车电子行业的发展,从最开始用户使用遥控 ...

  6. 汽车电子学习笔记—AutoSAR之基础软件层(BSW)

    汽车电子学习笔记-AutoSAR之基础软件层(BSW) - 1.概述 如之前autosar概述笔记中说明,BSW按照层级结构可以分为服务层.ECU抽象层.硬件抽象层(MCAL)和复杂驱动层(CDD). ...

  7. 汽车电子学习笔记---LIN

    汽车电子学习笔记-LIN 1.简介 1)LIN(Local Interconnect Network)总线是基于UART/SCI(通用异步收发器/串行接口)的低成本串行通讯协议.主要用于网络宽带.性能 ...

  8. CCP协议学习《一》

    CCP:CAN Calibration Protocol是基于CAN总线应用层协议.   在学习CCP之前,先了解一下CAN总线. 1 CAN是什么?   CAN 是Controller Area N ...

  9. 汽车电子学习笔记---RZ、NRZ、NRZ1、曼彻斯特编码

    汽车电子学习笔记-RZ.NRZ.NRZ1.曼彻斯特编码 1.RZ(Return Zero Code)编码 也称为归零码,特性就是在一个周期内,用二进制传输数据位,在数据位脉冲结束后,需要维持一段时间的 ...

最新文章

  1. buffer java作用_Java NIO之Buffer的使用
  2. 2016-2017-2 《Java程序设计》预备作业1 总结
  3. php 根据数组归类,PHP如何高效地对根据键值对数组元素进行归类?
  4. vue 2 使用 Bus.js 实现兄弟 (非父子) 组件通信 简单案例
  5. LeetCode 56. 合并区间(优先队列)
  6. 创新方法(TRIZ)理论及应用(一)
  7. p71_文件传送协议FTP
  8. hive-2.3.3安装指北
  9. 选择器高级、样式及布局
  10. node koa2 玩起来都是中间件啊
  11. 跨时钟域问题(三)异步FIFO的Verilog实现(格雷码)
  12. 盐城工学院c语言实验报告簿,盐城工学院单片机实验指导书.doc
  13. 5个 GIS空间分析 空间查询与量算 的重要知识点
  14. 农场买了一羊,第一年是小羊,第二年底生一只,第三年不生,第四年底再生一只,第五年死掉
  15. 完全免费无限量京东联盟高级API - 高并发京东联盟转链接口 京东客转链接口 京粉转链接口 京东联盟返利接口 京东返利接口,线报无广告接口
  16. hdu3966树链剖分 分析
  17. 什么是台式机主板的“双通道”认知误区?
  18. 找不到设备 将计算机连接到USB打印机,打印机连接电脑没反应怎么办
  19. 安徽师大附中%你赛day2T3 巧克力 解题报告
  20. Android面试基础之BroadcastReceiver详解(斗帝养成系列四)

热门文章

  1. 近10年数据智能团队建设,联想总结了由内而外的发展经验 | 专访联想集团副总裁田日辉
  2. oracle斗图,Oracle script emojis refresh traditional culture萌系表情包让甲骨文不再“高冷”...
  3. 计算机辅助诊断(Computer-aided diagnosis)小总结
  4. CISCO交换机开启SNMP配置团体名
  5. FP5207B:带软启动工作频率可调DC-DC升压IC
  6. vb身份证读取桌面程序
  7. GTA5mod整合版游戏 超清画质+800辆真车+179添加人物
  8. ArcGIS Pro3.0.2安装教程
  9. ArcGIS10.2安装教程(win11版)
  10. windows10如何删除恢复分区(让拆下的win10机械硬盘焕发新生,充分利用磁盘空间)