驻马店网站建设公司/宁波seo

驻马店网站建设公司,宁波seo,兰州网站建设网站建设,贵阳专业做网站公司AUTOSAR WatchdogDriver模块详解 AUTOSAR MCAL层看门狗驱动模块详细解析 目录 1. 模块概述2. 架构位置 2.1. 组件架构 3. 主要功能4. API接口5. 配置参数 5.1. 配置模型 6. 错误代码7. 状态管理 7.1. 状态机 8. 处理流程 8.1. 活动流程 9. 操作序列 9.1. 典型操作序列 10. 硬件…

AUTOSAR WatchdogDriver模块详解

AUTOSAR MCAL层看门狗驱动模块详细解析

目录

  • 1. 模块概述
  • 2. 架构位置
    • 2.1. 组件架构
  • 3. 主要功能
  • 4. API接口
  • 5. 配置参数
    • 5.1. 配置模型
  • 6. 错误代码
  • 7. 状态管理
    • 7.1. 状态机
  • 8. 处理流程
    • 8.1. 活动流程
  • 9. 操作序列
    • 9.1. 典型操作序列
  • 10. 硬件抽象
  • 11. 安全考虑
  • 12. 与其他模块的关系

1. 模块概述

WatchdogDriver (Wdg) 是AUTOSAR标准中的一个MCAL层模块,负责管理和控制微控制器的看门狗硬件。看门狗是一种安全机制,用于在软件异常时重置系统,确保系统能够从故障状态恢复。


2. 架构位置

  • 层级:MCAL (微控制器抽象层)
  • 上层接口:通过WdgIf (看门狗接口) 与上层模块通信
  • 主要调用者WdgM (看门狗管理器)
  • 依赖模块Det (开发错误跟踪),Dem (诊断事件管理器)

2.1. 组件架构

WatchdogDriver在AUTOSAR架构中的位置及其与其他模块的关系如下图所示:
在这里插入图片描述

从上图可以看出,WatchdogDriver模块位于MCAL层,通过WdgIf与上层的WdgM模块进行交互。该模块主要包含以下组件关系:

  1. 上层关系

    • 应用软件组件通过WdgM调用看门狗功能
    • WdgM通过WdgIf调用WatchdogDriver的API
  2. 同层关系

    • Det模块交互,用于报告开发错误
    • Dem模块交互,用于报告诊断事件
  3. 下层关系

    • 内部看门狗驱动直接访问微控制器内部的看门狗硬件
    • 外部看门狗驱动通过SPIDIO接口访问外部看门狗芯片

3. 主要功能

WatchdogDriver模块提供以下主要功能:

  1. 初始化看门狗硬件

    • 配置默认模式和超时设置
    • 设置初始触发条件
  2. 模式管理

    • 支持多种运行模式:快速模式、慢速模式、关闭模式
    • 根据模式切换看门狗的超时周期和刷新频率
  3. 触发条件设置

    • 设置看门狗的超时周期
    • 处理看门狗的触发机制
  4. 错误处理

    • 检测和报告开发错误
    • 处理看门狗相关的诊断事件

4. API接口

WatchdogDriver模块提供以下API接口:

  1. Wdg_Init(const Wdg_ConfigType* ConfigPtr)

    • 功能:初始化看门狗模块和硬件
    • 参数:配置数据指针
    • 返回:无
  2. Wdg_SetMode(WdgIf_ModeType Mode)

    • 功能:切换看门狗模式
    • 参数:目标模式
    • 返回:E_OK (成功) 或 E_NOT_OK (失败)
  3. Wdg_SetTriggerCondition(uint16 Timeout)

    • 功能:设置看门狗触发条件
    • 参数:超时值
    • 返回:无
  4. Wdg_GetVersionInfo(Std_VersionInfoType* VersionInfo)

    • 功能:获取模块版本信息
    • 参数:版本信息结构体指针
    • 返回:无

5. 配置参数

WatchdogDriver模块的主要配置参数包括:

  1. 通用配置

    • WdgDevErrorDetect:开启/关闭开发错误检测
    • WdgDisableAllowed:是否允许运行时禁用看门狗
    • WdgIndex:模块实例ID
    • WdgInitialTimeout:初始化时的超时设置
    • WdgMaxTimeout:最大允许的超时设置
    • WdgVersionInfoApi:是否启用版本信息API
    • WdgRunArea:执行区域(RAM/ROM)
  2. 模式配置

    • WdgDefaultMode:默认模式设置
    • WdgSettingsFast:快速模式配置
    • WdgSettingsSlow:慢速模式配置
    • WdgSettingsOff:关闭模式配置
  3. 外部看门狗配置

    • WdgExternalConfiguration:外部看门狗硬件配置
    • WdgExternalContainerRef:外部接口引用(SPI/DIO)

5.1. 配置模型

WatchdogDriver的配置模型如下图所示:
在这里插入图片描述

配置模型主要包含以下几个部分:

  1. Wdg

    • 顶层配置容器,包含所有看门狗驱动的配置参数
    • 包含WdgGeneralWdgPublishedInformationWdgSettingsConfigWdgDemEventParameterRefs子容器
  2. WdgGeneral

    • 包含通用配置参数,如错误检测开关、禁用允许标志等
    • 定义了看门狗的基本行为和特性
  3. WdgSettingsConfig

    • 包含不同模式的配置参数
    • 定义了快速模式、慢速模式和关闭模式的具体设置
    • 可能包含外部看门狗的配置引用
  4. WdgDemEventParameterRefs

    • 包含诊断事件的引用配置
    • 定义了看门狗相关的诊断事件处理方式

6. 错误代码

WatchdogDriver模块定义了以下错误代码:

  1. 开发错误

    • WDG_E_DRIVER_STATE (0x10):驱动状态错误
    • WDG_E_PARAM_MODE (0x11):模式参数错误
    • WDG_E_PARAM_CONFIG (0x12):配置参数错误
    • WDG_E_PARAM_TIMEOUT (0x13):超时参数错误
    • WDG_E_PARAM_POINTER (0x14):指针参数错误
    • WDG_E_INIT_FAILED (0x15):初始化失败
  2. 诊断事件

    • WDG_E_DISABLE_REJECTED:禁用看门狗被拒绝
    • WDG_E_MODE_FAILED:模式切换失败

7. 状态管理

WatchdogDriver模块维护以下状态:

  1. 模块状态

    • 未初始化:模块尚未初始化
    • 已初始化:模块已初始化并可操作
  2. 运行状态

    • WDG_IDLE:空闲状态,可接受新请求
    • WDG_BUSY:忙状态,正在处理模式切换
  3. 模式状态

    • 快速模式:较短的超时周期,较高的刷新频率
    • 慢速模式:较长的超时周期,较低的刷新频率
    • 关闭模式:看门狗功能禁用(仅当允许时)

7.1. 状态机

WatchdogDriver的状态转换如下图所示:
在这里插入图片描述

状态机主要包含以下几个部分:

  1. 初始化状态转换

    • 系统上电后,模块处于未初始化状态
    • 调用Wdg_Init()成功后,模块进入已初始化状态
    • 如果初始化失败,模块保持在未初始化状态
  2. 运行状态转换

    • 在已初始化状态下,模块默认处于WDG_IDLE状态
    • 调用Wdg_SetMode()时,模块进入WDG_BUSY状态
    • 模式切换完成后,模块返回WDG_IDLE状态
  3. 模式状态转换

    • 模块可以在快速模式、慢速模式和关闭模式之间切换
    • 只有当WdgDisableAllowedTRUE时,才能切换到关闭模式
    • 模式切换通过Wdg_SetMode()函数实现

8. 处理流程

8.1. 活动流程

WatchdogDriver的主要处理流程如下图所示:
在这里插入图片描述

活动流程主要包含以下几个部分:

  1. Wdg_Init流程

    • 接收配置指针并进行参数检查
    • 如果开发错误检测开启且配置指针为NULL,报告错误并退出
    • 设置默认模式,如果默认模式为OFF且禁用不允许,报告错误并返回E_NOT_OK
    • 初始化看门狗硬件,设置模块状态为已初始化,返回E_OK
  2. Wdg_SetMode流程

    • 接收模式参数并进行参数检查
    • 如果开发错误检测开启,检查模块状态和模式参数的有效性
    • 如果模式为OFF且禁用不允许,报告错误并返回E_NOT_OK
    • 设置模块状态为WDG_BUSY,根据模式参数设置看门狗硬件
    • 设置模块状态为WDG_IDLE,返回E_OK
  3. Wdg_SetTriggerCondition流程

    • 接收超时参数并进行参数检查
    • 如果开发错误检测开启,检查模块状态和超时参数的有效性
    • 计算触发条件,如果触发计数器为0,不执行任何操作
    • 否则,更新激活码并触发看门狗硬件

9. 操作序列

9.1. 典型操作序列

WatchdogDriver的典型操作序列如下图所示:
在这里插入图片描述

操作序列主要包含以下几个部分:

  1. 看门狗初始化序列

    • WdgM调用WdgIf_Init()WdgIf调用Wdg_Init()
    • Wdg检查配置指针,如果为NULL且开发错误检测开启,报告错误
    • Wdg设置默认模式,如果默认模式为OFF且禁用不允许,报告错误并返回E_NOT_OK
    • 否则,初始化看门狗硬件并返回E_OK
  2. 看门狗模式切换序列

    • WdgM调用WdgIf_SetMode()WdgIf调用Wdg_SetMode()
    • Wdg检查模式参数,如果无效且开发错误检测开启,报告错误
    • 如果模式为OFF且禁用不允许,报告错误并返回E_NOT_OK
    • 否则,设置看门狗硬件模式并返回E_OK
  3. 触发条件设置序列

    • WdgM调用WdgIf_SetTriggerCondition()WdgIf调用Wdg_SetTriggerCondition()
    • Wdg检查超时参数,如果超出范围且开发错误检测开启,报告错误
    • Wdg设置看门狗硬件的触发条件

10. 硬件抽象

WatchdogDriver模块支持两种类型的看门狗硬件:

  1. 内部看门狗

    • 直接访问微控制器内部的看门狗硬件
    • 通常通过寄存器操作实现
  2. 外部看门狗

    • 通过SPIDIO接口访问外部看门狗芯片
    • 需要额外的驱动支持

11. 安全考虑

WatchdogDriver模块包含以下安全机制:

  1. 禁用保护

    • 通过WdgDisableAllowed参数控制是否允许禁用看门狗
    • 安全关键应用通常不允许禁用看门狗
  2. 错误检测

    • 开发错误检测和报告
    • 诊断事件管理和报告
  3. 状态检查

    • 在API调用前检查模块状态
    • 防止在不适当的状态下执行操作

12. 与其他模块的关系

WatchdogDriver模块与以下模块有交互:

  1. WdgIf (看门狗接口):

    • 提供统一的接口给上层模块
    • 支持多个看门狗实例的管理
  2. WdgM (看门狗管理器):

    • 使用WdgIf调用WatchdogDriver的功能
    • 实现更高级的看门狗监控策略
  3. Det (开发错误跟踪):

    • 报告开发错误
    • 用于调试和开发阶段
  4. Dem (诊断事件管理器):

    • 报告诊断事件
    • 用于运行时监控和诊断

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

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

相关文章

Linux操作系统应用

Linux操作系统应用 一、用户与用户组管理1.1 管理用户1.1.1 与用户账号相关的文件1.1.2 用户管理命令1.1.3 任务实施 1.2 管理用户组1.2.1 用户组1.2.2 用户组管理命令 1.3 查看用户和用户组状态1.3.1 用户查看命令 id、who、whoami1.3.2 用户身份切换命令 su、sudo 二、文件管…

拖拽实现+摇杆实现

拖拽实现 拖拽事件实现: 半透明渐变贴图在ios设备下,使用压缩会造成图片质量损失,所以可以将半透明渐变UI切片单独制作真彩色图集 拖拽事件组 IBeginDragHandler:检测到射线后,当拖拽动作开始时执行一次回调函数 IDragHandler:拖拽开始后&a…

xLua_001 Lua 文件加载

xLua下载 1、HelloWrold 代码 using System.Collections; using System.Collections.Generic; using UnityEngine; using XLua; // 引入XLua命名空间 public class Helloworld01 : MonoBehaviour {//声明LuaEnv对象 private LuaEnv luaenv;void Start(){//实例化LuaEnv对象…

【sql靶场】第18-22关-htpp头部注入保姆级教程

目录 【sql靶场】第18-22关-htpp头部注入保姆级教程 1.回顾知识 1.http头部 2.报错注入 2.第十八关 1.尝试 2.爆出数据库名 3.爆出表名 4.爆出字段 5.爆出账号密码 3.第十九关 4.第二十关 5.第二十一关 6.第二十二关 【sql靶场】第18-22关-htpp头部注入保姆级教程…

Python----计算机视觉处理(Opencv:形态学变换)

一、形态学变化 形态学变换(Morphological Transformations)是一种基于形状的图像处理技术,主要处理的对象为二值化图像。 形态学变换有两个输入和一个输出:输入为原始图像和核(即结构化元素),输…

【最新版】智慧小区物业管理小程序源码+uniapp全开源

一.系统介绍 智慧小区物业管理小程序,包含小区物业缴费、房产管理、在线报修、业主活动报名、在线商城等功能。为物业量身打造的智慧小区运营管理系统,贴合物业工作场景,轻松提高物业费用收缴率,更有功能模块个性化组合,助力物业节约成本高效运营。 二.搭建环境 系统环…

C++模板进阶

目录 非类型模板参数 类模板的特化 分类 函数模板的特化 模板分离编译 问题 解决方法 1)不对模板定义进行分离或对模板进行特例化; 2)将声明和定义放在同一个文件 总结 关于C模板的使用在《C类和对象》中有介绍,本篇博客…

停车场停车位数据集,标注停车位上是否有车,平均正确识别率99.5%,支持yolov5-11, coco json,darknet,xml格式标注

停车场停车位数据集,标注停车位上是否有车,平均正确识别率98.0%,支持yolov5-11, coco json,darknet,xml格式标注 数据集-识别停车场所有车辆的数据集 数据集分割 一共184张图片 训练组 89&am…

Lora微LLAMA模型实战

引言 本文介绍如何复现Alpaca-lora,即基于alpaca数据集用lora方法微调Llama模型。 环境准备 实验环境用的是lanyun,新用户点击注册可以送算力。 下载huggingface上的模型是一个令人头疼的问题,但在lanyun上可以通过在终端运行source /etc…

什么是站群服务器?站群服务器应该怎么选?

站群服务器是专门用于托管和管理多个网站的服务器。通常用于SEO优化、内容分发、广告推广等场景,用户可以通过一个服务器管理多个站点,提升效率并降低成本。选择站群服务器时,需根据业务需求、性能要求、IP资源等因素进行综合考虑。 什么是站…

【LInux进程六】命令行参数和环境变量

【LInux进程六】命令行参数和环境变量 1.main函数的两个参数2.利用main函数实现一个简单的计算器3.环境变量之一:PATH4.修改PATH5.在命令行解释器bash中查看所有环境变量6.用自己写的程序查看环境变量7.main函数的第三个参数8.本地的环境变量和环境变量9.环境变量具…

大语言模型的压缩技术

尽管人们对越来越大的语言模型一直很感兴趣,但MistralAI 向我们表明,规模只是相对而言的,而对边缘计算日益增长的兴趣促使我们使用小型语言获得不错的结果。压缩技术提供了一种替代方法。在本文中,我将解释这些技术,并…

大华HTTP协议在智联视频超融合平台中的接入方法

一. 大华HTTP协议介绍 大华HTTP协议是大华股份(Dahua Technology)为其安防监控设备开发的一套基于HTTP/HTTPS的通信协议,主要用于设备与客户端(如PC、手机、服务器)之间的数据交互。该协议支持设备管理、视频流获取、…

7、vue3做了什么

大佬认为有何优点: 组合式api----逻辑集中、对ts有更好的支持RFC–开放了一个讨论机制,可以看到每一个api的提案,方便源码维护,功能扩展,大家一起讨论 官方rfc响应式独立,new Proxy,天生自带来…

多人在线聊天系统,创建群,视频,语音,自带带授权码

多人在线聊天系统,创建群,视频,语音 带授权码,授权码限制 10 个网站,需要下载研究吧 在线聊天,创建群,表情,图片,文件,视频,语音,自…

NFC 碰一碰发视频源码搭建,支持OEM

一、引言 NFC(Near Field Communication)近场通信技术,以其便捷、快速的数据交互特性,正广泛应用于各个领域。其中,NFC 碰一碰发视频这一应用场景,为用户带来了新颖且高效的视频分享体验。想象一下&#x…

C++从入门到入土(八)——多态的原理

目录 前言 多态的原理 动态绑定与静态绑定 虚函数表 小结 前言 在前面的文章中,我们介绍了C三大特性之一的多态,我们主要介绍了多态的构成条件,但是对于多态的原理我们探讨的是不够深入的,下面这这一篇文章,我们将…

Linux目录理解

前言 最近在复习linux,发现有些目录总是忘记内容,发现有些还是得从原义和实际例子去理解会记忆深刻些。以下是个人的一些理解 Linux目录 常见的Linux下的目录如下: 1. 根目录 / (Root Directory) 英文含义:/ 是文件系统的根…

c++领域展开第十七幕——STL(vector容器的模拟实现以及迭代器失效问题)超详细!!!!

文章目录 前言vector——基本模型vector——迭代器模拟实现vector——容量函数以及push_back、pop_backvector——默认成员函数vector——运算符重载vector——插入和删除函数vector——实现过程的问题迭代器失效memcpy的浅拷贝问题 总结 前言 上篇博客我们已经详细介绍了vecto…

植物知识分享论坛毕设

1.这四个文件直接是什么关系?各自都是什么作用?他们之间是如何联系的? 关系与联系 UserController.java 负责接收外部请求,调用 UserService.java 里的方法来处理业务, 而 UserService.java 又会调用 UserMapper.jav…