Matlab自动代码生成中CCP分析研究

2015-09-23 10:49朱宏翔蔡花西安兰德新能源汽车技术开发有限公司陕西西安710043
汽车实用技术 2015年12期
关键词:列表标定命令

朱宏翔,蔡花(西安兰德新能源汽车技术开发有限公司,陕西 西安 710043)

Matlab自动代码生成中CCP分析研究

朱宏翔,蔡花
(西安兰德新能源汽车技术开发有限公司,陕西 西安 710043)

文章论述了在代码生成中所需CCP协议中的驱动命令,以及标定诊断工具与ECU的通讯方式和DAQ模式的分析与配置。详细描述了在实际应用中如何配置和操作,并验证了 A2L文件采用 DAQ模式上传的时间和VISION实际所得到的DAQ上传命令时间一致。在车辆标定和诊断应用方面具有参考价值。

CCP协议;DAQ模式;VISION

10.16638/j.cnki.1671-7988.2015.12.017

CLC NO.: U463.6Document Code: AArticle ID: 1671-7988(2015)12-46-03

引言

MATLAB 自动代码生成的优势是实现图形化编程,让编程方式变的简单和容易操作。

在汽车网络中,CAN网络技术是一个成熟的技术,以它为载体的CCP协议是一个通用的接口标准,它使得在汽车电子设备研发过程中相关的测试、标定、诊断方法及工具能够兼容并互换。

CCP的全称是 CAN Calibration Protocol(CAN标定协议),是基于CAN总线的ECU标定协议规范。CCP协议遵从CAN2.0B通信规范,支持11位标准与29位扩展标识符。该通信协议采用主-从式通信方式,主设备通过CAN总线与多台从设备相连接,主设备是测量标定系统,从设备是需要标定的ECU。

CCP协议的标定诊断工具与ECU的通信有Polling模式和DAQ模式,由于Polling模式是一问一答的通讯模式,通讯时间长,效率低。本文采用 DAQ模式,这种模式自主向设备传输数据,数据上传效率高。

支持CCP协议的标定软件主要有:CANape、VISION、DiagRA。

1、CCP命令和通讯方式

1.1ccp命令标准格式

主设备:标定观测工具;

从设备:ECU;

信息字节:8字节;

命令接收对象(CRO):主设备向ECU发送消息,格式为“CMD(CRO)+CTR+命令参数域”;

数据传输对象(DTO)是从设备反馈给主设备的消息,格式为“PID+ERR+CTR+参数数据域”;

一般情况下PTD=0xFF,当命令回复ERR=0x00时,表示命令回复正确;当ERR不等于0x00时,表示当前命令回复是有误的,然后对照命令返回码表进行查错。

1.2Matlab自动代码生成中ccp驱动命令

1.2.1开始命令

(1)CONNECT连接命令((0x01)即握手信号;

(2)SET_S_STATUS设置当前通信状态(0x0C);

(3)GET_DAQ_SIZE获取DAQ列表大小(0x14)。

这些命令用来建立连接和获得一些DAQ的信息。

1.2.2标定命令

(1)SET_MTA设置MTA地址(0x02);

(2)DNLOAD数据下载(0x03);

(3)UPLOAD数据上传(0x04)。

这些命令用来获取标定量的信息和改写标定量的信息。

1.2.3观测命令

(1)SET_S_STATUS设置当前通信状态(0x0C);

(2)GET_DAQ_SIZE获取DAQ列表大小(0x14);

(3)SET_DAQ_PTR设置DAQ列表指针(0x15);

(4)WRITE_DAQ写入DAQ列表(0x16);

(5)GET_S_STATUS获取当前通信状态(0x0D)。

这些的命令用来建立DAQ列表。

1.2.4结束命令

(1)START_STOP开始/终止数据传输(0x06);

(2)DISCONNECT断开命令(0x07);

(3)START_STOP_ALL开始/停止同步数据传输(0x08)。这些的命令用来断开VISION和ECU之间的连接。

1.3通讯方式

CCP协议的实现只依赖两则CAN消息:命令接收对象(CRO)和命令传输对象(DTO)。CRO由主设备发给从设备,DTO是从设备反馈的报文,两者分别通过一个自己的ID标识符进行标识(CRO_ID与DTO_ID),下图是主、从设备通信的架构。

2、CCP协议中的DAQ模式分析

2.1DAQ模式配置方式

在使用DAQ模式进行通信前,主设备需要对DAQ列表及ODT列表进行配置,方法如下:

(1)获取ECU 内所实现DAQ列表数目及ODT数目,DAQ列表数据由数据上传的周期决定,ODT列表数由每个周期下所需上传的数据个数及长度决定。

(2)向相应的ODT元素中填入内容,即数据的存储地址和数据长度(数据长度一般为1个字节)。数据将根据其类型及上传周期,被写在不同DAQ列表的不同ODT元素中。

(3)根据上传数据的周期,针对不同的DAQ列表赋以事件通道和预分频。事件通道与上传周期一一对应,同一个DAQ列表中的不同ODT享有同一个事件通道和预分频值,即同一个DAQ列表中的所有数据的上传周期相同。通过预分频值可将数据的上传周期成倍扩大。

(4)启动DAQ模式,进行数据采集。

2.2上传观测量的实际速率和设置的速率对比

A2L文件中设置的DAQ上传时间的代码如下:/begin RASTER

"10ms time synchronous""10_ms" 041 /end RASTER

这段代码中的4,1表示的就是10ms。VISION中实际得到上传时间:

其中,200ms是总体时间,10ms是真正获得参数的上传时间。

对比可知,设置的上传时间和VISION实际得到的上传时间一致。

3、CCP协议的应用

CCP协议在典型系统(标定诊断)中所需的硬件如下图所示:

图2 标定诊断系统

3.1CCP标定系统的组成

控制器ECU,CCP协议栈驱动的实现,A2L文件,ECU标定和测试工具。

3.2实现过程

(1)将控制器的CAN线和kvaser的一端(九针插头端)连在一起,另一端USB端连接在电脑上;

(2)打开VISION读入ASAP2(A2L)文件;

(3)在VISION的screen里面导入观测量和标定量,标定量的有蓝红箭头,余下的变量是观测量,它们通过CCP协议中的DAQ模式上传;

(4)在ECU中我们将标定参数放置在EEPROM和RAM区,当参数需要断电保存时,选择把标定参数放置在EEPROM区,当参数不需要断电保存时,可以把标定参数放置在RAM区。

4、结论

VISION和ECU之间通过CCP协议中的命令进行交互,且A2L文件采用DAQ模式上传的时间与VISION实际所得到的DAQ上传命令时间一致,最终完成VISION和ECU之间通讯,实现控制器参变量的标定和观测。

[1] 罗峰,孙泽昌.汽车 CAN总线系统原理、设计与应用[M].北京:电子工业出版社,2009.

[2] 孙同景,陈桂友.Freescale 9S12 十六位单片机原理及嵌入式开发技术[M].北京:机械工业出版社,2008..

[3].丁圣彦,罗峰,孙泽昌.基于CCP协议利用CANape进行电控系统标定[J].电子技术应用,2005(12):1-4.

[4] ASAP,Can Calibration Protocol Version 2.1.1999:1-45.

[5] Vector.CCP Driver (Implementation in Electronic Control Units CCP Version 2.1).1999:6-31.

CCP Analysis and Studyin the process of Matlabcode generation

Zhu Hongxiang, Cai Hua
( Xi'an New Energy Automotive Technology Development Co., Ltd., Shaanxi Xi'an 710043 )

This article discusses the driving command of the CCP protocol, Communication mode of calibration diagnostic tool and ECU,analysis and configure of DAQ mode. It also detailedlydescribes how to configure and operate in practical application.Verfyingthe time waste on upload the A2L file in DAQ mode is equal to the time waste on VISION.Specially,It has the reference value in the vehicle calibration and diagnostic applications.

CCP protocol; DAQ mode; VISION

U463.6

A

1671-7988(2015)12-46-03

朱宏翔,就职于西安兰德新能源汽车技术开发有限公司。

猜你喜欢
列表标定命令
管理Windows10的PowerShell命令行使用记录
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
学习运用列表法
疫情就是命令 防控就是责任
扩列吧
使用朗仁H6 Pro标定北汽绅宝转向角传感器
CT系统参数标定及成像—2
CT系统参数标定及成像—2
解析Windows10的内部命令