S32K3之看门狗(autosar框架中的watchdog)

news2024/11/27 2:24:39

参考链接:AUTOSAR软件架构 — MCAL Wdg模块解析(nxp为例)

1、注意点

在 autosar 规范中,系统必须能够实现自动喂狗,这就需要使用定时器来实现周期性的定时喂狗。
在实现自动喂狗功能时,需要注意定时器的频率与看门狗的超时时间相匹配,确保在规定的时间内完成喂狗任务。

2、软件看门狗和硬件看门狗区别

基于看门狗的实现逻辑,一般意义上我们可以将看门狗分为硬件看门狗与软件看门狗。

顾名思义,硬件看门狗就是通过硬件自身的机制来实现看门狗功能,其本质也是通过定时器原理来实现,只不过此时软件的角色仅仅是使能定时器,定时器自身的变化与更新由硬件自身完成;软件看门狗则是整个定时器的使能与更新完全由软件来做,当然软件也是通过定时器完成,只不过是间接方式。

硬件看门狗

如上所述,硬件看门狗依赖自身定时器来完成看门狗功能,俗称“硬狗”。常见的硬件看门狗比如MCU内部自带的看门狗,PMIC中内嵌的看门狗以及外部的独立看门狗等。

软件看门狗

软件看门狗如上所述,属于通过软件定时器的方式来实现看门狗功能,俗称“软狗”。软件看门狗的时间本质上也需要依赖硬件外设上的硬件定时器。

比如常见的我们会通过ostick的方式来进行记时功能,通过一个task运行软狗监控的定时器不断递减的主程序,其他task程序则是重置定时器,如果软件监控主程序某个task的定时器归零,那么此时可以便可以判断其他task并没有被正常的执行,此时便可以通过主动复位的方式来实现看门狗功能。

3、autosar规范中的看门狗

其实,针对上述软狗与硬狗相结合使用的应用场景,AUTOSAR架构也已经将其标准化考虑在整个Watchdog协议栈中来实现,因此在实际项目的开发过程中,大家可以通过以下的学习来进一步了解基于AUTOSAR的Watchdog协议栈工作原理与使用方法。

如下图3展示了AUTOSAR架构针对Watdog协议栈的软件层级拓扑关系图:
在这里插入图片描述
如上图3所示,在AUTOSAR架构下,Watchdog协议栈可以分为如下三个软件模块:

  • Watchdog Driver:用于实现针对硬件看门狗的寄存器操作与控制,可以分为MCU内部看门狗(Internal Watchdog)与外部看门狗(External Watchdog),该外部看门狗可以通过GPIO或者IIC或者SPI来实现喂狗;
  • Watchdog Interface:Watchdog If作为整个Watchdog Stack的一部分,其主要功能则是为了实现上层Watchdog Manager与底层Watchdog Driver的连接,当然其连接的底层Watchdog Driver可以存在多个,这在多核设计中较为常见。
  • Watchdog Manager: Watchdog Manger模块作为整个看门狗协议栈中的服务层,Watchdog Manager的主体功能就是为了负责整个程序执行的正确性,并触发相应的硬件看门狗的喂狗动作,扮演了整个监控的核心角色。

通过上述AUTOSAR架构下的三个模块便可以实现整个AUTOSAR Watchdog Stack的功能,接下来小T将针对这三个模块进行详细讲解,保证我们都能够对这三个模块有个较为清晰的认识与理解,更好的运用到实战中。

3.1、理解Watchdog Driver模块

该模块提供了初始化硬件看门狗,改变操作模式,设置触发看门狗喂狗方式等功能。同时,可以按照该看门狗是否位于芯片内部,可以将位于芯片内部的看门狗称为内部看门狗,位于芯片外部的看门狗称为外部看门狗。

不论是内部看门狗还是外部看门狗,对于Watchdog Driver而言其使用的看门狗驱动的API应始终保持一致。只不过内部看门狗而言,其驱动属于MCAL层,而对于外部看门狗则属于ECU硬件抽象层,该外部看门狗驱动需调用MCAL中其他驱动来实现喂狗动作,如GPIO,IIC或者SPI等驱动。

3.1.1、内部看门狗

内部看门狗由于其涉及到芯片内部本身,如果芯片本身硬件存在问题,可能会导致内部看门狗自身失效,从而出现自身难保的困境,所以从某种程度来讲,对于关键安全系统,仅使用内部看门狗显得并不安全,此时还是需要依赖于外部看门狗来保证其功能安全。

3.1.2、外部看门狗

外部看门狗是位于被保护芯片外部的看门狗,该看门狗可以是独立硬件看门狗,即该类看门狗仅提供看门狗功能,但是一般都是QM等级,还有一类便是集成在PMIC内部的看门狗,该类看门狗一般都可以达到ASIL B或者ASIL D功能安全等级要求。

外部看门狗对于关键安全系统而言,一般都是必需的,从某种意义上来讲,内部看门狗其实可有可无,外部看门狗才至关重要。

3.2、看门狗控制模式

在AUTOSAR架构中,针对Watchdog Driver而言,定义了看门狗控制模式存在如下三种模式:

  • Off Mode:表示看门狗关闭状态,对于关键安全系统,一般不能将其切换至Off状态,即一旦打开,将不能被关闭;
  • Slow Mode:表示看门狗的一个长时间喂狗窗口,该模式一般用于系统启动初始化过程中;
  • Fast Mode:表示看门狗的正常喂狗窗口喂狗模式,该模式运用在系统正常运行的过程中。

看门狗喂狗时序

如下图4所示为Watchdog初始化,触发看门狗喂狗以及改变看门狗模式的的三类函数调用场景。

  • Watchdog初始化:通过EcuM模块调用函数Wdg_Init来完成Watchdog的初始化配置;
  • 触发看门狗喂狗:通过WdgM模块调用WdgIf模块提供的函数WdgIf_SetTriggerCondition来触发底层驱动进行喂狗动作;
  • 改变看门狗模式:通过WdgM模块调用WdgIf模块提供的函数WdgIf_SetMode来实现看门狗模式的改变。

3.3、Watchdog If模块功能描述

Watchdog If模块全称为Watchdog Interface接口,该接口作为底层Watchdog Driver的抽象,是为了实现底层硬件与软件之间的解耦。

该模块的基本功能仅仅作为底层驱动的抽象层来实现底层看门狗驱动与上层看门狗管理模块的交互,底层看门狗驱动的特性,如窗口控制,时间周期等设置都不能通过Watchdog If模块来完成。

如果超过一个看门狗驱动被上层Watchdog Manager进行管理,那么DeviceIndex将需要被检查,如果出现错误,需要及时上报。

参考链接:一文轻松理解AUTOSAR之Watchdog协议栈(上)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1259757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux多路转接select,poll

文章目录 目录 文章目录 一、五种IO模型 1.阻塞IO: 2.非阻塞IO 3.信号驱动IO 4.IO多路转接 5.异步IO 二、高级IO的一些重要概念 1.同步通信和异步通信 2.阻塞和非阻塞 三、其他高级IO 四、非阻塞IO 1.fctl函数 2.实现setNoBlock函数,将文件描述符设置…

OSG编程指南<三>:利用Cmake+VS2019+OSG3.6.5编译osgVerse

目前osgearth的ralease版本和debugx64都已经编译过了并且自测可用,放到资源里osgearth下载,供需要的朋友下载参考。环境配置:win10VS2017OSG3.6.4OSGEarth2.10.2, 1、配置OSG环境 编译好osg,然后在系统变量中配置如下…

微服务--02--Nacos注册中心

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 服务注册和发现手动发送Http请求的方式存在问题注册中心原理 Nacos注册中心配置服务注册服务发现小结: 服务注册和发现 手动发送Http请求的方式存在问题…

windows中打开psql命令行

第一种方式 1.点击下方的psql,打开命令行窗口 2.中括号中的是默认值,直接回车就行 3.成功 第二种方式 双击安装目录中的执行文件 “D:\soft\postgresql\catalogue\scripts\runpsql.bat” 第三种方式 1.加到环境变量 把“D:\soft\postgresql\catalo…

Python爬虫入门课: 如何实现数据抓取 <文字 图片 音频 视频 文档..>

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 环境使用: Python 3.10 解释器 Pycharm 编辑器 模块使用: requests re csv pandas 爬虫实现第一步: 一. 抓包分析 找到对应数据链接地址 套用代码: 修改…

创建JDK8版本的SpringBoot项目的方法

截止到2023.11.24,SpringBoot不再支持3.0X之前的版本,3.0X之后的版本所对应的JDK版本为JDK17,下面介绍如何在idea上继续使用JDK8的版本。 一.通过阿里云下载 https://start.aliyun.com/https://start.aliyun.com/ 点击高级选项进行详细设置…

centos 显卡驱动安装(chatglm2大模型安装步骤一)

1.服务器配置 服务器系统:Centos7.9 x64 显卡:RTX3090 (24G) 2.安装环境 2.1 检查显卡驱动是否安装 输入命令:nvidia-smi(显示显卡信息) 如果有以下显示说明,已经有显卡驱动。否则需要重装。 2.2 下载显卡驱动 第一步:浏览器输入https://www.nvidia.cn/Downloa…

20231127让RK3399的挖掘机开发板在Andorid12系统下休眠唤醒之后禁止锁屏

20231127让RK3399的挖掘机开发板在Andorid12系统下休眠唤醒之后禁止锁屏 2023/11/27 20:55 适用于SOC以及系统版本: RK3399:Android10/11/12 RK3568:Android11/12 RK3588:Android12 当RK3399平台的Android12系统在休眠之后&#x…

SpringBoot定时任务报错Unexpected error occurred in scheduled task原因及其解决方法(亲测有效)

问题 spring boot项目在线上一直正常运行没有错误,然后今天发生了报错,如图 这是一个定时器错误,发生这个报错 主要有两个原因 定时器编写的有错误Scheduled注解方式级别高于资源注入级别,导致了资源注入失败 以下是我的代码 …

企业如何保障跨境金融业务中的数据安全传输?

随着全球化的不断深入,跨境金融业务日益频繁,然而在这些业务中,数据的安全传输一直是企业面临的重大挑战。跨境业务数据传输可能会遇到多种困难,如网络攻击、数据泄露、通信故障等。因此,企业需要采取有效的措施来确保…

centos7 keepalived 探测哪个是当前节点

前提 nginx 默认页面内容中需要加上各节点的ip nginx web页面修改 nginx配置文件路径:/etc/nginx/nginx.conf,该配置文件引用了/etc/nginx/conf.d/default.conf 打开/etc/nginx/conf.d/default.conf配置文件可以看到html页面的路径 /usr/share/nginx…

判断二进制最低位数字

在二进制表示中,偶数的最低位(最右边一位)始终为0,而奇数的最低位始终为1。 当一个数与1进行按位与运算时,实际上是在检查该数的最低位是0还是1。 如果结果为0,则说明这个数是偶数,因为偶数的…

中文编程开发工具高级版全部构件工具箱列表,中文编程自由版下载

中文编程开发工具高级版全部构件工具箱列表,中文编程自由版下载 附:中文编程工具构件工具箱总共22组305个构件,构件明细如下:文本件16个: (普通标签,连接标签,闪动标签,立…

nodejs+vue+elementui网上家电家用电器数码商城购物网站 多商家

基于vue.js的恒捷网上家电商城系统根据实际情况分为前后台两部分,前台部分主要是让用户购物使用的,包括用户的注册登录,查看公告,查看和搜索商品信息,根据分类定位不同类型的商品,将喜欢的商品加入购物车&a…

搭建Appium工具环境

1、安装Java Development Kit(JDK) 前往Oracle官网下载JDK。 在https://www.oracle.com/java/technologies/javase-jdk11-downloads.html 找到最新版本的JDK。根据操作系统选择适合的版本,并根据指示下载安装程序。 安装JDK。运行下载的安…

Django整合回顾

web应用 什么是web:通过web访问web应用程序,很方便,用户只需要一个浏览器即可。是典型的浏览器/服务器端架构的产物 cs架构与bs架构 应用程序有C/S B/S两种模式:b/s 本质上还是c/s mysql属于c/s架构,只是我们的服务…

《金融科技行业2023年专利分析白皮书》发布——科技变革金融,专利助力行业发展

金融是国民经济的血脉,是国家核心竞争力的重要组成部分,金融高质量发展成为2023年中央金融工作的重要议题。《中国金融科技调查报告》中指出,我国金融服务业在科技的助力下,从1.0时代的“信息科技金融”、2.0时代的“互联网金融”…

【电路笔记】-电阻器颜色代码与阻值计算

电阻器颜色代码与阻值计算 文章目录 电阻器颜色代码与阻值计算1、概述2、计算电阻器颜色代码值3、贴片电阻器 电阻器颜色编码使用色带轻松识别电阻器的电阻值及其百分比容差。 1、概述 由于有许多不同类型的电阻器可用,我们需要形成电阻器颜色代码系统以便能够识别…

常见面试题-Netty中ByteBuf类

了解 Netty 中的 ByteBuf 类吗? 答: 在 Java NIO 编程中,Java 提供了 ByteBuffer 作为字节缓冲区类型(缓冲区可以理解为一段内存区域),来表示一个连续的字节序列。 Netty 中并没有使用 Java 的 ByteBuff…

计算机毕业设计|基于SpringBoot+MyBatis框架的仿天猫商城购物系统设计与实现

计算机毕业设计|基于SpringBootMyBatis框架的仿天猫商城购物系统设计与实现 迷你仿天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物…