### 单片机系统中软件“看门狗”技术和故障处理 #### 一、软件“看门狗”技术 在单片机系统中,软件“看门狗”技术是一种重要的手段,用于确保程序的正常运行,防止程序陷入“死循环”。这种技术通过对程序循环运行时间的持续监测来实现其功能。一旦发现程序的运行时间超过了预设的最大值,则系统会认为发生了异常,进而采取相应的错误处理措施。 **1.1 软件“看门狗”的工作原理** 软件“看门狗”可以通过不同的方式实现,其中一种常用的方法是利用环形中断监视系统。具体来说,可以使用定时器T0监视定时器T1,同时使用定时器T1监视主程序,而主程序又监视定时器T0。这种环形结构能够有效地增强系统的抗干扰性能,提高整体的可靠性。 **1.2 监视原理** 为了实现这一目标,可以在主程序、T0中断服务程序以及T1中断服务程序中分别设置运行观测变量,例如命名为`MainWatch`、`TOWatch`和`TIWatch`。每当主程序完成一次循环时,`MainWatch`变量就会增加1;类似地,每当T0或T1中断服务程序被执行时,对应的观测变量也会增加1。通过这种方式,可以在T0中断服务程序中检查`TIWatch`的变化情况,以此判断T1是否正常运行;同样,在T1中断服务程序中检查`MainWatch`的变化情况,来判断主程序的运行状态;而在主程序中则通过检查`TOWatch`的变化情况来判断T0的工作状态。 如果发现某个观测变量没有按照预期的方式发生变化(例如应当增加1但未增加),则系统将转入错误处理程序,进行故障排除。 **1.3 定时器配置** 需要注意的是,对于那些频繁使用定时器T1进行串口通讯的测控系统而言,T1可能无法进行中断操作。在这种情况下,可以改由串口中断来进行监控,以保证软件“看门狗”的正常运作。 #### 二、系统故障处理 单片机系统可能会遇到各种故障情况,例如因干扰导致的复位或意外掉电后的复位。这些非正常复位情况需要特别处理,以便能够准确地识别故障类型,并尽可能恢复到非正常复位之前的状态。 **2.1 非正常复位的识别** 程序的执行通常从地址0000H开始,导致程序从这个地址开始执行的情况主要有四种:开机上电复位、软件故障复位、看门狗超时未喂狗的硬件复位以及任务执行过程中掉电后再复位。除了第一种情况外,其余三种均属于非正常复位,需要进行特殊处理。 **2.1.1 硬件复位与软件复位的识别** 硬件复位指的是开机复位或看门狗复位,这类复位会影响寄存器的状态,例如复位后PC将被设置为0000H,SP被设置为07H,PSW被设置为00H等。而软件复位不会改变SP和PSW的状态。因此,可以通过检测SP或PSW的状态来判断当前是否发生了硬件复位。另外,还可以通过设置特定的标志位或利用片内RAM中的某些单元作为上电标志来进一步区分这两种复位类型。 **2.1.2 开机复位与看门狗故障复位的识别** 为了区分开机复位与看门狗故障复位,可以利用非易失性RAM或E2PROM来设置一个观测单元。在系统正常运行时,定期更新这个观测单元的值(例如设置为AAH),并在主程序中将其清零。由于观测单元的数据可以在掉电时保存,因此通过检查该单元的值就可以判断是否发生了看门狗故障复位。 软件“看门狗”技术和故障处理对于提高单片机系统的稳定性和可靠性至关重要。通过合理的设计和实现,可以显著减少系统故障的发生概率,确保系统的长期稳定运行。
- 粉丝: 0
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助