# I/O 硬件抽象需求(Requirements on I/O Hardware Abstraction) > **AUTOSAR CP Release 4.4.0** ## 文档元信息 | 字段 | 内容 | |---|---| | **文档标题** | I/O 硬件抽象需求(Requirements on I/O Hardware Abstraction) | | **文档所有者** | AUTOSAR | | **文档责任方** | AUTOSAR | | **文档标识号** | 075 | | **文档状态** | 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 | 移除了相关标准与规范;编辑性变更 | | 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 新增需求追踪章节 | | 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 编辑性变更 | | 2013-10-31 | 4.1.2 | AUTOSAR Release Management | 编辑性变更 | | 2013-03-15 | 4.1.1 | AUTOSAR Administration | 需求追踪的正式返工;新增三个电源状态转换;纳入 ECU 降级需求;根据 TPS_standardization 模板更新 | | 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 | 初始发布 | --- ## 目录(Table of Contents) 1. [文档范围(Scope of this document)](#1-文档范围) 2. [如何阅读本文档(How to read this document)](#2-如何阅读本文档) - 2.1 [使用的约定(Conventions used)](#21-使用的约定) - 2.2 [需求结构(Requirement structure)](#22-需求结构) 3. [缩略语与缩写(Acronyms and abbreviations)](#3-缩略语与缩写) - 3.1 [表达式 - 通用(Expressions - general)](#31-表达式---通用) - 3.2 [表达式 - 信号属性(Expressions - signal attributes)](#32-表达式---信号属性) 4. [功能概述(Functional Overview)](#4-功能概述) - 4.1 [IO 硬件抽象(IO Hardware Abstraction)](#41-io-硬件抽象) - 4.2 [信号属性概述(Overview of Attributes to qualify Signals)](#42-信号属性概述) 5. [需求追踪(Requirements Tracing)](#5-需求追踪) 6. [需求规范(Requirement Specification)](#6-需求规范) - 6.1 [功能需求(Functional Requirements)](#61-功能需求) - 6.1.1 [IO 硬件抽象](#611-io-硬件抽象) - 6.2 [非功能需求(质量)(Non-Functional Requirements (Qualities))](#62-非功能需求质量) 7. [参考文献(References)](#7-参考文献) - 7.1 [AUTOSAR 交付物(Deliverables of AUTOSAR)](#71-autosar-交付物) --- ## 1 文档范围(Scope of this document) 本文档定义了 AUTOSAR 内需求规范的一般规则和格式。它应作为每个需求文档的基础。 需求按以下方式组织: - 基础软件模块的一般需求(其他文档) - 适用于微控制器抽象层和 ECU 抽象层所有模块的一般需求(本文档) - 模块特定需求(本文档) ### 约束(Constraints) 基础软件模块需求规范的首要范围是非安全相关系统。因此,安全需求被分配到中等优先级。 --- ## 2 如何阅读本文档(How to read this document) 每个需求都有其唯一的标识符,以 "BSW"("Basic Software" 的缩写)前缀开头。对于任何审阅注释、评论或问题,请参考此唯一 ID 而不是章节或页码! ### 2.1 使用的约定(Conventions used) - AUTOSAR 文档中需求的表示遵循 [2] 中指定的表。 - 在需求中,应使用以下特定语义(基于互联网工程任务组 IETF)。 本文件中使用的关键字 "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"MAY" 和 "OPTIONAL" 应解释为: - **SHALL**:这个词意味着该定义是规范的绝对要求。 - **SHALL NOT**:这个词组意味着该定义是规范的绝对禁止。 - **MUST**:这个词意味着该定义是规范的绝对要求(出于法律问题)。 - **MUST NOT**:这个词组意味着该定义是规范的绝对禁止(出于法律约束)。 - **SHOULD**:意味着在特定情况下可能存在忽略特定条目的有效理由。 - **SHOULD NOT**:意味着在特定情况下特定行为可能是可接受的甚至是有用的。 - **MAY**:意味着某个项目是真正可选的。 ### 2.2 需求结构(Requirement structure) 每个模块特定章节包含基础软件模块的简短功能描述。同一类型的需求在每个章节内按以下标题分组(如果适用): **功能需求(Functional Requirements):** - 配置(Configuration) - 初始化(Initialization) - 正常运行(Normal Operation) - 关闭操作(Shutdown Operation) - 故障操作(Fault Operation) **非功能需求(Non-Functional Requirements):** - 时间需求(Timing Requirements) - 资源使用(Resource Usage) - 可用性(Usability) --- ## 3 缩略语与缩写(Acronyms and abbreviations) ### 3.1 表达式 - 通用(Expressions - general) | 表达式 | 描述 | 示例 | |---|---|---| | Class(类) | 表示 ECU 的一种电气连接。例如模拟、离散等。 | Analogue Class、Discrete Class 等。 | | Electrical Signal(电气信号) | ECU 引脚上的电气信号 | ECU 引脚上的物理输入电压 | | ECU pin(ECU 引脚) | ECU 与电子系统其余部分的硬件电气连接 | | | ECU Signals(ECU 信号) | 电气信号的软件表示。信号具有属性和符号名称 | 输入电压、离散输出、PWM 输入等。 | | ECU Signal group(ECU 信号组) | 来自同一 Class 的电气信号组的软件表示 | 仅用于离散输入和离散输出 | | Attributes(属性) | ECU 中存在的每种信号的软件(SW)和硬件(HW)特性 | 范围、生命周期/延迟等。 | | Symbolic name(符号名称) | 信号的符号名称由 IO 硬件抽象模块用于建立链接(功能、引脚) | | ### 3.2 表达式 - 信号属性(Expressions - signal attributes) | 表达式 | 描述 | 示例 | |---|---|---| | Data Type(数据类型) | 信号的数据类型:
- Analogue:VoltageType、CurrentType、ResistanceType
- Discrete:bool 或 AUTOSAR 定义的类型(BoolType) | 每种数据类型具有给定大小:16 位或 32 位 | | Range(范围) | 功能范围而非电气范围。
- 对于模拟信号 [lowerLimit...upperLimit](电压、电流),[0...upperLimit](电阻)
- 对于离散信号 [0,1]
- 对于时序信号 [0…upperLimit](周期),[-100…100%](占空比) | [-12Volts...+12Volts](电压) | | Resolution(分辨率) | 该属性对于许多 Class 取决于范围和数据类型。
示例:(upperLimit - lowerLimit) / 数据类型长度 | VoltageType => 16 位;分辨率 => 24 / 65535 | | Hardware Resolution(硬件分辨率) | 这是硬件(ADC)的最大可能分辨率 | ADC 转换器可以具有 8/10/12/16 位分辨率 | | Hardware Accuracy(硬件精度) | 这是硬件的精度,取决于用于采集和/或生成的硬件外设 | ADC 转换器可以具有 ±3 LSB 的精度 | | Accuracy(精度) | 取决于用于采集和/或生成的硬件外设 | ADC 转换器可以是 8/10/12/16 位转换器 | | Diagnosis(诊断) | 功能诊断能力 | 不支持诊断(可以是静态检查);无可用有效信息;对电源短路;对地短路;开路;过热;诊断正常 | | Synchronization(同步) | 信号可以与另一个信号或事件(如触发器)同步 | 如果离散信号为"TRUE",则获取模拟信号 | | Access(访问) | 定义信号是否附加到 Get(读)/ Set(写)功能 | | | Inversion(反相) | 物理值和逻辑值之间的反相。此属性对 IO 硬件抽象的用户不可见且不可配置。 | 物理高状态 →(信号=False);物理低状态 →(信号=True) | | Lifetime(生命周期) | 仅适用于输入:这是数据允许的最大年龄(时间以微秒为单位)。如果生命周期为 0,则信号直接从寄存器获取。 | 生命周期 = 0 是直接访问;生命周期 = 1000µs 时读取的值最多比实际值旧 1ms | | Delay(延迟) | 仅适用于输出:这是输出实际设置之前允许的最大时间(时间以微秒为单位)。如果延迟为 0,则立即设置信号。 | 延迟 = 0 是直接访问;延迟 = 100µs 命令设置直到 100µs 过去 | | Filtering / Debouncing(滤波/去抖) | 定义信号是作为原始值提供,还是 IO 硬件抽象模块中为此信号包含滤波/去抖方法 | Raw、Debounce 3 Samples、Wait 10ms | | Sampling Rate(采样率) | 获取信号值所需的时间段 | 采样窗口(突发)的采样率 | | Report Changes(更改报告) | 此属性仅适用于离散输入。它定义报告电平更改的能力(或不报告)。 | 启用或禁用 | | Pulse Test(脉冲测试) | 此属性意味着输出应通过专用脉冲进行测试。如果未设置此属性,则在使用输出时进行诊断。 | 可用或不可用 | --- ## 4 功能概述(Functional Overview) ### 4.1 IO 硬件抽象(IO Hardware Abstraction) IO 硬件抽象模块抽象自 ECU 硬件的信号路径(布局、微控制器引脚、微控制器外部设备如 IO ASIC)。它向上层软件层提供基于信号的接口。它根据 ECU 硬件输入/输出的物理表示执行静态抽象和反相(如果需要)(补偿在 ECU IO 和微控制器引脚之间的路径中引起的静态影响,例如分压器、硬件反相)。 IO 硬件抽象模块允许根据属性列表配置每个信号。接口是 AUTOSAR 标准。 ### 4.2 信号属性概述(Overview of Attributes to qualify Signals) 下表总结了不同类型 ECU 信号类(Analoguein、Analogueout、Discretein、DiscreteStatus、Discretepow、PWx Periodin/out、PWx Duty Cyclein/out)所适用的属性。表中列出了 BSW-Resolution、Age (Lifetime/Delay)、Report Feature、Sampling Rate、Debouncing、Monitoring、Filtering/Pulse Test、Access、Failure Age、Signal Data Type、Unit、Signal 等属性。 **表图例:** - **X** 表示该属性适用于此类 ECU 信号并且应被配置。 - Xl 表示适用的年龄属性是生命周期(Lifetime)。 - Xd 表示适用的年龄属性是延迟(Delay)。 - **F** 表示该属性适用于此类 ECU 信号但是固定的标准值。 - **O** 表示该属性对于此类 ECU 信号是可选的,取决于静态配置(禁用/启用)。 - **-** 表示该属性不适用或对此类 ECU 信号无意义。 --- ## 5 需求追踪(Requirements Tracing) | 需求 | 描述 | 由...满足 | |---|---|---| | RS_BRF_01000 | AUTOSAR 架构应将 BSW 组织为硬件独立层和硬件依赖层 | SRS_IoHwAb_12319 | | RS_BRF_01024 | AUTOSAR 应提供公共符号的命名规则 | SRS_IoHwAb_12232 | | RS_BRF_01048 | AUTOSAR 模块设计应支持模块在多任务环境中协作 | SRS_IoHwAb_12449 | | RS_BRF_01056 | AUTOSAR BSW 模块应提供标准化接口 | SRS_IoHwAb_12452 | | RS_BRF_01080 | AUTOSAR 应允许访问内部和外部外围设备 | SRS_IoHwAb_12242 | | RS_BRF_01184 | AUTOSAR 应支持不同的降级方法 | SRS_IoHwAb_12453, SRS_IoHwAb_12454, SRS_IoHwAb_12455 | | RS_BRF_01352 | AUTOSAR RTE 应提供直接读/写数据访问,或者替代地在可运行对象调用之前预读数据并在可运行对象返回后后写数据 | SRS_IoHwAb_00002, SRS_IoHwAb_12324, SRS_IoHwAb_12338, SRS_IoHwAb_12410, SRS_IoHwAb_12411, SRS_IoHwAb_12412, SRS_IoHwAb_12413, SRS_IoHwAb_12415 | | RS_BRF_01384 | AUTOSAR RTE 应支持数据的自动范围检查 | SRS_IoHwAb_12409 | | RS_BRF_01632 | AUTOSAR 通信应支持信号组的数据一致性 | SRS_IoHwAb_12323 | | RS_BRF_01856 | AUTOSAR 微控制器抽象应提供对内部 MCU 配置的访问 | SRS_IoHwAb_12338 | | RS_BRF_01952 | AUTOSAR IO 硬件抽象应支持已连接 I/O 设备的标准化模式 | SRS_IoHwAb_12453, SRS_IoHwAb_12454, SRS_IoHwAb_12455 | | RS_BRF_01968 | AUTOSAR IO 硬件抽象应支持边沿触发的 I/O 信号 | SRS_IoHwAb_12414, SRS_IoHwAb_12416, SRS_IoHwAb_12417, SRS_IoHwAb_12445 | | RS_BRF_02000 | AUTOSAR IO 硬件抽象应保护硬件免受非法操作 | SRS_IoHwAb_12419, SRS_IoHwAb_13900, SRS_IoHwAb_13901, SRS_IoHwAb_13902 | | RS_BRF_02016 | AUTOSAR 应提供保护系统免受未授权修改的机制 | SRS_IoHwAb_12451 | | RS_BRF_02024 | AUTOSAR 应提供保护系统免受未授权使用的机制 | SRS_IoHwAb_12248 | | RS_BRF_02144 | AUTOSAR 诊断应为外部测试人员提供标准化诊断服务 | SRS_IoHwAb_00002 | | RS_BRF_02160 | AUTOSAR 诊断应允许外部测试人员控制 ECU 的主动功能 | SRS_IoHwAb_12418 | | RS_BRF_02168 | AUTOSAR 诊断应提供对异常操作条件的集中分类和处理 | SRS_IoHwAb_12339, SRS_IoHwAb_13900, SRS_IoHwAb_13901, SRS_IoHwAb_13902, SRS_IoHwAb_13904 | | RS_BRF_02176 | AUTOSAR 错误处理应区分已定义异常操作条件和预期行为的意外异常 | SRS_IoHwAb_13903 | | RS_BRF_02224 | AUTOSAR 应支持运行时硬件测试 | SRS_IoHwAb_12452 | | RS_BRF_02272 | AUTOSAR 应提供应用软件行为的追踪 | SRS_IoHwAb_12450 | --- ## 6 需求规范(Requirement Specification) ### 6.1 功能需求(Functional Requirements) #### 6.1.1 IO 硬件抽象 ##### 6.1.1.1 通用(General) **6.1.1.1.1 [SRS_IoHwAb_12409] IO 硬件抽象模块应为每个信号提供一个静态范围内的值** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应为每个信号提供一个静态范围内的值。此范围独立于基础软件驱动缩放因子。
示例:
- 模拟信号 => [lowerLimit...upperLimit],其中 (lowerLimit = -upperLimit) 或 (lowerLimit = 0) | | Rationale | 支持具有高分辨率的宽范围 | | Use Case | -- | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01384) **6.1.1.1.2 [SRS_IoHwAb_12410] IO 硬件抽象模块应提供读取具有特定属性的输入电压的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供读取输入电压的服务,具有以下属性:
- 数据类型:VoltageType
- 范围:[lowerLimit...upperLimit],lowerLimit 和 upperLimit 可以为负([-5Volts, -3Volts])
- 分辨率:VoltageType / (upperLimit - lowerLimit)
- 精度:HW 提供
- 同步:是/否
- 生命周期:x = 延迟 x 微秒
- 滤波/去抖:原始、滤波(带宽、截止频率)
- 采样率:x:每 x µs 采样一次 | | Rationale | IO 硬件抽象的基本功能 | | Use Case | 控制响应电压的组件/传感器 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01352) **6.1.1.1.3 [SRS_IoHwAb_12411] IO 硬件抽象模块应提供读取具有特定属性的输出电压的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供控制输出电压的服务,具有以下属性:
- 数据类型:VoltageType
- 范围:[lowerLimit...upperLimit],lowerLimit 可以为负
- 分辨率:VoltageType / (upperLimit - lowerLimit)
- 精度:HW 提供
- 诊断:IO 硬件抽象模块能够检测以下故障:
- 不支持诊断(可以是静态检查)
- 无可用有效信息
- 对电源短路
- 对地短路
- 开路
- 过热
- 诊断正常
- 同步:是/否
- 延迟:x = 延迟 x 微秒 | | Rationale | 基本功能 | | Use Case | ECU 电源;通过使用 PWM 抽象生成模拟信号 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01352) **6.1.1.1.4 [SRS_IoHwAb_12413] IO 硬件抽象模块应提供读取具有特定属性的输入电流的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供读取输入电流的服务,具有以下属性:
- 数据类型:CurrentType
- 范围:[lowerLimit…upperLimit],lowerLimit 可以为负
- 分辨率:CurrentType / (upperLimit - lowerLimit)
- 精度:HW 提供
- 同步:是/否
- 生命周期:x = 延迟 x 微秒
- 滤波/去抖:原始、滤波(带宽、截止频率)
- 采样率:x:每 x µs 采样一次 | | Rationale | IO 硬件抽象的基本功能 | | Use Case | 控制由电流驱动的组件/传感器 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01352) **6.1.1.1.5 [SRS_IoHwAb_12415] IO 硬件抽象模块应提供使用特定属性测量连接电阻的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供使用以下属性测量连接电阻的服务:
- 数据类型:ResistanceType
- 范围:[lowerLimit…upperLimit],lowerLimit 为空或为正
- 分辨率:ResistanceType / (upperLimit - lowerLimit)
- 精度:HW 提供
- 同步:是/否
- 生命周期:x = 延迟 x 微秒
- 滤波/去抖:原始、滤波(带宽、截止频率)
- 采样率:x:每 x µs 采样一次 | | Rationale | IO 硬件抽象的基本功能 | | Use Case | 温度传感器的测量 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01352) **6.1.1.1.6 [SRS_IoHwAb_12412] IO 硬件抽象模块应提供获取/读取具有特定属性的离散输入的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供获取/读取离散输入的服务,具有以下属性:
- 数据类型:boolean
- 范围:0 或 1
- 分辨率:逻辑状态
- 精度:1 位
- 同步:是/否
- 生命周期:x = 延迟 x 微秒
- 滤波/去抖:原始、滤波(带宽、截止频率)
- 采样率:x:每 x µs 采样一次
- 更改报告:启用或禁用 | | Rationale | IO 硬件抽象的基本功能 | | Use Case | 从 ECU 引脚获取/读取逻辑值(0/1) | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01352) **6.1.1.1.7 [SRS_IoHwAb_12324] IO 硬件抽象模块应提供同时获取/读取多个离散输入的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | AUTOSAR IO 硬件抽象模块应提供同时获取/读取多个离散输入的服务。输入的数量应可配置。这限制为物理端口。 | | Rationale | 所有输入属于同一功能或同一增强型板上芯片。 | | Use Case | 用于电机控制以及运行时优化 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01352) **6.1.1.1.8 [SRS_IoHwAb_12450] IO 硬件抽象模块应提供在离散输入更改时向信号客户端报告的机制** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供在离散输入更改时向信号客户端报告的机制。仅在为此信号启用更改报告属性时才可用此功能。 | | Rationale | 确保实时行为 | | Use Case | 检测传感器活动并及时做出反应,例如关于刮水器和制动踏板 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_02272) **6.1.1.1.9 [SRS_IoHwAb_12419] IO 硬件抽象模块应提供监控硬件故障并设置状态的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供监控硬件故障并设置状态的服务:
- 数据类型:StatusType
- 范围:
- 无可用有效信息
- 对电源短路
- 对地短路
- 开路
- 过热
- 诊断正常
- 同步:是/否
- 生命周期:x = 延迟 x 微秒
- 滤波/去抖:原始、滤波(带宽、截止频率) | | Rationale | 基本功能 | | Use Case | 了解继电器/灯输出的实际状态 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_02000) **6.1.1.1.10 [SRS_IoHwAb_12418] IO 硬件抽象模块应提供控制具有特定属性的离散供电输出的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供控制离散供电输出的服务,具有以下属性:
- 数据类型:boolean
- 范围:0 或 1
- 分辨率:逻辑状态
- 精度:1 位
- 诊断:IO 硬件抽象模块能够检测以下故障:
- 不支持诊断(可以是静态检查)
- 无可用有效信息
- 对电源短路
- 对地短路
- 开路
- 过热
- 诊断正常
- 同步:是/否
- 延迟:x = 延迟 x 微秒

简单输出(无电源)是电源输出的子集,其诊断属性始终为"不支持诊断(可以是静态检查)" | | Rationale | 基本功能 | | Use Case | 继电器控制、灯控制 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_02160) **6.1.1.1.11 [SRS_IoHwAb_12323] IO 硬件抽象模块应提供同时更新多个离散输出的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | AUTOSAR IO 硬件抽象模块应提供同时更新多个离散输出的服务。输出的数量应可配置。这限制为物理端口。 | | Rationale | 所有输出属于同一功能或同一增强型板上芯片。 | | Use Case | 用于同步和运行时优化 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01632) **6.1.1.1.12 [SRS_IoHwAb_12417] IO 硬件抽象模块应提供测量信号上两个下降沿或上升沿之间周期时间的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供使用以下属性测量信号上两个下降沿或上升沿之间周期时间的服务:
- 数据类型:PeriodType
- 范围:[lowerLimit…upperLimit],lowerLimit 为空或为正
- 分辨率:PeriodType / (upperLimit - lowerLimit)
- 精度:HW 提供
- 生命周期:x = 延迟 x 微秒 | | Rationale | IO 硬件抽象的基本功能 | | Use Case | 测量 PWM 传感器的周期 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01968) **6.1.1.1.13 [SRS_IoHwAb_12416] IO 硬件抽象模块应提供使用特定属性控制信号上两个下降沿或上升沿之间周期时间的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供使用以下属性控制信号上两个下降沿或上升沿之间周期时间的服务:
- 数据类型:PeriodType
- 范围:[lowerLimit…upperLimit],lowerLimit 为空或为正
- 分辨率:PeriodType / (upperLimit - lowerLimit)
- 精度:HW 提供
- 诊断:
- 不支持诊断(可以是静态检查)
- 无可用有效信息
- 对电源短路
- 对地短路
- 开路
- 过热
- 诊断正常
- 同步:是/否
- 延迟:x = 延迟 x 微秒 | | Rationale | IO 硬件抽象的基本功能 | | Use Case | 控制 PWM 输出信号的周期 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01968) **6.1.1.1.14 [SRS_IoHwAb_12414] IO 硬件抽象模块应提供控制周期性输出信号的有效电平与非有效电平之间比率的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供使用以下属性控制周期性输出信号的有效电平与非有效电平之间比率的服务:
- 数据类型:DutyCycleType
- 范围:[-100%…+100%]
- 分辨率:待定义
- 精度:HW 提供
- 同步:是/否
- 延迟:x = 延迟 x 微秒 | | Rationale | IO 硬件抽象的基本功能 | | Use Case | 负范围是有道理的,例如允许在硬件级别上进行电机方向控制(负占空比 = 向左,正占空比 = 向右) | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01968) **6.1.1.1.15 [SRS_IoHwAb_12445] IO 硬件抽象模块应提供测量周期性输入信号的有效电平与非有效电平之间比率的服务** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供使用以下属性测量周期性输入信号的有效电平与非有效电平之间比率的服务:
- 数据类型:DutyCycleType
- 范围:[-100%…+100%]
- 分辨率:100 / M
- 精度:HW 提供
- 生命周期:x = 延迟 x 微秒 | | Rationale | IO 硬件抽象的基本功能 | | Use Case | ICU 需求 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01968) **6.1.1.1.16 [SRS_IoHwAb_12338] IO 硬件抽象应提供同步信号访问功能** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | 即使采样是异步的,IO 硬件抽象也应提供同步信号访问功能(信号访问)。 | | Rationale | 不同机制的抽象 | | Use Case | 访问循环 ADC 转换的缓冲区 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01352, RS_BRF_01856) **6.1.1.1.17 [SRS_IoHwAb_00002] I/O 硬件抽象应提供到 DCM 的接口以控制和读取已配置的信号** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | I/O 硬件抽象应提供到 DCM 的接口,允许控制和读取已配置的信号。接口应实现以下功能:
- 通过设置以下状态来控制信号:
- IOHWAB_CONTROLTOECU:解锁信号
- IOHWAB_RESETTODEFAULT:锁定信号并将其设置为已配置的默认值
- IOHWAB_FREEZE:将信号锁定为当前值
- IOHWAB_ADJUSTMENT:锁定信号并将其调整为 DCM 模块给定的值
- 读取信号(在由"控制功能"设置的任何信号状态下)

锁定信号意味着某个信号在软件上锁定到 SW-C,即 SW-C 的请求在锁定状态下对硬件没有影响。
尽管如此,DCM 应完全访问硬件。如果对输入信号使用 C/S 通信,可能有必要具有 IoHwAb 内部缓冲区,其值可由 DCM 调整。 | | Rationale | 通过 DCM 诊断 I/O 信号 | | Use Case | 系统诊断 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01352, RS_BRF_02144) ##### 6.1.1.2 配置(Configuration) **6.1.1.2.1 [SRS_IoHwAb_12232] 每个信号的符号名称应唯一** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象应允许静态配置每个信号的唯一符号名称。 | | Rationale | 更改硬件分配时上层无需更改 | | Use Case | 灵活的 ECU 设计 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01024) **6.1.1.2.2 [SRS_IoHwAb_12319] IO 硬件抽象模块应独立于物理电平** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | AUTOSAR IO 硬件抽象模块应独立于物理电平(即:输出命令在低电平或高电平有效),并仅为数字 IO 向上层提供逻辑电平。 | | Rationale | 用户和硬件设计之间的独立性 | | Use Case | 例如,门可以 OPEN/CLOSE,这些状态独立于实际硬件输入状态(0v、5v、12v) | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01000) **6.1.1.2.3 [SRS_IoHwAb_12449] IO 硬件抽象应能同时处理多个电气信号** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象应能同时处理多个电气信号。组的定义在配置步骤期间完成。属于一个组的信号始终具有相同的类型。 | | Rationale | 无时间延迟控制一组信号 | | Use Case | -- | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01048) ##### 6.1.1.3 正常运行(Normal Operation) **6.1.1.3.1 [SRS_IoHwAb_12242] IO 硬件抽象应隐藏通过 ECU 内部板上外设访问信号的任何通信** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象应隐藏通过 ECU 内部板上外设访问信号的任何通信。ECU 上的信号路由由此接口抽象。 | | Rationale | 对于上层,端口是直接连接到微控制器还是连接到板载 ASIC 都不应有区别。 | | Use Case | -- | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01080) ##### 6.1.1.4 诊断功能(Diagnostic Functions) 以下示意图显示了输出驱动级及其诊断能力。它们应有助于理解以下需求: - **数字输出的模拟监控线诊断概念方案**:通过模拟监控线诊断数字输出 - **单驱动级的数字监控线数字输出诊断概念方案**:通过数字监控线诊断数字输出 - **n 通道驱动级的数字监控线数字输出诊断概念方案**:通过数字监控线诊断数字输出 **6.1.1.4.1 [SRS_IoHwAb_13900] IO 硬件抽象应检测对地短路故障(根据硬件能力)** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象应检测对地短路故障(根据硬件能力)。 | | Rationale | 基本功能 | | Use Case | 离散负载信号的模拟监控、用于诊断和/或软件驱动级保护的故障检测 | | Dependencies | -- | | Supporting Material | 特定硬件设计:现有诊断监控 | ⌋(RS_BRF_02000, RS_BRF_02168) **6.1.1.4.2 [SRS_IoHwAb_13901] IO 硬件抽象应检测对 +UBat 的短路故障(根据硬件能力)** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象应检测对 +UBat 的短路故障(根据硬件能力)。 | | Rationale | 基本功能 | | Use Case | 离散负载信号的模拟监控、用于诊断和/或错误反应的故障检测 | | Dependencies | -- | | Supporting Material | 特定硬件设计:现有诊断监控 | ⌋(RS_BRF_02000, RS_BRF_02168) **6.1.1.4.3 [SRS_IoHwAb_13902] IO 硬件抽象应检测开路(根据硬件能力)** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象应检测开路(根据硬件能力)。 | | Rationale | 基本功能 | | Use Case | 离散负载信号的模拟监控、用于诊断和/或错误反应的故障检测 | | Dependencies | -- | | Supporting Material | 特定硬件设计:现有诊断监控 | ⌋(RS_BRF_02000, RS_BRF_02168) **6.1.1.4.4 [SRS_IoHwAb_13903] IO 硬件抽象应检测过载故障** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象应检测过载故障。如果控制输出信号被激活,则执行此检测。 | | Rationale | 基本功能 | | Use Case | 离散负载信号的模拟监控、用于诊断和/或错误反应的故障检测 | | Dependencies | -- | | Supporting Material | 特定硬件设计:诊断监控 | ⌋(RS_BRF_02176) **6.1.1.4.5 [SRS_IoHwAb_13904] IO 硬件抽象应检测过热** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象应检测过热。如果控制输出信号被激活,则执行此检测。 | | Rationale | 基本功能 | | Use Case | -- | | Dependencies | -- | | Supporting Material | 特定硬件设计:诊断监控 | ⌋(RS_BRF_02168) ##### 6.1.1.5 故障操作(Fault operation) **6.1.1.5.1 [SRS_IoHwAb_12248] IO 硬件抽象模块应保持 ECU 硬件安全** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应保持 ECU 硬件安全。
当在此输出上检测到故障时,IO 硬件抽象应能切断输出信号。这是为了保护硬件而完成的。 | | Rationale | 防止 ECU 损坏 | | Use Case | 对地短路、对电源短路、过热、过载。三次命令后停用输出。 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_02024) **6.1.1.5.2 [SRS_IoHwAb_12451] IO 硬件抽象模块不应自行决定重新打开出于硬件保护原因而被关闭的输出** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块不应自行决定重新打开出于硬件保护原因而被关闭的输出。
恢复故障的此类策略应在软件组件中定义。 | | Rationale | 策略包含在 SW-C 中 | | Use Case | -- | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_02016) **6.1.1.5.3 [SRS_IoHwAb_12452] IO 硬件抽象模块应提供在输出被切断后触发输出的接口** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象模块应提供在输出被切断后触发输出的接口。 | | Rationale | 检测电气故障 | | Use Case | -- | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_01056, RS_BRF_02224) ##### 6.1.1.6 电源状态转换(Power state transitions) **6.1.1.6.1 [SRS_IoHwAb_12453] 应提供电源状态准备的封装** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | 如果实现了对外设的电源控制,IoHwAbstraction 应为每个应用电源模式定义一个 API,其中与给定应用电源模式相关的所有外设电源状态转换都将生效。 | | Rationale | 需要创建一个封装,允许将最终对车辆系统上不同 ECU 有效的应用电源模式映射到每个 ECU 上每个外设的电源状态。通过这种方式,给定电源模式的设置阶段可以原子地执行,以便所有 HW 外设同步转换到有效电源状态。 | | Use Case | -- | | Dependencies | -- | | Supporting Material | 概念提案 596:ECU 降级 | ⌋(RS_BRF_01952, RS_BRF_01184) **6.1.1.6.2 [SRS_IoHwAb_12454] 应提供电源状态设置的封装** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | 如果实现了对外设的电源控制,IoHwAbstraction 应为每个应用电源模式定义一个 API,其中应准备与给定应用电源模式相关的所有外设电源状态转换(电源状态准备)。 | | Rationale | 需要创建一个封装,允许将最终对车辆系统上不同 ECU 有效的应用电源模式映射到每个 ECU 上每个外设的电源状态。通过这种方式,给定电源模式的准备阶段可以原子地执行。 | | Use Case | -- | | Dependencies | -- | | Supporting Material | 概念提案 596:ECU 降级 | ⌋(RS_BRF_01952, RS_BRF_01184) **6.1.1.6.3 [SRS_IoHwAb_12455] 应提供每个电源状态准备完成的回调通知** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | 如果实现了对外设的电源控制,IoHwAbstraction 应为实现给定应用电源模式所需的每个外设的每个电源状态定义一个回调。 | | Rationale | 有必要解耦电源转换的准备阶段和设置阶段。通过这种方式,IoHwAbs 或 CDD 可以避免轮询所有外设的状态以检查何时可以设置电源状态。 | | Use Case | -- | | Dependencies | -- | | Supporting Material | 概念提案 596:ECU 降级 | ⌋(RS_BRF_01952, RS_BRF_01184) ### 6.2 非功能需求(质量)(Non-Functional Requirements (Qualities)) **6.2.1 [SRS_IoHwAb_12339] IO 硬件抽象应为每个信号保证给定的最坏情况延迟时间** ⌈ | 字段 | 内容 | |---|---| | Type | Valid | | Description | IO 硬件抽象应为每个信号保证给定的最坏情况延迟时间。该时间可用于评估时间约束。 | | Rationale | 满足请求反应时间 | | Use Case | 大量时间约束,例如按下按钮后的反应 | | Dependencies | -- | | Supporting Material | -- | ⌋(RS_BRF_02168) --- ## 7 参考文献(References) ### 7.1 AUTOSAR 交付物(Deliverables of AUTOSAR) - **[1]** 分层软件架构,AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf - **[2]** 软件标准化模板,AUTOSAR_TPS_StandardizationTemplate.pdf --- ## 翻译说明 本文档为 AUTOSAR 4.4.0 版本 I/O 硬件抽象需求规范的中文翻译。保留了所有需求 ID(SRS_IoHwAb_xxxxx)、参考标识符及模块缩写。原始文档共 29 页,本翻译涵盖了全部章节内容。IO 硬件抽象层提供基于信号的接口,向上层抽象出 ECU 硬件的信号路径。