WdgIf产品参考手册

缩写词注解

缩写词

英文全称

中文解释

API

Application Programming Interface

应用程序接口

HW

Hardware

硬件

SW

Software

软件

WDG

Watchdog

看门狗

WdgM

Watchdog Manager

看门狗管理器

WdgIf

Watchdog Interface

看门狗接口

SE

Supervision Entity

监督实体

CP

CheckPoint

监控点

DEM

Diagnostic Event Manager

诊断事件管理器

DET

Default Error Tracer

默认错误跟踪器

OS

Operating System

操作系统

BSW

Basic Software

基础软件

MCU

Microcontroller Unit

微控制器

MPU

Memory Protection Unit

内存保护单元

STM

System Timer

系统定时器

GTM

Generic Timer Module

通用定时器模块

MCAL

Microcontroller Abstraction Layer

微控制器抽象层

MISRA

The Motor Industry Software

Reliability Association

电 机工业软件可靠性协会

TCL

Tool Confidence Level

工具置信度等级

SEOOC

Safety Element out of Context

无运用场景的安全组件

简介

看门狗硬件实际上是一个特殊的定时器,当定时周期到达时,会发出溢出脉冲,从而引起整个板子的复位。在程序中使用时需要适当的插入一些看门狗定时器复位指令,从而保证程序正常运行时看门狗不溢出。当程序运行出现异常情况时,看门狗会因为长时间未运行复位指令引起定时器超时,从而产生溢出脉冲,通过 RESET 引脚对硬件进行复位。

WDG协议栈是 AUTOSAR 标准里的基本基础软件之一。其原理是 WDG 运行期间如果不定时喂狗,WDG 就会使系统复位,这就保证整个系统良好运行,不会出现死循环、死锁或者某个程序一直占用资源不释放的情况。WDG 可提供给用户自己设置的在不喂狗的情况下最大的不复位时间,可设置多种模式,如果硬件支持,可设置进入睡眠模式。

WdgIf是AUTOSAR的一个基础软件模块,WdgIf模块为访问Watchdog Driver提供统一的服务,包括看门狗启动和模式切换等。

ORIENTAIS WDG使用静态配置和动态管理将其功能集成到相关对象中。对象之间的相互调用是通过相关接口实现的。ORIENTAIS WDG设计目标是为了设计一个安全的看门狗管理和实体监督协议栈,遵循ISO26262:2018功能安全所约束条件,目前ORIENTAIS WDG现已通过 TÜV Rheinland的ISO 26262 ASIL D的产品认证。ORIENTAIS WDG的架构如下图所示,其中WdgIf位于板载设备抽象层。

|C:\\Users\\f\\AppData\\Local\\Temp\\ksohtml9144\\wps1.png|图1-1 ORIENTAIS-WDG协议栈软件架构

参考资料

[1] AUTOSAR_SWS_WatchdogInterface.pdf,R19-11

[2] AUTOSAR_SWS_WatchdogDriver.pdf, R19-11

[3] AUTOSAR_SWS_BSWModeManager.pdf, R19-11

[4] AUTOSAR_SWS_DefaultErrorTracer.pdf, R19-11

功能描述

WdgIf功能

WdgIf功能介绍

|C:\\Users\\f\\AppData\\Local\\Temp\\ksohtml9144\\wps2.png|WdgIf模块为Watchdog看门狗协议栈的中间层,提供了对底层看门狗驱动程序的服务的统一访问,如模式切换和设置触发条件。Watchdog结构层次如下图所示。

图2‑1 Watchdog层次结构图

层次

作用

WdgM

WdgM模块为Watchdog的顶层,为用户提供API应用的接口

WdgIf

WdgM管理多个Watchdog Driver的中间抽象层。

Wdg

Watchdog的底层硬件驱动

表2‑1 Watchdog层次结构说明

WdgIf功能实现

WdgIf实现WdgM对多Watchdog Driver的管理,将WdgM的指令下发到对应的Watchdog Driver。

WdgIf接口不能为Wdg Driver增加功能。除此之外,WdgIf不会从看门狗属性中抽象出来,比如看门狗模式切换或者设置窗口模式以及超时时间等,其不隐藏底层看门狗驱动程序和看门狗硬件的任何功能。

源文件描述

表3-1 WdgIf组件文件描述

文件

说明

WdgIf.c

WdgIf源文件

WdgIf.h

WdgIf头文件

WdgIf.MemMep.h

WdgIf的内存映射定义

WdgIf _Types.h

WdgIf的数据类型定义

image1

图3-1 WdgIf组件文件交互关系图

API接口

类型定义

WdgIf_ModeType类型定义

名称

WdgIf_ModeType

类型

Enumeration

范围

WDGIF_OFF_MODE = 0

WDGIF_SLOW_MODE = 1

WDGIF_FAST_MODE = 2

描述

用于WdgIf模块内部模式切换的数据类型

输入函数描述

输入模块

API

Wdg

Wdg_SetMode

Wdg

Wdg_SetTriggerCondition

Det

Det_ReportError

静态接口函数定义

WdgIf_SetMode函数定义

函数名称:

WdgIf_SetMode

函数原型:

Std_ReturnType WdgIf_SetMode

(

uint8 DeviceIndex,

WdgIf_ModeType WdgMode

);

服务编号:

0x01

同 步/异步:

同步

是 否可重入:

不可重入

输入参数:

DeviceIndex:看 门狗驱动程序实例的标识符索引

值 域 :

0-255

WdgMode:看门狗驱动程序的模式

值 域 :

WDGIF_OFF_MODE

WDGIF_SLOW_MODE

WDGIF_FAST_MODE

输入 输出参数:

输出参数:

返回值:

E_OK:API接口请求成功

E_NOT_OK:API接口请求失败

功能概述:

将服务API接 口WdgIf_SetMode映射到相应的看 门狗驱动程序的服务Wdg_SetMode

WdgIf_SetTriggerCondition函数定义

函数名称:

WdgIf_SetTriggerCondition

函数原型:

void WdgIf_SetTriggerCondition

(

uint8 DeviceIndex,

uint16 Timeout

);

服务编号:

0x02

同步/异步:

同步

是 否可重入:

不可重入

输入参数:

Devic eIndex:看门狗驱动程序实例的标识符索引

值 域:

0-255

Timeout:设置触发计数器的超时时间值

值 域:

0- 65535

输入 输出参数:

输出参数:

返回值:

功能概述:

将服务API接口WdgIf _SetTriggerCondition映射到相应的看门狗 驱动程序的服务Wdg_SetTriggerCondition

WdgIf_GetVersionInfo函数定义

函数名称:

WdgIf_GetVersionInfo

函数原型:

void WdgIf_GetVersionInfo

(

Std_VersionInfoType *versioninfo

);

服务编号:

0x02

同步/异步:

同步

是 否可重入:

不可重入

输入参数:

输入 输出参数:

输出参数:

Versioninfo:保存版本信息的结构体地址

值 域:

返回值:

功能概述:

获取WdgIf模块版本信息。需宏开启该功能

可配置函数定义

TriggerConditionFunction函数定义

函数名称:

TriggerConditionFunction

函数原型:

void TriggerConditionFunction

(

uint8 DeviceIndex,

uint16 Timeout

);

服务编号:

同步/异步:

同步

是 否可重入:

不可重入

输入参数:

Devic eIndex:看门狗驱动程序实例的标识符索引

值 域:

0-255

Timeout:设置触发计数器的超时时间值

值 域:

0- 65535

输入 输出参数:

输出参数:

返回值:

功能概述:

用于设置触发器计数器的 超时值(毫秒),可能不用于外部看门狗设备

SetModeFunction函数定义

函数名称:

SetModeFunction

函数原型:

Std_ReturnType SetModeFunction

(

uint8 DeviceIndex,

WdgIf_ModeType WdgMode

);

服务编号:

同 步/异步:

同步

是 否可重入:

不可重入

输入参数:

DeviceIndex:看 门狗驱动程序实例的标识符索引

值 域 :

0-255

WdgMode:看门狗驱动程序的模式

值 域 :

WDGIF_OFF_MODE

WDGIF_SLOW_MODE

WDGIF_FAST_MODE

输入 输出参数:

输出参数:

返回值:

E_OK:API接口请求成功

E_NOT_OK:API接口请求失败

功能概述:

用于设置看门狗的工 作模式,包括WDGIF_OFF_MODE、

WDGIF_FAST_MODE和WD GIF_SLOW_MODE。对于外部看门狗 设备,WDGIF_FAST_MODE和WDGIF_ SLOW_MODE可能合并为正常模式。

配置

WdgIfGeneral配置

image2

图5-1 WdgIf模块的General容器配置图

表5-1 WdgIf模块的General容器配置表

UI 名称

描述

W dgIfDe vError Detect

取值范围

STD_ON,STD_OFF

默 | 认 | 取 | 值 |




S T D _ O F F

参数描述

是 否开启配置出错检测。 若开启,一旦检测到配 置出错,则代码停留在 故障出错位置。量产用 代码,需关闭该配置。

依赖关系

依赖于DET模块的配置

W dgIfVe rsionI nfoApi

取值范围

STD_ON,STD_OFF

默认取值

STD_OFF

参数描述

是否在编译时 ,查看配置文件,源文 件的版本信息是否一致

依赖关系

WdgIfH eaderF ileInc lusion

取值范围

下拉选项或勾选

默认取值

参数描述

包含所 用C回调声明的WdgIf模 块所包含的头文件名称

依赖关系

依赖于 Wdg驱动程序模块的配置

WdgIfInternalDevice配置

image3

图5-2 WdgIf模块内部看门狗设备的配置图

表5-2 WdgIf模块内部看门狗设备的配置表

UI 名称

描述

WdgI fDevic eIndex

取值范围

0…65535

默 | 认 | 取 | 值 |

0

参数描述

表示看门狗接口ID,以 便被看门狗管理器引用

依赖关系

依 赖于Wdg驱动程序的配置

Trigge rCondi tionFu nction

取值范围

字符串(函数名称)

默认取值

NULL_PTR

参数描述

该参数是 用于设置触发器计数器 的超时值(毫秒),可能 不用于外部看门狗设备

依赖关系

依 赖于Wdg驱动程序的配置

Set ModeFu nction

取值范围

字符串(函数名称)

默认取值

NULL_PTR

参数描述

该参数为 看门狗模式,包括WDGI F_OFF_MODE(0)、WDGIF_ FAST_MODE(1)和WDGIF_S LOW_MODE(2)。对于外部 看门狗设备,WDGIF_FA ST_MODE和WDGIF_SLOW_M ODE可能合并为正常模式

依赖关系

依 赖于Wdg驱动程序的配置

Wd gIfDri verRef

取值范围

下拉选项或引用

默认取值

参数描述

引用底层 设备Wdg驱动程序的索引

依赖关系

依 赖于Wdg驱动程序的配置

WdgIfExternalDevice配置

image4

图5-3 WdgIf模块外部看门狗设备的配置图

表5-3 WdgIf模块外部看门狗设备的配置表

UI 名称

描述

WdgI fDevic eIndex

取值范围

0…65535

默 | 认 | 取 | 值 |

0

参数描述

表示看门狗接口ID,以 便被看门狗管理器引用

依赖关系

依 赖于Wdg驱动程序的配置

Trigge rCondi tionFu nction

取值范围

字符串(函数名称)

默认取值

NULL_PTR

参数描述

该参数是 用于设置触发器计数器 的超时值(毫秒),可能 不用于外部看门狗设备

依赖关系

依 赖于Wdg驱动程序的配置

Set ModeFu nction

取值范围

字符串(函数名称)

默认取值

NULL_PTR

参数描述

该参数为 看门狗模式,包括WDGI F_OFF_MODE(0)、WDGIF_ FAST_MODE(1)和WDGIF_S LOW_MODE(2)。对于外部 看门狗设备,WDGIF_FA ST_MODE和WDGIF_SLOW_M ODE可能合并为正常模式

依赖关系

依 赖于Wdg驱动程序的配置