项目

一般

简介

功能 #3418

力常 张 更新于 3 个月 之前

参考软件DR-003701-708289 Avoid NVM Wear-out 
 1. NVM存储单元寿命限制 
     禁止在车辆使用寿命内耗尽任何单个NVM存储单元的使用寿命。具体耐久性定义参见设计规则说明部分的“耐久性定义(Durability Definition)”。 
 2. 复位后的NVM缓冲区管理 
     微控制器在复位后,必须能够仅基于NVM中存储的信息确定哪个NVM缓冲区最旧。 
 3. 多缓冲区数据一致性设计 
     NVM管理器设计必须包含处理多缓冲区数据一致性问题的机制(例如:不完整的多缓冲区更新),同时避免存储单元过早损耗(尤其是在微控制器频繁复位的情况下)。 
 4. 序列号(Sequence Number)管理 
     若采用递增或递减序列号,必须确保序列号在超过两倍车辆使用寿命前不会发生翻转(上溢或下溢)。 
 设计规范 
 5. 频繁修改数据的特殊豁免 
     对于频繁修改的数据项(由功能规范定义或经福特批准),可豁免“50ms内启动NVM更新”的要求。 
     关于“50ms内启动NVM更新”的详细要求,请参考设计规则 DR-003701-708350《管理NVM更新》。 
 设计规范 
     福特对NVM磨损的定义是:在车辆使用寿命期间,任一NVM存储单元的使用寿命被耗尽。NVM存储单元指单次擦除操作中可清除的最小字节单位。该定义简化了系统测试,因其未规定超出使用寿命后的处理方式(而是通过识别NVM故障并制定纠错方法来应对)。 
     注:耐久性/车辆使用寿命数据详见RQT-030000-010326文件。 
     为避免磨损,需明确车辆生命周期内每个NVM数据项的修改次数。供应商应与福特软件工程师共同评审各NVM数据项支持的修改次数上限。需特别注意,数据项的多次修改极易被忽视,且每个数据项的变更可能源自多个触发源。 
     避免磨损的技术方案:每个NVM存储单元的可修改次数存在上限。若需求要求频繁修改某一数据项,则需分配更多NVM存储单元以分散写入压力,但由此将引发新问题:复位后如何识别哪个存储单元包含最新数据。以下列出潜在解决方案(供应商可不限于这些实施方案,但必须在设计评审时提交设计方案)。 
     该技术方案要求开发者为每个NVM数据分配特定地址范围,因此调整数据位置或应对高频使用时需重新映射多个NVM数据项(或将非连续数据项拼接处理)。 
     序列号是每次修改NVM存储单元时更新的数据值,有时可直接利用现有数据作为序列号(例如里程表读数)。 
     一种序列号采用单向递增(或递减)且永不溢出(或下溢)的数值,另一种则允许溢出/下溢(循环编码)。 
     以下为复位后确定下次写入位置的简易方法:本例使用允许循环递增的8位无符号序列号(seqA、seqB和seqC),其核心逻辑是找出数值最小的序列号(同时兼容循环溢出处理)。常量THRESHOLD定义了参与循环计算的数值上限临近范围,该阈值越大,对多次复位的容错性越强。 
     关键序列号使用规则包括:优先使用已擦除缓冲区;必须按固定顺序循环使用缓冲区;若采用单向递增/递减序列号,其溢出/下溢临界值必须超过2倍车辆使用寿命(此方案以增加NVM开销为代价降低算法复杂度);若采用循环序列号(允许溢出/下溢),软件在确定覆写单元时必须考虑循环特性(此方案减少NVM占用但增加软件复杂度及代码空间);对于多单元缓冲区,设计需检测部分使用状态并制定应对策略,特别要快速响应连续复位情况。 
    
    

返回