CAN标定协议基于ccp标准.docx
《CAN标定协议基于ccp标准.docx》由会员分享,可在线阅读,更多相关《CAN标定协议基于ccp标准.docx(17页珍藏版)》请在冰豆网上搜索。
![CAN标定协议基于ccp标准.docx](https://file1.bdocx.com/fileroot1/2022-10/28/0f87323e-7fdb-4ef4-9197-3c2ef36eff83/0f87323e-7fdb-4ef4-9197-3c2ef36eff831.gif)
CAN标定协议基于ccp标准
-精品文档-
CAN通信标定协议(基于ccp协议)
一、协议简介
该通信协议采用主-从式通信方式,主设备通过CAN总线与多台从设备相连接,主设
备是测量标定系统,从设备是需要标定的ECU,主设备首先与其中一个从设备建立逻辑链接,建立逻辑连接后,主、从设备之间所有的数据传递均由主机控制,从设备执行主
设备命令后返回包含命令响应值或错误代码等信息的报文,同时从设备可以根据主设备通过控制命令所设置的列表信息,来定时地向主设备传送变量信息,数据的传递是由主设备初始化并且由从设备来执行的,并且是由固定的循环采样频率或者事件触发的。
主设备通过USB-CAN接口与从设备连接,符合CAN2.0协议。
通信过程中,所有报文均为8个字节,它可以包含命令、数据、数据长度、地址等信息。
该通信协议参照ccp协议,可以与INCA,CANape等标定软件接口。
二、通信数据对象
CAN通信采用了两个报文数据对象CRO(命令接收对象)和DTO(命令发送对象),每个对象根据其数据流向,都有一个唯一的ID标志符进行标识,ID标识符可以由用户自行设定。
1.命令接收对象(CRO)
命令接收对象(CRO)用于传递指令代码和内部功能码或主、从设备之间交换的存储
区数据,对应的报文帧如图1所示,表1位场说明:
Byte0
1
2
3
4
5
6
7
CMD
CTR
ParameterandDataField
图1
CRO数据格式
表1
CMD(1Byte):
命令代码。
CTR(1Byte):
命令计数器。
ParameterandData(6Byte):
参数和数据场,命令相关的数据或参数
-精品-
-精品文档-
2.数据传输对象(DTO)
数据传输对象(DTO)指由从设备反馈的报文。
DTO根据报文首字节PID的值可以由三
种形式,见表2:
表2:
PID值
数据传输类型
备注
0xFF
CRM(Command
由从设备发送,反馈CRO命令的报文
ReturnMessage)
0xFE
EventMessage
当从设备检测到内部发生错误机制时,由从设备自行
向主设备发送,报告其当前的运行状态,并请求主设
备暂停当前工作进程以处理发生的错误
0-0xFD
DAQ-DTO(Data
用于DAQ模式,由从设备定期向主设备发送。
Acquisition-DTO)
根据对象描述表(ODT),确定需要上传的变量
(1).CRM和EventMessage的报文帧如图2所示:
Byte0
1
2
3
4
5
6
7
PID
ERR
CTR
ParameterandDataField
图2CRM-EventMessage报文帧格式
表3:
场说明
PID(1Byte)其值代表了DTO的类型
ERR(1Byte)命令返回错误代码
CTR(1Byte)命令计数器,与接收的相等。
ParameterandDataField参数和数据场,命令相关的数据或参数
(2).DAQ-DTO(DataAcquisition-DTO)的报文帧:
Byte0
1
2
3
4
5
6
7
PID
DataField(DAQValues)
-精品-
-精品文档-
3.协议命令列表及说明(标注绿色字体部分逐步补充完整)
3.1命令列表:
命令名称
代码
说明
CONNECT
0x01
创建一个ECU的连接
SET_MTA
0x02
设置MTA地址
DNLOAD
0x03
下载最多5个字节数据到ECU
DNLOAD_6
0x23
下载6个字节数据到ECU
UPLOAD
0x04
从ECU上载最多
5个字节数据
SHORT_UP
0x0F
从ECU上载最多
5个数据(不用
MTA)
DISCONNECT
0x07
断开到该ECU的连接
GET_DAQ_SIZE
0x14
得到指定DAQ列表大小
SET_DAQ_PTR
0x15
选中某指定DAQ列表中某ODT的某元素
WRITE_DAQ
0x16
设定该元素指定的地址
START_STOP
0x06
开始/停止采集指定的
DAQ列表
EXCHANGE_ID
0x17
得到该ECU的标识符
GET_SEED
0x12
得到计算密钥的种子(
SEED)
UNLOCK
0x13
要求ECU释放某种功能
SET_S_STATUS
0x0C
设置当前会话状态
GET_S_STATUS
0x0D
得到当前会话状态
BUILD_CHKSUM
0x0E
计算指定区域的校验和
CLEAR_MEMORY
0x10
清除某内存区域
PROGRAM
0x18
FLASH编程(最多
5个字节)
PROGRAM_6
0x22
FLASH编程(6个字节)
MOVE
0x19
从MTA0处拷贝指定长度的字节到
MTA1处
TEST
0x05
测试当前在线的从设备
GET_ACTIVE_CAL_PAGE
0x09
得到当前标定页(
RAMorFLASH)
DIAG_SERVICE
0x20
ACTION_SERVICE
0x21
-精品-
-精品文档-
3.2命令返回错误代码
代码
描述
种类
状态改变
0x00
正确接收,无错误
0x01
DAQ
处理器过载
0x10
命令处理器忙
0x11
DAQ
处理器忙
。
。
。
待续
3.3命令详细说明
3.3.1CONNECT命令:
命令接收对象(
CRO):
位(bit)
数据类型
描述
0
字节
命令代码(0x01)
1
字节
命令计数器
2
字
站地址
4-7
字节
填0(不关心)
数据传送对象(
DTO):
位(bit)
数据类型
描述
0
字节
命令代码(0xFF)
1
字节
命令返回代码
2
字节
命令计数器
3-7
字节
填0(不关心)
3.3.2SET_MTA命令:
命令接收对象(CRO):
位(bit)
数据类型
描述
0
字节
命令代码(0x02)
1
字节
命令计数器
2
字节
存贮器传输地址(
MTA0,MTA1)
3
字节
地址扩展
4-7
无符号长整形
地址
数据传送对象(
DTO):
位(bit)
数据类型
描述
0
字节
命令代码(0xFF)
-精品-
-精品文档-
1
字节
命令返回代码
2
字节
命令计数器
3-7
字节
填0(不关心)
3.3.3DNLOAD
命令:
命令接收对象(
CRO):
位(bit)
数据类型
描述
0
字节
命令代码(0x03)
1
字节
命令计数器
2
字节
需下传的数据长度
3-7
字节
数据
数据传送对象(
DTO):
位(bit)
数据类型
描述
0
字节
命令代码(0xFF)
1
字节
命令返回代码
2
字节
命令计数器
3
字节
MTA0扩展位
4-7
字节
执行后MTA0地址(即地址加上长度)
3.3.4UPLOAD
命令:
命令接收对象(
CRO):
位(bit)
数据类型
描述
0
字节
命令代码(0x04)
1
字节
命令计数器
2
字节
需上传的数据长度
3-7
字节
填0
数据传送对象(
DTO):
位(bit)
数据类型
描述
0
字节
命令代码(0xFF)
1
字节
命令返回代码
2
字节
命令计数器
3-7
字节
上传的数据
-精品-
-精品文档-
3.3.5SHORTUPLOAD命令:
命令接收对象(
CRO):
位(bit)
数据类型
描述
0
字节
命令代码(0x0F)
1
字节
命令计数器
2
字节
需上传的数据长度
3
字节
地址扩展
4-7
字节
地址
数据传送对象(
DTO):
位(bit)
数据类型
描述
0
字节
命令代码(0xFF)
1
字节
命令返回代码
2
字节
命令计数器
3-7
字节
上传的数据
3.3.6DISCONNECT命令:
命令接收对象(CRO):
位(bit)
数据类型
描述
0
字节
命令代码(0x07)
1
字节
命令计数器
2
字节
0x00暂时断开,0x01断开
3
字节
不关心
4-5
字节
站地址(低位在前)
6-7
字节
填0(不关心)
数据传送对象(
DTO):
位(bit)
数据类型
描述
0
字节
命令代码(0xFF)
1
字节
命令返回代码
2
字节
命令计数器
3-7
字节
填0(不关心)
-精品-
-精品文档-
3.3.7GET_DAQ_SIZE命令:
命令接收对象(
CRO):
位(bit)
数据类型
描述
0
字节
命令代码(0x14)
1
字节
命令计数器
2
字节
DAQ表号(0,1)
3
字节
填0(不关心)
4-7
字节
CAN识别号(可选,暂不使用)
数据传送对象(
DTO):
位(bit)
数据类型
描述
0
字节
命令代码(0xFF)
1
字节
命令返回代码
2
字节
命令计数器
3
字节
该DAQ列表中ODT的数目
4
字节
该列表中第一个
ODT表PID值
5-7
字节
填0(不关心)
3.3.8SET_DAQ_PTR命令:
命令接收对象(CRO):