• CCP 协议


    转载

    1、  CCP协议概述

    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能够做什么有了了解,下面我们关键的是要怎么实现它。

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

    3、  CCP协议报文帧格式

    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帧格式如下:

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

     

    DTO分三种类型:

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

    2) Event Message:当从设备检测到内部发生错误机制时,由从设备自行向主设备发送,报告其当前的运行状态,并请求主设备暂停当前工作进程以处理发生的错误。PID=0xFE;

    3) DAQ-DTO(Data Acquisition-DTO):用于DAQ模式,由从设备定期向主设备发送。PID(0x00~0xFD);报文格式如下:

     

    根据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与CCP Dirver的接口函数把接收的报文转给命令处理器,由命令处理器解析命令,若是查询模式的命令,则根据命令返回相应的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集成了一个ASAP2 Editor的数据库编辑器,生成和修改ASAP2控制器描述文件。所有信息都能对话框形式进行设置和修改。该数据库编辑器还能工作在独立模式下,以生成一个A2L格式的控制器描述文件。 当ECU底层程序修改后,一些标定参数和测量数据内存址可能发生变动,CANape支持linker map文件自动更新ASAP2文件里的信息。Map文件是ECU底层程序编译时由编译器生成一种映射文件,Map文件可以自动更新ASAP2文件,保证了测量与标定变量时地址的一致性。

  • 相关阅读:
    字符串编码之一:字符串语法
    PHP进阶学习系列1:字符串编码提纲
    关于技术成长的一些反思
    Yii2学习笔记002---Yii2的控制器和视图
    PHP5.3--PHP7 新特性总结
    计算机软考笔记之《数据库基础》
    计算机软考笔记之《文件结构》
    计算机软考笔记之《抽象数据类型(ADT)》
    计算机软考笔记之《数据压缩》
    计算机软考笔记之《数据结构与算法》
  • 原文地址:https://www.cnblogs.com/hkj8808/p/10506557.html
Copyright © 2020-2023  润新知