主要应用于测量和标定ECU内部参数的XCP

电子说

1.3w人已加入

描述

XCP的主要应用于测量和标定ECU内部参数。此协议能够使数据采集工作与ECU内部运行的任务和中断同步,从而保证每当ECU软件更新参数时,能快速采集到所需的参数值。

根据标定数据要实现掉电存储的要求,需要为RAM中的标定参数建立一个RAM-EEPROM的关联列表。

列表中的具体元素为:EEPROM地址(相对于起始地址的偏移量)、RAM地址(标定参数在ECU中的地址,“&+变量名”的形式可直接获得)、标定参数的长度和标定参数的数据类型。

数据标定任务可细分为三部分。上电标定参数更新读入、上位机对ECU中RAM地址的直接标定和运行过程中RAM-EEPROM参数关联列表的更新。

上电时,标定参数处于初始化状态,其参数直接来源于程序烧写完成时的数值。断电之前标定的参数需要更新到RAM中才能保证之后运行的参数值是上次标定后的数值。

因此数据更新时,将EEPROM中的存储值直接读出更新到RAM中即可。

但若标定参数都未被标定过,则不需要标定参数的读出更新。如下图所示,处理的方法是在数据读出更新之前,读出EEPROM特定位置的标定更新标志位,若标定更新标志不存在,则不需要将数据读出更新到RAM。

该任务在主函数初始化处被调用一次。

EEPROM

上位机对ECU中RAM地址的直接标定主要是在CCP命令指导下完成的。

数据在RAM中标定更新后可满足正常的控制运行,但数据仍需要更新到对应的EEPROM中才可实现掉电存储。如下图所示,在主函数中查询更新EEPROM标志位,以判断是否需要更新数据到EEPROM。

在数据更新到EEPROM之前,向EEPROM的特定地址处写入一个标志,表示有数据更新到EEPROM,以方便下次上电时辨别标志读取最新的标定数据。

读入RAM-EEPROM关联列表的信息,将地址偏移、数据类型、数据长度、数据值写入缓存,置写EEPROM中断标志,在中断函数中完成数据更新EEPROM的操作。

整个任务在主函数中被调用,设定任务时间为100ms,减少不必要更新查询

EEPROM   










审核编辑:刘清

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

全部0条评论

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

×
20
完善资料,
赚取积分