Files
autosar_standard_spec_v4.4/Memory/AUTOSAR_SRS_EEPROMDriver.md
T

19 KiB
Raw Blame History

EEPROM 驱动需求规范

文档标题: Requirements on EEPROM Driver AUTOSAR CP Release: 4.4.0 文档编号: 192 文档类型: SRS (Software Requirements Specification)


文档标识

项目 内容
Document Title Requirements on EEPROM Driver
Document Owner AUTOSAR
Document Responsibility AUTOSAR
Document Identification No 192
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 移除过时引用;编辑性修订
2014-10-31 4.2.1 AUTOSAR Release Management 编辑性修订
2013-03-15 4.1.1 AUTOSAR Administration 按 TPS_standardizationTemplate(TPS_STDT_00078)的形式更新;BSWAndRTE_Features 追溯
2010-09-30 3.1.5 AUTOSAR Administration 法律免责声明修订
2008-08-13 3.1.1 AUTOSAR Administration 法律免责声明修订
2007-12-21 3.0.1 AUTOSAR Administration 文档元信息扩充;小幅排版调整
2007-01-24 2.1.15 AUTOSAR Administration "用户须知"修订;增加"版本信息"
2006-11-28 2.1 AUTOSAR Administration 法律免责声明修订
2006-05-16 2.0 AUTOSAR Administration 作为独立文档发布;SRS SPAL V1.0.0 在 Release 2.0 拆分为 12 个独立文档
2005-05-31 1.0 AUTOSAR Administration 作为 SRS SPAL V1.0.0 的一部分初始发布

目录

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

1 文档范围

本文档规定了 EEPROM Driver 模块的需求。

约束

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


2 如何阅读本文档

每条需求都有一个以"BSW"(代表"Basic Software")为前缀的唯一标识符。对于任何评审注释、备注或问题,请引用此唯一 ID,而非章节号或页码!

2.1 使用的约定

  • AUTOSAR 文档中需求的表示形式遵循 [5] 中规定的表格格式。
  • 需求中使用以下特定语义。

本文档中的关键字 "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"MAY" 和 "OPTIONAL" 需按下述方式解读。

  • MUST:绝对要求。
  • MUST NOT:绝对禁止。
  • SHOULD/RECOMMENDED:推荐但有合理理由可忽略。
  • SHOULD NOT/NOT RECOMMENDED:不推荐但有合理理由可接受。
  • MAY/OPTIONAL:可选。

2.2 需求结构

每个模块特定章节包含基础软件模块的简短功能描述。每章中同类需求归类于以下小标题之下(如适用):

功能性需求:

  • 配置
  • 初始化
  • 正常运行
  • 关机运行
  • 故障运行
  • ……

非功能性需求:

  • 时序需求
  • 资源使用
  • 易用性
  • 为其他工作包提供的输出
  • ……

3 缩略语

缩略语 描述
CS Chip select(片选)
DIO Digital Input Output(数字输入输出)
ECU Electric Control Unit(电子控制单元)
EOL End Of Line(下线)
ICU Interrupt Capture Unit(中断捕获单元)
MAL Microcontroller Abstraction Layer 旧名(已由 MCAL 替代)
MCAL Microcontroller Abstraction Layer(微控制器抽象层)
MCU Microcontroller Unit(微控制器单元)
MMU Memory Management Unit(内存管理单元)
Master 控制其他设备(slave)的设备
Slave 完全被 master 设备控制的设备
NMI Non maskable interrupt(不可屏蔽中断)
OS Operating System(操作系统)
PLL Phase Locked Loop(锁相环)
PWM Pulse Width Modulation(脉宽调制)
RX Reception(总线通信中的接收)
SPAL 本工作组的名称
SFR Special Function Register(特殊功能寄存器)
RTE Runtime environment(运行时环境)
WP Work Package(工作包)
缩写 描述
STD Standard(标准)
REQ Requirement(需求)
UNINIT Uninitialized(未初始化)

4 功能概述

4.1 内部 EEPROM 驱动

内部 EEPROM 驱动提供初始化以及对内部 EEPROM 读、写、擦的服务。

4.2 外部 EEPROM 驱动

外部 EEPROM 驱动提供初始化以及对外部 EEPROM 读、写、擦的服务。


5 需求追溯

需求 描述 满足者
RS_BRF_01000 AUTOSAR 架构应将 BSW 组织为硬件无关层和硬件相关层 SRS_Eep_12053
RS_BRF_01008 AUTOSAR 应将硬件相关层组织为微控制器无关层和微控制器相关层 SRS_Eep_12053
RS_BRF_01080 AUTOSAR 应允许访问内部和外部外设 SRS_Eep_12124, SRS_Eep_12164
RS_BRF_01136 AUTOSAR 应支持已配置 BSW 数据在系统启动后才解析的变体 SRS_Eep_00096, SRS_Eep_12164
RS_BRF_01808 AUTOSAR 非易失存储器处理应支持不同种类的存储器硬件 SRS_Eep_12051, SRS_Eep_12052
RS_BRF_01928 AUTOSAR 微控制器抽象应提供对非易失存储器硬件的访问 SRS_Eep_00087~00095, SRS_Eep_12047, SRS_Eep_12050, SRS_Eep_12072, SRS_Eep_12091, SRS_Eep_12156, SRS_Eep_12157

6 需求规范

6.1 功能性需求

6.1.1 内部 EEPROM 驱动

6.1.1.1 配置
6.1.1.1.1 [SRS_Eep_00096] EEPROM 驱动应静态配置

字段 内容
类型 Valid
描述 EEPROM 驱动的以下常量应可静态配置:
1. EEPROM 基地址
2. EEPROM 大小(可等于或小于物理 EEPROM 大小)
3. 作业处理函数内处理的最大块大小(写、擦)
4. 普通模式和快速模式 EEPROM 下作业处理函数内处理的最大读块大小
5. 读、写、擦周期作业处理函数的调用周期
理由 基本配置
用例 第 5 项:当 EEPROM 硬件不提供该时序和/或需要截止时间检查时所需
依赖 [SRS_Eep_12072] 作业处理 快速模式;[SRS_Eep_12157] 作业处理 普通模式
支持材料 --
⌋(RS_BRF_01136)
6.1.1.1.2 [SRS_Eep_12071] EEPROM 属性应被发布

字段 内容
类型 Valid
描述 EEPROM 驱动描述应发布以下 EEPROM 属性:
- EEPROM 总物理大小
- 已擦除 EEPROM 单元的值
- 一个 EEPROM 单元的大小(如 8bit、16bit 等)
- 物理内存分段(最小可写/可读/可擦单元)
理由 用于配置上层模块
用例 --
依赖 --
支持材料 --
⌋()
6.1.1.2 正常运行
6.1.1.2.1 [SRS_Eep_00087] EEPROM 驱动应提供异步读功能

字段 内容
类型 Valid
描述 EEPROM 驱动应提供异步读功能,从内部 EEPROM 中所请求的 EEPROM 地址开始按所传入的长度读取数据块。EEPROM 驱动应提供按字节的数据读访问。
理由 基本功能
用例 --
依赖 --
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.2 [SRS_Eep_00088] EEPROM 驱动应提供异步写功能

字段 内容
类型 Valid
描述 EEPROM 驱动应提供异步写功能,从所请求的 EEPROM 地址开始按所传入的长度向内部 EEPROM 写入数据块。

如果被寻址的 EEPROM 单元非空,在执行写命令前应自动执行擦除操作。

如果可擦块与写请求不对齐,驱动应缓存并重写块中受影响的额外数据。

EEPROM 驱动应提供按字节的数据写访问。
理由 基本功能
用例 --
依赖 --
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.3 [SRS_Eep_00089] EEPROM 驱动应提供异步擦除功能

字段 内容
类型 Valid
描述 EEPROM 驱动应提供异步擦除功能,从所请求的 EEPROM 地址开始按所传入的长度擦除内部 EEPROM 中的数据块。

如果可擦块与擦除请求不对齐,驱动应缓存并重写块中受影响的额外数据。

EEPROM 驱动应内部选择最佳擦除策略。例如,如果 EEPROM 硬件支持块擦除命令且要擦除的数据块边界适合物理可擦块时,使用块擦除命令。
理由 对于某些 EEPROM 类型,已擦除的 EEPROM 可被更快地编程。
用例 - ECU 生产与快速 EOL 编程
- 快速保存崩溃数据
- 确保数据确实已擦除
依赖 --
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.4 [SRS_Eep_12091] EEPROM 驱动应提供异步比较功能

字段 内容
类型 Valid
描述 EEPROM 驱动应提供异步比较功能,按所传入的长度比较内存中的一段与 EEPROM 中的一段。

EEPROM 驱动应提供按字节的数据比较访问。
理由 基本功能
用例 热复位后比较完整块可以加快系统恢复。该函数也可用于在写入 EEPROM 后验证完整数据块。
依赖 --
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.5 [SRS_Eep_00090] EEPROM 驱动应提供同步取消功能

字段 内容
类型 Valid
描述 EEPROM 驱动应提供同步取消函数,停止当前处理的作业。受影响 EEPROM 单元的状态和数据是未定义的!EEPROM 驱动和控制器本身应为有效作业做好准备。
理由 紧急写命令可在无任何延迟下执行
用例 检测到车辆碰撞时写入碰撞相关数据
依赖 --
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.6 [SRS_Eep_00091] EEPROM 驱动应提供返回作业处理状态的同步函数

字段 内容
类型 Valid
描述 EEPROM 驱动应提供返回作业处理状态的同步函数。
理由 检查 EEPROM 驱动是否忙
用例 仅示例(将在 API 定义中规定):
- 复位后及成功初始化前,RW 状态为 UNINIT。
- 成功初始化后,RW 状态为 READY。
- 作业处理期间,RW 状态为 BUSY。
- 取消作业后,RW 状态为 READY。
- 检测到错误后,RW 状态为相关 ERROR_xxx 状态。
依赖 --
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.7 [SRS_Eep_12156] EEPROM 驱动应提供同步选择功能

字段 内容
类型 Valid
描述 EEPROM 驱动应提供同步函数,允许在普通和快速 EEPROM 访问之间切换操作模式。
理由 ECU 启动期间快速读取操作,ECU 关机期间快速写入操作,正常 ECU 模式期间"协作式"操作
用例 --
依赖 [SRS_Eep_12072], [SRS_Eep_12157], [SRS_Eep_12124]
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.8 [SRS_Eep_00092] 仅当受影响可擦块的至少一个数据值与要写入的数据值不同时,EEPROM 驱动才应写入数据

字段 内容
类型 Valid
描述 仅当 EEPROM 中受影响可擦块的至少一个数据值与要写入的数据值不同时,EEPROM 驱动才应写入数据。

此功能应可静态配置(开/关)。
理由 仅在必要时进行擦除和写入循环。从而延长 EEPROM 的寿命。
用例 值"0x45"将被写入 EEPROM 单元。该 EEPROM 单元已包含此值。
依赖 --
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.9 [SRS_Eep_00094] EEPROM 驱动应处理 EEPROM 内存分段

字段 内容
类型 Valid
描述 EEPROM 驱动应处理 EEPROM 内存分段。EEPROM 驱动的读、写、擦和比较函数应在必要时使用读-修改-写操作解决物理 EEPROM 块大小和段边界。
理由 不同 EEPROM 类型的 API 行为相同。EEPROM 驱动知道处理和解决分段的最有效方式。
用例 --
依赖 --
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.10 [SRS_Eep_00095] EEPROM 驱动一次只应处理一个作业

字段 内容
类型 Valid
描述 EEPROM 驱动一次只应处理一个作业(读、写、擦或比较)。运行中作业期间请求的作业应被拒绝并作为错误处理。

此错误检测应可静态配置(开/关)。

进一步说明:调用函数负责作业的缓存和排队,而非 EEPROM 驱动。
理由 不同的操作(读、写、擦、比较)不能同时处理,且结果依赖于执行顺序。
用例 --
依赖 --
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.11 [SRS_Eep_12047] EEPROM 驱动应提供必须为作业处理而调用的函数

字段 内容
类型 Valid
描述 EEPROM 驱动应提供必须为作业处理而调用的函数。所有作业处理应在此函数内完成。

如果硬件支持,此函数可从中断调用。否则,应由专门的模块处理此函数。
理由 允许作业处理的灵活可能性。满足 OS 独立性需求。
用例 示例:作业处理函数每 10ms 被调用一次。
依赖 --
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.12 [SRS_Eep_12157] 在普通模式下,EEPROM 驱动作业处理函数的一个周期应将从 EEPROM 读取的块大小限制为已配置的默认块大小

字段 内容
类型 Valid
描述 在普通模式下,EEPROM 驱动作业处理函数的一个周期应将从 EEPROM 读取的块大小限制为已配置的默认块大小。

简化说明:作业处理函数的一次调用中仅读取少量字节。
理由 EEPROM 驱动在正常操作模式下的协作式、非阻塞调度。
用例 示例:在普通 EEPROM 模式下,读取数据的最大块大小为 16。在快速 EEPROM 模式下,读取数据的最大块大小为 128。
依赖 [SRS_Eep_00096], [SRS_Eep_12156]
支持材料 --
⌋(RS_BRF_01928)
6.1.1.2.13 [SRS_Eep_12072] 在快速模式下,EEPROM 驱动作业处理函数的一个周期应将从 EEPROM 读取的块大小限制为已配置的最大块大小

字段 内容
类型 Valid
描述 在快速模式下,EEPROM 驱动作业处理函数的一个周期应将从 EEPROM 读取的块大小限制为已配置的最大块大小。

简化说明:作业处理函数的一次调用中读取大块数据。
理由 允许在 ECU 启动期间快速读取和检查 EEPROM
用例 示例:在普通 EEPROM 模式下,读取数据的最大块大小为 16。在快速 EEPROM 模式下,读取数据的最大块大小为 128。
依赖 [SRS_Eep_00096], [SRS_Eep_12156]
支持材料 --
⌋(RS_BRF_01928)

6.1.2 外部 EEPROM 驱动

6.1.2.1 通用
6.1.2.1.1 [SRS_Eep_12051] 外部和内部 EEPROM 驱动应适用相同的需求

字段 内容
类型 Valid
描述 对于外部 EEPROM 驱动,应适用与内部 EEPROM 驱动相同的需求。
理由 内部和外部 EEPROM 之间无功能差异。保持相同的功能范围。
用例 STAR12 具有内部 EEPROM。NEC V850 需要外部 EEPROM。两种微控制器上应使用相同的 NVRAM Manager。
依赖 --
支持材料 --
⌋(RS_BRF_01808)
6.1.2.2 配置
6.1.2.2.1 [SRS_Eep_12164] 外部 SPI EEPROM 驱动应允许静态配置所需的 SPI 参数

字段 内容
类型 Valid
描述 外部 SPI EEPROM 驱动应允许静态配置所需的 SPI 参数。这些参数由 SPI Handler 规范指定。
理由 SPI 访问的基本配置
用例 在同一 SPI 总线上同时使用 SPI EEPROM 驱动与其他 SPI 设备驱动。
依赖 [SRS_Eep_00096] EEPROM 驱动静态配置
支持材料 AUTOSAR SWS SPI Handler
⌋(RS_BRF_01080, RS_BRF_01136)
6.1.2.3 正常运行
6.1.2.3.1 [SRS_Eep_12124] 外部 SPI EEPROM 设备的 EEPROM 驱动应根据当前 EEPROM 模式访问 SPI

字段 内容
类型 Valid
描述 外部 SPI EEPROM 设备的 EEPROM 驱动应根据当前 EEPROM 模式访问 SPI:
- 普通 EEPROM 模式:具有单字节/字模式的 SPI 通道
- 快速 EEPROM 模式:具有突发模式的 SPI 通道
理由 ECU 启动期间快速读取操作,正常操作期间非阻塞 SPI 使用
用例 外部 SPI EEPROM,SPI 波特率 500kbaud。

ECU 启动期间,EEPROM 以突发模式运行以减少启动时间。EEPROM 访问(32 字节+头部)阻塞 SPI 总线约 560µs。

正常运行期间,EEPROM 以普通模式运行,以便 EEPROM 驱动的 SPI 总线访问不会阻塞优先级更高的通信请求。
依赖 --
支持材料 --
⌋(RS_BRF_01080)

6.2 非功能性需求

6.2.1 内部 EEPROM 驱动

6.2.1.1 [SRS_Eep_12050] EEPROM 驱动的作业处理函数应仅处理 EEPROM 硬件可处理的数据量

字段 内容
类型 Valid
描述 EEPROM 驱动的作业处理函数应仅处理 EEPROM 硬件在一步内可处理的数据(特别是写操作),或仅处理已定义的用户上限的数据量(特别是读操作)。
理由 最小化处理器负载,减少阻塞时间。
用例 作业处理函数在一次调用中执行一个字节的写入和最多 8 字节的读取。
依赖 [SRS_Eep_12157] 作业处理 普通模式
支持材料 --
⌋(RS_BRF_01928)

6.2.2 外部 EEPROM 驱动

6.2.2.1 [SRS_Eep_12052] 外部 EEPROM 驱动应与内部 EEPROM 驱动具有语义相同的 API

字段 内容
类型 Valid
描述 外部 EEPROM 驱动应与内部 EEPROM 驱动具有语义相同的 API。
理由 简化内存抽象。保持内部和外部 EEPROM 的处理类似。
用例 STAR12 具有内部 EEPROM。NEC V850 需要外部 EEPROM。两种微控制器上应使用相同的 NVRAM Manager。
依赖 --
支持材料 --
⌋(RS_BRF_01808)
6.2.2.2 [SRS_Eep_12053] 外部 EEPROM 驱动的源代码应与底层微控制器无关

字段 内容
类型 Valid
描述 外部 EEPROM 驱动的源代码应与底层微控制器无关。
理由 在多个微控制器上重用外部 EEPROM 驱动
用例 SPI EEPROM 设备的同一外部 EEPROM 驱动可以无任何修改地在 NEC V850 和 MPC563 上使用,通过标准化的 SPI Handler 接口。
依赖 --
支持材料 --
⌋(RS_BRF_01008, RS_BRF_01000)

7 参考文献

7.1 AUTOSAR 交付物

[1] List of Basic Software Modules AUTOSAR_TR_BSWModuleList.pdf

[2] Layered Software Architecture AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf

[3] General Requirements on Basic Software Modules AUTOSAR_SRS_BSWGeneral.pdf

[4] General Requirements on SPAL AUTOSAR_SRS_SPALGeneral.pdf

[5] Software Standardization Template AUTOSAR_TPS_StandardizationTemplate.pdf


翻译说明

  • 本文档完整翻译自 AUTOSAR_SRS_EEPROMDriver v4.4.0(Document ID 192)。
  • 保留所有需求 ID(SRS_Eep_xxxxx、RS_BRF_xxxxx)。
  • 保留 AUTOSAR 方框符 ⌈⌋。
  • 模块缩写(Eep、SPI、ECU 等)保持英文。