《物联网技术创新应用》项目9监测站宕机复位重启_第1页
《物联网技术创新应用》项目9监测站宕机复位重启_第2页
《物联网技术创新应用》项目9监测站宕机复位重启_第3页
《物联网技术创新应用》项目9监测站宕机复位重启_第4页
《物联网技术创新应用》项目9监测站宕机复位重启_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

监测站宕机复位重启InternetofThings项目场景说明看门狗介绍CC2530与看门狗定时器项目实践项目场景监测站在长期运行的过程中如果其本身出现了非硬件故障的程序性宕机,那么由工程人员去监测站重启设备就很有必要了。然而很多的检测站因为监测需要可能泡在水中、埋在土里或者是挂在高处,且传感器数量巨大,技术维护不方便。应对这种情况要如何处理呢?这个时候就可以使用单片机中的看门狗功能了,当看门狗检测到系统宕机时可自动重启设备从而省去了小事故大动作的烦恼。任务目标使用CC2530单片机模拟监测站宕机复位重启,通过编辑程序使用CC2530单片机的看门狗外设实现假设CC2530单片机宕机后的系统复位重启,使用按键输入作为CC2530单片机正常运行的条件,通过连接在CC2530单片机管脚上的指示灯表示CC2530单片机当前的工作状态。看门狗概念看门狗定时器(WDT,WatchDogTimer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始倒计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始倒计数。如果看门狗减到0就认为程序没有正常工作,强制整个系统复位。看门狗IC的基本原理看门狗,是一个定时器电路,一般有一个输入,叫喂狗(kickingthedogorservicethedog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零。如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到MCU,使MCU复位以此防止MCU死机。看门狗的作用就是防止程序发生死循环,或者说程序跑飞。项目场景说明看门狗介绍CC2530与看门狗定时器项目实践CC2530看门狗定时器介绍CC2530单片机看门狗定时器有一下特性:四个可选的定时器间隔看门狗模式定时器模式在定时器模式下产生中断请求CC2530看门狗定时器之看门狗模式在CC2530单片机系统复位之后,看门狗定时器同时被复位。此时要设置WDT为看门狗模式,必须从新设置WDCTL.MODE[1:0]位为10。然后启动看门狗,看门狗定时器的计数器就会从0开始递增。在看门狗模式下,一旦定时器使能,就不可以禁用该定时器,因此如果WDT位已经运行在看门狗模式下,再往WDCTL.MODE[1:0]写入00或10就不起作用了。CC2530看门狗定时器之定时器模式CC2530的看门狗定时器可以直接配置为定时器来使用,若要将WDT设置为一般定时器模式,必须把WDCTL.MODE[1:0]位设置为11。设置成功后定时器开始执行,且计数器从0开始递增。当计数器达到设定的计数值后,定时器将产生一个中断请求(IRCON2.WDTIF/IEN2.WDTIE)。寄存器介绍CC2530的看门狗的配置寄存器只有一个WDCTL(看门狗控制寄存器)。位名称复位R/W描述7:4CLR[3:0]0000R0/W清除定时器。当0xA跟随0x5写到这些位,定时器被清除(即加载0)。注意定时器仅写入0xA后,在1个看门狗时钟周期内写入0x5时被清除。当看门狗定时器是IDLE为时写这些位没有影响。当运行在定时器模式,定时器可以通过写1到CLR[0](不管其他3位)被清除为0x0000(但是不停止)。3:2MODE[1:0]00R/W模式选择。该位用于启动WDT处于看门狗模式还是定时器模式。当处于定时器模式,设置这些位为IDLE将停止定时器。注意:当运行在定时器模式时要转换到看门狗模式,首先停止WDT,然后启动WDT处于看门狗模式。当运行在看门狗模式,写这些位没有影响。00:IDLE01:IDLE(未使用,等于00设置)10:看门狗模式11:定时器模式1:0INT[1:0]00R/W定时器间隔选择。这些位选择定时器间隔定义为32kHz振荡器周期的规定数。注意间隔只能在WDT处于IDLE时改变,这样间隔必须在定时器启动的同时设置。00:定时周期×32,768(~1s)当运行在32kHzXOSC01:定时周期×8192(~0.25s)10:定时周期×512(~15.625ms)11:定时周期×64(~1.9ms)当通过CLKCONCMD.CLKSPD使能时钟分频时,看门狗定时器的长度间隔减少一个等于当前振荡器时钟频率除以设定时钟的因数速度。例如,如果选择32-MHx晶体并且时钟速度被设置为4MHz,则看门狗超时时间减少了32MHz/4MHz=8倍。如果看门狗时间间隔由WDCTL.INT设置是1秒,名义上是这个时钟分频因子的1/8秒。项目场景说明看门狗介绍CC2530与看门狗定时器项目实践项目分析程序宕机后要让设备自动重启就需要用到CC2530单片机的看门狗外设,通过模拟喂狗以保持程序正常运行,中断喂狗则程序复位重启。CC2530看门狗的的配置比较简单,主要就是对WDCTL寄存器的配置,首先开启IDLE功能,功能开启后通过WDCTL寄存器低两位配置喂狗时间即可。喂狗操作则是依次向WDCTL寄存器写入0x0A和0x05即可。程序流程图项目实现看门狗初始化程序如下:voidwatchdog_init(void){WDCTL=0x00;//打开IDLE才能设置看门狗WDCTL|=0x08;//定时器间隔选择,间隔一秒}项目实现喂狗程序内容如下:voidfeed_dog(void){WDCTL=0xa0;//清除定时器。当0xA跟随0x5写到这些位,定时器被清除WDCTL=0x50;LED2=ON;//系统不复位LED灯长亮LED1=ON;//系统不复位LED灯长亮}项目实现按键按下,执行喂狗操作:while(1){LED2=ON;//没有按下按键系统走动复位,所以LED0会闪烁LED1=ON;if(KEY1==ON){//按键按下,执行喂狗操作,LED0点亮delay_ms(10);//按键防抖if(KEY1==ON){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论