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的数据类型定义 |
图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配置
图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配置
图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配置
图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驱动程序的配置 |