04 Xcp 标定过程介绍

要更改XCP Slave中的参数,XCP Master必须将参数的位置以及值本身发送给Slave。

XCP总是用5个字节定义地址:4个字节用于实际地址,1个字节用于地址扩展。基于CAN传输,XCP消息只有7个有用的字节可用。例如,如果标定工具设置了一个4字节的值,并且想要在一个CAN消息中同时发送这两个信息,那么就没有足够的空间来完成这一操作。由于总共需要9个字节来传输地址和新值,这个变化不能在一个CAN消息(有用的7个字节)中传输。因此,标定请求是由Master向Slave发送两条信息完成,Slave必须确认这两个消息。

下图显示了Master和Slave之间的通信,需要设置一个参数值。实际信息解释被隐藏,通过用鼠标“展开”它来显示。

在Master的第一个消息中,Master发送了SET_MTA命令给Slave,该命令将写入一个新的地址值。在第二条消息中,Slave对命令表示肯定Ok: SET_MTA。

第三条消息下载传输十六进制值以及有效的字节数。在本例中,由于是浮点数,有效的字节数是4。Slave在第四个消息中同意给予了肯定响应。

这就完成了当前的标定过程。在Trace显示中,您可以识别到最后一个命令SHORT_UPLOAD。,这是Vector的测量和标定工具CANape的一个特殊方面。为了确保标定成功,在标定结束后再次读出该值,并将显示更新为读出值。这可以让用户直接识别是否执行了标定命令。这个命令也得到了一个肯定的确认:SHORT_UPLOAD。

当参数在ECU的RAM中发生变化时,应用程序将处理新的值。然而,重新启动ECU会导致该值被擦除,并用flash中的原始值覆盖RAM中的值。那么,如何永久保存修改后的参数呢?

基本上有两种可能:

 

一、保存在ECU中

例如,RAM中改变的数据可以保存在ECU的EEPROM中:当ECU掉电时自动保存,或由用户手动保存。前提条件是数据可以存储在Slave的非易失性内存中。在ECU中,这将是EEPROM或flash。然而,具有数千个参数的ECU很少能够提供这么多未使用的EEPROM内存空间,因此这种方法很少见。

另一种可能是将RAM参数写回ECU的flash内存。这种方法比较复杂。Flash内存必须先被擦除,然后才能被重写。反过来,这只能作为一个块来完成。因此,这不是简单地回写单个字节的问题。

二、将参数以文件的形式保存到PC上

更常见的是将参数存储在PC上。所有参数(或它们的子集)都以文件的形式存储。不同的格式是可用的;最简单的情况是ASCII文本文件,它只包含对象的名称和值。其他格式还允许保存其他信息,例如关于修订历史参数的成熟度级别等。

场景:完成工作后,标定员希望享受一个自由的夜晚。因此,标定工具将执行的更改,以参数设置文件的形式保存在ECU的RAM中。第二天,标定员想要继续他停止的工作。标定工具启动ECU。在引导时,参数在RAM中初始化。然而,ECU使用存储在flash中的值来做到这一点。这意味着前一天的变化在ECU中不再可用。为了继续前一天停止的工作,标定工具使用DOWNLOAD命令通过XCP将参数设置文件的内容传输到ECU的RAM中

 

保存参数设置文件Hex文件和刷新

刷新ECU flash是另一种改变flash参数的方法。当ECU启动时,它们被作为新参数写入RAM。参数文件也可以被传输到C或H文件中,并在运行编译器/链接器时被制成新的flash文件。但是,根据代码的参数,生成flash十六进制文件的过程可能需要相当长的时间。此外,标定工具可能没有任何ECU源代码,这取决于工作过程。

作为一种替代方案,标定工具可以将参数设置文件复制到现有的flash文件中。

 

在flash文件中,有一个包含地址和值的十六进制文件。现在参数文件可以复制到十六进制文件中。为此,CANape从参数文件中获取地址和值,并在Hex文件的相关位置更新参数值。这将产生一个新的Hex文件,其中包含更改的参数值。现在这个Hex文件现在必须重新写入flash中,并且在重新启动后,新的参数值在ECU中是可用的。

  • 14
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小菜鸟工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值