看门狗原理与使用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Example1. Enable watchdog timer and set 10 sec. as timeout interval and issue KBRST# ;----------------------------------------------------------Mov dx,2eh ; Unlock W83627HF/EHG-A Mov al,87h Out dx,al Out dx,al ;----------------------------------------------------------Mov al,07h ; Select registers of watchdog timer Out dx,al Inc dx Mov al,08h Out dx,al ;----------------------------------------------------------Dec dx ; Enable the function of watchdog timer Mov al,30h Out dx,al Inc dx Mov al,01h Out dx,al ;----------------------------------------------------------Dec dx ; Set second as counting unit and enalbe the WDTO# Mov al,0f5h Out dx,al Inc dx In al,dx And al, 0f7h Or al,02h Out dx,al ;----------------------------------------------------------Dec dx ; Set timeout interval as 10 seconds and start counting Mov al,0f6h Out dx,al Inc dx Mov al,10 Out dx,al ;----------------------------------------------------------Dec dx ; lock W83627HF Mov al,0aah Out dx,al
系统提供Reset或发出中断信号
WDT的关闭
看门狗的使用
通过编程把看门狗的程序嵌入用户的程序。研华提供看门狗的编程手 册给用户参考,提供的例子程序如下:
看门狗电路(WDT)的原理 与使用
看门狗电路(WDT)的原理与使用
看门狗的简称是WDT(Watch Dog Timer),硬件上主要是由一个定时器 组成 看门狗电路工作的原理: 由(一般需要客户编写)的软件读写定时器相关的寄存器,打开看门狗, 并设定计数时间(以秒或分钟计算),定时器计数计满,由软件清零,以表 明系统状态正常,这时,定时器计数重新开始,反复,否则,看门狗认为系统 异常或有其他特定事件发生,触发系统复位信号,或提供中断,系统正常 后重复定时器计数. 这样只要软件正常运行,就不会出现复位或触发中断。当软件死机或 运行出错时,由看门狗定时器对系统进行复位或触发中断,从而保证系 统的正常运行。 看门狗的定时时间可以由用户设定,这样可以根据需要在指定的时间 内复位系统。 软件上对看门狗的控制很简单,只有三种操作:打开看门狗、看门狗 定时器清零和关闭看门狗。
源自文库
看门狗的使用
通过SUSI软件提供的API函数调用(机器要求SUSI支持)
看门狗的使用
通过C语言源码,内部测试使用。
#include <stdio.h> #include <dos.h> int main(void) { int address_port = 0x2e; int data_port = 0x2f; int value; outportb(address_port,0x87); //Unlock W83627HF outportb(address_port,0x87); outportb(address_port,0x07); // Select Register of watchdog timer outportb(data_port,0x08);
典型的看门狗应用
Super I/O Winbond 83627 HF/G的看门狗特性 软件控制WDT的开启与关闭 计数范围0~255 秒或分钟 系统提供Reset或发出中断信号(具体功能以产品规格为准) 主要的软件执行本质都是特定的寄存器读写
WDT的开启 启动计数器
出现未清零状况
计数器计数与清零循环 是
outportb(address_port,0x30); // Enable the function of watchdog timer outportb(data_port,0x01);
outportb(address_port,0xf5); // Enable the WDTO# output value = inportb(data_port); value = value | 0x02; outportb(data_port, value); outportb(address_port,0xf7); // Enable watchdog timer to be reset by mouse value = inportb(data_port); // and enable the WDTO# output value = value | 0x80; outportb(data_port, value); outportb(address_port,0xaa); // Lock W83627HF printf("The Watchdog Timer to be reset by mouse\n"); return 0; }
系统提供Reset或发出中断信号
WDT的关闭
看门狗的使用
通过编程把看门狗的程序嵌入用户的程序。研华提供看门狗的编程手 册给用户参考,提供的例子程序如下:
看门狗电路(WDT)的原理 与使用
看门狗电路(WDT)的原理与使用
看门狗的简称是WDT(Watch Dog Timer),硬件上主要是由一个定时器 组成 看门狗电路工作的原理: 由(一般需要客户编写)的软件读写定时器相关的寄存器,打开看门狗, 并设定计数时间(以秒或分钟计算),定时器计数计满,由软件清零,以表 明系统状态正常,这时,定时器计数重新开始,反复,否则,看门狗认为系统 异常或有其他特定事件发生,触发系统复位信号,或提供中断,系统正常 后重复定时器计数. 这样只要软件正常运行,就不会出现复位或触发中断。当软件死机或 运行出错时,由看门狗定时器对系统进行复位或触发中断,从而保证系 统的正常运行。 看门狗的定时时间可以由用户设定,这样可以根据需要在指定的时间 内复位系统。 软件上对看门狗的控制很简单,只有三种操作:打开看门狗、看门狗 定时器清零和关闭看门狗。
源自文库
看门狗的使用
通过SUSI软件提供的API函数调用(机器要求SUSI支持)
看门狗的使用
通过C语言源码,内部测试使用。
#include <stdio.h> #include <dos.h> int main(void) { int address_port = 0x2e; int data_port = 0x2f; int value; outportb(address_port,0x87); //Unlock W83627HF outportb(address_port,0x87); outportb(address_port,0x07); // Select Register of watchdog timer outportb(data_port,0x08);
典型的看门狗应用
Super I/O Winbond 83627 HF/G的看门狗特性 软件控制WDT的开启与关闭 计数范围0~255 秒或分钟 系统提供Reset或发出中断信号(具体功能以产品规格为准) 主要的软件执行本质都是特定的寄存器读写
WDT的开启 启动计数器
出现未清零状况
计数器计数与清零循环 是
outportb(address_port,0x30); // Enable the function of watchdog timer outportb(data_port,0x01);
outportb(address_port,0xf5); // Enable the WDTO# output value = inportb(data_port); value = value | 0x02; outportb(data_port, value); outportb(address_port,0xf7); // Enable watchdog timer to be reset by mouse value = inportb(data_port); // and enable the WDTO# output value = value | 0x80; outportb(data_port, value); outportb(address_port,0xaa); // Lock W83627HF printf("The Watchdog Timer to be reset by mouse\n"); return 0; }