当前位置: 首页 > news >正文

AutosarMCAL开发——基于EB Wdg驱动

目录

  • 一、Wdg原理以及作用
    • 1.看门狗类型
    • 2.看门狗功能特点
    • 3.看门狗工作模式
    • 4.看门狗超时响应
    • 5.看门狗寄存器
  • 二、WDG模块EB配置(TC3X系列MCU)
    • 1.WDG通用配置:
    • 2.WDG设置:
    • 3.时钟资源分配
    • 4.配置STM IRQ中断
    • 5.配置触发执行动作:
  • 三、Mcal接口应用
    • 1.软件接口定义
    • 2.应用步骤
  • 四、总结

一、Wdg原理以及作用

WatchDog,顾名思义,看门狗,每次代码运行使用者需要在特定的时间内完成喂狗,否则将会发出警告,进而提醒安全保护模块做出对应处理。TC3XX系列芯片的看门狗(Watchdog)功能是其硬件安全特性的重要组成部分。以下是对TC3XX看门狗功能的详细解释:

1.看门狗类型

  • Safety Watchdog(安全看门狗):用于保护芯片系统层级的安全,防止意外写入关键系统寄存器和存储器。如果在一定时间内未响应其计时器,将引发SMU(安全管理单元)警报请求。
  • CPU Watchdog(CPU看门狗):每个CPU核心都有一个独立的看门狗定时器,用于监视单独的CPU执行线程,并为CPU寄存器以及特定的系统寄存器提供保护。如果在用户可编程的时间段内没有正确地服务(即刷新或“喂狗”),它可能会导致SMU报警请求或触发设备复位。

2.看门狗功能特点

  • 可编程性:看门狗定时器具有可编程的时间基础和重新加载值。
  • 密码保护:对看门狗寄存器的操作需要输入正确的密码才能进行。
  • 时间戳检查与窗口:看门狗功能还提供了可编程的时间戳检查和可编程窗口。
  • 独立监视:单独的CPU监视器计时器提供了监视单独的CPU执行线程的能力,而不需要软件来协调一个共同的监视器的共享使用。

3.看门狗工作模式

  • Time-Out Mode(超时模式):复位以后CPU的Watchdog默认是处在Time-Out Mode下的,WDT在Time-Out Mode下就会从0xFFFC开始往上计数,如果计数到0xFFFF就会溢出。如果在计数到0xFFFF之前没有对WDT进行正确的重新加载操作,WDT将保持在超时模式。
  • Normal Mode(正常模式):在Time-Out Mode下,如果在计数到0xFFFF之前对WDT进行了正确的重新加载操作(即“喂狗”),WDT将从Normal Mode开始从重新加载的值(REL值)往上计数。在Normal Mode下计数到0xFFFF后WDT就溢出了,触发SMU的Timeout的Alarm。
  • Disable Mode(禁用模式):在该模式下,看门狗功能被禁用,不会进行任何计时或监视操作。

4.看门狗超时响应

  • 发送警报:向SMU发送警报请求,指示看门狗定时器已超时。
  • 触发中断:配置为向CPU发送中断请求,以便软件可以采取相应的恢复措施。
  • 复位设备:在严重情况下,可以配置为触发设备复位,以确保系统的稳定性和安全性。

5.看门狗寄存器

看门狗模块主要有三类寄存器:

  • 保护寄存器WDTCPUyCON0(y=0-5)
  • 系统寄存器WDTCPUyCON1(y=0-5)
  • 状态寄存器WDTCPUySR(y=0-5)

其中y代表CORE ID;这些寄存器用于配置、监视和控制看门狗定时器的行为。

二、WDG模块EB配置(TC3X系列MCU)

1.WDG通用配置:

  • 在“General”选项卡下,配置WDG模块的基本参数,这里的Trigger即为喂狗动作,当前配置为STM系统时钟触发,配置为GTM触发将会启用GTMTimerConf选项卡
    在这里插入图片描述

2.WDG设置:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.时钟资源分配

在这里插入图片描述

4.配置STM IRQ中断

  • 配置STM中断,以便及时喂狗
    在这里插入图片描述

5.配置触发执行动作:

  • 在wdg识别异常并发出警告后需要传递至SMU(Safety Management Unit,安全管理单元)模块进行故障处理,因此需要在SMU中配置对应通道执行的异常处理动作。这里配置为NMI(Non-Maskable Interrupt,非屏蔽中断),意味着当该警报触发时,SMU会向CPU发送一个NMI信号,要求CPU中断当前任务并跳转到NMI中断处理函数进行处理,这里也可以直接选择Cpu复位。
    在这里插入图片描述
  • 关于如何确定配置的Wdg连接至SMU 的哪个组,哪个Behavior通道,可以参考User Manual Tc39x附录中的SMU模块详细说明
    在这里插入图片描述

三、Mcal接口应用

1.软件接口定义

  • Autosar标准文件中提及的API共有5个,
接口名传入参数说明返回参数函数功能
Wdg_17_Scu_Init()Wdg_17_Scu_ConfigType* ConfigPtrConfigPtr:Wdg配置指针,参数来自于EB生成代码voidWdg初始化
Wdg_17_Scu_InitCheck()Wdg_17_Scu_ConfigType* ConfigPtrConfigPtr:Wdg配置指针Std_ReturnType:0:OK 1:NotOKWdg初始化检查
Wdg_17_Scu_SetMode()WdgIf_ModeType ModeMode: 0 OFF 1SlowMode 2FastmodeStd_ReturnType:0:OK 1:NotOKWdg切换模式,需开启对应配置
Wdg_17_Scu_SetTriggerCondition()uint16 timeouttimeout:设置定时触发器计数(单位ms)void喂狗并重新设定计数值
Wdg_17_Scu_GetVersionInfo---Wdg版本信息

2.应用步骤

  • WDG超时复位
    1.Wdg_17_Scu_Init()//配置初始化
    2.Wdg_17_Scu_SetTriggerCondition()//初始化设定超时时间
    3.调用Wdg_17_Scu_SetTriggerCondition()//在Wdg溢出之前喂狗

四、总结

本文为博主个人学习总结记录,如有不正,欢迎指正

http://www.lryc.cn/news/459261.html

相关文章:

  • Linux(1. 基本操作_命令)
  • 难点:Linux 死机定位(进程虚拟地址空间耗尽)
  • 小米路由器刷机istoreOS,愉快上网
  • 微信小程序 - 01 - 一些补充和注意点(补充ing...)
  • 微服务实战——登录(普通登录、社交登录、SSO单点登录)
  • windows 安装 ElasticSearch
  • Oracle Linux 9 (CentOS Stream 9) 安装 node.js 20
  • 【Axure安装包与汉化包附带授权证书】
  • SSH隧道验证的原理及实现例子
  • [计算机视觉]chapter1
  • RTKLIB学习记录【postpos、execses_b、execses_r】
  • docker,docker-desktop,docker-compose download
  • C#_带参数的委托进入队列执行
  • 【OpenCV】(二)—— 图片读取展示和保存
  • 【花卉识别系统】Python+卷积神经网络算法+人工智能+深度学习+图像识别+算法模型
  • k8s、prometheus、grafana数据采集和展示的链路流程
  • sentinel dashboard改造落地设计实现解释(一)-分布式fetcher和metrics存储/搜索
  • LabVIEW提高开发效率技巧----时序分析
  • python不用ide也能进行调试
  • Django学习笔记之Django基础学习
  • smartctl 设置硬盘的 write-caching
  • 【Spring AI】Java实现类似langchain的向量数据库RAG_原理与具体实践
  • linux下使用systemctl设置开机自动运行程序
  • 复位电路的亚稳态
  • 针对考研的C语言学习(循环队列-链表版本以及2019循环队列大题)
  • 系统架构设计师教程 第12章 12.4 信息系统架构案例分析 笔记
  • web1.0,web2.0,web3.0 有什么区别 详解
  • 将图片添加到 PDF 的 5 种方法
  • TiDB 优化器丨执行计划和 SQL 算子解读最佳实践
  • 初学51单片机之I2C总线与E2PROM以及UART简单实例应用