本文档规约 AUTOSAR 基础软件模块看门狗接口(WdgIf)的功能、API 与配置。
WdgIf 模块位于 ECU 抽象层(ECU Abstraction Layer),为上层 WdgM(看门狗管理器)模块提供对底层 WDG 驱动的统一抽象访问。WdgIf 不直接操作看门狗硬件;它将 WdgM 的请求转发给对应的 WDG 驱动实例。
WdgIf 支持多个 WDG 驱动实例——一个 ECU 可有多个看门狗设备(内部 + 外部),WdgIf 提供设备索引(DeviceIndex)参数以区分。
| 缩略语 | 描述 |
|---|---|
| API | Application Programming Interface(应用程序编程接口) |
| BSW | Basic Software(基础软件) |
| DET | Default Error Tracer(默认错误追踪器) |
| ECU | Electronic Control Unit(电子控制单元) |
| MCAL | Microcontroller Abstraction Layer(微控制器抽象层) |
| WDG | Watchdog(看门狗) |
| WDGIF | Watchdog Interface(看门狗接口) |
| WDGM | Watchdog Manager(看门狗管理器) |
AUTOSAR_SRS_WatchdogDriver — 看门狗驱动需求AUTOSAR_SRS_BSWGeneral — 基础软件通用需求N/A
AUTOSAR_SWS_WatchdogDriver — 看门狗驱动规范AUTOSAR_SWS_WatchdogManager — 看门狗管理器规范WdgIf 是抽象层;不直接访问硬件。
WdgIf 适用于所有汽车域。
WdgIf.c # 主源文件
WdgIf_Lcfg.c # Link-time 配置
WdgIf 应使用 WdgIf_GetVersionInfo() 报告其版本号。集成商应检查版本一致性。
本 SWS 中所有 SWS_WdgIf_NNNNN 需求均链接到上游 AUTOSAR_SRS_WatchdogDriver 中的 SRS_Wdg_NNNNN 需求。详细追溯表见原文 11-17 页(28+ 个 SWS_WdgIf_NNNNN 需求)。
WdgIf 的设计原则:
Wdg_SetMode() 前先调用 WdgIf_SetMode();| 错误码 | 值 | 含义 |
|---|---|---|
WDGIF_E_INV_DEVICE_INDEX | 0x01 | 无效的设备索引 |
WDGIF_E_PARAM_MODE | 0x02 | 无效的模式参数 |
无。
无。
无。
无。
Std_ReturnType(来自 Std_Types.h)Std_VersionInfoType(来自 Std_Types.h)typedef enum {
WDGIF_FAST_MODE = 0,
WDGIF_SLOW_MODE = 1,
WDGIF_OFF_MODE = 2
} WdgIf_ModeType;
Std_ReturnType WdgIf_SetMode(uint8 DeviceIndex, WdgIf_ModeType Mode);
说明:设置指定 WDG 设备的操作模式。WdgIf 转发该请求到对应的 WDG 驱动 Wdg_SetMode()。
参数:
DeviceIndex:WDG 设备索引(0..WdgIfMaxDeviceIndex);Mode:目标模式。返回:E_OK 成功;E_NOT_OK 失败。
错误:
WDGIF_E_INV_DEVICE_INDEX:DeviceIndex 越界;WDGIF_E_PARAM_MODE:Mode 无效。Std_ReturnType WdgIf_SetTriggerCondition(uint8 DeviceIndex, uint16 Timeout);
说明:设置指定 WDG 设备的触发条件(timeout)。WdgIf 转发到 Wdg_SetTriggerCondition()。
参数:
DeviceIndex:WDG 设备索引;Timeout:新 timeout 值。返回:E_OK 成功;E_NOT_OK 失败。
错误:
WDGIF_E_INV_DEVICE_INDEX:DeviceIndex 越界。#if (WDGIF_VERSION_INFO_API == STD_ON)
void WdgIf_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
#endif
说明:返回 WdgIf 驱动的版本信息。
参数:
VersionInfoPtr:指向 Std_VersionInfoType 结构的指针。无(WdgIf 无回调)。
序列图 9.1 描述 WdgM 通过 WdgIf 操作 WDG 驱动的流程:
WdgIf_SetMode() 或 WdgIf_SetTriggerCondition();WdgIf 配置容器:
| 配置参数 | 类型 | 范围 | 描述 |
|---|---|---|---|
| WdgIfDevErrorDetect | Boolean | true/false | 开发错误检测开关 |
| WdgIfMaxDeviceIndex | Integer | 0..255 | 最大 WDG 设备索引 |
| WdgIfVersionInfoApi | Boolean | true/false | WdgIf_GetVersionInfo() API 开关 |
| WdgIfEcucPartitionRef | Reference | EcucPartition | ECU 分区引用 |
本节列出来自上游 AUTOSAR_SRS_WatchdogDriver 但在本 SWS 中不直接对应的需求(标 N/A)。WdgIf 本身无具体需求不被应用——它纯粹是 WDG 驱动的抽象层。
校对轮次:L1 自动校对(2026-06-13)
WdgIf_SetMode()、WdgIf_SetTriggerCondition()、WdgIf_GetVersionInfo()(带 #if WDGIF_VERSION_INFO_API == STD_ON 条件编译);每个 API 含完整签名、参数、返回、错误码说明。WDGIF_E_INV_DEVICE_INDEX=0x01/PARAM_MODE=0x02 完整翻译。WdgIfDevErrorDetect/WdgIfMaxDeviceIndex/WdgIfVersionInfoApi/WdgIfEcucPartitionRef 共 4 项。SRS_WdgIf_* → 上游 SRS_Wdg_*);2 个相关 SWS 规范(Wdg Driver、Wdg Manager)。