CCP协议
2021-11-12
标定流程
- 将标定数据保存在Flash中。
- 在程序初始化过程中,标定数据映射至RAM当中,程序从RAM中调取数据。
- 标定过程开始时,在上位机中建立Flash存储区镜像,并保存至HEX文件。
- 标定过程中,通过DNLOAD,DNLOAD_6等命令修改RAM中数据,实现在线标定,更新上位机Hex。
- 标定结束后,将更新后的数据,一次性写入Flash。
- 重启控制器,将新的标定数据映射值RAM中。
数据
CCP协议是在应用层也就是使用CAN的数据帧来传递命令,分为CRO(主设备向从设备发送)和DTO(从设备向主设备发送)
CRO数据帧
- CRO命令的第一个字节为CMD,命令代码,命令表一共有28条命令
- CRO命令的第二个字节为CTR,命令计数器,由上位机计数
- CRO命令的剩余六个字节为命令参数,每个命令有不同参数
DTO数据帧
CRM类型:用于反馈CRO命令的报文
- 第一个字节为PID,表示类型,CRM类型为0xff
- 第二个ERR字节,表示错误类别,命令返回码表一共有18条命令,0x00是无错误,CRM类型就对应0x00
- 第三个CTR字节,表示回答的哪条CRO命令,两者的CTR要对应起来
- 剩余的五个字节为参数
Event Message类型:用于反馈错误的报文
- 第一个字节为PID,表示类型,EM类型为0xfe
- 第二个ERR字节,表示错误类别,命令返回码表一共有18条命令,0x00是无错误,EM类型对应命令返回码表除0x00的剩余17条命令
- 第三个CTR字节,表示回答的哪条CRO命令,两者的CTR要对应起来
- 剩余的五个字节为参数
DAQ类型:用于定期反馈数据
- 第一个字节为PID,0≤ PID ≤253,PID的值与ODT的编号值有关系
- 剩余的七个字节为数据
工作模式
Polling模式:查询
- 主设备与从设备间每一次通信都由主设备发送命令来起始,从设备收到主设备命令后,执行相应操作并反馈一帧报文
处理过程:
- 获取并解读主设备的CCP命令,并执行该命令;命令执行完后,向主设备发送应答;若执行出错,应答中应包含向主设备报错的信息;
- 若主设备命令要求对DAQ进行操作,则该操作传送给DAQ处理器处理,由DAQ处理器完成DAQ操作。
DAQ模式:固定上报
- 主设备首先发送一条请求DAQ命令,从设备收到后,按命令中参数自行配置并组织需要上传数据,然后按一定周期自主向主设备上传数据
处理过程:
- DAQ传送的数据由一系列的表来组织,这些表称为ODT。ODT作用是将存储器中的数据元素被分配到列表中。 该表保存每个元素的地址、地址扩展和长度,ODT是有顺序的。
- 当DAQ机制启动后,按设定的周期,将每个ODT表描述的参数当前的值顺次放入相应的DAQ-DTO帧中,然后发送给上位机
ODT创建方法
- 清除 ECU 中的当前列表,并通过发送命令 GET_DAQ_SIZE 让 ECU 为一个 DAQ 列表分配内存。
- 在 GET_DAQ_SIZE 命令之后,ECU 报告当前 DAQ 列表中 ODT 的可用内存。
- 循环发送SET_DAQ_PTR 命令,参数为 DAQ 列表号、ODT 号、ODT 中的元素号;WRITE_DAQ命令参数为元素大小、地址扩展、32 位基地址,直到 ODT 完成
- 初始化 DAQ-DTO 的传输,发出 START_STOP 命令。
错误句柄
-
错误处理框图:
-
错误类别及处理:
示例工作流程
会话登陆(Session log-in )
下载块(Block DownLoad )
-
-
连接-将块的内存地址传入-下载块
上载块(Block UpLoad )
-
-
连接-将块的内存地址传入-上载块
校准数据初始化(Calibration Data Initialization )
DAQ列表初始化(DAQ List Initialization )
代码升级(Code Update )
命令说明
Connect
EXCHANGE_ID(Exchange Station Identifications)
GET_SEED (Get Seed for Key )
UNLOCK(Unlock Protection)
SET_MTA(Set Memory Transfer Address )
DNLOAD(Data Download )
DNLOAD_6(Data Download 6 Bytes)
UPLOAD(Data Upload )
SHORT_UP(Short Upload)
SELECT_CAL_PAGE(Select Calibration Data Page)
GET_DAQ_SIZE(Get Size of DAQ list)
SET_DAQ_PTR(Set DAQ list pointer)
WRITE_DAQ(Write DAQ list entry)
START_STOP (Start / Stop Data transmission )
DISCONNECT (Disconnect)
SET_S_STATUS(Set Session Status)
GET_S_STATUS (Get Session Status )
BUILD_CHKSUM (Build Checksum )
CLEAR_MEMORY (Clear Memory)
PROGRAM (Program)
PROGRAM_6 (Program 6 Bytes )
MOVE (Move memory block )
DIAG_SERVICE (Diagnostic Service )
ACTION_SERVICE (Action Service )
TEST (Test Availability )
-
CRO数据帧:
-
DTO数据帧:
START_STOP_ALL (Start / Stop Synchronised Data transmission )
-
CRO数据帧:
-
DTO数据帧:
GET_ACTIVE_CAL_PAGE (Get currently active Calibration Page )
-
CRO数据帧:
-
DTO数据帧:
GET_CCP_VERSION (Get implemented Version of CCP )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)