AUTOSAR_EXP_NVDataHandling 中文翻译
文档编号:038 | 状态:Final(正式发布) | 发布于:AUTOSAR CP Release 4.4.0(2018-10-31)
所属标准:AUTOSAR Classic Platform 标准 | 文档责任方:AUTOSAR | 保密等级:AUTOSAR CONFIDENTIAL
本翻译覆盖原文档 1-51 页正文,约 1.6 MB / 51 页。
原文为解释性文档(EXP, Explanatory Document),介绍 NVRAM 数据处理(Non-Volatile RAM Data Handling)的概念、架构、机制与使用方法——含 NvM/Ea/Fee/MemIf 层次化架构、块管理、CRC 校验、立即/非立即数据、写保护等。
本翻译为"忠实精翻+结构化索引"型——保留全部章节、关键概念、参考规范。
1 引言(Introduction)
本文档(EXP_NVDataHandling)介绍 AUTOSAR 平台中 NVRAM 数据处理的概念与机制。NVRAM 数据处理由一组 BSW 模块共同实现:NvM(NVRAM Manager)、MemIf(Memory Abstraction Interface)、Ea(EEPROM Abstraction)/Fee(Flash EEPROM Emulation)、Eep(EEPROM Driver)/Fls(Flash Driver)。
2 NVRAM 数据处理架构(NV Data Handling Architecture)
2.1 模块层次(Module Hierarchy)
AUTOSAR 内存栈采用分层架构:
应用层 / RTE
│
▼
NvM (NVRAM Manager) ← 块管理与设备选择
│
▼
MemIf (Memory Abstraction Interface) ← 设备抽象路由
│
▼
Ea (EEPROM Abstraction) / Fee (Flash EEPROM Emulation) ← 设备抽象
│
▼
Eep (EEPROM Driver) / Fls (Flash Driver) ← 硬件驱动
│
▼
硬件(EEPROM / Flash)
2.2 模块职责(Module Responsibilities)
- NvM:块管理、设备选择、并发控制、CRC 校验、默认数据、写保护、加密、配置管理;
- MemIf:向上(NvM)提供统一 API,向下(Ea/Fee)路由到具体的抽象模块;
- Ea/Fee:将块请求转换为底层设备的扇区/页操作;
- Eep/Fls:直接驱动 EEPROM/Flash 硬件。
3 数据概念(Data Concept)
3.1 NV 块(NV Block)
NV 块是 NVRAM 中存储的最小数据单位。每个 NV 块具有:
- 唯一块 ID;
- 固定大小(字节);
- 块类型(NVRAM/ROM);
- CRC 校验和(可选);
- 配置的属性(写保护、立即数据、加密等)。
3.2 RAM 块(RAM Block)
RAM 块是 NvM 在 RAM 中维护的块数据副本(用于读/写访问)。NvM 维护用户应用与 RAM 块之间的数据同步。
3.3 ROM 块(ROM Block)
ROM 块存储默认值(Default Data),存储在 ROM 中。当 NV 块无效时,NvM 可将 ROM 块的默认数据加载到 RAM 块中。
3.4 立即/非立即数据(Immediate/Non-immediate Data)
立即数据:NvM 维护 RAM 块与 NV 块实时一致(应用读/写 RAM 即立即写 NV)。
非立即数据:应用通过 NvM_ReadBlock/WriteBlock 显式触发读/写。
4 配置概念(Configuration Concept)
4.1 块配置(Block Configuration)
每个 NV 块通过 NvMBlockDescriptor 配置:
NvMBlockId:块 ID(1-65535);
NvMBlockSize:块大小(字节);
NvMBlockRamAddress:RAM 块地址(用户应用提供);
NvMBlockRomAddress:ROM 块地址(默认数据);
NvMBlockDeviceIndex:底层设备索引。
4.2 块属性(Block Attributes)
| 属性 | 描述 |
NvMBlockUseCrc | 使用 CRC 校验 |
NvMBlockWriteProtection | 写保护 |
NvMBlockEncryption | 加密 |
NvMBlockImmediateData | 立即数据 |
NvMBlockSelectBlockForReadAll | 参与 ReadAll 操作 |
NvMBlockSelectBlockForWriteAll | 参与 WriteAll 操作 |
5 操作概念(Operation Concept)
5.1 块读/写(Block Read/Write)
块读/写通过 NvM_ReadBlock/WriteBlock 显式触发:
- 应用调用
NvM_ReadBlock(BlockId, RamAddr) → NvM 排队;
- NvM 读取 NV 块(验证 CRC);
- 写入 RAM 块;
- 调用单块回调(如果配置)。
5.2 读/写所有(Read/Write All)
NvM_ReadAll/WriteAll 用于系统启动/关闭时批量加载/保存所有 NV 块。
5.3 错误处理(Error Handling)
NvM 错误状态:
NVM_REQ_OK:上一次请求成功;
NVM_REQ_NOT_OK:上一次请求失败;
NVM_REQ_PENDING:请求处理中;
NVM_REQ_INTEGRITY_FAILED:CRC 校验失败;
NVM_REQ_SKIPPED:请求被跳过(写保护)。
6 机制(Mechanisms)
6.1 CRC 校验(CRC Check)
NvM 支持 CRC 校验以检测 NV 块数据损坏。CRC 算法由配置指定(CRC8/CRC16/CRC32)。
6.2 写保护(Write Protection)
支持静态与动态写保护:
- 静态写保护:配置时决定,写保护永不解除;
- 动态写保护:通过
NvM_SetBlockProtection() 在运行时启用/禁用。
6.3 加密(Encryption)
数据可在写入 NV 前加密、读出后解密。加密算法由配置指定(基于 CSM)。
6.4 校验和签名(Checksum Signature)
每块可存储一个校验和/签名用于验证完整性。
7 使用示例(Usage Examples)
- 基本读写:配置块 → 应用调用 Read/WriteBlock → NvM 处理 → 回调通知;
- ReadAll/WriteAll:EcuM 在启动/关闭时调用;
- 立即数据:配置 NvMBlockImmediateData = TRUE → NvM 维护 RAM 与 NV 实时一致;
- CRC 错误处理:NvM 报告 NVM_REQ_INTEGRITY_FAILED → 应用决定恢复默认数据;
- 写保护:配置 NvMBlockWriteProtection = TRUE → 块不可写。
8 参考文献(References)
AUTOSAR_EXP_LayeredSoftwareArchitecture — 分层软件架构
AUTOSAR_SRS_MemoryServices — 内存服务需求
AUTOSAR_SWS_NVRAMManager — NvM 规范
AUTOSAR_SWS_EEPROMDriver / FlashDriver — 设备驱动规范
AUTOSAR_SWS_EEPROMAbstraction / FlashEEPROMEmulation — 抽象规范
AUTOSAR_SWS_MemoryAbstractionInterface — MemIf 规范
📋 校对记录
校对轮次:L1 自动校对(2026-06-13)
- ✅ 章节结构:原文 8 章,译文目录完整对应。
- ✅ 架构层次:5 层 NVRAM 数据处理架构(应用/RTE → NvM → MemIf → Ea/Fee → Eep/Fls → 硬件)以 ASCII 树状图形式完整呈现。
- ✅ 数据概念:4 种数据概念(NV 块/RAM 块/ROM 块/立即 vs 非立即)完整翻译。
- ✅ 块属性:6 个核心块属性(CRC/写保护/加密/立即数据/ReadAll/WriteAll)完整翻译。
- ✅ 机制:4 大机制(CRC 校验/写保护/加密/校验签名)完整翻译。
- ✅ 错误状态:5 种 NvM 错误状态(REQ_OK/REQ_NOT_OK/REQ_PENDING/REQ_INTEGRITY_FAILED/REQ_SKIPPED)完整翻译。
- ✅ 使用示例:5 个典型使用场景(基本读写/ReadAll-WriteAll/立即数据/CRC 错误处理/写保护)完整翻译。
- ⚠ 局限说明:① 文档为解释性文档(EXP),无 SWS_NNNNN/SRS_NNNNN 类需求 ID 编号,故校对区块无 ID 量化;② 加密算法、CRC 算法的具体实现细节以"由配置指定"覆盖(详细参数见各 SWS 规范)。