14 KiB
DIO 驱动需求(Requirements on DIO Driver)
AUTOSAR CP Release 4.4.0
文档元信息
| 字段 | 内容 |
|---|---|
| 文档标题 | DIO 驱动需求(Requirements on DIO Driver) |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 191 |
| 文档状态 | Final(最终版) |
| 所属 AUTOSAR 标准 | Classic Platform(经典平台) |
| 所属标准版本 | 4.4.0 |
文档变更历史(Document Change History)
| 日期 | 版本 | 变更人 | 变更描述 |
|---|---|---|---|
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 编辑性变更 |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 移除对 BMW 和 HIS 文档的引用;编辑性变更 |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 新增第 5 章:需求追踪 |
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 编辑性变更 |
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 编辑性变更 |
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | 需求 ID 变更;更新以实现需求可追溯性 |
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | 新增 SRS_Dio_12900 |
| 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 已被拆分为 15 个独立文档,以发布 2.0 |
| 2005-05-31 | 1.0 | AUTOSAR Administration | 作为 SRS SPAL V1.0.0 的一部分初始发布 |
目录(Table of Contents)
- 文档范围(Scope of document)
- 1.1 约束(Constraints)
- 如何阅读本文档(How to read this document)
- 缩略语与缩写(Acronyms and abbreviations)
- 功能概述(Functional Overview)
- 需求追踪(Requirements Tracing)
- 需求规范(Requirement Specification)
- 6.1 功能需求(Functional Requirements)
- 6.1.1 DIO 驱动
- 6.2 非功能需求(Non-Functional Requirements)
- 6.2.1 DIO 驱动
- 6.1 功能需求(Functional Requirements)
- 参考文献(References)
1 文档范围(Scope of document)
本文档规定了 DIO 驱动模块的需求。
1.1 约束(Constraints)
基础软件模块需求规范的首要范围是非安全相关系统。因此,安全需求被分配到中等优先级。
2 如何阅读本文档(How to read this document)
每个需求都有其唯一的标识符,以 "BSW"("Basic Software" 的缩写)前缀开头。对于任何审阅注释、评论或问题,请参考此唯一 ID 而不是章节或页码!
2.1 使用的约定(Conventions used)
- AUTOSAR 文档中需求的表示遵循 [TPS_STDT_00078] 中指定的表。
- 在需求中,使用以下特定语义(取自互联网工程任务组 IETF 的征求意见稿 RFC 2119)。
本文件中使用的关键字 "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"MAY" 和 "OPTIONAL" 应按照 RFC 2119 中的描述进行解释。请注意,它们所使用文档的需求级别会修改这些词的强制力。
- MUST:这个词,或术语 "REQUIRED" 或 "SHALL",意味着该定义是规范的绝对要求。
- MUST NOT:这个词组,或词组 "SHALL NOT",意味着该定义是规范的绝对禁止。
- SHOULD:这个词,或形容词 "RECOMMENDED",意味着在特定情况下可能存在忽略特定条目的有效理由,但在选择不同方案之前必须充分理解并仔细权衡其全部含义。
- SHOULD NOT:这个词组,或词组 "NOT RECOMMENDED",意味着在特定情况下特定行为可能是可接受的甚至是有用的,但在实现任何带有此标签描述的行为之前,应理解其全部含义并仔细权衡该情况。
- MAY:这个词,或形容词 "OPTIONAL",意味着某个项目是真正可选的。
2.2 需求结构(Requirement structure)
每个模块特定章节包含基础软件模块的简短功能描述。同一类型的需求在每个章节内按以下标题分组(如果适用):
功能需求(Functional Requirements):
- 配置(Configuration)
- 初始化(Initialisation)
- 正常运行(Normal Operation)
- 关闭操作(Shutdown Operation)
- 故障操作(Fault Operation)
- ...
非功能需求(Non-Functional Requirements):
- 时间需求(Timing Requirements)
- 资源使用(Resource Usage)
- 可用性(Usability)
- 对其他 WP 的输出
- ...
3 缩略语与缩写(Acronyms and abbreviations)
| 缩略语 | 描述 |
|---|---|
| CS | 片选(Chip select) |
| DIO | 数字输入输出(Digital Input Output) |
| ECU | 电控单元(Electric Control Unit) |
| EOL | 终端产线(End Of Line),常用于 "EOL 编程" 或 "EOL 配置" |
| ICU | 中断捕获单元(Interrupt Capture Unit) |
| MAL | 微控制器抽象层的旧名称(已被 MCAL 取代,因为 'MAL' 在法语中意为 'bad') |
| MCAL | 微控制器抽象层(Microcontroller Abstraction Layer) |
| MCU | 微控制器单元(Microcontroller Unit) |
| MMU | 内存管理单元(Memory Management Unit) |
| Master | 控制其他设备(从设备)的设备 |
| Slave | 完全由主设备控制的设备 |
| 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 功能概述(Functional Overview)
4.1 DIO 驱动(DIO Driver)
DIO 驱动提供基于端口和通道的读写访问,以访问内部通用 I/O 端口。读写行为是无缓冲的。此驱动的基本行为是同步的。
DIO 驱动中使用以下表达式:
| 表达式 | 解释 |
|---|---|
| DIO 通道(DIO channel) | 表示单个通用数字输入/输出引脚 |
| DIO 端口(DIO port) | 表示由硬件分组的多个 DIO 通道,可同步访问(通常由一个硬件寄存器控制)。例如:Freescale HC08 的 Port A(8 位) |
| DIO 通道组(DIO channel group) | 表示由逻辑组表示的多个相邻 DIO 通道。DIO 通道组是 DIO 端口的一个子集,可同步访问。例如:8 位端口的端口引脚 2..6 |
5 需求追踪(Requirements Tracing)
| 需求 | 描述 | 由...满足 |
|---|---|---|
| RS_BRF_01024 | AUTOSAR 应提供公共符号的命名规则 | SRS_Dio_12355 |
| RS_BRF_01864 | AUTOSAR 微控制器抽象应提供 I/O 信号到数字 I/O 端口的映射 | SRS_Dio_12003, SRS_Dio_12004, SRS_Dio_12005, SRS_Dio_12006, SRS_Dio_12007, SRS_Dio_12008, SRS_Dio_12352, SRS_Dio_12424, SRS_Dio_12900 |
6 需求规范(Requirement Specification)
6.1 功能需求(Functional Requirements)
6.1.1 DIO 驱动
6.1.1.1 配置与初始化(Configuration and Initialization)
端口结构的配置和初始化不属于 DIO 驱动的范畴。这由 Port 驱动完成(请参见 [SRS_Port_12001] 端口引脚属性配置)。
6.1.1.1.1 [SRS_Dio_12355] 应配置符号名称
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | DIO 驱动应允许对以下符号名称进行静态配置: - DIO 通道名称 - DIO 通道组名称 - DIO 端口名称 |
| Rationale | 为 DIO 通道提供人类可读的符号名称。 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
| ⌋(RS_BRF_01024) |
6.1.1.2 正常运行(Normal Operation)
6.1.1.2.1 [SRS_Dio_12003] DIO 驱动应提供将数据字写入已分配 DIO 端口的服务
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | DIO 驱动应提供将数据字写入已分配 DIO 端口的服务。 该操作应为无缓冲的。 对端口的输入功能不应有影响。 |
| Rationale | 基本功能 |
| Use Case | 对整个 DIO 端口的写访问。 |
| Dependencies | [SRS_Dio_12352] 一般读/写行为 |
| Supporting Material | -- |
| ⌋(RS_BRF_01864) |
6.1.1.2.2 [SRS_Dio_12004] DIO 驱动应提供将可选数量的相邻位写入 DIO 端口已分配部分的服务
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | DIO 驱动应提供将可选数量的相邻位写入 DIO 端口已分配部分的服务。该操作应为无缓冲的。 |
| Rationale | 允许同时设置具有多个外部分配的 DIO 端口的一组 DIO 通道。 |
| Use Case | 对具有多个分配的 DIO 端口的写访问。 |
| Dependencies | [SRS_Dio_12352] 一般读/写行为 |
| Supporting Material | -- |
| ⌋(RS_BRF_01864) |
6.1.1.2.3 [SRS_Dio_12005] DIO 驱动应提供对单个 DIO 通道的写访问服务
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | DIO 驱动应提供对单个 DIO 通道(特定端口引脚)的写访问服务。 |
| Rationale | 高效处理单个 DIO 通道。 |
| Use Case | 对特定 DIO 通道(端口引脚)的写访问。 |
| Dependencies | [SRS_Dio_12352] 一般读/写行为 |
| Supporting Material | -- |
| ⌋(RS_BRF_01864) |
6.1.1.2.4 [SRS_Dio_12006] DIO 驱动应提供从已分配 DIO 端口读取数据字的服务
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | DIO 驱动应提供从已分配 DIO 端口读取数据字的服务。该操作应为无缓冲的。对端口的输出功能不应有影响。 |
| Rationale | 基本功能 |
| Use Case | 对整个 DIO 端口的读访问。 |
| Dependencies | [SRS_Dio_12352] 一般读/写行为 |
| Supporting Material | -- |
| ⌋(RS_BRF_01864) |
6.1.1.2.5 [SRS_Dio_12007] DIO 驱动应提供从 DIO 端口已分配部分读取可选数量相邻位的服务
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | DIO 驱动应提供从 DIO 端口已分配部分读取可选数量相邻位的服务。该操作应为无缓冲的。 |
| Rationale | 基本功能 |
| Use Case | 对具有多个分配的 DIO 端口的读访问。 |
| Dependencies | [SRS_Dio_12352] 一般读/写行为 |
| Supporting Material | -- |
| ⌋(RS_BRF_01864) |
6.1.1.2.6 [SRS_Dio_12008] DIO 驱动应提供读取已分配 DIO 通道一个位的服务
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | DIO 驱动应提供读取已分配 DIO 通道(特定端口引脚)一个位的服务。该操作应为无缓冲的。 |
| Rationale | 高效处理单个 DIO 通道。 |
| Use Case | 对特定 DIO 通道的读访问。 |
| Dependencies | [SRS_Dio_12352] 一般读/写行为 |
| Supporting Material | -- |
| ⌋(RS_BRF_01864) |
6.1.1.2.7 [SRS_Dio_12900] DIO 驱动应提供翻转服务
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | DIO 驱动应提供翻转服务(将已分配 DIO 通道(特定端口引脚)的一个位从 1 翻转为 0 或从 0 翻转为 1)并在翻转后返回该通道的电平。该操作应为无缓冲的。 |
| Rationale | 高效处理单个 DIO 通道。 |
| Use Case | 对特定 DIO 通道进行翻转电平的读和写访问。 |
| Dependencies | [SRS_Dio_12352] 一般读/写行为 |
| Supporting Material | -- |
| ⌋(RS_BRF_01864) |
6.1.1.2.8 [SRS_Dio_12352] DIO 驱动应允许对 DIO 端口、通道组和通道进行读写
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | DIO 驱动应允许对 DIO 端口、通道组和通道进行读写,而不考虑其方向配置。 如果对配置为输入的通道进行写入,则该值应写入输出寄存器,但不会出现在物理端口引脚上。 如果读取配置为输出的通道,则在硬件支持的情况下读取真实引脚电平的值。否则,读取端口输出寄存器的值。 |
| Rationale | 简化所有 DIO 读写服务的实现。允许输出引脚的回读。允许在将端口引脚切换到输出方向之前预设输出值。 |
| Use Case | 请参见原理。 |
| Dependencies | -- |
| Supporting Material | -- |
| ⌋(RS_BRF_01864) |
6.2 非功能需求(Non-Functional Requirements)
6.2.1 DIO 驱动
6.2.1.1 [SRS_Dio_12424] 提供 DIO 访问的原子性
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | DIO 驱动的所有可重入函数应以原子方式执行以下访问操作: - DIO 端口 - DIO 通道 - DIO 通道组 |
| Rationale | 避免 DIO 驱动 API 函数并发访问中的数据完整性问题。 |
| Use Case | 特定微控制器(或特定编译器)不提供对单个端口引脚的原子访问。因此,实现必须对整个端口使用读-修改-写操作。如果不阻塞并发访问,则对同一端口的引脚的并发访问将导致数据完整性问题。 |
| Dependencies | -- |
| Supporting Material | -- |
| ⌋(RS_BRF_01864) |
7 参考文献(References)
7.1 AUTOSAR 交付物(Deliverables of AUTOSAR)
- [DOC_LAYERED_ARCH] 分层软件架构,AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
- [AUTOSAR_GLOSSARY] 词汇表,AUTOSAR_TR_Glossary.pdf
- [SRS_BSW_GENERAL] 基础软件模块的一般需求,AUTOSAR_SRS_BSWGeneral.pdf
- [SRS_BSW_SPAL] SPAL 的一般需求,AUTOSAR_SRS_SPALGeneral.pdf
- [TPS_STDT_0078] 软件标准化模板,AUTOSAR_TPS_StandardizationTemplate.pdf
翻译说明
本文档为 AUTOSAR 4.4.0 版本 DIO 驱动软件需求规范的中文翻译。保留了所有需求 ID(SRS_Dio_xxxxx)、参考标识符及模块缩写。原始文档共 15 页,本翻译涵盖了全部章节内容。