CCP 协议简介与 INCA 信息交互详细流程
CCP 协议属于 CAN 总线应用层协议,支持 CAN2.0B(标准帧或扩展帧),采
收发各使用一个 ID,分别为 CRO(命令接收消息),DTO(数据发送消息)。
1. CCP 协议
用主-从通信模式。
ID 可自行约定。
1.1 命令接收消息 CRO
Byte0
CMD
命令码 命令计数器
Byte1
CTR
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
参数区
1.2 数据发送消息 DTO
(a)查询模式(Polling), CRM
Byte0
PID
Byte1
ERR
Byte2
CTR
DTO 类型 错误代码 命令计数器
Byte3
Byte4
Byte5
Byte6
Byte7
数据区
用于反馈 CRO 命令执行情况报文,CTR 与 CRO 中 CTR 对应。
(b)DAQ-DTO
Byte0
PID
DTO 类型
Byte1
Byte2
Byte3
Byte4
Byte5
Byte6
Byte7
数据区
由从设备组织按照预设的周期向主设备发送从设备相应的数据。
(c)DTO 消息类型
PID
0xFF
0xFF
DTO 消息
CRM
ERR 位含义
主设备由 ERR 获知命令的执行情况
Event Message 主设备由该位获知从设备内部发生的错误情况
0 - 0xFD
DAQ-DTO
无
1.3 CCP 命令代码表
2. CCP 协议中 Memory 操作方法
标定功能主要实现的目标:
(1) 修改 RAM 中数据(在线标定);
(2) 修改 EEPROM 中数据(外部 EEPROM,16K)
(3) 修改 Flash 中数据(标定参数)
2.1 Flash 标定流程
(1) 将标定数据保存在 Flash 中,存储地址 0x00C20000 – 0x00C3FFFF。
(2) 在程序初始化过程中,标定数据映射至 RAM 当中,程序从 RAM 中调取数
据。
(3) 标定过程开始时,在上位机中建立 Flash 存储区镜像,并保存至 HEX 文件。
(4) 标定过程中,通过 DNLOAD,DNLOAD_6 等命令修改 RAM 中数据,实现在
线标定,更新上位机 Hex。
(5) 标定结束后,将更新后的数据,一次性写入 Flash。
(6) 重启控制器,将新的标定数据映射值 RAM 中。
3. 各操作具体流程
命令接收消息 CCP_CRO_ID: 0x100
数据发送消息 CCP_DTO_ID: 0x101
3.1 硬件初始化
点击 INCA 中硬件初始化按钮,进行 ECU 初始化操作
(1) 联机(建立 INCA 与 ECU 的逻辑连接)无 Seed&Key 校验
序号
0
2
4
6
8
CMD
01
1B
17
0D
0D
名称
CONNECT
建立点对点逻辑连接
功能
GET_CCP_VERSION 获取当前 ECU 所支持的 CCP 版本(目前 V2.1 版本)
EXCHANGE_ID
GET_S_STATUS
GET_S_STATUS
交换 ID(Length 设定为 0),
获取用户会话状态,默认返回 00
获取用户会话状态,默认返回 00
(2) 将 ECU Flash 中数据映射到 RAM 中
序号
10
12
14
16
18
20
CMD
09
09
0D
02
02
19
名称
功能
GET_ACTIVE_CAL_PAGE 获得当前激活的标定页,返回的为 WP/RP 首地
GET_ACTIVE_CAL_PAGE
GET_S_STATUS
SET_MTA
SET_MTA
MOVE
址(低位在前,0x00C40000 为 RP)
获取用户会话状态
将 MTA0 设置为 RP(Flash)首地址
将 MTA1 设置为 WP(RAM)首地址
将 ECU Flash 中数据映射到 RAM 中,Size:3K
(3) INCA 进行 CHECKSUM 操作
序号
22
24
26
28
CMD
0D
0C
02
0E
名称
GET_S_STATUS
SET_S_STATUS
SET_MTA
BUILD_CHKSUM
功能
获取用户会话状态
将用户会话状态设置为 01
将 MTA0 设置为 WP 首地址(RAM)
计算校验和(CRC 校验)
计算 ECU RAM 中标定数据校验和,确认 ECU 与 INCA 中数据是否一致。
(4) 选择当前标定页
序号
CMD
名称
功能
30
32
34
36
38
09
02
11
02
0E
GET_ACTIVE_CAL_PAGE
SET_MTA
SELECT_CAL_PAGE
SET_MTA
BUILD_CHKSUM
获得当前激活的标定页,返回的为 WP/RP 首地
址(低位在前,0x00C40000 为 RP)
将 MTA0 设置为 WP 首地址(RAM)
选择当前激活的标定页
将 MTA0 设置为 WP 首地址(RAM)
计算校验和(CRC 校验)
3.2 存储页 - DownLoad 操作
INCA 存储页中 DownLaod 操作,数据流向:
INCA : WP –>
ECU: RAM
序号
0
2
4
…
2981
2983
2985
2987
CMD
02
23
23
…
23
03
02
0E
名称
SET_MTA
DNLOAD_6
DNLOAD_6
…
DNLOAD_6
DNLOAD
SET_MTA
BUILD_CHKSUM
功能
将 MTA0 设置为 WP 首地址(RAM)
数据下载 6 个字节,MTA0 地址+6
数据下载 6 个字节,MTA0 地址+6
…
数据下载 6 个字节,MTA0 地址+6
数据下载(数据不足 6 Byte 使用),最长 5
将 MTA0 设置为 WP 首地址(RAM)
计算校验和(CRC 校验)
3.3 存储页 - Copy 操作
INCA 存储页中 Copy 操作,数据流向:
INCA: RP –>
ECU: Flash –>
INCA: WP
ECU: RAM
序号
CMD
名称
功能
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
09
02
11
0D
0C
02
02
19
0D
0C
09
02
11
02
0E
GET_ACTIVE_CAL_PAGE
SET_MTA
SELECT_CAL_PAGE
GET_S_STATUS
SET_S_STATUS
SET_MTA
SET_MTA
MOVE
GET_S_STATUS
SET_S_STATUS
GET_ACTIVE_CAL_PAGE
SET_MTA
SELECT_CAL_PAGE
SET_MTA
BUILD_CHKSUM
获得当前激活的标定页,返回的为 WP/RP 首地
址(低位在前,0x00E00000 为 WP)
将 MTA0 设置为 RP 首地址(Flash)
选择当前激活的标定页
获取用户会话状态 01
将用户会话状态设置为 00
将 MTA0 设置为 RP 首地址(Flash)
将 MTA1 设置为 WP 首地址(RAM)
将 ECU Flash 中数据拷贝到 RAM 中,Size:3K
获取用户会话状态 00
将用户会话状态设置为 01
获得当前激活的标定页,返回的为 WP/RP 首地
址(低位在前,0x00C40000 为 RP)
将 MTA0 设置为 WP 首地址(RAM)
选择当前激活的标定页
将 MTA0 设置为 WP 首地址(RAM)
计算校验和(CRC 校验)
3.4 存储页 - UpLoad 操作
INCA 存储页中 Copy 操作,数据流向:
ECU: RAM –>
ECU: RAM –>
INCA: WP
INCA: RP
序号
0
2
4
…
2965
2967
2969
2971
2973
2975
2977
2979
2981
2983
2985
CMD
02
04
04
…
04
09
02
11
02
0E
09
02
11
02
0E
名称
SET_MTA
UPLOAD
UPLOAD
…
UPLOAD
GET_ACTIVE_CAL_PAGE
SET_MTA
SELECT_CAL_PAGE
SET_MTA
BUILD_CHKSUM
GET_ACTIVE_CAL_PAGE
SET_MTA
SELECT_CAL_PAGE
SET_MTA
BUILD_CHKSUM
功能
将 MTA0 设置为 WP 首地址(RAM)
数据上传(最长 5Byte)
数据上传(最长 5Byte)
数据上传(最长 5Byte)
获得当前激活的标定页,返回的为 WP/RP 首地
址(低位在前,0x00C40000 为 RP)
将 MTA0 设置为 WP 首地址(RAM)
选择当前激活的标定页
将 MTA0 设置为 WP 首地址(RAM)
计算校验和(CRC 校验)
获得当前激活的标定页,返回的为 WP/RP 首地
址(低位在前,0x00C40000 为 RP)
将 MTA0 设置为 RP 首地址(Flash)
选择当前激活的标定页
将 MTA0 设置为 WP 首地址(RAM)(指针->RP)
计算校验和(CRC 校验)
3.5 存储页 – Flash Program 操作
3.5.1 仅标定数据刷写(Data)
序号
68
70
72
74
76
87
89
91
93
…
2980
2982
2984
2986
CMD
0D
07
01
1B
17
02
10
02
22
…
22
18
18
07
名称
GET_S_STATUS
DISCONNECT
CONNECT
GET_CCP_VERSION
EXCHANGE_ID
SET_MTA
CLEAR_MEMORY
SET_MTA
PROGRAM_6
…
PROGRAM_6
PROGRAM
PROGRAM
DISCONNECT
功能
获取用户会话状态 03
断开连接
建立点对点逻辑连接
获取当前 ECU 所支持的 CCP 版本(目前 V2.1 版本)
交换 ID(Length 设定为 0),
将 MTA0 设置为 RP 首地址(Flash)
将标定数据 flash 清除(首地址 0xC40000)
将 MTA0 设置为 RP 首地址(Flash)
下载 6 个编程字节
下载 6 个编程字节
下载最多 5 个编程字节
下载最多 5 个编程字节
断开连接