程序员开发实例大全宝库

网站首页 > 编程文章 正文

汽车控制器基于CAN总线的标定协议解析及测试方法

zazugpt 2024-09-04 00:11:54 编程文章 22 ℃ 0 评论

一、CCP简介

CCP – CAN Calibration Protocol,CAN标定协议;是基于CAN协议实现的一种功能,该功能的主要作用是能够在线实时标定数据,并实现数据的上传与下载。CCP与XCP之间有什么联系?XCP被细分为协议层和传输层。协议层为XCP,传输层为CAN、USB、Ethernet、CANFD,本文的X代表CAN。常用的标定工具有vector公司的CANape、ETAS公司的INCA;


二、CCP通讯方式

采用主从方式,标定工具作为MASTER,发送命令报文(CRO),ECU作为SLAVE应答(DTO)。

polling(查询模式)

由主设备主动向从设备发送指令,从设备做出反馈应答,“一问一答”模式。效率相对较低,实现简单,占用ECU内存空间少;

DAQ(数据采集)

主设备发送一条请求指令后,从设备按照一定周期自动向主设备上报数据;效率高,实现复杂,数据量大,占用ECU内存空间大;

通讯过程中通过指令接收报文(CRO)和数据传输报文(DTO)实现数据及信息的传递。

指令接收报文(CRO),发送指令。

数据传输方向:master -> slave;报文中携带一个指令和在从设备中执行的指令参数;

1:CMD

2:CTR

3-8:Date and Parameter

CMD:命令代码。如连接命令0x01,

CTR: 命令计数器。保证命令和应答的一致性。

数据传输报文(DTO),DTO出了应答命令外,还包括从数据主动上传的DAQ数据包。

1:PID

2:ERR

3:CTR

4-8: Data and Parameter

PID:包标识 [0XFE-0xFF],0XFF表示命令应答,0XFE表示错误报文

ERR:应答码

CTR: 命令计数器,与命令中的计数器对应。

1:PID

2-8:DAQ VALUE

PID:包标识 [0X00-0xFD],在DAQ模式下,此标识对应于相应的ODT标识(一次设置最多254个ODT)。表示后面的上传数据是此ODT中元素索引表中对应的变量值。

DAQ VALUE:ODT中元素索引表中对应的变量值,最大7个字节。

数据传输方向:slave -> master;DTO分为如下几类消息:

1、错误返回消息CRM;2、事件消息;3、数据采集;


三、指令列表

四、CCP功能实现

CCP的功能是通过以上的指令进行组合来实现的,主要包括以下功能:会话登录功能、块数据下载功能、块数据上传功能、校验数据初始化功能、数据采集列表初始化功能、代码更新功能。

  • 会话登录指令流程
  1. CONNECT 逻辑连接
  2. GET_CCP_VERSION 获取CCP协议版本
  3. EXCHANGE_ID 交换节点标识符
  4. GET_SEED 获取key的seed数据
  5. UNLOCK 使用接收到的密钥解密
  6. SET_S_STATUS 设置会话状态
  • 块数据上传/下载指令流程
  1. CONNECT 逻辑连接
  2. SET_MTA 将内存传输地址设置为目标块
  3. UPDOWN/UPLOAD 进行块数据下载/进行块数据上传
  • 数据校验指令流程
  1. CONNECT 逻辑连接
  2. SET_S_STATUS 设置会话状态
  3. SET_MTA 将内存传输地址设置为目标块
  4. BUILD_CHKSUM 构建块的校验和
  5. DOWNLOAD 若是校验和不匹配,继续下载
  6. SELECT_CAL_PAGE 选择校准数据页面
  7. SET_S_STATUS 设置会话状态位CAL=1
  • 列表数据采集指令流程
  1. CONNECT 逻辑连接
  2. SET_S_STATUS 设置会话状态DAQ=0
  3. GET_DAQ_SIZE 获取DAQ大小,创建DAQ列表
  4. SET_DAQ_PTR 设置DAQ数据指针
  5. WRITE_DAQ 填充DAQ列表数据
  6. SET_S_STATUS 设置会话状态位DAQ=1
  7. START_STOP 开始传输DAQ-DTO数据,并设置相关参数
  • 软件更新指令流程
  1. CONNECT 逻辑连接
  2. SET_MTA 内存传输地址设置为目标块
  3. CLEAR_MEMORY 清除从设备的内存
  4. PROGRAM 程序取决与扇区大小
  5. PROGRAM size=0 程序结束

五、CCP相关功能测试方法

结合测试上位机,并采集报文进行同步分析的方式,完成以下功能的测试项目。

1、DAQ数据上传数据

  • 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加变量的地址并设置为观测模式,将上传方式设置为DAQ模式,建立主从设备的数据连接,添加观测变量,启动数据采集。预期结果,ECU周期性的上传报文。分析报文的传输流程符合设计预期指令流程。

2、polling方式上传数据

  • 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加变量的地址并设置为观测模式,将上传方式设置为polling模式,建立主从设备的数据连接,添加观测变量,启动数据采集。预期结果,ECU周期性的上传报文。分析报文的传输流程符合设计预期指令流程。

3、主从设备安全访问

  • 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加正确的安全算法,建立主从设备的数据连接。预期结果,ECU可以正常标定。分析报文的传输流程符合设计预期指令流程。
  • 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加错误的安全算法,建立主从设备的数据连接。预期结果,ECU不能正常标定。分析报文的传输流程符合设计预期指令流程。

4、在线标定功能

  • 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加变量的地址并设置为标定模式,建立主从设备的数据连接,修改添加的标定变量。预期结果,程序中的功能按照标定的参数执行。分析报文的传输流程符合设计预期指令流程。

5、标定数据下载

  • 建立测试环境,控制器上电,CAN通讯收发正常,启动INCA上位机,打开工程,打开配置文件,打开数据库文件,添加标定数据区域的映射地址,选择下载文件,开启下载模式。预期结果,程序更新成功,按照预期功能运行。分析报文的传输流程符合设计预期指令流程。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表