Watchdog在Philips 8XC552系列单片机系统中的应用

发布者:温馨的家庭最新更新时间:2006-06-09 来源: 国外电子元器件关键字:单片机  复位  溢出 手机看文章 扫描二维码
随时随地手机看文章

  1 引言
  
  Philips公司的8XC552单片机以其体积小、功能强、价格低等优势而广泛地使用在工业控制、DCS控制和智能仪器等领域。笔者在智能配电监测仪的研制过程中,虽然采取了相应的抗干扰措施,但由于工业现场环境中电磁场、电网尖峰、谐波、浪涌及雷电辐射等影响,仍有可能出现程序死循环、跑飞等失控现象。为此,笔者采用Watchdog技术保证了系统的正常运行,通常Watchdog技术在单片机应用系统中可分为软件Watchdog和硬件Watchdog。Philips公司的8XC552、Intel的8098、Motorala的68C05以及Microchip的16C5X系列单片机本身已带有软件Watchdog功能,因此,只要硬件接法正确,在软件设计中调用相应语句进行启动即可。

  2 硬件组成原理

  2.1系统工作原理

  图1所示是87C522单片机用于智能型配电仪的连接电路,本智能配电仪中的87C552为主控芯片,该芯片除具有三个16位定时器T0、T1及T2外,还有一个专作监视8位定时器、简称WDT(WatchdogTimer)的T3定时器。因为微控制器有时会受噪音、射频干扰等环境因素的影响而导入错误的运行状态。监视定时器的功能就是在某特定的时限内使微控制器复位,从而将其从错误的状态中恢复过来以重新开始正常运行。当T3用作Watchdog定时器并由软件启动计时后,如果系统已达到所设定的预定时间而仍没有重新启动定时器,此时就会产生溢出信号并停止计时,表明系统出现异常。CPU可以对定时器重新启动、清零、设定计时值等操作。系统正常运行时,CPU将周期性地重新启动定时器,当然其启动周期应小于定时器的设定值,以保证定时器始终不能产生溢出信号。而当系统运行不正常时,由于CPU不能周期性地启动定时器,因而定时器将产生溢出信号,以强迫CPU恢复系统的正常运行。

  2.2 Watchdog的内部结构原理
  
  监视定时器的结构原理如图2所示。它的核心为一8位定时器,其前级是一个11位定标器。后者的输入信号为fosc/12,即定标器对机器周期进行递增计数。这样,每过2个机器周期,定时器T3的值便增加1000次。若用16MHz或24MHz晶体振荡器,则监视定时器的增值间隔将分别为1.536ms和1.024ms;其相应的最大溢出周期分别为393.216ms和262.144ms。

  当监视定时器溢出时,系统将产生一个内部复位脉冲以使8XC552复位。由图2可以看出,T3溢出时,RST引脚内侧的晶体管因栅极出现一个负脉冲而瞬时导通,从而在RST引脚上输出一个复位正脉冲,其宽度为3个机器周期。如果RST引脚外接电容,则这么窄的输出脉冲可能遭到破坏,因为电容不允许RST引脚电压产生突变,但这不会影响到内部复位操作。

  如果将8XC552的引脚接至低电平,则输入信号至定标器的通路将畅通无阻,于是监视定时器便正常运作。但若将引脚接高电平,输入信号则会因与门被封锁而不能通过,这时监视定时器处于关闭状态。应当指出,一旦T3被开启,则无法用软件使之关闭;同时如果T3被EW禁止,也无法用软件启动。
  
  如果=0,那么PCON寄存器的PD位便不可写入,其初值为0,无法置l,即不可进入掉电方式。故监视定时器和掉电方式两者不可兼得。



  3 调试中的常见问题及其解决方法
  
  在对系统进行调试时,有可能出现闪屏、无法显示以及显示杂乱等现象,现将这些问题的解决方法介绍如下:

  (1)LCD出现闪屏,无法翻屏显示现象
  
  笔者在用仿真器运行编程时,LCD能够翻屏并不断显示采集来的三相用电参数,但离开仿真器处于脱机运行状态时,LCD只能显示第一屏数据。经查仿真器的引脚接高电平,而脱机时脚悬空,从而引起了脚的状态不固定,并不断产生内部复位信号使单片机复位而出现了上述现象。后来把脚接低电平,仍然出现上述现象。而把脚接高电平后(即禁用Watchdog功能),则LCD显示正常。因此,引脚应严格禁止悬空以避免出现不稳定的状态,同时在未载入Watchdog程序之前,其引脚也不能接低电平。

  (2)LCD无显示
  
  RST端的电容应确保连接正确,否则在高电平时将无法加到复位端而使CPU不能运行程序,从而出现LCD无显示的现象。

  (3)LCD显示数据杂乱无章、数据死锁

  把脚接低电平,可能会出现LCD显示的数据杂乱无章、数据死锁现象。其原因是源程序中未载入Watchdog程序,因此应保证在源程序中加入Watchdog程序,以消除数据的死锁或显示杂乱无章等问题。

  4 软件设计

  4.1软件设计
  
  编写监视定时器运行软件时,程序员首先应当确定系统能够在错误状态下支持的时间,也就是设定溢出周期的依据。例如能维持16ms,则把T3的初值设定为10,这样,在16MHz晶振的情况下,溢出周期为15.36ms。此时程序员就可对其软件进行划分,以确定把重写T3值的指令插在什么地方,才能使相邻两次重写操作间隔不超过监视定时器的溢出周期,以保证正常运作时T3不溢出。因此,程序员应当了解所有软件模块的执行时间,同时也要考虑到出现条件跳转、子程序及内外中断等因素所带来的影响。对于那些很难估算其执行时间的程序段落,应按最坏情况估算。为防止误写,监视定时器值的重写可分两步进行。首先将PCON.4(监视定时器装入允许位WLE)置1,以允许对T3进行写入;第二步向T3写入新值。由图2可知,对T3的写信号同时也会加到WLE的清0端,于是每当T3被写入新值时,WLE位便自动复位。因此,当该值为00H时,溢出间隔最大;而FFH值则对应最小溢出周期。若采用12MHz晶振,这两值则分别为524ms和2ms。最大和最小溢出周期的计算公式分别为:

  

  由于在空闲方式下,监视定时器照常运行。因此,该方式与掉电方式是矛盾的,因为前者需要时钟,后者冻结时钟。故当=0而开启T3工作时,8XC552将无法进入掉电方式,此时向PCON.1写l的操作无效,因而它将保持为0。在软件开发调试的早期阶段,可将引脚接高电平以关闭监视定时器,而在后期改接低电平以完成调试过程。

  4.2定时间隔和访问时间的设定
  
  数据采集及处理是程序中的关键部分,也是决定仪器精度的关键所在。本仪器采用电压、电流、频率、相位为主要采集参数,且这些参数是连续变化的,因此采样时间不宜设置得过长,否则会影响仪器的精度。笔者将电流与电压的采样时间定为5ms,频率与相位的采集时间为20ms,这样,Watchdog的定时间隔设置较佳,具体如图3所示。图3中,Watchdog在WDT1时间内完成对采集频率数据的监控,而在WDT2、WDT3、WDT4内分别负责对电压、电流、相位数据采集的监控。在设计程序时,一般取1.1Ts<Tw<2Ts,其中Ts为采样周期,Tw为Watchdog的定时时间,Ts分别为T1、T2、T3、T4的大小,Tw分别为WDT1、WDT2、WDT3、WDT4的大小。Tw设置太小会增加访问频率,影响程序执行效率;而设置太大则会干扰程序的正常运行,且需等待很长时间才可以恢复运行,而采集或控制对象可能已在这一步偏离过大。因此,CPU访问时间原则上小于Tw就可以了,为防止时间估计不准,设计时应小些为好,这样可以防止系统异常而处于每经过Tw时间启动一次的死循环中。

            

  4.3软件程序
  
  本智能监控仪用C语言编写程序,并采用12MHz晶振时,其溢出时间应分别设置为6ms、20ms、524ms…,这样,在源程序中应适时加入的各Watchdog程序如下:

    

  5结束语
  
  在智能配电仪的源程序中加入Watchdog后,其整个系统运行将更加稳定、可靠,从而有效地克服了来自工业用电现场的各种干扰。

关键字:单片机  复位  溢出 引用地址:Watchdog在Philips 8XC552系列单片机系统中的应用

上一篇:基于LabVIEW的远程测控方法
下一篇:开关功率放大器的数字控制方案研究

推荐阅读最新更新时间:2024-03-30 21:21

51单片机控制SL811HS的USB主机底层驱动
引言 基于USB接口的设备使用方便,性价比高,因此在人们的工作和生活中得到了广泛的应用,如U盘,移动硬盘,光驱,USB摄像头,USB鼠标键盘等,同时,51系列单片机以其成熟的技术和高性价比吸引了大量国内用户,被广泛应用于测控和自动化领域,因此,如果在51单片机系统中增加USB主机接口,实现对USB从机设备的控制,则该单片机系统可以充分利用现有的各种USB从机设备,大大扩展单片机系统功能。 本设计实现了在51单片机系统中增加USB主机功能,采用普通51单片机外接专用USB接口芯片的方案,这种方案虽然会使系统传输速度受到限制,而且在稳定性有所欠缺,但此方案设计灵活性高,且易于移植,为低成本产品的开发提供了广阔前景,设计中采用51单
[单片机]
结合单片机学习板学习c语言之流水灯制作--intrins.h头文件
目的:实现流水灯。 源程序: /*本程序结合STC89C51使用,晶振12M,中间用到串口中断子程序是利用STC单片机的自定义ISP下载功能,自定义下载命令是FEH,关于自定义下载请参考《用51单片机就用STC51,手把手教你STC51的ISP》*/ #include at89x51.h //#include reg51.h #include intrins.h #include stdio.h sfr ISP_CONTR =0xE7; delay_05s() { int i; i=647395; for(;i!=0;i--); } void serial() interrupt 4 //编号
[单片机]
单片机的外部结构-引脚功能
简介:51系列单片机8031、8051及89c51/89s51均采用40Pin封装的双列直接DIP结构。在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。 一、教学目的:掌握单片机的引脚功能 二、教学重点:单片机的P0、P1、P2、P3口的使用和区别 三、教学步骤: (1) 单片机(AT89S51)外观 (2) 单片机(AT89S51)的引脚功能图 (3) 51系列单片机8031、8051及89c51/89s51均采用40Pin封装的双列
[单片机]
<font color='red'>单片机</font>的外部结构-引脚功能
[单片机框架][bsp层][AT32F415][bsp_adc] adc配置和使用
12.1 ADC介绍 12 位 ADC 是一种逐次逼近型模拟数字转换器。它有多达 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 ADC 的输入时钟不得超过 28 MHz,它是由 PCLK2 经分频产生,参见图 3-2。 12.2 ADC主要特征 12位分辨率 转换结束、注入转换结束和发生模拟看门狗事件时产生中断 单次和连续转换模式 从通道0到通道n的自动扫描模式 自校準時間: 156個ADC時鐘週期 带内嵌数据一致性的数据对
[单片机]
[<font color='red'>单片机</font>框架][bsp层][AT32F415][bsp_adc] adc配置和使用
单片机与串口232通讯《续》
目的:这是一个通过串口发送区发送数据后,串口接收区接收发送的数据。//注意串口设置是16进制还是ASIIC码?如果是16进制,那接收到的第一个数据就是00。如ASIIC则不显示数据。 程序: #include reg52.h bit point=1; //标志位 unsigned char temp; unsigned char i; //--------------------------------------------------------- void init() //串口初始化 { TMOD=0x20; SCON=0x50; TH1=0xfD; TR1=1; ES=1;
[单片机]
单片机制作超级流水灯
实验源程序: #include reg52.h #include intrins.h unsigned int a,b; unsigned char d; sbit LED1 = P1^0; sbit LED2 = P1^1; sbit LED3 = P1^2; sbit LED4 = P1^3; sbit LED5 = P1^4; sbit LED6 = P1^5; sbit LED7 = P1^6; sbit LED8 = P1^7; sbit LED9 = P2^0; sbit LED10 = P2^1; sbit LED11 = P2^2; sbit LED12 = P2^3; sbit LE
[单片机]
51单片机串口通信试验汇编程序
(今天是硬生生的把它给抠出来了):PC 通过串口助手向单片机系统传递命令和数据:以A5开始,以5A结束;中间是数据,长度不一,要求把数据部分用led灯显示出来;并且要求循环显示; //This is my x_Ed program code //we use it as the pc communicated with the mcu //At the same time,we want to see the result by LCD; STFLAG BIT 00H //收到起始码标志,1为收到起始码 EDFLAG BIT 01H //到结束码标志,1为收到结束码 TMFLAG BIT 02H //定时时间到标志
[单片机]
紫光新一代车规MCU获功能安全最高认证,携手安谋科技深化车芯市场布局
近日,紫光同芯宣布,其搭载Arm® Cortex®-R52+内核的新一代THA6系列MCU,顺利通过了国际权威认证机构SGS关于功能安全开发流程体系和功能安全产品设计的评估,荣获符合ISO 26262标准的ASIL D等级功能安全流程体系认证、功能安全ASIL D Ready产品认证两项资质。这标志着该款产品成为国内首颗通过ASIL D产品认证的Arm Cortex-R52+内核MCU芯片,达到了功能安全的最高等级要求。作为紫光同芯在汽车电子功能安全领域的最新成果,新一代THA6系列MCU在性能、安全性和可靠性等方面均具有显著优势。目前,该产品已顺利进入流片阶段,将助力国内汽车“新四化”的创新发展。 安谋科技智能物联
[汽车电子]
紫光新一代车规<font color='red'>MCU</font>获功能安全最高认证,携手安谋科技深化车芯市场布局
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved