软件的可靠性一直是一个关键问题。任何使用软件的人都可能会经历计算机死机或程序跑飞的问题,这种情况在嵌入式系统中也同样存在。由于单片机的抗干扰能力有限,在工业现场的仪器仪表中,常会由于电压不稳、电弧干扰等造成死机。在水表、电表等无人看守的情况下,也会因系统遭受干扰而无法重启。为了保证系统在干扰后能自动恢复正常,看门狗定时器(Watchdog Timer)的利用是很有价值的。
1 看门狗的作用
看门狗定时器是一个计数器,基本功能是在发生软件问题和程序跑飞后使系统重新启动。看门狗计数器正常工作时自动计数,程序流程定期将其复位清零,如果系统在某处卡死或跑飞,该定时器将溢出,并将进入中断。在定时器中断中执行一些复位操作,使系统恢复正常的工作状态,即在程序没有正常运行期间,如期复位看门狗以保证所选择的定时溢出归零,使处理器重新启动。
2 看门狗问题及相关实验
现今市面上流行的一些单片机,多嵌有内部WDT,如TI的MSP430系列,Philips的P87XXX和P89XXX系列,Microchip的PIC列,Atmel的AT89SXX系列和Holtek公司的Htxxx系列。但是这些内部看门狗在工作时,多存在一定的误差。一些工程师在设计的过程中,由于忽略了这一点,导致系统出现异常。MSP430系列单片机是美国德州仪器公司(TI)近几年开发的新一代单片机,该系列是一款16位、具有精简指令集、超低功耗的全新概念混合型单片机。在众多单片机系列中,由于它具有极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为一颗耀眼的新星。其内部自带看门狗及复位电路,理论上如果程序跑飞,可用看门狗将其复位。但在实际使用过程中,发现看门狗的作用并非万无一失,以下实验证明了这一点。实验电路如图1所示。
上述实验启动后,如果程序正常运行,LED会闪烁。缺省时,MSP430的看门狗是允许状态,所运行的程序会不断地访问看门狗。理论上,这个系统是不会发生启动失败的,因为即使启动失败,看门狗也应该在数百毫秒内启动,复位整个系统。基于这种思想,对单片机的复位进行测试。K2断开,用K1连续产生。Reset信号,测试看门狗使系统重启的成功率。K2闭合,则reset端高电平,理论上K1不能有效产生复位脉冲,观察看门狗是否起作用。
3 实验结果与分析
实验结果如下:K2断开,连续开关K1,上电重启系统,平均155次失败1次(LED不闪),即看门狗失效概率0.6%;K2闭合,连续开关K1,平均18次失败1次(LED不闪),且一旦失败,将连续失败下去,看门狗无效率占到了约5.5%。另外,当采用同样具有内置看门狗的其他系列单片机替代实验中的MSP430,启动程序段作相应修改时,实验结果仍大致相同,这说明具有内置看门狗的单片机面临的问题是相同的。经分析可能有如下原因:
①由于看门狗的时钟不独立,计数时钟与系统为同一分频链路,因此看门狗不能在系统出现问题时有效运作。
②由于时钟可用软件设置,启动失败时,开机时钟可能处于空档,没有时钟看门狗不能生效。
③有些看门狗需要用软件设置或启动,因此启动失败后,初始化程序没有激活,CPU可能跳转到随机代码,使看门狗被禁止。这样的看门狗是需要有可靠的上电复位作保证的,因此,从理论上讲,原设计存在着不合理性。基于上述分析,采用片外看门狗专用芯片TPS3823由独立的分频振荡电路提供计数脉冲。实验电路如图2所示。
上述电路中,TPS3823输出定时溢出信号给Reset端。程序段中,CPU要不断地通过I/O口输出喂狗信号,使看门狗计数器清零。在此电路中重复上述试验中K1、K2的相同动作,系统重启成功率达到100%。
结 语
未来的内置看门狗必须有独立可靠的时钟。系统上电后,看门狗即为允许状态,无需软件设置,它只能被外部硬件跳线或内部熔丝(fuse)所禁止。目前,如果要求设计可靠性较高的嵌入式系统,外置看门狗是必须考虑的。内置看门狗的另一问题是系统复位后,程序应判断是由Reset端正常上电复位,还是程序跑飞看门狗所致,由此确定现场数据是否应该保留。这也是在看门狗应用中所应考虑的。
关键字:单片机 看门狗
引用地址:
单片机中的看门狗研究
推荐阅读最新更新时间:2024-03-16 13:59
单片机的工作时序
时钟电路用于产生单片机工作所需要的时钟信号,控制单片机按照一定的节拍运行,时序规定了指令执行过程中各控制信号之间的相互关系。在时钟信号的控制作用下,单片机就是一个复杂的同步时序电路,严格地按照规定的时序进行工作。 AT89S52的时钟有两种方式,一种是片内时钟振荡方式,需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10p-30p。另外一种是外部时钟方式,即将XTAL2悬空,外部时钟信号从XTAL1脚输入。 一、机器周期和指令周期 振荡周期指为单片机提供定时信号的振荡源的周期,即晶体振荡器直接产生的振荡信号,用Tosc表示。振荡脉冲的周期也叫做节拍,用P表示。 时钟周期是振荡周期的两倍,是
[单片机]
基于51单片机AD0809八路AD采样12864显示
#include reg52.h #include #define uchar unsigned char #define uint unsigned int //****端口定义************************* sbit lcdrst=P3^3; sbit lcdrs=P3^2; sbit lcdrw=P3^1; sbit lcde=P3^0; //****端口定义************************* sbit ST=P2^7; //A/D启动转换信号 sbit OE=P2^5; //数据输出允许信号 sbit EOC=P2^6; //A/D转换结束信号
[单片机]
飞思卡尔与Indesign联合开发安全工业销售点平台
基于开放源代码软件和飞思卡尔8位和32位微控制器的综合参考设计 德州奥斯汀-2007年1月31日 -飞思卡尔半导体已与飞思卡尔设计联盟伙伴Indesign公司携手开发工业控制应用的安全销售点信息管理(POS)参考设计。销售点(POS)参考设计基于飞思卡尔微控制器(MCU)技术和开放源代码软件,是一个具有完整功能、经济高效的解决方案,能够解决安全连接、人机界面和开放源代码软件开发的设计难题。 POS参考设计证明,飞思卡尔32位MCF5329 ColdFire MCU和8位MCS908QG8 MCU能够通过控制、安全和连接功能,帮助设计人员创建安全的工业销售点解决方案。POS参考设计与开放源代码内置μCLinux 软件解决方案
[新品]
学习单片机为什么选用AVR单片机
学习单片机为什么选用AVR单片机? 电子技术的迅猛发展,尤其单片机更广泛地应用于军事、工业、家用电器、智能玩具、便携式智能仪表等领域,使产品功能、精度和质量大幅度提高,电路简单、故障率低、可靠性高且成本低廉。ATMEL公司把51内核与其擅长的FLASH制造技术相结合,推出可重复擦写1000次以上低功耗的89C51/52/1051/2051等产品,取代其它8751系列,称霸单片机市场数年。于1997年,由ATMEL挪威设计中心的A先生与V先生,利用ATMEL的FLASH新技术, 共同研发RISC(Reduced Instruction Set CPU) 精简指令集高速嵌入式8位单片机,简称AVR。 学习单片机为什么选用AV
[单片机]
基于stm32单片机的Grayhill编码器/开关软件设计
1、初识编码器,像示波器的旋转按钮,可左旋右旋,还可以按下,我们使用的是Grayhill编码器,如下图所示: 从图中可以看出,该编码器一共有6个IO,从1-6分别为GND,GND,C,B,A,VCC,。 其中VCC和GND接3.3V和GND,A、B对应旋转时电平的跳变IO,C对应按下时电平的跳变IO。 (1) 硬件电路设计上,为了方便代码编写与理解,最好把编码器的A、B接到单片机相邻的GPIO中,即使用同一个中断处理函数,比如本设计A、B分别接到PB12和PB11。C接任一个GPIO,当成中断使用。 (2) 顺时针和逆时针旋转编码器时,慢慢旋转一个单位(手指头会有明显旋转到位的感觉),用万用表测量A、B对应的IO
[单片机]
蓝牙5模块携手TI无线微控制器 带你走进蓝牙5时代
2017年9月8日 – 专注于新产品引入 (NPI) 并提供极丰富产品类型的业界顶级半导体和电子元器件分销商贸泽电子 (Mouser Electronics),宣布即日起开始备货Laird Technologies的SaBLE-x-R2蓝牙® 5模块。SaBLE-x-R2 模块采用初始版SaBLE-x模块经过现场验证的硬件,缩短了系统开发时间,可以为物联网 (IoT) 传感器实现领先的低能耗蓝牙连接,为商业、医疗和工业应用实现信标技术。下面就随网络通信小编一起来了解一下相关内容吧。 贸泽电子备货的Laird SaBLE-x-R2模块采用外部或PCB引线天线,其传输范围、速度和吞吐率完全符合蓝牙5规范,并针对应用目标和OTA能
[网络通信]
AVR的看门狗操作
编译:iccavr6.31 仿真:proteus6.9+sp4 晶振:片内1MHz 接线:PB0--发光二极管,0--亮,1--灭。PA0--按键 功能:发光二极管状态闪烁,表示正常工作,若按键按住不放(即长时间不喂狗),程序将产生复位。 #include iom16v.h #include macros.h /*延时函数*/ void delay_ms(unsigned char i) { unsigned char a, b; for (a = 1; a i; a++) { for (b = 1; b; b++) { ; } } } void main(void) { DDRA = 0x00;
[单片机]
基于AVR单片机与FPGA的低频数字式相位测量仪
摘要:提出了以AVR ATmega128单片机和Altera公司的Cyclone系列EP1C3T100为核心的系统设计方案。分析了数字式低频相位测量仪的测量原理和测量误差及其消除的方法。利用单片机强劲的运算、控制功能和FPGA运算速度快、资源丰富的特点。主要介绍了系统的软硬件设计。实践表明,此方案设计的相位仪对低频正弦波信号实现精确测频和测相位差,具有处理速度快、稳定可靠、精度高等优点。 关键词:数字相位仪;单片机;FPGA;误差;频率;相位差 在工业领域中经常要用到低频数字式相位仪来精确测量两信号之问的相位差,比如在电力系统、频率特性的研究、激光测距等领域均有广泛的应用,相位检测的精度直接决定系统的整体性能。这就要求测量仪逐
[工业控制]