之前两篇文章对CCP标定协议作了初步的介绍,大家也应该有了一定的了解,本文将对CCP标定协议的实现进行介绍,让大家能够进一步理解CCP标定协议。目前CCP协议最新版本是V2.1,在Vector的官网上提供了相应的参考例子,本文基于Vector提供的CCP协议示例在STM32F103平台上进行了移植,实现了参数的监控测量

CCP标定协议示例实现功能及流程介绍

数据定义区间说明

在前面《如何实现标定》一文介绍了标定是基于RAM和ROM数据的映射来实现的,本文是基于STM32F103平台进行移植的,其RAM大小为0x10000byte,其中非标标定参数在RAM中的配置为0x20000000到0xF000区间,标定参数定义在0x2000F000到0x20010000区间,相应的标定ROM区间为0x807F000到0x8080000,标定RAM和ROM区间大小配置一定要一致。

CCP标定通讯流程说明

Vector提供的CCP示例代码只实现了参数的监控,没有对参数标定后Flash刷写功能部分。本文也先基于示例实现代码的移植,实现CCP通讯和参数的监控,使用了Vector的CANape作为标定上位机,上位机发送CRO报文ID为0x100,控制器响应DTO报文ID为0x101,采集了示例的通讯报文数据,在介绍具体实现过程前,先为大家梳理一下整个实现的流程:

CCP标定协议实现流程指令介绍

下面将根据采集的通讯报文数据,按照实现流程的指令详细介绍具体实现过程:

连接-CONNECT

连接过程实现比较简单,CRO报文有效数据长度为3个字节,DTO报文有效数据长度也为3个字节。如果控制器能够支持CCP连接,直接回复肯定响应就可以建立起连接了,否则回复错误代码。

CRO报文定义:

DTO报文定义:

示例通讯报文数据:

交换ID-EXCHANGE_ID

在《标定协议基础知识介绍》已经介绍过标定协议的通讯是支持一主多从的方式,因此在建立起连接后,上位机软件需要同该指令获取当前通讯控制器的ID以及该控制器能够支持CCP标定的功能。

CRO报文定义:

DTO报文定义:

DTO报文中的Resource Availabilty Mask和Resource Protection Mask两个字节定义了控制器中CCP能够支持的功能描述。Byte5中的Resource Availabilty Mask的每一位定义了是否支持该功能,Byte6中的Resource Protection Mask的每一位定义该功能是否锁定,如果是锁定状态就需要通过unlock指令进行解锁。

示例通讯报文数据:

控制器ID信息:控制器ID长度为7个字节,上位机CANape在接收到DTO响应后,通过UPLOAD(0x04)的指令将ID数据传输到上位机,同时由于每一条DTO报文最多传输5个字节的数据,因此发送了两次UPLOAD指令。

Resource Availabilty Mask:DTO数据为0x43,控制器能够支持PGM、DAQ以及CAL所有功能

Resource Protection Mask:DTO数据为0x00,所有功能都已经解锁

设置内存地址-SET_MTA

在开始标定之前上位机需要将控制器中当前ROM的数据传输上来,以便于让标定工程师确定数据状态。因此首先需要通过该指令配置需要传输的ROM数据区域起始地址,这个配置的地址和前面介绍的控制器中数据定义的标定ROM地址是一致的,然后再通过UPLOAD(0x04)将数据传输上来。

CRO报文定义:

DTO报文定义:

示例通讯报文数据:

配置的标定ROM数据起始地址为0x807F000,为便于数据分析,本示例在CANape中配置的实际标定ROM大小为0x10,因此在SET_MTA指令后执行了4次UPLOAD指令。

获取CCP协议版本-GET_CCP_VERSION

由于CCP标定协议有不同的版本,因此标定上位机与控制器中的CCP协议版本需要匹配一致,否则就无法正常通讯。上位机通过该指令将上位机软件的CCP协议版本发送给控制,同时获取控制器中CCP协议的版本进行比对。

CRO报文定义:

DTO报文定义:

示例通讯报文数据:

上位机和控制器中所支持的CCP协议版本均为V2.1版本。

获取DAQ大小-GET_DAQ_SIZE

在《标定协议之CCP协议的DAQ模式介绍》对DAQ模式进行了相关介绍,CANape标定上位机通过该指令获取控制器中能够支持的DAQ传输数据通道和每一个DAQ的ODT的大小。

CRO报文定义:

DTO报文定义:

示例通讯报文数据:

CANape上位机中配置了2个DAQ通道,控制器中CCP协议也支持2个DAQ通道,每一个DAQ通道支持3个ODT。上位机发送第3次GET_DAQ_SIZE指令时返回的该通道支持0个ODT,上位机就确定了下位机只能支持2个DAQ通道,然后再次发送DAQ通道1请求进行确认,至此完成该指令的执行。

配置DAQ

CANape上位机配置完成控制器的DAQ通道后,需要将上位机中配置的需要通过DAQ传输的参数的地址写入到控制器的DAQ列表中,首先需要通过SET_DAQ_PTR指定需要配置的DAQ通道中的ODT位置以及ODT中的参数位置,控制器接收并响应该指令后上位机通过WRITE_DAQ指令写入参数的地址。

SET_DAQ_PTT-CRO报文定义:

SET_DAQ_PTT-DTO报文定义:

WRITE_DAQ-CRO报文定义:

WRITE_DAQ-DTO报文定义:

示例通讯报文数据:

为方便数据分析,本示例中配置了一个DAQ参数,其数据长度为2个字节,CANape上位机中选择了按照1个字节长度模式配置DAQ,因此通过2次SET_DAQ_PTT和WRITE_DAQ指令完成DAQ参数的配置。

DAQ传输准备-START_STOP

当DAQ 配置完成后,CANape上位机启动DAQ传输前会通过该指令通知控制器进行DAQ传输的准备,只有当控制器给予肯定响应后才能进行后续相关操作。

CRO报文定义:

DTO报文定义:

示例通讯报文数据:

启动传输-START_STOP_ALL

CANape上位机接收到控制器响应的DAQ准备完成肯定响应后,通过该指令启动所有数据的传输,包括DAQ和Polling两种传输模式,当需要停止传输时也是通过该指令实现。

CRO报文定义:

DTO报文定义:

示例通讯报文数据:

参数传输

在本示例中配置了一个10ms的DAQ传输参数和一个50ms的Polling传输参数,当前面相关配置都正确完成后,控制器将会按照相应周期传输参数。

本文通过对Vector提供CCP协议栈代码移植到STM32F103平台,并采用CANape作为标定上位机进行通讯测试,对采集的报文进行分析,介绍了CCP标定协议实现的流程以及流程中每一个步骤具体实现过程。希望大家通过本文的能够对CCP标定协议有更进一步的了解,其中关于CANape标定软件使用相关知识后续将会专题进行介绍。

想获取更多及时资讯和学习资源,关注微信公众号“闻道工程师之家”,第一时间收到文章推送!

免责声明:本文素材部分来源于网络,版权归原作者所有,如有涉及侵权,请与我联系删除。

标定协议之CCP协议实现流程介绍相关推荐

  1. 标定协议之CCP协议基础知识介绍

    上一篇<标定协议基础知识介绍>中对标定协议进行了初步的介绍,从这一篇文章开始对CCP标定协议进行相关介绍,本篇将对CCP标定协议相关指令进行介绍. CCP通讯报文定义 CCP标定协议标准中 ...

  2. 传统蓝牙RFCOMM协议(Bluetooth rfcomm)流程介绍

    零. 概述 本文章主要讲下蓝牙协议栈RFCOMM协议部分流控介绍 一. 声明 本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下: 第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景, ...

  3. CCP协议移植与INCA通信流程

    强烈建议看看这个视频 B站CCP移植视频 下载CCP源码 Vector官网应该有,是个exe文件,网址我找不到了,不行就在CSDN下载 阅读内部自带的两个关键文档 AN-IMC-1-001_Integ ...

  4. 标定CCP协议在S32K144上的移植实战

    文章目录 目录 文章目录 前言 一.CCP是什么? 二.移植步骤 1.准备工作 2.移植 3.测试验证 总结 前言 CCP协议在新能源汽车电子领域发挥着重要作用,CCP观测和标定作用对开发工程师起着重 ...

  5. 物联网基础之了解CCP协议,COAP协议,MTQQ协议等

    首先介绍下背景.最近开始研究物联网的套件.公司选中了阿里物联网套件,所以博主就开始投入到漫长的开发文档中.由于博主并非嵌入式开发者,所以一些名字没有听过,这对文档的阅读造成了不少的困扰,所以在此记录一 ...

  6. SSL协议(HTTPS) 握手、工作流程详解(双向HTTPS流程)

    SSL协议的工作流程: 服务器认证阶段:1)客户端向服务器发送一个开始信息"Hello"以便开始一个新的会话连接:2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器 ...

  7. CCP协议学习《一》

    CCP:CAN Calibration Protocol是基于CAN总线应用层协议.   在学习CCP之前,先了解一下CAN总线. 1 CAN是什么?   CAN 是Controller Area N ...

  8. 什么是UPNP协议:UPNP协议作用及启用路由器UPNP支持的方法详细介绍

    目录 [隐藏] UPNP简介 基本概念 官网解释 以下是微软官方网站对UPnP的解释: 以下是BC官方网站对UPnP的解释: UPnP是用来干什么的? 经典应用 网络地址转换 NAT 穿越技术 实际应 ...

  9. QUIC协议(握手过程)简要介绍

    QUIC协议(握手过程)简要介绍 这篇博客可能更多的偏向于密码学方面来进行介绍(csdn关于网络层). 为什么需要QUIC协议 随着当前网络对性能要求的越来越高,有部分公司已经觉得原来的TCP和UDP ...

最新文章

  1. python实现:旋转矩阵转换为四元数
  2. thunderbird怎样方便的导入gmail联系人
  3. 2019牛客多校2 H Second Large Rectangle(悬线法)
  4. asp.net上传图片文件自动修改图片大小代码
  5. 学习java第一步_Spring Boot 学习第一步(搭建初步环境)
  6. struts2与struts1整合,java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
  7. 三、Python第三课——Python中数字的用法及编码原则(Python禅意)
  8. WordPress 简洁好看hankin透明主题
  9. oracle11g 查看表,oracle11g查看,添加表空间
  10. Yocto tips (17): Yocto License问题:restricted license not whitelisted in LICENSE_FLAGS_WHITELIST
  11. 灯效控制器和rgb控制器_还有什么不能RGB?TT发布Level 20 RGB BattleStation电竞桌
  12. [导入]一个asp中关于execute的测试
  13. esp8266 继电器接线图_如何使用继电器实现ESP8266的自动化
  14. python大众点评霸王餐_划重点:如何报名大众点评霸王餐?怎么做才能中奖?
  15. Redis中的Stream的实现Radix Tree源码解读
  16. 微信自媒体账号涉违规大规模被封
  17. Latex大括号及多行公式
  18. C/C++、Qt4实现FTP客户端(有无界面版)
  19. 基于python+django框架+Mysql数据库的校园鲜花水果商城系统设计与实现
  20. 【NOIP2014模拟】木马

热门文章

  1. 优化 Microsoft Windows Media Services 9 Series
  2. #import C:\Program Files\CommonFiles\System\ado\msado15.dll no_namespace rename(EOF,adoEOF)问题
  3. 针对数据库拒绝访问的解决办法以及Mysql数据库的安装环境变量配置一条龙
  4. Excel2Unity
  5. 2023年如何入门渗透测试
  6. 能接听电话的耳机有哪些?性价比高的通话蓝牙耳机
  7. 从路由器里找到宽带账号密码
  8. 【医学+深度论文:F18】2019 Robust optic disc and cup segmentation with deep learning for glaucoma detection
  9. Python实现将数字转换为大写中文
  10. 进程间通信的8种方式