I/O 设备

浅析CCP标定过程

ainet.cn   2009年01月14日

美国英特佩斯控制系统有限公司()

    CAN CALIBRATION PROTOCOL(简称CCP)是一种基于CAN总线的匹配标定协议;是ASAM-MCD标准化协议的一部分。它主要用于对ECU的变量标定和程序刷新。


    CCP是基于CAN的应用层协议。总体来说,CCP的协议比较简单。采用主从方式,MCD工具作为MASTER,发送命令报文(CRO),ECU作为SLAVE应答(DTO)。DTO出了应答命令外,还包括从数据主动上传的DAQ数据包。  

   

1: 通用报文格式:

 CRO

1:CMD

2:CTR

3-8:Date and Parameter

CMD:命令代码。如连接命令0x01,

CTR: 命令计数器。保证命令和应答的一致性。

DTO

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个字节。

2: CCP标定过程

对于初接触CCP的工作人员,对于CCP的理解难度主要在DAQ模式上。下面用一个形象的比方来解释CCP标定过程。

CCP标定过程比喻表

项目

CCP标定

现实比方

备注

1

标定工具

省领导

如Vehicle spy,INCA等

2

A2L文件

参考资料

3

DAQ LIST

县(虚)

4

乡(虚)

PID 分配单位

5

DAQ Element reference

村索引(虚)

6

DAQ Organization 

邮政编码册

与现实生活稍有区别,同样的PID号可以动态的分配给不同乡镇。

6

PID

邮政编码

0-253,相比变量地址,只占用1个字节,节省网络资源.分配给各个乡镇(ODT)

7

ECU字节

村小组(实)

未标识在图示中

8

ECU变量

行政村(实)

变量有1-4字节长度,相对应各个行政村包括1-4个小组。DQA的上传报文7个字节对应 7个小组。

9

标定过程

制定粮食生产计划

包括上级硬性分配计划(downlod)、上级要求上报计划(upload),和下级主动申报(DAQ)

10

CAN消息

邮件

      

A2L 文件:A2L 文件是标定数据库文件。它包括标定变量的类型、地址、物理转化方式以及单位等等。

以下是A2L文件中的一个标定变量

    /begin CHARACTERISTIC ofm_rear_wipe_lospd_fault_state_value/*变量名*/ ""

      VALUE 0xF1814/*ECU地址*/ __UWORD_S/*类型*/ 0 SION/*转化方法*/  0 65535

      EXTENDED_LIMITS 0 65535

      BIT_MASK 0xFFFF

      FORMAT "%.15"

      /begin IF_DATA CANAPE_EXT

        100

        DISPLAY 0 0 65535

      /end IF_DATA

    /end CHARACTERISTIC

每次生成ECU的执行文件时,需要更新相应的A2L文件中变量的地址和类型,这样保证A2L表中的变量地址与类型与ECU中的完全一致。


   ECU物理结构与DAQ定义:

上图中最右面黄色部分表示ECU内部的实际存储结构。由各个实际村庄(变量)实际构成;左面部分是一个DAQ的索引表(类似现实中的邮政编码薄);只有在DAQ模式下才会利用到这个索引表。

DAQ的索引表由三层结构组成,县市(List)、乡镇(ODT)、村索引(Element reference)。每个村索引最终与实际的村庄建立联系。


标定过程:

A: 领导制定生产计划:(download)

领导要求张庄生产粮食10万吨,通过查阅参考资料(A2L)找到张庄的信息(地址,村庄大小),然后将查询命令通过快件让邮递员(CAN)送达。

CCP命令:

Set MTA Command (告诉ECU需要设定的当前地址为张庄地址)

Download Command (告诉ECU需要设定要调整的产量为10万吨)

 


B: 领导需要了解生产:(upload)

领导要求汇报张庄生产粮食产量,通过查阅参考资料(A2L)找到张庄的信息(地址,村庄大小),然后将查询命令通过快件让邮递员(CAN)送达张庄;张庄将各个小组的当前产量交邮递员送回。

CCP命令:

short upload(告诉ECU需要汇报张庄的产量)

 

C: 村庄主动上传生产:(DAQ)

领导贪图安逸,不想挨个询问村庄的信息。希望需要了解的村庄能够主动上报产量(DAQ)。

比较可行的办法是各个村庄把地址信息和产量信息都上传上来,领导通过查询参考资料(A2L文件)能得出各个村庄的产量。但是这种方式有两个问题:

C1: 地址信息需要4个字节。将大量的占用有限资源,并使邮递员(CAN)疲于奔命。如果张庄需要上传信息,地址将占4个字节,有限信息只能利用剩余的CAN数据资源。

C2: 无组织性。领导并不需要所有的村庄汇报信息,他只需要一部分村庄的信息;或者这次他不希望某村汇报,而下次希望他汇报。没有一定的规划,无法实现领导的意图。


为了解决上述问题,CCP采用了下面的措施。

C1:用一个字节的邮政编码PID号代替地址(4个字节)。

C2:建立动态的邮政编码(DAQ元素索引表),将需要标定的村庄(变量)关联到DAQ元素索引表中。


DAQ索引表:

这是一个类似现实生活中邮政编码的表结构,由3个层次组成。List(县市)、ODT(乡镇)、Element reference(村庄)。

其中ECU中CCP驱动包括多少List,每个List包括多少个ODT; 由ECU程序员根据资源情况进行分配。同时ECU程序员还指定了每个List中ODT起始PID的数值。

如:某个ECU程序中CCP驱动设定了2个List;list1包含6个ODT;List2包含8个ODT; List1中第一个ODT的PID是0(PID 0-5在List1中);List2第一个ODT的PID是10(PID 10-17在List1中);

在QAD上传的数据格式中,一次最多只能上传7个字节,所以每个ODT的element reference不会超过7个。


DAQ初始化:

由于采用了新的标识码PID来标识数据,领导首先需要知道ODT表中的PID分布,以便将所有需要了解的村庄进行PID标识。其初始化过程如下:   

1#领导询问第一个县由多少乡镇组成,ECU汇报这个县有多少个乡镇。这个县第一个乡镇的邮编是多少(PID).(CCP命令:GetDAQSize)

2 #领导重复询问第二个县由多少乡镇组成,ECU汇报这个县有多少个乡镇。这个县第一个乡镇的邮编是多少(PID).重复这样的过程,直到当领导询问到某个县时,ECU汇报没有乡镇。完成对整个邮编的询问。然后领导记录下目前所有可用的邮编。(CCP命令:GetDAQSize)

3#领导将各个需要汇报的村庄关联到Element reference(属于ODT,有特定的邮编PID)中。所有村庄设置完成,然后启动DAQ,由村庄主动汇报。

 (CCP命令:SetDAQPtr,WriteDAQ)

4# 领导得到DAQ数据后,结合先前的DAQ初始化,便可以得到各个村庄的当前产量。

    

 

完成村庄的邮政编码后,领导命令被标识的村庄可以开始进行DAQ数据上传了。

(转载)

标签:浅析 CCP 标定过程 我要反馈 
泰科电子ECK、ECP系列高压直流接触器白皮书下载
亿万克
专题报道