# ICU 驱动需求(Requirements on ICU Driver)
> **AUTOSAR CP Release 4.4.0**
## 文档元信息
| 字段 | 内容 |
|---|---|
| **文档标题** | ICU 驱动需求(Requirements on ICU Driver) |
| **文档所有者** | AUTOSAR |
| **文档责任方** | AUTOSAR |
| **文档标识号** | 112 |
| **文档状态** | 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 | 根据 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 | 作为独立文档发布。SRS SPAL V1.0.0 已被拆分为 12 个独立文档,以发布 2.0;移除了功能:硬件门控边缘计数、信号电平通知;批准了功能需求:时间戳、唤醒、边沿计数、获取经过信号时间、获取占空比输入值;新增了功能需求:重置已计数的边沿值 |
| 2005-05-31 | 1.0 | AUTOSAR Administration | 作为 SRS SPAL V1.0.0 的一部分初始发布 |
---
## 目录(Table of Contents)
1. [文档范围(Scope of document)](#1-文档范围)
2. [如何阅读本文档(How to read this document)](#2-如何阅读本文档)
- 2.1 [使用的约定(Conventions used)](#21-使用的约定)
- 2.2 [需求结构(Requirements structure)](#22-需求结构)
3. [缩略语与缩写(Acronyms and abbreviations)](#3-缩略语与缩写)
4. [功能概述(Functional Overview)](#4-功能概述)
- 4.1 [ICU 驱动(ICU Driver)](#41-icu-驱动)
5. [需求追踪(Requirements Tracing)](#5-需求追踪)
6. [需求规范(Requirement Specification)](#6-需求规范)
- 6.1 [功能需求(Functional Requirements)](#61-功能需求)
- 6.1.1 [ICU 驱动](#611-icu-驱动)
- 6.1.1.1 [配置(Configuration)](#6111-配置)
- 6.1.1.2 [初始化(Initialization)](#6112-初始化)
- 6.1.1.3 [正常运行(Normal Operation)](#6113-正常运行)
- 6.1.1.4 [关闭操作(Shutdown Operation)](#6114-关闭操作)
7. [参考文献(References)](#7-参考文献)
- 7.1 [相关标准与规范(Related standards and norms)](#71-相关标准与规范)
---
## 1 文档范围(Scope of document)
本文档规定了 ICU 驱动模块的需求。
### 约束(Constraints)
基础软件模块需求规范的首要范围是非安全相关系统。因此,安全需求被分配到中等优先级。
---
## 2 如何阅读本文档(How to read this document)
每个需求都有其唯一的标识符,以 "BSW"("Basic Software" 的缩写)前缀开头。对于任何审阅注释、评论或问题,请参考此唯一 ID 而不是章节或页码!
### 2.1 使用的约定(Conventions used)
- AUTOSAR 文档中需求的表示遵循 [5] 中指定的表。
- 在需求中,使用以下特定语义。
本文件中使用的关键字 "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"MAY" 和 "OPTIONAL" 应按照所示进行解释。请注意,它们所使用文档的需求级别会修改这些词的强制力。
- **MUST**:意味着该定义是规范的绝对要求。
- **MUST NOT**:意味着该定义是规范的绝对禁止。
- **SHOULD**:意味着在特定情况下可能存在忽略特定条目的有效理由。
- **SHOULD NOT**:意味着在特定情况下特定行为可能是可接受的甚至是有用的。
- **MAY**:意味着某个项目是真正可选的。
### 2.2 需求结构(Requirements structure)
每个模块特定章节包含基础软件模块的简短功能描述。同一类型的需求在每个章节内按以下标题分组(如果适用):
**功能需求(Functional Requirements):**
- 配置(Configuration)
- 初始化(Initialization)
- 正常运行(Normal Operation)
- 关闭操作(Shutdown Operation)
- 故障操作(Fault Operation)
**非功能需求(Non-Functional Requirements):**
- 时间需求(Timing Requirements)
- 资源使用(Resource Usage)
- 可用性(Usability)
---
## 3 缩略语与缩写(Acronyms and abbreviations)
| 术语 | 描述 |
|---|---|
| Circular buffer(循环缓冲区) | 用于通过在到达末尾后从缓冲区开头再次开始来存储连续数据流的内存区域。 |
| DIO | 数字输入输出(Digital Input Output) |
| Duty Cycle(占空比) | 高电平时间与周期时间的百分比。
(高电平时间 / 周期时间)× 100% |
| ECU | 电控单元(Electric Control Unit) |
| High Time(高电平时间) | 参见图"ICU 时间定义"。应使用标准类型 STD_HIGH。 |
| ICU | 输入捕获单元(Input Capture Unit) |
| ICU channel(ICU 通道) | 表示绑定到一个输入信号和配置的测量模式硬件资源的逻辑 ICU 实体。 |
| Linear buffer(线性缓冲区) | 用于通过从缓冲区开头开始并在最迟到达末尾时停止来存储数据流的内存区域。 |
| Low Time(低电平时间) | 参见图"ICU 时间定义" |
| MAL | 微控制器抽象层的旧名称(已被 MCAL 取代,因为 'MAL' 在法语中意为 'bad') |
| MCAL | 微控制器抽象层(Microcontroller Abstraction Layer) |
| MCU | 微控制器单元(Microcontroller Unit) |
| Measurement mode(测量模式) | 测量模式定义信号采集和评估的能力。可能的模式:
- 信号边沿检测/通知
- 信号测量
- 时间戳
- 边沿计数器 |
| Measurement mode, Edge counter | 边沿计数器的功能,对外部边沿进行计数 |
| Measurement mode, Signal Edge Detection | 信号边沿的通知 |
| Measurement mode, Signal Measurement | 测量输入信号的经过高电平时间、经过低电平时间、经过周期时间和占空比。 |
| Measurement mode, Timestamp | 为信号边沿生成时间戳,参见图"ICU 时间戳" |
| Period Time(周期时间) | 参见图"ICU 时间定义" |
| PWD | 脉冲宽度解调(Pulse width demodulation) |
| SPAL | 标准外设抽象层(Standard Peripheral Abstraction Layer) |
| 缩写 | 描述 |
|---|---|
| STD | 标准(Standard) |
| UNINIT | 未初始化(Uninitialized) |
由于这是面向专业人士的专业文档,其他所有术语均假定为已知。
---
## 4 功能概述(Functional Overview)
### 4.1 ICU 驱动(ICU Driver)
ICU 驱动控制微控制器的输入捕获单元。它提供以下功能:
- 周期、低、高时间测量
- 边沿检测和通知
- 边沿计数
- 边沿时间戳
- 唤醒中断
下图显示了捕获比较单元的典型关键资源:
```
Capture Timer 0
Notification Interrupts
f in x
Capture Timer 1
f in z
Capture Timer Notification Interrupts
Control
f in extern x
Capture Timer y
f in extern y
Notification Interrupts
Timer values
Signal 1 Capture Register 0
Notification Interrupts
Signal 2 Capture Register 1
Notification Interrupts
capture mode Capture Register 2
& edge Notification Interrupts
detection
control
Signal n Capture Register n
Notification Interrupts
```
对于信号边沿检测,使用捕获比较单元的边沿检测器或外部事件的中断控制器。
对于信号测量,需要捕获定时器和至少一个捕获寄存器。简单的信号边沿检测(不进行时间测量)也可以使用外部中断控制单元实现:
```
Signal m
level / edge Notification Interrupts
detection
&
Signal z interrupt
control Notification Interrupts
```
然而,不可屏蔽中断(NMI)不在本模块的范围内,因为没有可控制的内容。
```
High Time Low Time
Period Time
图:ICU 时间定义
```
```
0xFFFF
Timestamp
Timer
0
High
Input Signal
Low
t
Input Signal Timestamp
Level Timer
High 5461
Low 10922
High 22937
Low 32767
High 43690
Low 49151
High 58981
Low 6553
High 16383
```
**图 1:ICU 时间戳**
---
## 5 需求追踪(Requirements Tracing)
| 需求 | 描述 | 由...满足 |
|---|---|---|
| RS_BRF_01056 | AUTOSAR BSW 模块应提供标准化接口 | SRS_Icu_12429 |
| RS_BRF_01096 | AUTOSAR 应支持 ECU 的启动和关闭 | SRS_Icu_12407 |
| RS_BRF_01104 | AUTOSAR 应支持 ECU 和总线的睡眠和唤醒 | SRS_Icu_12408 |
| RS_BRF_01432 | AUTOSAR 服务应支持系统时间服务 | SRS_Icu_12430, SRS_Icu_12431, SRS_Icu_12434, SRS_Icu_12435, SRS_Icu_12436, SRS_Icu_12437, SRS_Icu_12442, SRS_Icu_12443, SRS_Icu_12444, SRS_Icu_12453, SRS_Icu_13100 |
| RS_BRF_01448 | AUTOSAR 服务应支持模式和状态管理 | SRS_Icu_12371 |
| RS_BRF_01488 | AUTOSAR RTE 和 BSW 应支持 ECU 启动、ECU 关闭(带重启)以及将 ECU 置于睡眠状态的标准化模式 | SRS_Icu_12370 |
| RS_BRF_01904 | AUTOSAR 微控制器抽象应提供对硬件定时器的访问 | SRS_Icu_12438 |
| RS_BRF_01968 | AUTOSAR IO 硬件抽象应支持边沿触发的 I/O 信号 | SRS_Icu_12369, SRS_Icu_12432, SRS_Icu_12433, SRS_Icu_12435, SRS_Icu_12436, SRS_Icu_12439, SRS_Icu_12442, SRS_Icu_12443 |
| RS_BRF_02200 | AUTOSAR 诊断应提供对内部配置和校准数据的外部访问 | SRS_Icu_12327, SRS_Icu_12368, SRS_Icu_12425 |
---
## 6 需求规范(Requirement Specification)
### 6.1 功能需求(Functional Requirements)
#### 6.1.1 ICU 驱动
##### 6.1.1.1 配置(Configuration)
**6.1.1.1.1 [SRS_Icu_12327] ICU 驱动应允许配置全局参数**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应允许配置以下参数:
- 时钟源及可选的预分频器(模块范围)
- MCU 硬件相关设置(仅 ICU 外设特定设置) |
| Rationale | 配置微控制器特定的 ICU 功能 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_02200)
**6.1.1.1.2 [SRS_Icu_12368] ICU 驱动应支持每个通道的基本静态配置**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应支持每个通道的以下基本静态配置:
**强制参数:**
- 通道的符号名称
- 通知函数
- 唤醒能力
**可选参数:**
- 信号源(配置的端口引脚或来自信号矩阵的输入)如果由硬件提供(如果可以选择多个源)
- 测量模式(如果可以选择多个模式):
- 信号边沿检测/通知
- 信号测量
- 时间戳
- 边沿计数器
- 如果测量模式是"时间戳测量",则缓冲区处理应可配置。值应为:
- 循环缓冲区处理
- 线性缓冲区处理
- 已分配的捕获寄存器(对于仅提供边沿检测(如外部中断)的通道也可以没有)
- 已分配的捕获定时器(对于仅提供边沿检测(如外部中断)的通道也可以没有)
- 其他硬件相关设置(例如毛刺滤波器、预分频器) |
| Rationale | 允许每个通道的不同用法 |
| Use Case | |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_02200)
**6.1.1.1.3 [SRS_Icu_12425] 对于每个 ICU 通道,可测量的"属性"应可配置**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | 对于每个 ICU 通道,可测量的"属性"应可配置,可用值(至少)为:
- 高电平
- 低电平
- 周期时间 |
| Rationale | 定义测量目的以在配置期间分配所需的硬件资源。 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_02200)
##### 6.1.1.2 初始化(Initialization)
**6.1.1.2.1 [SRS_Icu_12407] 在 ICU 驱动初始化后,所有通知都应被禁用**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | 在 ICU 驱动初始化后,所有通知都应被禁用。所有 ICU 通道状态应设置为 INACTIVE。
通道的唤醒能力在初始化后应被禁用。
所有使用的寄存器都应初始化(包括中断的待处理标志)。 |
| Rationale | ICU 通道的用户应负责启用/禁用通知。 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | |
⌋(RS_BRF_01096)
**6.1.1.2.2 [SRS_Icu_12429] ICU 驱动应提供将 ICU 通道反初始化为其上电复位状态的功能**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供将 ICU 通道反初始化为其上电复位状态的功能(不包括不可写的寄存器)。 |
| Rationale | 在可以进行有效初始化之前,有必要将所有硬件寄存器重置为相同的状态。否则上电复位后的初始化代码与模式更改后的初始化代码不同。 |
| Use Case | 在更改省电模式的内部时钟频率后,可能有必要使用有效的预分频器值初始化定时器模块。 |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01056)
##### 6.1.1.3 正常运行(Normal Operation)
**6.1.1.3.1 [SRS_Icu_12305] ICU 驱动应允许在运行时启用/禁用 ICU 通道的通知**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应允许在运行时启用/禁用 ICU 通道的通知。
对于每个选定通道,应提供以下选项:
- 禁用通知
- 在以下边沿启用通知(如果硬件支持):
- 上升沿
- 下降沿
- 两个边沿 |
| Rationale | 根据下一个预期边沿调整通知。 |
| Use Case | 霍尔传感器的边沿检测。
禁用通知可用于实现抗饱和机制,以避免在 ICU 中出现过多中断时危胁整个系统。 |
| Dependencies | -- |
| Supporting Material | -- |
⌋()
**6.1.1.3.2 [SRS_Icu_12369] ICU 驱动应在配置的信号边沿为 ICU 通道提供通知**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应在配置的信号边沿(上升/下降/两个边沿)为 ICU 通道提供通知,在以下配置中:
- 通知函数配置为非空指针
- 并且仅当通知被启用时 |
| Rationale | 信号边沿通知 |
| Use Case | 信号边沿检测 |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01968)
**6.1.1.3.3 [SRS_Icu_12370] ICU 驱动应提供选择睡眠模式的服务**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供选择睡眠模式的服务:
- 正常模式(强制)
- 睡眠模式
在正常模式下,所有通知均按配置可用。
在睡眠模式下,仅那些引起唤醒可用通知的中断可用。
所有其他中断被禁用,如果事件发生,必须不会导致退出 MCU 的降低功耗模式状态(例如 idle、halt)。 |
| Rationale | 允许启用/禁用 ECU 唤醒所需的所有中断。 |
| Use Case | 在进入 ECU 的降低功耗模式时,必须禁用 MCU 的所有中断,而不是在期间禁用唤醒源。否则可能丢失唤醒事件。 |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01488)
**6.1.1.3.4 [SRS_Icu_12371] ICU 驱动应提供返回 ICU 输入状态的同步服务**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供返回 ICU 输入状态的同步服务。
- 如果已检测到激活边沿,则此服务将返回 ACTIVE。一旦服务返回状态 ACTIVE,状态将被设置为 IDLE,直到检测到下一个边沿
- 如果未检测到激活边沿,则此服务将返回 IDLE |
| Rationale | 通知禁用时对输入的轮询访问 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01448)
**6.1.1.3.5 [SRS_Icu_12438] ICU 驱动应提供在可配置边沿捕获定时器值到外部缓冲区的功能**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供在可配置边沿(上升沿/下降沿/两个边沿)捕获定时器值到外部缓冲区的功能。
此功能应对测量模式为"Timestamp"的每个 ICU 通道可用。 |
| Rationale | -- |
| Use Case | 采集高频和非周期性传感器信号 |
| Dependencies | -- |
| Supporting Material | 参见图 1:ICU 时间戳 |
⌋(RS_BRF_01904)
**6.1.1.3.6 [SRS_Icu_12455] 如果配置了循环缓冲区处理,则在到达缓冲区末尾时,驱动应从外部缓冲区开头重新开始**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | 如果配置了循环缓冲区处理,则当捕获功能到达缓冲区末尾时,驱动从外部缓冲区开头重新开始。
此功能应对测量模式为"Timestamp"的每个 ICU 通道可用。 |
| Rationale | -- |
| Use Case | 高频连续数据采集 |
| Dependencies | -- |
| Supporting Material | 参见图 1:ICU 时间戳 |
⌋()
**6.1.1.3.7 [SRS_Icu_12456] 如果配置了线性缓冲区处理,则在到达缓冲区末尾时,驱动应停止捕获定时器值**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | 如果配置了线性缓冲区处理,则当捕获功能到达缓冲区末尾时,驱动停止捕获定时器值。
此功能应对测量模式为"Timestamp"的每个 ICU 通道可用。 |
| Rationale | -- |
| Use Case | 高频非连续数据采集 |
| Dependencies | -- |
| Supporting Material | 参见图 1:ICU 时间戳 |
⌋()
**6.1.1.3.8 [SRS_Icu_12430] ICU 驱动应提供在 ICU 通道上启动时间戳测量的异步服务**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供在 ICU 通道上启动时间戳测量的异步服务。传递的参数应为:
- ICU 通道
- 指向数据缓冲区的指针(时间戳和信号电平的目标)
- 数据缓冲区大小
- 通知间隔(事件)
此功能应对测量模式为"Timestamp"的每个 ICU 通道可用。 |
| Rationale | 配置和启用时间戳捕获 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432)
**6.1.1.3.9 [SRS_Icu_12431] ICU 驱动应提供取消 ICU 通道上时间戳测量的同步服务**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供取消 ICU 通道上时间戳测量的同步服务。传递的参数应为:
- ICU 通道
此功能应对测量模式为"Timestamp"的每个 ICU 通道可用。 |
| Rationale | 禁用时间戳捕获 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432)
**6.1.1.3.10 [SRS_Icu_12444] ICU 驱动应在已采集到所请求时间戳数量时提供通知**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应在已采集到所请求时间戳数量(通知间隔)时提供通知。
此功能应对测量模式为"Timestamp"的每个 ICU 通道可用。 |
| Rationale | 支持时间戳测量期间的通知汇总 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432)
**6.1.1.3.11 [SRS_Icu_12453] ICU 应提供时间戳索引服务**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供读取驱动的当前时间戳索引的同步服务。传递的参数应为:
- ICU 通道
此功能应对测量模式为"Timestamp"的每个 ICU 通道可用。 |
| Rationale | 读取缓冲区内的当前时间戳索引 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432)
**6.1.1.3.12 [SRS_Icu_12439] ICU 应计算信号的边沿**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供计算信号边沿的功能。
仅对配置的边沿进行计数(上升沿/下降沿/两个边沿)。
此功能应对测量模式为"Edge Counter"的每个 ICU 通道可用。 |
| Rationale | -- |
| Use Case | 计数高频事件。 |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01968)
**6.1.1.3.13 [SRS_Icu_12432] 边沿计数服务应在 ICU 通道上可用**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供在 ICU 通道上启用边沿计数的同步服务。传递的参数应为:
- ICU 通道
此功能应对测量模式为"Edge Counter"的每个 ICU 通道可用。 |
| Rationale | 基本功能。 |
| Use Case | 在定义的时间跨度内对边沿进行计数。 |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01968)
**6.1.1.3.14 [SRS_Icu_13100] 应能重置 ICU 通道已计数的边沿值**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供重置 ICU 通道已计数的边沿的同步服务。传递的参数应为:
- ICU 通道
此功能应对测量模式为"Edge Counter"的每个 ICU 通道可用。 |
| Rationale | 将计数的开始与已计数的边沿的重置分开。 |
| Use Case | 电动座椅定位的脉冲计数(如果座椅停止然后再次移动,应保留位置(等同于计数的边沿))。 |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432)
**6.1.1.3.15 [SRS_Icu_12433] ICU 通道上的边沿计数服务应被禁用**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供禁用 ICU 通道上边沿计数的同步服务。传递的参数应为:
- ICU 通道
此功能应对测量模式为"Edge Counter"的每个 ICU 通道可用。 |
| Rationale | 基本功能。 |
| Use Case | 在定义的时间跨度内对边沿进行计数。 |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01968)
**6.1.1.3.16 [SRS_Icu_12434] 应提供边沿计数读取服务**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供读取最后一次调用"启用 ICU 边沿计数服务"后已计数的边沿数的同步服务。传递的参数应为:
- ICU 通道
此功能应对测量模式为"Edge Counter"的每个 ICU 通道可用。 |
| Rationale | 在最后一次调用后读取已计数的边沿数 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432)
**6.1.1.3.17 [SRS_Icu_12442] 应为每个 ICU 通道提供经过的信号低电平时间**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供服务以获取每个配置为测量模式"Signal Measurement, Signal Low Time"的 ICU 通道的经过信号低电平时间。
经过时间在下降沿和通道的连续上升沿之间测量。 |
| Rationale | 获取经过的信号低电平时间 |
| Use Case | PWD |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432, RS_BRF_01968)
**6.1.1.3.18 [SRS_Icu_12435] 应为每个 ICU 通道提供经过的信号高电平时间**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供服务以获取每个配置为测量模式"Signal Measurement, Signal High Time"的 ICU 通道的信号高电平时间。
经过时间在上升沿和通道的连续下降沿之间测量。 |
| Rationale | -- |
| Use Case | PWD |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432, RS_BRF_01968)
**6.1.1.3.19 [SRS_Icu_12443] 应为 ICU 通道提供经过的周期时间**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供服务以获取每个配置为测量模式"Signal Measurement, Period Time"的 ICU 通道的经过周期时间。
经过时间在通道的两个连续上升(或下降)沿之间测量。 |
| Rationale | -- |
| Use Case | PWD |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432, RS_BRF_01968)
**6.1.1.3.20 [SRS_Icu_12436] 应提供 ICU 通道的高电平时间和周期时间**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供服务以获取每个配置为测量模式"Signal Measurement, Duty Cycle"的 ICU 通道的一致的高电平时间和周期时间。 |
| Rationale | 基本功能,服务提供用于占空比计算的值。正确的计算和缩放由 ICU 模块的用户完成。 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432, RS_BRF_01968)
**6.1.1.3.21 [SRS_Icu_12437] ICU 驱动的 API 服务内使用的所有时间单位应为 ticks 单位**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动的 API 服务内使用的所有时间单位应为 ticks 单位。 |
| Rationale | 微秒与 ticks 之间的转换应为 ECU 抽象层的一部分。 |
| Use Case | -- |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01432)
##### 6.1.1.4 关闭操作(Shutdown Operation)
**6.1.1.4.1 [SRS_Icu_12408] ICU 驱动应提供启用/禁用单个 ICU 通道唤醒能力的服务**
⌈
| 字段 | 内容 |
|---|---|
| Type | Valid |
| Description | ICU 驱动应提供启用/禁用单个 ICU 通道唤醒能力的服务。 |
| Rationale | 控制 MCU 的唤醒条件需要启用或禁用硬件中断,而不仅仅是某些通知条件。 |
| Use Case | 在错误情况下限制唤醒发生。 |
| Dependencies | -- |
| Supporting Material | -- |
⌋(RS_BRF_01104)
### 对其他功能的约束(Constrains to other functions)
**对模式管理的约束(Constrains to Mode Management):**
在唤醒条件之后,ECU 状态管理器应在调用 ICU 驱动的初始化服务之前处理唤醒信息。
---
## 7 参考文献(References)
- **[1]** 词汇表,AUTOSAR_TR_Glossary.pdf
- **[2]** 分层软件架构,AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
- **[3]** 基础软件的一般需求,AUTOSAR_SRS_BSWGeneral.pdf
- **[4]** SPAL 的一般需求,AUTOSAR_SRS_SPALGeneral.pdf
- **[5]** 软件标准化模板,AUTOSAR_TPS_StandardizationTemplate.pdf
### 7.1 相关标准与规范(Related standards and norms)
---
## 翻译说明
本文档为 AUTOSAR 4.4.0 版本 ICU 驱动软件需求规范的中文翻译。保留了所有需求 ID(SRS_Icu_xxxxx)、参考标识符及模块缩写。原始文档共 25 页,本翻译涵盖了全部章节内容。ICU 驱动提供周期、低、高时间测量、边沿检测/通知、边沿计数、边沿时间戳和唤醒中断等关键功能。