原创 低功耗4G模组:Air780E内部硬件看门狗(wdt)示例

2025-1-25 15:01 413 0 分类: 通信

一、看门狗电路介绍


看门狗(Watch Dog Timer,WDT)是一种监控电路,主要应用于嵌入式系统,目的是为了提高系统的可靠性和稳定性。在看门狗电路的帮助下,当系统出现异常,如程序跑飞或死循环时,能够自动复位并重新启动系统。


1.1 看门狗的工作原理

看门狗电路通常包括一个定时器、一个喂狗信号和一个复位(Reset)输出。在正常的系统运行过程中,主控制器(MCU)会定期向喂狗信号发送一个脉冲,以“喂”看门狗,防止其计时到达预设值。如果 MCU 由于某种原因未能在规定时间内喂狗,看门狗定时器将会计满并输出一个复位信号,将 MCU 复位。


1.2 看门狗的应用架构

在实际应用中,看门狗芯片通常连接到 MCU 的一个 GPIO 端口。MCU 在其正常运行期间会定期向该端口写入一个高电平或低电平信号,以此告诉看门狗它仍然正常工作。如果 MCU 未能按时发出信号,看门狗将触发复位操作。


1.3 看门狗芯片的功能和硬件

某些看门狗芯片如 TPV6823 具有多个引脚,包括供电引脚(VCC)、喂狗信号引脚(WDI)、复位输出引脚(RESETn)和手动复位输入引脚(MRn)。这些引脚提供了多种复位方式和时间设置,以适应不同的应用需求。


1.4 看门狗的定时时间

看门狗的定时时间通常需要保持在一个相对较长的周期,例如 200 毫秒左右。这样的设置是为了确保在正常运行中,即使 MCU 由于干扰而未能及时喂狗,看门狗也不会立即复位系统,从而给 MCU 足够的时间来响应和处理问题。


1.5 看门狗的类型

看门狗可以分为独立看门狗和窗口看门狗。独立看门狗的时间精度要求较低,而窗口看门狗则用于时间精度要求较高的场合。


1.6 软硬件看门狗的区别

硬件看门狗利用独立的定时器电路来实现监控功能,具有较高的可靠性。软件看门狗则使用处理器内部的定时器或其他机制来实现,虽然在一定程度上可以简化硬件设计,但在可靠性方面通常不如硬件看门狗。


总结而言,看门狗是一种重要的系统保护机制,通过定期“喂狗”来确保系统的正常运行。当系统出现异常时,看门狗能够及时复位系统,防止死循环和程序跑飞等情况的发生,从而提高系统的可靠性和稳定性。


在实际应用中,开发者需要根据具体需求选择合适的看门狗解决方案,并设置适当的时间参数,以实现最佳的保护效果。



二、演示功能概述


本文演示主要通过 Air780E 核心板和 LuatOS 系统,介绍如何使用看门狗定时器(WDT)库来防止嵌入式设备死机。看门狗电路是一种监控电路,主要应用于嵌入式系统,目的是为了提高系统的可靠性和稳定性。在看门狗电路的帮助下,当系统出现异常时,如程序跑飞或死循环,能够自动复位并重新启动系统。


演示分为两个部分:正常运行情况和故障场景模拟。


在正常运行情况下,示例代码会初始化看门狗库,并设置超时时间和喂狗周期。然后,创建一个任务,该任务会定期喂狗,以防止看门狗定时器超时。如果看门狗定时器超时,系统将自动重启。


在故障场景模拟部分,我们添加了一个新的任务 fault_task,该任务进入一个死循环,不进行喂狗操作。这样,当看门狗定时器超时后,系统将自动重启,模拟了设备在故障场景下的自动恢复能力。


通过这个演示,我们可以看到看门狗定时器在嵌入式系统中的重要作用,它能够有效防止系统死机,提高系统的稳定性和可靠性。



三、演示硬件环境


3.1 开发板

本文以Air780E核心板为例


此核心板的详细使用说明参考:

https://docs.openluat.com/air780e/product/


3.2 SIM 卡

在中国大陆环境下,使用移动,电信,联通的物联网卡或者手机卡都可以。


3.3 PC 电脑

WIN7以及以上版本的WINDOWS系统。


3.4 数据通信线

1. USB 转 Type-C 数据线

它的一端是 USB 接口,另一端是 Type-C 接口。


四、演示软件环境


4.1 Luatools 下载调试工具

Luatools 工具由合宙推出,支持最新固件获取、固件打包、trace 打印及单机烧录等功能。

工具使用说明参考:


Luatools 下载和详细使用:
https://docs.openluat.com/Luatools/


4.2 源码及固件

1)底层 core 下载地址:LuatOS 固件版本下载地址:https://docs.openluat.com/air780e/luatos/firmware/

本 demo 使用的固件是 core_V1112 压缩包 内的 LuatOS-SoC_V1112_EC618_FULL.soc


2) demo 位置

本 demo 主要用于演示如何在 LuatOS 系统中使用看门狗定时器(wdt)库来防止设备死机。

demo位置:https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/wdt


3)源码及固件已打包压缩,如下所示

压缩包中 core 文件夹存放的是固件,code 文件夹存放的是脚本代码。



五、软硬件资料


5.1 watchdog 操作库介绍


5.1.1 watchdog 库介绍

该库提供了一系列用于管理和操作看门狗定时器的 API 函数,使得开发者可以方便地在 LuatOS 系统中管理看门狗定时器,从而提高设备的稳定性。


5.1.2 API 接口介绍

本教程所使用API接口参考:
https://wiki.luatos.com/api/wdt.html?highlight=watchdog


5.2 Air780E 核心板烧录说明


5.2.1 选择固件和脚本


1)打开 Luatools 工具


2)点击 项目管理测试


3)根据图示操作


注意,大家只需要跟着做到第四步即可,第五步跟着后面的操作再做。


5.2.2 烧录

1)将 Air780E 核心板通过 USB 数据线连接至电脑,如下图所示: