Files
autosar_standard_spec_v4.4/Memory/AUTOSAR_SRS_MemoryServices.md
T

38 KiB
Raw Blame History

内存服务需求规范

文档标题: Requirements on Memory Services AUTOSAR CP Release: 4.4.0 文档编号: 007 文档类型: SRS (Software Requirements Specification)


文档标识

项目 内容
Document Title Requirements on Memory Services
Document Owner AUTOSAR
Document Responsibility AUTOSAR
Document Identification No 007
Document Status Final
Part of AUTOSAR Standard Classic Platform
Part of Standard Release 4.4.0

文档变更历史

日期 版本 变更者 变更描述
2018-10-31 4.4.0 AUTOSAR Release Management 编辑性修订
2017-12-08 4.3.1 AUTOSAR Release Management 编辑性修订
2016-11-30 4.3.0 AUTOSAR Release Management 增加"需求追溯"章节
2015-07-31 4.2.2 AUTOSAR Release Management 需求与 BSW 特性关联
2014-10-31 4.2.1 AUTOSAR Release Management 需求与 BSW 特性关联
2013-10-31 4.1.2 AUTOSAR Release Management 编辑性修订
2013-03-15 4.1.1 AUTOSAR Administration 对需求追溯进行形式化重做;按 TPS_STDT_00078 重做需求;关联 BSW & RTE 特性
2010-09-30 3.1.5 AUTOSAR Administration 增加 NVM 安全机制;增加调试和诊断支持;增加块共享;法律免责声明修订
2008-08-13 3.1.1 AUTOSAR Administration 法律免责声明修订
2007-12-21 3.0.1 AUTOSAR Administration 移除 CRC 库相关需求;文档元信息扩充;小幅排版调整
2007-01-24 2.1.15 AUTOSAR Administration 移除关于符合性和强制需求的声明;法律免责声明修订;"用户须知"修订;增加"版本信息"
2006-05-16 2.0 AUTOSAR Administration 块管理类型需求变更;新增需求(RAM 块类型、错误检测、减少写负载、配置等);移除"写访问分散"和"不完整写入检测"需求
2005-05-31 1.0 AUTOSAR Administration 初始发布

目录

  1. 文档范围
  2. 如何阅读本文档
  3. 缩略语
  4. 功能概述
  5. 需求追溯
  6. 需求规范
  7. 参考文献

1 文档范围

本文档规定了以下软件层中基础软件模块的需求:

  • 服务层(Service Layer)

这些模块属于以下类型:

  • NVRAM 管理
  • 接口

模块的选择源自基础软件模块列表和 AUTOSAR 分层软件架构。涉及以下模块:

  • NVRAM Manager

需求按以下方式组织:

  • 基础软件模块的通用需求(其他文档)
  • 适用于 NVRAM 管理所有模块的通用需求
  • 模块特定需求

约束

基础软件模块需求规范的首要范围是非安全相关系统。因此安全需求被分配为中等优先级。


2 如何阅读本文档

每条需求都有一个以"BSW"为前缀的唯一标识符。

2.1 使用的约定

关键字 "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"MAY" 和 "OPTIONAL" 按 IETF 风格解读。AUTOSAR 文档中需求的表示形式遵循 [TPS_STDT_00078] 中规定的表格格式。

2.2 需求结构

功能性需求:配置、初始化、正常运行、关机运行、故障运行、…… 非功能性需求:时序需求、资源使用、易用性、为其他工作包提供的输出、……


3 缩略语

缩略语 描述
Basic Storage Object(基础存储对象) NVRAM 块的最小实体。多个"基础存储对象"可用于构建一个 NVRAM 块。"基础存储对象"可驻留在不同的存储位置(RAM/ROM/NV 存储器)。
NVRAM Block(NVRAM 块) 管理并存储 NV 数据块所需的整个结构。
NV data(NV 数据) 要存储于非易失存储器的数据。
Block Management Type(块管理类型) NVRAM 块的类型,取决于(可配置的)由强制/可选基础存储对象不同块组成 NVRAM 块的个性化构成及对其的后续处理。
NV Block Header(NV 块头部) 启用"静态块 ID"机制时 NV 块包含的附加信息。
RAM Block(RAM 块) 基础存储对象。表示 NVRAM 块中驻留在 RAM 的部分。参见 [SRS_LIBS_08534]
ROM Block(ROM 块) 基础存储对象。表示 NVRAM 块中驻留在 ROM 的部分。"ROM 块"是 NVRAM 块的可选部分。
NV Block(NV 块) 基础存储对象。表示 NVRAM 块中驻留在 NV 存储器的部分。"NV 块"是 NVRAM 块的强制部分。
Administrative Block(管理块) 驻留在 RAM 中的基础存储对象。包含管理 NVRAM 块、执行其处理及交付状态信息所需的任何 RAM 数据。"管理块"是 NVRAM 块的强制部分。
MemHwA Memory Hardware Abstraction,见 [AUTOSAR_SRS_MEMHW]

4 功能概述

非易失 RAM 管理器(NVRAM Manager)管理所有类型非易失存储器中的数据存储。

NVRAM 管理器本身应是硬件无关的,所有直接访问硬件的功能(如内部或外部 EEPROM、内部或外部 Flash 中的仿真 EEPROM 等)封装在基础 SW 的较低层中。NVRAM 管理器处理对非易失数据的并发访问,并为单个数据元素提供如校验和保护等可靠性机制。为了在汽车系统所有领域都可用,NVRAM 管理器需要具有高度可扩展性(如可定义请求队列的数量和大小、支持不同的块管理类型、EEPROM 仿真等)。


5 需求追溯

需求 描述 满足者
RS_BRF_00129 AUTOSAR 应支持数据损坏检测与保护 SRS_Mem_00030, 00129, 08001, 08010, 08545, 08546, 08547, 08550, 08552, 08553, 08555, 08556
RS_BRF_01048 AUTOSAR 模块设计应支持多任务环境下模块协同工作 SRS_Mem_00034, 08542, 08558
RS_BRF_01064 AUTOSAR BSW 应提供回调函数以访问上层模块 SRS_Mem_00125
RS_BRF_01076 AUTOSAR 基础软件应尽可能进行模块本地错误恢复 SRS_Mem_00038
RS_BRF_01096 AUTOSAR 应支持 ECU 的启动和关机 SRS_Mem_00137, 08540
RS_BRF_01416 AUTOSAR 服务应支持非易失存储器数据的标准化处理 SRS_Mem_00013, 00016, 00017, 00136, 00138, 08544, 08554
RS_BRF_01800 AUTOSAR 非易失存储器功能应划分为硬件相关层和硬件无关层 SRS_Mem_00011
RS_BRF_01808 AUTOSAR 非易失存储器处理应支持不同种类的存储器硬件 SRS_Mem_08000
RS_BRF_01812 AUTOSAR 非易失存储器功能应支持作业的优先级化和异步执行 SRS_Mem_00034, 08543, 08558
RS_BRF_01816 AUTOSAR 非易失存储器功能应基于逻辑内存块组织持久数据 SRS_Mem_00041, 08001, 08009, 08528, 08529, 08531, 08533, 08534, 08538, 08543, 08549, 08560
RS_BRF_01824 AUTOSAR 非易失存储器功能应提供非易失存储器到 RAM 的映射 SRS_Mem_00027, 08014, 08533, 08538, 08549
RS_BRF_01832 AUTOSAR 非易失存储器应独立于物理地址处理逻辑内存块 SRS_Mem_08007, 08531
RS_BRF_01840 AUTOSAR 非易失存储器功能应保护内存块的完整性 SRS_Mem_00018, 00030, 00127, 00129, 00135, 08010, 08011, 08015, 08535, 08541, 08546, 08547, 08548, 08552, 08553, 08556
RS_BRF_01848 AUTOSAR 非易失存储器功能应提供增强硬件可靠性的机制 SRS_Mem_00018, 08529, 08531, 08548, 08551, 08554

6 需求规范

6.1 功能性需求

6.1.1 配置

6.1.1.1 [SRS_Mem_00041] 每个应用应能在配置时声明内存需求

字段 内容
类型 Valid
描述 通过使用配置技术,每个应用应能在配置时声明内存需求。此信息应可用于分配内存区域并生成适当的接口。错误的内存分配和需求冲突(没有足够内存可用)应在配置时被检测到。
理由 实现更高的可靠性、互操作性
用例 --
依赖 --
支持材料 --
⌋(RS_BRF_01816)
6.1.1.2 [SRS_Mem_08534] NVRAM 管理器应支持两类 RAM 数据块

字段 内容
类型 Valid
描述 NVRAM 管理器应支持两类 RAM 数据块。这些 RAM 数据块对于 NVRAM 管理器和 SW 组件之间的数据交换是强制的。它们必须由 SW 组件或 BSW 模块提供。对特定 NVRAM 块的分配可以是:

- 永久:即 RAM 数据块在配置时分配给恰好一个 NVRAM 块
- 临时:即 RAM 数据块可在运行时分配给任何 NVRAM 块
理由 减少 RAM 消耗。
用例 1) 某些 NVRAM 块不经常使用,其数据无需永久驻留在 RAM 中。例如,应用希望对其所有互斥使用的 NVRAM 块使用一个共享 RAM 块。
2) 诊断服务希望从 NV 中读取某些应用使用的数据,而不危及应用的 RAM 块。它使用一个 RAM 块(必须足够大)来读取任何请求的 NV 数据块。
依赖 --
支持材料 --
⌋(RS_BRF_01816)
6.1.1.3 [SRS_Mem_08528] NVRAM 管理器应允许配置原生块管理类型

字段 内容
类型 Valid
描述 NVRAM 管理器应允许配置原生块管理类型。

- 原生 NVRAM 块应提供数据的基本存储和 ROM 可配置 ROM 默认值。
理由 基本块类型
用例 无特殊要求的常规 NVRAM 数据。
依赖 [SRS_LIBS_08534] RAM 数据块类别
支持材料 --
⌋(RS_BRF_01816)
6.1.1.4 [SRS_Mem_08529] NVRAM 管理器应允许配置冗余块管理类型

字段 内容
类型 Valid
描述 NVRAM 管理器应允许配置冗余块管理类型。冗余 NVRAM 块应对应用透明,并应在发生不一致时(如不完整写入)能提供数据。

冗余 NVRAM 块应可配置以包含默认值。

注:冗余不一定意味着双重(或多重)存储。
理由 安全性、增强数据可用性、完整性
用例 用于保存安全相关数据(如防盗器数据)
依赖 [SRS_Mem_00038] 可处理的错误不应影响应用; [SRS_Mem_00129] 自动数据修复; [SRS_LIBS_08534] RAM 数据块类别
支持材料 --
⌋(RS_BRF_01816, RS_BRF_01848)
6.1.1.5 [SRS_Mem_08531] NVRAM 管理器应允许配置数据集块管理类型

字段 内容
类型 Valid
描述 NVRAM 管理器应允许配置数据集块管理类型。此类 NVRAM 块应在 NV 中提供可配置数量的可选元素。
- 数据集 NVRAM 块应可配置以包含默认值。
理由 使运行时选择 ROM/NVRAM 中不同数据集成为可能。
用例 一个 ECU 在一辆汽车的多个型号/国家变体中使用。根据车辆变体,选择 NVRAM 或 ROM 中对应的数据集。
依赖 [SRS_Mem_08007] 数据集选择; [SRS_LIBS_08534] RAM 数据块类别
支持材料 --
⌋(RS_BRF_01816, RS_BRF_01848, RS_BRF_01832)
6.1.1.6 [SRS_Mem_08543] 每个 NVRAM 块的优先级应可在不同级别静态配置

字段 内容
类型 Valid
描述 每个 NVRAM 块的优先级应可在不同级别静态(预编译时)配置。

其中一个级别应为"立即(immediate)",对于这些块应适用 [SRS_Mem_08542]。
理由 灵活性
用例 崩溃数据写入和常规数据写入
依赖 [SRS_Mem_08542] 作业顺序优先级化
支持材料 --
⌋(RS_BRF_01816, RS_BRF_01812)
6.1.1.7 [SRS_Mem_08009] NVRAM 管理器应允许为每个 NVRAM 块静态配置默认写保护(开/关)

字段 内容
类型 Valid
描述 NVRAM 管理器应允许为每个 NVRAM 块静态配置默认写保护(开/关)。
理由 某些数据是只读的
用例 写保护关:由应用本身生成的数据(如自适应数据、错误存储器);写保护开:外部赋予 ECU 的数据(如 EOL 数据、变体编码、参数)
依赖 [SRS_Mem_00127] 写保护/解除保护功能
支持材料 --
⌋(RS_BRF_01816)
6.1.1.8 [SRS_Mem_00135] NVRAM 管理器应有唯一的配置标识符

字段 内容
类型 Valid
描述 NVRAM 管理器应有一个配置标识符,它是非易失存储器配置的唯一属性。ID 可以静态分配给配置,或可以从配置属性计算得出。如果块配置改变(即添加或移除块,或更改其大小或类型),ID 必须改变。ID 应单独存储并应用于确定 NVRAM 内容的有效性。该机制在生产期间应是健壮的(如断电)。
理由 NVRAM 数据配置可能在不同应用软件版本之间变化。必须有一种方式来知道 NVRAM 的内容是否与应用期望的配置匹配。
用例 --
依赖 --
支持材料 --
⌋(RS_BRF_01840)
6.1.1.9 [SRS_Mem_08549] NVRAM 管理器应提供软件更新后自动初始化 RAM 数据块的功能

字段 内容
类型 Valid
描述 NVRAM 管理器应提供功能,在软件更新后用 ROM 默认值自动初始化 RAM 数据块。此功能应可按 NVRAM 块配置。整个功能应可静态配置。
理由 灵活性。因此 ECU 重编程期间无需更新 NV 存储器。
用例 ECU 重编程后(配置 ID 不匹配),NVRAM 块用(新)ROM 默认值初始化,但防盗器数据除外,不应被更新。
依赖 [SRS_Mem_00135] NVRAM 配置 ID
支持材料 --
⌋(RS_BRF_01816, RS_BRF_01824)
6.1.1.10 [SRS_Mem_00125] 每个块应可配置通知

字段 内容
类型 Valid
描述 每个块应可配置通知(在读/写作业完成时启动)。
理由 灵活性,与应用软件集成
⌋(RS_BRF_01064)
6.1.1.11 [SRS_Mem_08000] NVRAM 管理器应能访问多个非易失存储器设备

字段 内容
类型 Valid
描述 NVRAM 管理器应能访问多个非易失存储器设备。非易失存储器设备可以是不同类型。
理由 灵活性,与应用软件集成
用例 一个 ECU 中的多个非易失存储器,如外部 EEPROM 和内部 Flash 中的 EEPROM 仿真
依赖 [SRS_Mem_00011] (存储器)硬件独立性
支持材料 --
⌋(RS_BRF_01808)
6.1.1.12 [SRS_Mem_08001] NVRAM 管理器应为每个块提供可配置的一致性检查

字段 内容
类型 Valid
描述 NVRAM 管理器应为每个块提供可配置的一致性检查。
理由 一致性检查可能并非用于所有块
用例 读取或写入的数据可通过校验和重新计算和比较立即检查。
依赖 [SRS_Mem_00030] 数据一致性/完整性检查;[BSW023] 不完整写操作的检测
支持材料 --
⌋(RS_BRF_01816, RS_BRF_00129)
6.1.1.13 [SRS_Mem_08551] 错误情况下最大重试次数应可单独配置

字段 内容
类型 Valid
描述 对于 NVRAM 管理器的读和写操作,错误情况下的最大重试次数应可单独配置。
理由 从临时错误情况中恢复
用例 错误条件下的数据读写。
依赖 [SRS_Mem_08554] 读和写操作的重试
支持材料 --
⌋(RS_BRF_01848)
6.1.1.14 [SRS_Mem_08552] NVRAM 管理器应提供唯一块标识符的可配置验证

字段 内容
类型 Valid
描述 NVRAM 管理器应提供在读取 NVRAM 块时唯一块标识符的可配置验证。
理由 必要时防止块错误寻址
用例 必要时可检测硬件寻址错误
依赖 [SRS_Mem_08555] 唯一块标识符的验证
支持材料 --
⌋(RS_BRF_01840, RS_BRF_00129)
6.1.1.15 [SRS_Mem_08553] NVRAM 管理器应提供可配置的数据写验证

字段 内容
类型 Valid
描述 NVRAM 管理器应通过重新读取先前写入的数据并比较,提供可配置的数据写验证。写验证应可按 NVRAM 块配置。
理由 必要时验证正确存储的数据
用例 必要时可检测硬件写错误
依赖 [SRS_Mem_08556] 数据写验证
支持材料 --
⌋(RS_BRF_01840, RS_BRF_00129)
6.1.1.16 [SRS_Mem_08538] 在 NVRAM 管理器启动期间自动加载的块应可静态配置

字段 内容
类型 Valid
描述 在 NVRAM 管理器启动期间自动加载的块应可静态配置。
理由 允许灵活性 启动期间加载内容
用例 仅加载在严格时序约束内通过 CAN 启动通信所需的块。
支持材料 仅适用于配置为永久 RAM 块的 NVRAM 块 SRS_LIBS_08534
⌋(RS_BRF_01816, RS_BRF_01824)
6.1.1.17 [SRS_Mem_08546] 应可保护永久 RAM 数据块免于因复位造成的数据丢失

字段 内容
类型 Valid
描述 对于每个具有永久 RAM 数据块的 NVRAM 块,应有可配置选项以强制执行增加 RAM 数据完整性的机制(发生复位时)。
理由 由于电压下降引起的复位,RAM 内容可能仍然有效。这不能被所有平台检测(或保证)。如果可以在启动时交付最新数据(来自 RAM),则会增加健壮性。
用例 当前移动的天窗控制在复位发生后不能用过时的位置数据驱动(参见 [SRS_Mem_08011]),每次电压下降都丢失位置也是不可接受的。
依赖 [SRS_Mem_08545] RAM 数据验证和完整性信息更新
支持材料 --
⌋(RS_BRF_01840, RS_BRF_00129)
6.1.1.18 [SRS_Mem_08560] 每个 NVRAM 块应可配置为共享访问

字段 内容
类型 Valid
描述 每个 NVRAM 块应可配置为共享访问。
理由 这是按块进行的,以保持内存消耗低。
⌋(RS_BRF_01816)

6.1.2 初始化

6.1.2.1 [SRS_Mem_08533] NVRAM 管理器应提供检查和加载配置为具有永久 RAM 数据块的 NVRAM 块到 RAM 的服务

字段 内容
类型 Valid
描述 NVRAM 管理器应提供服务,检查并加载配置为具有永久 RAM 数据块的 NVRAM 块到 RAM。

此服务必须由 ECU 状态管理器在启动期间应用运行之前调用一次。
理由 应用在 ECU 启动后需要带有效数据的 RAM 块。
用例 ECU 启动:为应用提供 NV 数据。
依赖 [SRS_LIBS_08534] RAM 数据块类别; [SRS_Mem_08538] 启动期间加载的 NVRAM 块的静态配置
支持材料 --
⌋(RS_BRF_01816, RS_BRF_01824)

6.1.3 正常运行

:只有 NVRAM 管理器应访问非易失存储器。所有其他软件应专门使用 NVRAM 管理器访问非易失存储器中的数据。但这不是对内存服务的需求,而是对使用的需求。因此,先前的需求 [BSW176]("仅通过 NVRAM 管理器访问非易失存储器")已被移除。

6.1.3.1 [SRS_Mem_00027] NVRAM 管理器应提供隐式访问 NVRAM 和共享内存(RAM)中块的方式

字段 内容
类型 Valid
描述 NVRAM 管理器仅提供隐式访问 NVRAM 和共享内存(RAM)中块的方式。这意味着 NVRAM 管理器将一个或多个块从 NV 存储器复制到 RAM 块,反之亦然。

RAM 块内变量的显式读写访问必须由应用提供(访问宏……)。
理由 NVRAM 管理器的基本功能
用例 参数访问
⌋(RS_BRF_01824)
6.1.3.2 [SRS_Mem_08014] NVRAM 管理器应允许在全局 RAM 区域中非连续地分配 RAM 块

字段 内容
类型 Valid
描述 RAM 块分配可在全局 RAM 区域中定义为非连续。
用例 每个 RAM 块可在全局 RAM 区域中无地址约束地分配
⌋(RS_BRF_01824)
6.1.3.3 [SRS_Mem_00013] NVRAM 管理器应提供处理多个并发读/写请求的机制

字段 内容
类型 Valid
描述 NVRAM 管理器应提供处理多个并发读/写命令的机制,如排队。

实现需求:如果使用排队,仅缓冲读/写命令,而非要写入的数据!
理由 NVRAM 管理器处理整个 SW 系统中对 NVRAM 的所有访问。因此并发访问极有可能发生。由于资源限制,NVRAM 管理器必须以串行方式处理这些并行访问。
⌋(RS_BRF_01416)
6.1.3.4 [SRS_Mem_00016] NVRAM 管理器应提供从非易失存储器读出与 NVRAM 块关联数据的功能

字段 内容
类型 Valid
描述 NVRAM 管理器应提供从非易失存储器读出与 NVRAM 块关联数据的功能。NVRAM 块由唯一标识符引用。NVRAM 数据被复制到相应的 RAM 块。

此服务的可用性应可配置。
理由 NVRAM 管理器的基本功能
用例 从 NV 读取应用数据。
⌋(RS_BRF_01416)
6.1.3.5 [SRS_Mem_00017] NVRAM 管理器应提供在非易失存储器中存储与 NVRAM 块关联数据的功能

字段 内容
类型 Valid
描述 NVRAM 管理器应提供在非易失存储器中存储与 NVRAM 块关联数据的功能。NVRAM 块由唯一标识符引用。

数据从 RAM 块复制到相应的 NV 块。此服务的可用性应可配置。
理由 NVRAM 管理器的基本功能
用例 在 ECU 电源关闭前非易失存储数据
⌋(RS_BRF_01416)
6.1.3.6 [SRS_Mem_08554] 如果 NVRAM 块的读和写操作未成功,NVRAM 管理器应重试最多可配置的次数

字段 内容
类型 Valid
描述 如果 NVRAM 块的读和写操作未成功,NVRAM 管理器应重试最多可配置的次数。
理由 从临时错误情况中恢复
用例 电磁脉冲已改变刚读取的数据,因此校验和检查失败。再次读取数据可从此错误情况中恢复。
依赖 [SRS_Mem_08551] 最大读写重试次数配置
⌋(RS_BRF_01416, RS_BRF_01848)
6.1.3.7 [SRS_Mem_08541] NVRAM 管理器应保证已接受的写请求将被处理

字段 内容
类型 Valid
描述 NVRAM 管理器应保证已接受的写请求将被处理。
理由 发出写请求的应用期望数据被写入。
用例 1) 源自应用的排队写作业不应受关机过程或其取消影响。2) 在小幅崩溃时 ECU 保持可操作,NVRAM 管理器应表现得像没有此崩溃一样。因此,写相应崩溃数据的请求不应中止任何已接受的写作业。
依赖 [SRS_Mem_00017], [SRS_Mem_08535], [SRS_Mem_08540], [SRS_Mem_08542]
⌋(RS_BRF_01840)
6.1.3.8 [SRS_Mem_00018] NVRAM 管理器应提供从 ROM 默认值恢复 NVRAM 块关联数据的功能

字段 内容
类型 Valid
描述 NVRAM 管理器应提供从 ROM 默认值恢复 NVRAM 块关联数据的功能。此服务的可用性应可配置。
用例 收音机出厂设置
⌋(RS_BRF_01840, RS_BRF_01848)
6.1.3.9 [SRS_Mem_08548] NVRAM 管理器应从应用请求默认数据

字段 内容
类型 Valid
描述 如果配置时没有 ROM 块可用,NVRAM 管理器应从应用请求默认数据。这应可配置。
理由 灵活性
用例 校准数据无法由常量数据提供。
⌋(RS_BRF_01840, RS_BRF_01848)
6.1.3.10 [SRS_Mem_08547] NVRAM 管理器应能区分显式无效和不一致数据

字段 内容
类型 Valid
描述 NVRAM 管理器应能区分显式无效和不一致数据。
理由 显式无效(甚至空白)数据块不应表示要报告给 DEM 的错误情况。
用例 如果 NVRAM 管理器检测到不一致数据,如由于中止的写操作或 CRC 错误,应报告错误。对于无效数据,不报告错误。
支持材料 SRS_MemHwAb_14014, SRS_MemHwAb_14015, SRS_MemHwAb_14016
⌋(RS_BRF_01840, RS_BRF_00129)
6.1.3.11 [SRS_Mem_08550] NVRAM 管理器应提供将永久 RAM 数据块标记为已修改/未修改的服务

字段 内容
类型 Valid
描述 NVRAM 管理器应提供将永久 RAM 数据块标记为已修改/未修改的服务。关机时仅保存已标记为已修改的数据到 NV。此服务的可用性应可配置。
理由 减少写周期,加快关机。
用例 应用最清楚何时将数据写回 NV 存储器。使用此功能将减少所需写周期数,从而减少漫游块和 NV 存储器消耗的需求,并由于底层 HW 引起的相当大的开销(提供预擦除存储器)而可能的缓慢写入而加快关机操作。
依赖 [SRS_Mem_08546] RAM 数据块免于数据丢失的保护
⌋(RS_BRF_00129)
6.1.3.12 [SRS_Mem_08545] NVRAM 管理器应提供将 NVRAM 块的永久 RAM 数据块标记为有效的服务

字段 内容
类型 Valid
描述 NVRAM 管理器应提供将 NVRAM 块的永久 RAM 数据块标记为有效的服务。
此外,该服务应更新完整性信息(如果已配置)。
此服务的可用性应可配置。
理由 仅保存有效数据到 NV。在启动时增加使用 RAM 中最新数据(而非从 NV 重新加载旧数据)的可能性。
用例 读取失败可能导致 RAM 内容无效。此内容不应保存到 NV 存储器。在这种情况下,应用负责通过呈现数据并调用此服务将其标记为有效来处理此情况。
依赖 [SRS_Mem_08546] RAM 数据块免于数据丢失的保护
⌋(RS_BRF_00129)
6.1.3.13 [SRS_Mem_08011] NVRAM 管理器应提供在非易失存储器中使数据块无效的服务

字段 内容
类型 Valid
描述 NVRAM 管理器应提供在非易失存储器中使数据块无效的服务。块由唯一标识符引用。

此服务的可用性应可配置。
理由 避免加载过时数据,特别是位置信息。
用例 天窗位置(增量电机位置)必须在每次移动后保存到 NVRAM 块。在天窗每次新移动之前,此位置必须被标记为无效。否则,天窗操作期间的复位将导致无效的天窗位置(因为加载来自 NVRAM 的旧位置)。这可能导致天窗机械结构损坏(撞击末端位置时)或严重伤害。
⌋(RS_BRF_01840)
6.1.3.14 [SRS_Mem_08544] NVRAM 管理器应提供擦除与 NVRAM 块关联的 NV 块的服务

字段 内容
类型 Valid
描述 NVRAM 管理器应提供擦除与 NVRAM 块关联的 NV 块的服务。NVRAM 块由唯一标识符引用。此服务的可用性应可配置。
理由 显式擦除以支持下方列出的用例。
用例 崩溃数据写入:无写前擦除的延迟,因此预擦除 NV 块必须在应用定义的点(如通过诊断服务)完成。这不能自动完成。
⌋(RS_BRF_01416)
6.1.3.15 [SRS_Mem_08007] NVRAM 管理器应提供选择有效数据集 NV 块的服务

字段 内容
类型 Valid
描述 NVRAM 管理器应提供选择有效数据集 NV 块的服务。此服务应将数据集编号(ROM 或 NVRAM)关联到相应的 RAM 块。
理由 使运行时选择 ROM/NVRAM 中不同数据集成为可能。
用例 一个 ECU 用于一辆汽车的多个型号/国家变体。根据车辆变体,选择 NVRAM 或 ROM 中对应的数据集。
支持材料 BSW08006,块管理类型 — 数据集
⌋(RS_BRF_01832)
6.1.3.16 [SRS_Mem_08542] NVRAM 管理器应提供作业处理顺序的优先级化

字段 内容
类型 Valid
描述 NVRAM 管理器应提供作业处理顺序的优先级化。最高优先级作业应首先处理;具有相同优先级的作业应以 FIFO 顺序执行。

此优先级化应可配置。如果禁用,作业应以 FIFO 顺序执行。
理由 某些数据必须比其他数据写入得更快。因此处理它们应优先。立即数据应抢占正在运行的较低优先级操作。
用例 崩溃数据写入;基于优先级的数据保存(如 SiemensVDO 的 NVRAM 管理器)
依赖 [SRS_Mem_08543], [SRS_Mem_08541]
⌋(RS_BRF_01048)
6.1.3.17 [SRS_Mem_00020] NVRAM 管理器应提供读出读/写操作状态的功能

字段 内容
类型 Valid
描述 NVRAM 管理器应提供读出读/写操作状态的功能。
理由 NVRAM 管理器应支持各种非易失存储器设备。某些设备的访问时间与 ECU 的实时需求相比较长。因此 NVRAM 管理器应提供具有确定操作当前状态功能的异步 API。
用例 串行 EEPROM 的读/写
⌋()
6.1.3.18 [SRS_Mem_00127] NVRAM 管理器应允许单独启用/禁用每个 NVRAM 块的写保护

字段 内容
类型 Valid
描述 NVRAM 管理器应允许单独启用/禁用每个 NVRAM 块的写保护。

写保护块的 RAM 块数据区域可无限制地更改。

如果 NV 块受保护,对此块的后续写访问作业将被拒绝。启用写保护的 NVRAM 块不能保存到 NV 存储器。复位后,写保护应根据初始写保护设置。

此服务的可用性应可配置。
理由 某些数据块不被应用更改,仅由特殊的 EOL(下线)/诊断服务更改
用例 编码数据,EOL(下线)数据。
依赖 [SRS_Mem_08009] 块的默认写保护
⌋(RS_BRF_01840)
6.1.3.19 [SRS_Mem_00030] NVRAM 管理器应实现保存在 NVRAM 中数据的一致性/完整性检查机制

字段 内容
类型 Valid
描述 NVRAM 管理器应实现操作期间保存在 NVRAM 中数据的一致性/完整性检查机制,即使在异步复位或断电的情况下。位翻转也应涵盖。

实现提示:校验和是一种可能性;此外,可使用写访问字节(有效/无效)。
理由 错误检测。
用例 用于检测位翻转的签名。
依赖 [SRS_Mem_08001] 数据一致性检查配置
⌋(RS_BRF_01840, RS_BRF_00129)
6.1.3.20 [SRS_Mem_08555] NVRAM 管理器应提供在读取 NVRAM 块时静态验证块标识符的机制

字段 内容
类型 Valid
描述 NVRAM 管理器应提供在读取 NVRAM 块时静态验证块标识符的机制。
理由 防止块错误寻址
用例 可检测硬件寻址错误
依赖 [SRS_Mem_00030] 数据一致性/完整性检查
⌋(RS_BRF_00129)
6.1.3.21 [SRS_Mem_08556] NVRAM 管理器应提供通过再次读取和比较来验证已写入块数据的机制

字段 内容
类型 Valid
描述 NVRAM 管理器应通过再次读取和比较来提供验证已写入块数据的机制。
理由 防止错误写入的数据
用例 可检测硬件写错误
依赖 [SRS_Mem_08553] 数据写验证配置
⌋(RS_BRF_01840, RS_BRF_00129)
6.1.3.22 [SRS_Mem_00034] NVRAM 管理器对持久存储器的写访问应与 ECU 正常运行准并行执行

字段 内容
类型 Valid
描述 NVRAM 管理器对持久存储器的写访问应与 ECU 正常运行准并行(并发)执行。数据一致性不得受到威胁。
理由 某些类型存储器的写访问比处理器寄存器访问慢几个数量级。
用例 EEPROM 写访问。
⌋(RS_BRF_01048, RS_BRF_01812)
6.1.3.23 [SRS_Mem_08558] NVRAM 管理器应提供机制以移除与 NVRAM 块关联的所有未处理请求

字段 内容
类型 Valid
描述 NVRAM 管理器应提供机制以移除与 NVRAM 块关联的所有未处理请求
理由 在分区终止和随后重启之前源自该分区(如来自属于该分区的 SW-C)的请求不应被处理(因此不应报告完成)。
用例 处理分区的终止和重启。
⌋(RS_BRF_01048, RS_BRF_01812)
6.1.3.24 [SRS_Mem_00136] NVRAM 管理器应提供运行时确定与 NVRAM 块关联数据更新的功能

字段 内容
类型 Valid
描述 NVRAM 管理器应提供运行时确定与 NVRAM 块关联数据更新的功能。NVRAM 块由唯一标识符引用。

此功能将允许在 RAM 块自上次读或写操作以来未更新的情况下跳过对 NV 存储器的写操作。

此功能的可用性应可配置。
理由 确定 RAM 块中非易失数据的更新。
用例 避免多余的存储操作。
⌋(RS_BRF_01416)
6.1.3.25 [SRS_Mem_00138] NVRAM 管理器应提供触发选定块在 RAM 和 NV 存储器上首次或重新初始化的函数

字段 内容
类型 Valid
描述 应有多块操作可用,对具有永久 RAM 或显式同步的选定块执行以下操作:
(1) 从 ROM 块和/或初始化回调执行显式恢复
(2) 将这些内容写回 NV 存储器介质。

如果这些选定块没有恢复数据源(即 ROM 块和/或初始化回调),应执行此 NV 块的无效化,而不是写入恢复数据。在 DATASET 块的情况下,如果选择用于首次初始化,此 NvM 块的所有 NV 块实例应被无效化。
理由 不要让应用或单独管理的工厂程序完成整个工作。
用例 (1) 工厂(重新)初始化
(2) 开发时清除 NV 存储器
(3) 通过测试仪访问重新初始化
⌋(RS_BRF_01416)

6.1.4 关机操作

6.1.4.1 [SRS_Mem_08535] NVRAM 管理器应提供触发完整性信息更新和保存 RAM 数据块到 NV 存储器的函数

字段 内容
类型 Valid
描述 NVRAM 管理器应提供触发完整性信息更新(重新计算校验和,如 CRC)和保存 RAM 数据块到 NV 存储器的函数。此函数仅可影响永久 RAM 数据块,因为临时 RAM 数据块不能自动写回(如由 ECU 状态管理器触发)。

信息:
- 此函数必须由 ECU 状态管理器在关机前调用一次
- 此函数可由诊断服务("Save NVRAM")调用
理由 不要让应用完成整个工作。
用例 ECU 关机:保存应用的 NV 数据
支持材料 [SRS_LIBS_08534] RAM 数据块类别
⌋(RS_BRF_01840)
6.1.4.2 [SRS_Mem_08540] NVRAM 管理器应提供中止关机过程的函数

字段 内容
类型 Valid
描述 如果在 ECU 关机期间检测到 ECU 唤醒条件,NVRAM 管理器应提供函数以中止源自关机过程的写作业。源自应用的队列中的写请求不应受此取消例程影响。
此取消不应是破坏性的,即当前正在写入的 NVRAM 块应完成。
理由 允许在 ECU 关机过程中对唤醒条件快速反应。
用例 ECU 关机:NVRAM 管理器已开始将所有 RAM 块保存到 NVRAM。在此作业处理期间,发生 ECU 唤醒条件。ECU 必须在给定时限内(如 100ms)可操作。NVRAM 管理器完成所有可能花费如 800ms 的写作业是不可接受的。
⌋(RS_BRF_01096)
6.1.4.3 [SRS_Mem_00137] NVRAM 管理器应提供自动验证 NVRAM 块的服务

字段 内容
类型 Valid
描述 NVRAM 管理器应提供自动验证 NVRAM 块的服务。

此服务必须由 ECU 状态管理器在 ECU 关机的早期阶段调用一次。

此服务的可用性应可配置。
理由 在 RAM 块数据有效的情况下避免用 ROM 默认数据恢复 RAM 块。
用例 ECU 关机:正常关机无法完成(如由于超时、电压下降)。
⌋(RS_BRF_01096)

6.1.5 故障操作

6.1.5.1 [SRS_Mem_00038] 可处理的错误不应影响其他软件组件

字段 内容
类型 Valid
描述 NVRAM 管理器不应将可处理(可治愈或可恢复)的错误报告给其他软件组件。
理由 关注分离,避免不必要的功能降级
用例 数据冗余保存(在两个相同的块中)。如果在一个块中检测到数据损坏,则使用冗余块的内容。应用不受影响。
依赖 [SRS_Mem_00129] 自动数据修复
支持材料 SRS_LIBS_08529 块管理类型 — 冗余
⌋(RS_BRF_01076)
6.1.5.2 [SRS_Mem_00129] NVRAM 管理器应修复管理类型为"NVRAM 冗余"的块中的数据

字段 内容
类型 Valid
描述 如果检测到数据损坏且可派生有效数据,NVRAM 管理器应修复管理类型为"NVRAM 冗余"的块中的数据。修复周期数应有限,以避免无限循环。
理由 健壮性
用例 冗余 NVRAM 块中的数据损坏(位翻转)
支持材料 SRS_LIBS_08529 块管理类型 — 冗余
⌋(RS_BRF_01840, RS_BRF_00129)
6.1.5.3 [SRS_Mem_08010] 如果无法将 NV 数据读到 RAM,NVRAM 管理器应将 ROM 默认数据复制到对应 RAM 块的数据区域

字段 内容
类型 Valid
描述 如果 NVRAM 管理器无法将数据从 NV 读到 RAM,它应将 ROM 默认数据复制到对应 RAM 块的数据区域。
理由 健壮性
用例 校准数据集损坏。加载默认校准数据集。
支持材料 见所有块管理类型
⌋(RS_BRF_01840, RS_BRF_00129)
6.1.5.4 [SRS_Mem_08015] NVRAM 中的某些 NV 块在首次初始化后永不应被擦除或替换为默认 ROM 数据

字段 内容
类型 Valid
描述 ECU 重编程后必须保留某些 NVRAM 数据。这意味着 NVRAM 中的某些 NV 块在首次初始化后永远不应被擦除或替换为默认 ROM 数据。
理由 防盗器代码或车辆识别号
⌋(RS_BRF_01840)

:这是对配置/引导加载程序的需求。

6.2 非功能性需求(质量)

6.2.1 硬件独立性

6.2.1.1 [SRS_Mem_00011] NVRAM 管理器应独立于底层内存硬件

字段 内容
类型 Valid
描述 NVRAM 管理器应使用现有(标准化)接口访问底层内存硬件。这些接口应抽象出内存硬件。
理由 可移植性、可重用性、通过灵活使用内存设备降低硬件成本
⌋(RS_BRF_01800)

6.2.2 易用性

(无具体需求列出)


7 参考文献

7.1 AUTOSAR 交付物

[AUTOSAR_SW_ARCH] Layered Software Architecture AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf

[AUTOSAR_BASIC_SW] List of Basic Software Modules AUTOSAR_TR_BSWModuleList.pdf

[AUTOSAR_SRS_MEMHW] Requirements on Memory Hardware Abstraction Layer AUTOSAR_SRS_MemoryHWAbstractionLayer.pdf

[TPS_STDT_0078] SoftwareComponentTemplate AUTOSAR_TPS_SoftwareComponentTemplate.pdf


翻译说明

  • 本文档完整翻译自 AUTOSAR_SRS_MemoryServices v4.4.0(Document ID 007)。
  • 保留所有需求 ID(SRS_Mem_xxxxx、RS_BRF_xxxxx 等)。
  • 保留 AUTOSAR 方框符 ⌈⌋。
  • 模块缩写(NVRAM、NV、ECU、CRC、EOL 等)保持英文。