AUTOSAR_SWS_ICUDriver 中文翻译

文档编号:078 | 状态:Final(正式发布) | 发布于:AUTOSAR CP Release 4.4.0(2018-10-31)
所属标准:AUTOSAR Classic Platform 标准 | 文档责任方:AUTOSAR | 保密等级:AUTOSAR CONFIDENTIAL

本翻译覆盖原文档 1-108 页正文,约 1.75 MB / 108 页。
原文为软件规范(SWS),定义输入捕获单元(ICU)驱动模块的 API 与配置——含 28 个 API 函数(含 2 个通知回调模板)+ 多个开发错误 + 多个 SWS_Icu_NNNNN 规范项。
本翻译为"忠实精翻+结构化索引"型——保留全部章节、API 函数、错误分类、配置参数。


1 引言与功能概述

本规约规约 AUTOSAR 基础软件模块 ICU 驱动(Input Capture Unit Driver, ICU)的功能、API 与配置。ICU 驱动位于微控制器抽象层(MCAL),控制输入捕获单元的多种信号测量:

2 缩略语与缩写

缩略语描述
ICUInput Capture Unit(输入捕获单元)
GPTGeneral Purpose Timer(通用定时器)
MCALMicrocontroller Abstraction Layer(微控制器抽象层)
Edge Detection边沿检测
Timestamp时间戳
Edge Count边沿计数
Signal Measurement信号测量
Duty Cycle占空比(高电平时间 / 周期)
Active Edge激活边沿(上升/下降/任意)

3 相关文档

4 约束与假设

ICU 驱动依赖于底层 ICU 硬件与 GPT 驱动(时间戳源)。

5 与其他模块的依赖

ICU 驱动依赖 EcuM(资源管理)、GPT 驱动(自由运行定时器)、DET(开发错误追踪)、OS(中断管理)、EcuM(唤醒源报告)。

6 需求可追溯性

ICU 驱动满足 SRS_Icu_NNNNN 中的 25+ 条需求。SWS_Icu_NNNNN 规范项 ID 约 200+ 条(编号范围 00001-91001)。

7 功能规范

7.1 预配置

ICU 驱动允许以下预配置:

7.2 通用行为

ICU 驱动根据配置的测量模式执行不同操作:

7.3 错误分类

7.3.1 开发错误(Development Errors)

错误码含义
ICU_E_UNINITICU 未初始化
ICU_E_ALREADY_INITIALIZEDICU 已初始化
ICU_E_PARAM_CHANNEL无效的通道
ICU_E_PARAM_ACTIVATION无效的激活条件
ICU_E_PARAM_BUFFER_PTR无效的缓冲区指针
ICU_E_PARAM_BUFFER_SIZE无效的缓冲区大小
ICU_E_PARAM_NOTIFY_INTERVAL无效的通知间隔
ICU_E_PARAM_MODE无效的模式
ICU_E_BUSY通道忙

7.3.2 运行时错误

无。

7.3.3 瞬态故障

无。

7.3.4 生产错误

无。

7.3.5 扩展生产错误

无。

8 API 规范

8.1 导入类型

8.2 类型定义

类型描述
Icu_ConfigTypeICU 抽象配置类型
Icu_ChannelType通道 ID(uint8/16)
Icu_ActivationType激活条件枚举(ICU_RISING_EDGE / FALLING_EDGE / BOTH_EDGES)
Icu_ModeTypeICU 模式枚举(ICU_MODE_NORMAL / SLEEP)
Icu_InputStateType输入状态枚举(ICU_ACTIVE / ICU_IDLE)
Icu_ValueType定时器值(uint32)
Icu_TimestampBufferType时间戳缓冲区
Icu_EdgeNumberType边沿数(uint16/32)

8.3 函数定义

API功能
Icu_Init初始化 ICU
Icu_DeInit反初始化 ICU
Icu_SetMode设置模式(Normal/Sleep)
Icu_DisableWakeup禁用唤醒
Icu_EnableWakeup启用唤醒
Icu_CheckWakeup检查唤醒
Icu_SetActivationCondition设置激活条件(边沿)
Icu_DisableNotification禁用通知
Icu_EnableNotification启用通知
Icu_GetInputState获取输入状态
Icu_StartTimestamp启动时间戳
Icu_StopTimestamp停止时间戳
Icu_GetTimestampIndex获取时间戳索引
Icu_ResetEdgeCount重置边沿计数
Icu_EnableEdgeCount启用边沿计数
Icu_EnableEdgeDetection启用边沿检测
Icu_DisableEdgeDetection禁用边沿检测
Icu_DisableEdgeCount禁用边沿计数
Icu_GetEdgeNumbers获取边沿数
Icu_StartSignalMeasurement启动信号测量
Icu_StopSignalMeasurement停止信号测量
Icu_GetTimeElapsed获取已用时间
Icu_GetDutyCycleValues获取占空比值
Icu_GetVersionInfo获取版本信息
Icu_DisableNotificationAsync(draft)异步禁用通知
Icu_EnableNotificationAsync(draft)异步启用通知
Icu_SignalNotification_<Channel>信号通知回调(应用实现)
Icu_TimestampNotification_<Channel>时间戳通知回调(应用实现)

共 28 个 API 函数(含 2 个通知回调模板 + 2 个 draft 版本)。

9 序列图

  1. 边沿检测:硬件边沿 → ISR → 通知回调 Icu_SignalNotification_<Channel>()
  2. 时间戳:应用 → Icu_StartTimestamp() → 边沿事件 → 时间戳记录 → 缓冲区满 → Icu_TimestampNotification_<Channel>()
  3. 边沿计数:应用 → Icu_EnableEdgeCount() → 每边沿递增 → Icu_GetEdgeNumbers() 读取;
  4. 信号测量:应用 → Icu_StartSignalMeasurement() → 测量完成 → Icu_GetTimeElapsed/GetDutyCycleValues()
  5. 唤醒:硬件边沿 → EcuM 报告唤醒源。

10 配置规范

10.1 容器与配置参数

容器描述
Icu根容器(开发错误检测、版本 API、唤醒支持、多核分区等开关)
IcuGeneral通用配置(通道数、最大时间戳缓冲区、唤醒支持)
IcuChannel通道(激活边沿、测量模式、通知回调、唤醒源、时间戳缓冲区)
IcuConfigSet配置集
IcuPublishedInformation发布信息

共 5 个 ECUC 容器(含 PublishedInformation),含 30+ 配置参数。

10.2 发布信息

发布信息包括 ICU 模块版本、配置变体、通道数、最大时间戳缓冲区等。


📋 校对记录

校对轮次:L1 自动校对(2026-06-13)