什么是调参 CCP协议的实现原理

通信网络

650人已加入

描述

标定概述

我们先看一张图,做过调试的同学额应该很熟悉,出问题了,要实车调试,我们带着电脑和canoe下去调试了。只不过这张图是讲标定的,我们通过can或者以太网接口卡,把标定参数刷到我的Ecu中,我们的Ecu采集数据到远程服务器供我们分析我们调参的好坏。

CCP

那么什么是调参呢?

调参就是优化或调整控制算法中的某些参数以获得系统最佳效果的过程。我们通过校准工具(比如网络接口卡can盒子和canape)访问 ECU 中的校准变量并进行更改,注意我们要校准的那些参数都被分组到 ECU 内存的一个特殊部分,称为校准内存。我们通过校准工具来访问这块内存。

标定协议

那么校准工具肯定要通过某种协议来访问这块内存,我们称这种协议为XCP(CAN Calibration Protocol)协议,基于can总线的就叫ccp。顾名思义,它是一种用于电子控制单元(ECU)的校准和数据采集的协议。

CCP 是 CAN 2.0B(11 位或 29 位 CAN id)的应用层。根据 OSI 模型,该协议是顶层(第 7 层),这意味着该协议不描述位和字节是如何创建的,而是使用 CAN 2.0B 协议物理层、数据链路层和网络层。

CCP

CCP协议原理

CCP是一种主从模式的协议,CCP主节点(例如我们的电脑PC)通过向从节点发送命令来开始通信。一条CAN总线上可以连接多个从节点。CCP使用通用的命令进行数据采集,并使用简单的内存处理机制进行数据校准。注意数据采集和数据校准这两种资源相互独立,因此可以同时使用。也就是说PC 是向 ECU 发送命令的主机。没有主控(工具)启动命令,ECU 不会发送信息。符合 CCP 标准的工具可以从 ECU 读取数据,并可以使用适当的 CCP 消息将数据写入 ECU。

CCP

CCP的实现原理

CCP驱动程序通过两个标定报文实现,其报文可以设置较大,使其优先级较低,从而不干扰其他正常功能报文的通信。上文提到到通用命令介绍如下:

通用命令

CCP 使用非节点特定的通用命令在从属节点中执行不同的功能。由于命令是通用的,因此每个节点都必须有一个单独的地址,我们通过这个地址来在发送命令之前建立逻辑连接。这种连接一直持续到主节点决定连接到另一个从节点或者直到主节点发送断开命令为止。一旦逻辑连接建立后,master 控制 master 和 slave 之间的所有通信。来自主站的每条消息后面都有来自从站的包含数据或错误代码的回复消息。

CCP/XCP中的CRO and DTO

CCP/XCP中有两种消息,一个是命令接收对象 (CRO) 和一个是数据传输对象 (DTO)。这些消息由配置文件“A2L 文件”确定,如 ASAM MCD 2MC/ASAP2 标准所定义。该配置文件用于配置master。A2L文件有时也可能包含有关slave的内存相关的信息。

CCP

下面说明一下各种通信报文的格式:

CCP

CRO报文说明

CRO报文从主节点发送到从节点,包含指令。第一个字节是命令码(CMD),描述报文的目的。第二个字节是命令计数器(CTR),用来跟踪记录通信。从从节点返回的DTO报文中也应包含命令计数器。字节2到7用来存放数据参数(不同的命令码有不同的数据参数)。报文长度始终是8字节,没有定义的字节视为可以忽略。

DTO报文说明

DTO报文由从节点发送,用来对收到CRO报文进行确认,同时用于数据采集。报文中的第一个字节称为PID(包标识符)。PID的值描述报文类型。有三种类型的报文:

- 0xFF,命令返回报文(CRM)。DTO被用来确认收到CRO报文。 

- 0xFE,事件报文。DTO报告内部从节点状态变化,以便调用错误恢复或其它服务。

- 0 – 0xFD,数据采集报文(DAQ)。这个PID包含ODT(对象描述符表)的值,ODT会在后面阐述。

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分