首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

车辆中的标定

标定概述

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

那么什么是调参呢?

调参就是优化或调整控制算法中的某些参数以获得系统最佳效果的过程。我们通过校准工具(比如网络接口卡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主节点(例如我们的电脑PC)通过向从节点发送命令来开始通信。一条CAN总线上可以连接多个从节点。CCP使用通用的命令进行数据采集,并使用简单的内存处理机制进行数据校准。注意数据采集和数据校准这两种资源相互独立,因此可以同时使用。也就是说PC 是向 ECU 发送命令的主机。没有主控(工具)启动命令,ECU 不会发送信息。符合 CCP 标准的工具可以从 ECU 读取数据,并可以使用适当的 CCP 消息将数据写入 ECU。

CCP的实现原理

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

通用命令

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

CCP/XCP中的CRO and DTO

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

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

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会在后面阐述。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230621A01L0A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券