嵌入式系统看门狗实验报告

合集下载

《嵌入式系统原理与应用》实验报告04-看门狗实验

《嵌入式系统原理与应用》实验报告04-看门狗实验
六、教师评语
签名:
日期:
成绩
WDFEED=0x55;
}
void FeedDog(void)
{
WDFEED=0xaa;
WDFEED=0x55;
}
int main (void)
{
uint32 dly;
PINSEL0=0x00;
PINSEL1=0x00;
IO0DIR=led;
IO0SET=led;
for(dly=0;dly<500000;dly++);
1.实验效果截图
2.源程序
#include "config.h"
#define key (1<<20)//set the button to be P0.20
#define led (1<<7)
void WDT_Init(uint32 time)
{
WDTC=time;
WDMOD=0x03;
WDFEED=0xaa;
二、实验设备(环境)及要求
硬件:PC机;
软件:PC机操作系统windows XP,Proteus软件,ADS1.2
三、实验内容与步骤
实验内容:
运行程序时,LED灯闪烁一下,并启动看门狗;当按键按下时,停止喂狗,此时会引起看门狗复位;复位之后,程序重新运行,此时LED灯又闪烁了一下。
四、实验结果与数据处理
《嵌入式系统原理与接口技术》实验报告
实验序号:4实验项目名称:看门狗实验
学 号
XXXX
姓 名
XXX
专业、班
计算机科学与技术
实验地点
1-416
指导教师
XXX
实验时间

嵌入式操作系统中的看门狗

嵌入式操作系统中的看门狗
目前, 在许多情况下, 设计人员会用软件实现以往 由硬件完成的电路功能, 其中部分原因是, 低成本的微
处理器( P ) 为大家提供了广泛的选择。软件常常是解 决问题的成本最低、灵活性最高的方案。
软件看门狗的特性: 本身独立工作, 基本上不依赖CPU ; CPU 在一个固定的时间间隔内和系统打一次
交道( 喂一次狗) , 以表明系统目前工作正常; 当 CP U 陷入死循环后, 能及时发觉并使系统
看门狗初始化
V oHale Waihona Puke d W DT Init( v oid)
{ W DT C = 0x 10000; W DM O D = 0x 03; W dtF eed( ) ; }
喂狗操作
vo id RstW dt ( vo id)
{ IRQ Disable( ) ; / / 关中断 W DFEED = 0x AA ; W DFEED = 0x 55; IRQ Enable ( ) ; / / 打开中断 }
1 基本原理与特性
所谓“看门狗”是指在系统设计中通过软件或硬件 方式在一定的周期内监控系统的运行状况。如果在规 定时间内没有收到来自系统的触发信号, 则系统会强 制复位, 以保证系统在受到干扰时仍然能够维持正常 的工作状态。它主要有寄存器、定时器和看门狗模等部 件构成, 其内部结构如图 1 所示。
图中w dt c 、w df eed 等分别代表看门狗寄存器, 以
系统, 如数控机床、机器人、自动化设备等, 如果系统在出现故障时, 会出现一些严重的后果, 为了避免不必
要的损失, 在此可以利用看门狗自动恢复。介绍了看门狗的基本原理, 以及软件的具体实现。
【关键词】嵌入式操作系统, 看门狗, 喂狗
中图分类号: T P 316

嵌入式系统中看门狗的使用总结

嵌入式系统中看门狗的使用总结

嵌入式系统中看门狗的使用总结最近需要在板子上加上一块WatchDog,以确保在系统出错时自动重启,所以看了一些在嵌入式系统中使用看门狗的资料,现在总结如下:一、看门狗原理在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。

看门狗其实就是一个可以在一定时间内被复位的计数器。

当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对CPU产生一个复位信号使系统重启(俗称“被狗咬”)。

系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零(俗称“喂狗”),不让复位信号产生。

如果系统不出问题,程序保证按时“喂狗”,一旦程序跑飞,没有“喂狗”,系统“被咬”复位。

这就好比你的身边有一只时刻饥饿的狗,你不按时给它肉吃,它就会吃你的肉,你被吃了......挂了,投胎转世,彻底重新做人了。

不幸的是来世你还得喂狗-_-!!二、看门狗的种类在现在的嵌入式系统中主要可以分为两种类型的看门狗:1、CPU内部自带的看门狗:此类看门狗一般是将一个芯片中的定时器来作为看门狗,通过程序的初始化,写入初值,设定溢出时间,并启动定时器。

程序按时对定时器赋初值(或复位),以免被咬。

这种看门狗是可以被禁用的(只要停止这个定时器即可),好比对那只要咬你的狗来个“葵花点穴手”。

大部分CPU都内置看门狗,硬件原理可参考各芯片数据手册。

优点:可以通过程序改变溢出时间;可以随时禁用缺点:需要初始化;如果程序在初始化、启动完成前跑飞或在禁用后跑飞,看门狗就无法复位系统,这样看门狗的作用就没有了,系统恢复能力降低。

2、独立的看门狗芯片:这种看门狗主要有一个用于喂狗的引脚(一般与CPU的GPIO相连)和一个复位引脚(与系统的RESET 引脚相连),如果没有在一定时间内改变喂狗脚的电平,复位引脚就会改变状态复位CPU。

此类看门狗一上电就开始工作,无法禁用。

现在常用的芯片有:CAT705/CAT706、IMP706等等,溢出时间在1.6秒左右。

看门狗实验

看门狗实验

看门狗实验1. 为什么要看门狗?看门狗的原理是什么?外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)它的基本原理为,给看门狗设置一个时间周期,如果在这个周期内程序不能正常运行结束,定时器会自动益处,则系统会自动复位,使系统重新运行进而得到监控系统的作用。

假设程序运行的时间为Tp,定时器时间为Ti,Ti>Tp,在Ti时间内程序正常结束则不会发生益处的现象,如果受干扰等原因系统不能在Tp时刻内修改计数器的值,则在Ti时刻时系统会自动复位,引发系统重新运行。

一般情况下都是应用程序在运行结束后去喂狗,当应用程序出现异常而不能去喂狗时,在超过看门狗定时器的时间范围后,cpu会复位,起始喂狗的过程就是给看门狗的寄存器置位,当程序开始运行时,看门狗的计数器开始递减,在减到零之前必须喂狗,否则系统会复位,当减到零时还没有喂狗则系统复位。

2. 看门狗的功能1)作为常规功能可以产生中断,通用的中断用16bit定时器2)作为看门狗使用,当时钟计数器减为0时(超时),他将产生一个128个时(PCLK)钟的的复位信号我们常见的时钟有3个,FCLK,HCLK,PCLK,他们的工作频率分别是400MHz,400/3MHz,和400/6MHz,看门狗使用的是PCLK时钟。

下图为看门狗的电路示意图PCLK经过两次降频,prescaler的值从0到256-1,Division_factor的值为16,32,64,128。

看门狗定时器记数值的计算公式如下:t_watchdog的值是寄存计数器(WDTCNT)多长时间自减一次,他的单位是时间,一旦看门狗定时器被允许,看门狗定时器数据寄存器(WTDAT)的值不能被自动的装载到看门狗计数器(WTCNT)中,因此,看门狗启动前要将一个初始值写入看门狗计数器(WTCNT)中。

7.看门狗实验

7.看门狗实验

IWDG_SetReload(rlr);
IWDG_ReloadCounter(); IWDG_Enable(); }
3.3 独立看门狗主程序
回到主界面,在 main.c 文件里面编写如下代码:
#include "led.h" #include "delay.h"
#include "sys.h"
#include "wdg.h"
2.5 预分频寄存器IWDG_PR(STM32参考手册 P318)
2.6 重装寄存器IWDG_RLR(STM32参考手册 P318)
2.7 独立看门狗超时时间
溢出时间计算: Tout=((4×2^prer) ×rlr) /40 时钟频率LSI=40K, 一个看门狗时钟周期就是最短超时时间。 最长超时时间= (IWDG_RLR寄存器最大值)X看门狗时钟周期
delay_ms(100);
PBout(0)=0;
while(1);
}
#include "sys.h"
#include "wdg.h"
int main(void)
{ delay_init(); LED_Init();
5.3 窗口看门狗主程序
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); WWDG_Init(0X7F,0X5F,WWDG_Prescaler_8);
void WWDG_Init(u8 tr,u8 wr,u32 fprer);
void WWDG_Set_Counter(u8 cnt); void WWDG_NVIC_Init(void); #endif

嵌入式系统试验报告

嵌入式系统试验报告

嵌入式系统实验报告学院:计算机科学与工程姓名:___________学号:_______________专业:_______________指导老师:______________完成日期:______________实验一:流水灯案例、8位数码管动态扫描案例一、实验目的1.1 进一步熟悉Keil C51集成开发环境调试功能的使用;1.2 学会自己编写程序,进行编译和仿真测试;1.3 利用开发板下载hex 文件后验证功能。

二、实验原理2.1 :实验原理图030B 〜I ।卜RSI I ™Hi 」 口 UICDR Hr hJJK RR 18q U I. 海水灯电浒周LhE U_EEM^Li > > 第 X > k >n - » =白 L a £0EBS2.2:工作原理2.2.1:流水灯电路中有LO,1,L2,L3,4,L5,L6,L7共八个发光二极管,当引脚LED_ SEL输入为1,对于A、B、C、D、E、F、G、H引脚,只要输入为1,则点亮相连接的发光二极管。

A〜H引脚连接STM32F108VB芯片的PE8〜PE15,程序初始化时,对其进行初始设置。

引脚LED_SEL为1时,发光二极管才工作,否则右边的数码管工作。

注意,LED SEL 连接于PB3,该引脚具有复用功能,在默认状态下,该引脚的I0不可用,需对AFIO_ MAPR寄存器进行设置,设置其为10可用。

2.2.2: 8位数码管数码管中的A~G、DP段分别连接到电路图中的A~G、H线上,当某段上有一-定的电压差值时,便会点亮该段。

当£3输入为1,也就是LED_ 5£1输入为0时,根据SELO〜SEL2的值确定选中的数码管,即位选,再根据A~H引脚的高低电平,点亮对应段,即段选。

三、实验结果3.1:流水灯对于给出的流水灯案例,下载HEX文件后,在开发板上可观察到L0-L7从左至右依次点亮,间隔300ms。

实验5-2 看门狗实验

实验5-2 看门狗实验

实验5-2 看门狗定时器应用实验1、实验目的了解watchdog 的作用掌握S3C2410A 的watchdog 定时器的使用方法2、实验内容实现看门狗复位编程实现看门狗喂狗3、实验设备S3C2410A 开发板ADS1.2 集成开发环境,ARM 仿真器、串口连接线4、实验原理4.1 看门狗功能简述嵌入式系统运行时受到外部干扰或者系统错误,程序有时会出现“跑飞”,导致整个系统瘫痪。

为了防止这一现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗(watchdog)电路。

看门狗的作用就是当系统“跑飞”而进入死循环时,恢复系统的运行。

4.2 看门狗的工作原理其基本原理为:设本系统程序完整运行一周期的时间是Tp,看门狗的定时周期为Ti,Ti>Tp,在程序正常运行时,定时器就不会溢出,若由于干扰等原因使系统不能在Tp 时刻修改定时器的记数值,定时器将在Ti 时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控的作用。

4.3 S3C2410A 的看门狗S3C2410A 的看门狗定时器有两个功能:作为常规时钟,并且可以产生中断;作为看门狗定时器使用,当时钟计数减为0(超时)时,它将产生一个128 个时钟周期(PCLK)的复位信号。

主要特性如下:通用的中断方式的16bit 定时器。

当计数器减到0(发生溢出),产生128 个PCLK 周期的复位信号。

下图为看门狗的电路示意图,看门狗时钟使用PCLK 作为他的时钟源,PCLK 通过预分频产生适合的看门狗时钟。

看门狗模块包括一个预比例因子放大器,一个是四分频器,一个16bit 计数器。

看门狗的时钟源来自PCLK,为了得到较宽范围的看门狗信号,PCLK 先被预分频,之后再经过分频器分频。

预分频比例因子的分频值,都可以由看门狗控制器(WTCON)决定,预分频值的有效范围从0 到256-1。

分频因子可以选择16、32、64 或者128。

看门狗定时器记数值的计算公式如下:t_watchdog=1/ [PCLK/( prescaler value +1)/ Division_factor ]看门狗的定时周期为T=WTCH×t_watchdog一旦看门狗定时器被允许,看门狗定时器数据寄存器(WTDAT)的值不能被自动的装载到看门狗计数器(WTCNT)中。

6Zigbee实验报告《看门狗》

6Zigbee实验报告《看门狗》
实验步骤:
1)打开鼎轩VSN实验箱,检查实验箱设备,确保实验箱设备完整、连接无误后,连接电源线,打开电源开关;
2)用烧录线连接汇聚网关上的烧录接口与电脑USB接口;
3)点击(\cC2530-simpledemo\cc2530-simple-demo\WATCHDOG)目录下的工程图标watchdog.eww打开工程;.
WDCTL = 0x50;
}
/***************************
//主函数
*************************itLed();//调用初始化函数
Init_Watchdog();
LED1=1;
while(1)
{
LED2=~LED2; //仅指示作用。
LED1 = 0; //LED1灯熄灭
LED2 = 0;//LED2灯熄灭
}
void Init_Watchdog(void)
{
WDCTL = 0x00; //这是必须的,打开IDLE才能设置看门狗
WDCTL |= 0x08;
//时间间隔一秒,看门狗模式
}
void FeetDog(void)
{
WDCTL = 0xa0;
for(j=587;j>0;j--);
}
第二页
实验内容与步骤
/****************************
//初始化程序
*****************************/
void InitLed(void)
{
P1DIR |= 0x03; //P1_0、P1_1定义为输出
P1INP |= 0X03; //打开下拉
Delayms(300);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

竭诚为您提供优质文档/双击可除嵌入式系统看门狗实验报告
篇一:《嵌入式系统原理与应用》实验报告04-看门狗实验
《嵌入式系统原理与接口技术》实验报告
实验序号:4实验项目名称:看门狗实验
1
2
3
4
篇二:嵌入式实验报告
目录
实验一跑马灯实验................................................. (1)
实验二按键输入实
验................................................. .. (3)
实验三串口实验................................................. . (5)
实验四外部中断实验................................................. .. (8)
实验五独立看门狗实验................................................. (11)
实验七定时器中断实验................................................. (13)
实验十三ADc实验................................................. .. (15)
实验十五DmA实验................................................. .. (17)
实验十六I2c实验.................................................
(21)
实验十七spI实验................................................. .. (24)
实验二十一红外遥控实验................................................. .. (27)
实验二十二Ds18b20实验................................................. (30)
实验一跑马灯实验
一.实验简介
我的第一个实验,跑马灯实验。

二.实验目的
掌握sTm32开发环境,掌握从无到有的构建工程。

三.实验内容
熟悉mDKKeIL开发环境,构建基于固件库的工程,编写代码实现跑马灯工程。

通过Isp下载代码到实验板,查看运行结果。

使用JLInK下载代码到目标板,查看运行结果,使用JLInK在线调试。

四.实验设备
硬件部分:pc计算机(宿主机)、亮点sTm32实验板、
JLInK。

软件部分:pc机wInDows系统、mDKKeIL软件、Isp软件。

五.实验步骤
1.熟悉mDKKeIL开发环境
2.熟悉串口编程软件Isp
3.查看固件库结构和文件
4.建立工程目录,复制库文件
5.建立和配置工程
6.编写代码
7.编译代码
8.使用Isp下载到实验板
9.测试运行结果
10.使用JLInK下载到实验板
11.单步调试
12.记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
两个灯LeD0与LeD1实现交替闪烁的类跑马灯效果,每300ms闪烁一次。

七.实验总结
通过本次次实验我了解了sTm32开发板的基本使用,初
次接触这个开发板和mDKKeILc软件,对软件操作不太了解,通过这次实验了解并熟练地使用mDKKeIL软件,用这个软件来编程和完成一些功能的实现。

作为sTm32的入门第一个例子,详细介绍了sTm32的Io口操作,同时巩固了前面的学习,并进一步介绍了mDK的软件仿真功能。

实验二按键输入实验
一.实验简介
在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。

二.实验目的
熟练使用库函数操作gpIo,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。

三.实验内容
实现初始化gpIo,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。

使用JLInK下载代码到目标板,查看运行结果,使用JLInK在线调试。

四.实验设备
硬件部分:pc计算机(宿主机)、亮点sTm32实验板、JLInK、示波器。

软件部分:pc机wInDows系统、mDKKeIL软件、Isp软
件。

五.实验步骤
1在实验1代码的基础上,编写中断初始化代码
2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序
3编写中断服务程序
4编译代码,使用JLInK下载到实验板
5.单步调试
6记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
我们将通过minisTm32板上载有的3个按钮,来控制板上的2个LeD,其中KeY0控制LeD0,按一次亮,再按一次,就灭。

KeY1控制LeD1,效果同KeY0。

KeY_2(KeY_up),同时控制LeD0和LeD1,按一次,他们的状态就翻转一次。

七.实验总结
通过本次实验,我学会了如何使用sTm32的Io口作为输入用。

Tm32的Io口做输入使用的时候,是通过读取IDR 的内容来读取Io口的状态的。

这里需要注意的是KeY0和KeY1是低电平有效的,而wK_up是高电平有效的,而且要确认wK_up按钮与Ds18b20的连接是否已经断开,要先断开,否则Ds18b20会干扰wK_up按键!并且KeY0和KeY1连接在
与JTAg相关的Io口上,所以在软件编写的时候要先禁用JTAg功能,才能把这两个Io口当成普通Io口使用。

篇三:嵌入式实验报告
《嵌入式系统原理与设计》
班级:
姓名:
学号:
任课教师:
开始时间:
结束时间:报告
目录
实验一跑马灯................................................. ................................................... .......51.实验目的................................................. ................................................... .. (5)
2实现方法................................................. ................................................... .........53.代。

相关文档
最新文档