这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » 浅析CCP标定过程

共2条 1/1 1 跳转至

浅析CCP标定过程

菜鸟
2010-06-10 16:24:25     打赏

    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 标定工具                省领导              如,Inca,Vehicle spy
2 A2L文件                 参考资料 
3 DAQ LIST                县(虚) 
4 DAQ                     ODT 乡(虚)        PID 分配单位
5 DAQ Element reference   村索引(虚) 
6 DAQ Organization        邮政编码册          与现实生活稍有区别,同样的PID号可以动态的分配给不同乡镇。
7 PID                     邮政编码            0-253,相比变量地址,只占用1个字节,节省网络资源.分配给各个乡镇(ODT)
8 ECU字节                  村小组(实)       未标识在图示中
9 ECU变量                  行政村(实)       变量有1-4字节长度,相对应各个行政村包括1-4个小组。DQA的上传报文7个字节对应 7个小组。
10 标定过程                制定粮食生产计划   包括上级硬性分配计划(downlod)、上级要求上报计划(upload),和下级主动申报(DAQ)
10 CAN消息                  邮件 

 


     A2L 文件:A2L 文件是标定数据库文件。它包括标定变量的类型、地址、物理转化方式以及单位等等。以下是A2L文件中的一个标定变量
    /begin CHARACTERISTIC ofm_rear_wipe_lospd_fault_state_value ""
      VALUE 0xF1814 __UWORD_S 0 ADC_CHANNEL_0_MuxU42_X0_value.CONVERSION  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来标识数据,用PID来代替原来的地址进行变量标定,查询A2L无法得变量的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初始化,便可以得到各个村庄的当前产量。

    

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




关键词: 浅析     标定     过程     变量     命令     索引     字节     领导         

菜鸟
2016-10-19 14:36:16     打赏
2楼
我们的电路板采用的芯片不支持CCP,很操蛋

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]