《CAN标定协议(基于.ccp标准).doc》由会员分享,可在线阅读,更多相关《CAN标定协议(基于.ccp标准).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、.1/10CAN 通信标定协议(基于 ccp 协议)一、协议简介该通信协议采用主-从式通信方式,主设备通过 CAN 总线与多台从设备相连接,主设备是测量标定系统,从设备是需要标定的 ECU,主设备首先与其中一个从设备建立逻辑,建立逻辑连接后,主、从设备之间所有的数据传递均由主机控制,从设备执行主设备命令后返回包含命令响应值或错误代码等信息的报文,同时从设备可以根据主设备通过控制命令所设置的列表信息,来定时地向主设备传送变量信息,数据的传递是由主设备初始化并且由从设备来执行的,并且是由固定的循环采样频率或者事件触发的。主设备通过 USB-CAN 接口与从设备连接,符合 CAN2.0 协议。通信过
2、程中,所有报文均为 8 个字节,它可以包含命令、数据、数据长度、地址等信息。该通信协议参照 ccp 协议,可以与 INCA,CANape 等标定软件接口。二、通信数据对象CAN 通信采用了两个报文数据对象 CRO(命令接收对象)和 DTO(命令发送对象),每个对象根据其数据流向,都有一个唯一的 ID 标志符进行标识,ID 标识符可以由用户自行设定。1命令接收对象(CRO)命令接收对象(CRO)用于传递指令代码和部功能码或主、从设备之间交换的存储区数据,对应的报文帧如图 1 所示,表 1 位场说明:图 1CRO 数据格式表 1CMD(1 Byte):命令代码。CTR(1 Byte):命令计数器。
3、Parameter and Data(6 Byte):参数和数据场,命令相关的数据或参数Parameter and Data FieldByte 01234567CMDCTR.2/102数据传输对象(DTO)数据传输对象(DTO)指由从设备反馈的报文。DTO 根据报文首字节 PID 的值可以由三种形式,见表 2:表 2:PID 值数据传输类型备注0 xFFCRM(CommandReturnMessage)由从设备发送,反馈 CRO 命令的报文0 xFEEvent Message当从设备检测到部发生错误机制时,由从设备自行向主设备发送,报告其当前的运行状态,并请求主设备暂停当前工作进程以处理发生
4、的错误0-0 xFDDAQ-DTO(DataAcquisition-DTO)用于 DAQ 模式,由从设备定期向主设备发送。根据对象描述表(ODT),确定需要上传的变量(1).CRM 和 Event Message 的报文帧如图 2 所示:图 2 CRM-Event Message 报文帧格式表 3:场说明PID(1 Byte)其值代表了 DTO 的类型ERR(1 Byte)命令返回错误代码CTR(1 Byte)命令计数器,与接收的相等。Parameter and Data Field参数和数据场,命令相关的数据或参数(2).DAQ-DTO(Data Acquisition-DTO)的报文帧:B
5、yte 01234567Parameter and Data FieldPIDERRCTRByte 01234567Data Field(DAQ Values)PID.3/103.协议命令列表与说明(标注绿色字体部分逐步补充完整)3.1命令列表:命令名称代码说明CONNECT0 x01创建一个 ECU 的连接SET_MTA0 x02设置 MTA 地址DNLOAD0 x03下载最多 5 个字节数据到 ECUDNLOAD_60 x23下载 6 个字节数据到 ECUUPLOAD0 x04从 ECU 上载最多 5 个字节数据SHORT_UP0 x0F从 ECU 上载最多 5 个数据(不用 MTA)DI
6、SCONNECT0 x07断开到该 ECU 的连接GET_DAQ_SIZE0 x14得到指定 DAQ 列表大小SET_DAQ_PTR0 x15选中某指定 DAQ 列表中某 ODT 的某元素WRITE_DAQ0 x16设定该元素指定的地址START_STOP0 x06开始/停止采集指定的 DAQ 列表EXCHANGE_ID0 x17得到该 ECU 的标识符GET_SEED0 x12得到计算密钥的种子(SEED)UNLOCK0 x13要求 ECU 释放某种功能SET_S_STATUS0 x0C设置当前会话状态GET_S_STATUS0 x0D得到当前会话状态BUILD_CHKSUM0 x0E计算指
7、定区域的校验和CLEAR_MEMORY0 x10清除某存区域PROGRAM0 x18FLASH 编程(最多 5 个字节)PROGRAM_60 x22FLASH 编程(6 个字节)MOVE0 x19从 MTA0 处拷贝指定长度的字节到 MTA1 处TEST0 x05测试当前在线的从设备GET_ACTIVE_CAL_PAGE0 x09得到当前标定页(RAM or FLASH)DIAG_SERVICE0 x20ACTION_SERVICE0 x21.4/103.2 命令返回错误代码代码描述种类状态改变0 x00正确接收,无错误0 x01DAQ 处理器过载0 x10命令处理器忙0 x11DAQ 处理器
8、忙。待续3.3 命令详细说明3.3.13.3.1CONNECTCONNECT 命令:命令:命令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x01)1字节命令计数器2字站地址4-7字节填 0(不关心)数据传送对象(DTO):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3-7字节填 0(不关心)3.3.23.3.2SET_MTASET_MTA 命令:命令:命令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x02)1字节命令计数器2字节存贮器传输地址(MTA0,MTA1)3字节地址扩展4-7无符号长整形地址数据传送对象(
9、DTO):位(bit)数据类型描述0字节命令代码(0 xFF).5/101字节命令返回代码2字节命令计数器3-7字节填 0(不关心)3.3.33.3.3DNLOADDNLOAD 命令:命令:命令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x03)1字节命令计数器2字节需下传的数据长度3-7字节数据数据传送对象(DTO):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3字节MTA0 扩展位4-7字节执行后 MTA0 地址(即地址加上长度)3.3.43.3.4UPLOADUPLOAD 命令:命令:命令接收对象(CRO):位(bit)数据类
10、型描述0字节命令代码(0 x04)1字节命令计数器2字节需上传的数据长度3-7字节填 0数据传送对象(DTO):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3-7字节上传的数据.6/103.3.53.3.5 SHORTSHORT UPLOADUPLOAD 命令:命令:命令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x0F)1字节命令计数器2字节需上传的数据长度3字节地址扩展4-7字节地址数据传送对象(DTO):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3-7字节上传的数据3.3.63.3.
11、6 DISCONNECTDISCONNECT 命令:命令:命令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x07)1字节命令计数器2字节0 x00 暂时断开,0 x01 断开3字节不关心4-5字节站地址(低位在前)6-7字节填 0(不关心)数据传送对象(DTO):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3-7字节填 0(不关心).7/103.3.73.3.7 GET_DAQ_SIZEGET_DAQ_SIZE 命令:命令:命令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x14)1字节命令计数器2字节DAQ 表号
12、(0,1)3字节填 0(不关心)4-7字节CAN 识别号(可选,暂不使用)数据传送对象(DTO):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3字节该 DAQ 列表中 ODT 的数目4字节该列表中第一个 ODT 表 PID 值5-7字节填 0(不关心)3.3.83.3.8 SET_DAQ_PTRSET_DAQ_PTR 命令:命令:命令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x15)1字节命令计数器2字节DAQ 表号(0,1)3字节QDT 表号(0,1)4字节ODT 表里的元素(0,1)5-7字节填 0(不关心)数据传送对象(DT
13、O):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3-7字节填 0(不关心).8/103.3.93.3.9 WTITE_DAQWTITE_DAQ 命令:命令:命令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x16)1字节命令计数器2字节DAQ 表中元素的长度(1,2,4)3字节表中元素的扩展地址4-7字节表中元素的地址数据传送对象(DTO):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3-7字节填 0(不关心)3.3.103.3.10 START-STOPSTART-STOP 命令:命令:命
14、令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x06)1字节命令计数器2字节停止:0 x00;启动:0 x01;准备:0 x023字节DAQ 列表数4字节该 DAQ 列表中最后一 ODT 表数5字节触发事件数6-7字发送速率分频系数数据传送对象(DTO):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3-7字节填 0(不关心).9/103.3.113.3.11CLEAR_MEMORYCLEAR_MEMORY命令:命令:命令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x10)1-7字节填 0(不关心)数据传送对象(D
15、TO):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3-7字节填 0(不关心)3.3.123.3.12PROGRAMPROGRAM命令:命令:命令接收对象(CRO):位(bit)数据类型描述0字节命令代码(0 x18)1-7字节填 0(不关心)数据传送对象(DTO):位(bit)数据类型描述0字节命令代码(0 xFF)1字节命令返回代码2字节命令计数器3-7字节填 0(不关心)4、标定实现(举例)建立完善的匹配标定具体流程为:与底层 ECU 进行连接,监控、在线标定,上载和下载map 图,断开连接等操作。对于匹配标定的 2 个最主要的任务,就是在线标定
16、和实时监控,它是通过协议命令的组合,来实现的,下面举例说明如何实现:4.14.1 监控命令解析监控命令解析:(假设有 nDAQ 列表,每列表中有 mODT 表)序号上位机CCPCAN备注1设置监控变量列表,选择采样速率(.A2L)2GET_DAQ_SIZEGET_DAQ_SIZE发送重复 n 次.10/103CRM-DTO接收重复 n 次4SET_DAQ_PTR发送list0list m-15CRM-DTO接收list0list m-16WRITE_DAQ发送list0list m-17CRM-DTO接收list0list m-18START_STOP发送list0list n-19CRM-DTO接收list0list n-110START_STOP_ALL发送开始监控11CRM-DTO接收12DAQ-DTO接收接收多次13显示解码显示14START_STOP_ALL发送停止显示15CRM-DTO接收4.24.2在线标定在线标定标号上位机CCPCAN备注1修改数据可能有 n 次2SET_MTA发送3CRM-DTO接收4DNLOAD发送5CRM-DTO接收6SHORT_UP发送7CRM-DTO接收