当前位置:首页 > 电源 > 数字电源
[导读] 1 程序跑飞现象随着单片机在能源领域中的广泛应用,单片机的抗干扰问题越来越突出,煤矿井下环境一般比较恶劣,这便会为单片机控制系统带来各种干扰,以致系统不能正常工作

 1 程序跑飞现象

随着单片机在能源领域中的广泛应用,单片机的抗干扰问题越来越突出,煤矿井下环境一般比较恶劣,这便会为单片机控制系统带来各种干扰,以致系统不能正常工作。单片机应用系统的抗干扰性能主要取决于硬件的抗干扰设计,但软件

抗干扰设计作为硬件抗干扰的完善和补充,作用也非常重要,因为大量的干扰通常并不能影响系统内硬件的运作,却常会使系统的软件无法正常运行,单片机应用的一个突出问题,便是单片机运行过程中经常出现的程序跑飞现象。

在单片机系统中,因为干扰的原因,在非预期的情况下,使得程序计数器PC 的值发生随机的变化,从而使得程序的流向指向不确定区域,这便是程序的跑飞。程序跑飞后或者会使指令的地址码和操作码发生改变,PC 把操作数当作指令来执行;或者PC值指向一条不合逻辑关系的指令甚或是非程序区,运行结果常常会使单片机进入死循环———便是大家常说的“死机”。为确保在无人当值的情况下,单片机“死机”后能自动恢复过来,通常采用软件陷阱,外部WDT 电路,以及软件控制的WATCHDOG 等方法,使系统恢复正常(后两种俗称“看门狗”),限于篇幅不做专门说明,这里主要向大家介绍用555 定时器软硬结合做看门狗的一种方法。

2 555定时器

一般情况下,看门狗主要是通过不断监视程序运行一个事件的时间是否超过预定的时间来判断程序是否进入了死循环,因此利用555 定时器可复位的触发功能外加延时电路可实现看门狗的功能。555定时器是一种多用途的单片集成电路,内部电路如图1 所示。

 

 

CO端是控制电压输入端,加控制电压可改变A1“-”端及A2“ +”端的参考电压,若不用,可通过一个小电容接地,以防旁路高频交流干扰;R 为定时器直接复位端,加低电平可将定时器直接置“0”,此时,OUT输出“0”,Q 为1”,V 导通,D 端对地通路;TH 为复位阀值输入端,当TH 电压超过2/3UDD(即A1 负端分压)时,A1 输出为“1”,OUT 输出“0”,同样,D 端对地通路;TR 为置位输入端,当TR电压低于1/3 UDD(即A2 正端分压)时,A2 输出“1”,定时器被置位,此时,OUT 输出“1”,Q 为“0”,V截止,D端对地断路。

3 看门狗电路及运行指令以INTEL公司的16 位单片机8096 为例,555定时器作为看门狗与单片机的接口电路可设计如图2 所示。

 

 

首先在单片机初始化时用指令“ORBPORT1,#01H”置P1.0 为“1”,则三极管T 导通,555 芯片的R 为“1”,TH、TR 端经R、C 充电,电位逐渐上升,当电位还低于1/3 UDD 时,OUT 输出“1”,D端对地断路,电容C 正常充电,一旦程序跑飞或进入死循环,在电位上升到高于2/3 UDD时仍没有“喂狗”,则OUT输出变为“0”,经三极管T拉低单片机的RESET 脚,并使复位电容放电,这时

D 端对地短路,电容C 也通过Rf 放电,当TH、TR端电位放电到低于1/3 UDD(注意)时,OUT输出重新变为“1”,单片机进入复位状态。

“喂狗”是指复位看门狗,在本电路中只须运行以下指令即可。

ANDB PORT1,#0FEH ;使P1.0 为“0”

SKIP ;空操作,用于延时

SKIP ;以使TR电压降到1/3 UDD为宜

ORB PORT1,#01H ;使P1.0 为“1”

当P1.0 被置为“0”时,555 定时器的R 端为“0”,三极管T 截止。R 端为“0”则555 芯片被复位,OUT 输出为“0”,同时D 端对地短路,电容C放电为重新延时做准备,但因为三极管的截止,此时OUT 输出虽然也为“0”却并不影响单片机的RESET脚,单片机正常工作,从而区分开了“喂狗”与系统故障时看门狗发生作用的不同之处。

4 需要注意的问题

这里仍然有一个问题需要注意,那就是555定时器的正常工作与否完全依赖于单片机P1.0的状态,但在某些干扰比较严重的情况下,单片机的误操作是有可能改变P1.0 的预置状态的,若单片机在进入死循环之前,P1.0 被误置为了“0”,看

门狗始终处于“被喂”的状态,那这个电路便就无法再发挥作用了,对这种情况我们可用软件冗余的方法来应对,就是在程序的关键地方多次插写看门狗的激活指令:

NOP

ORB PORT1,#01H

值得提醒一下的是这里“NOP”指令的作用不容忽视,可使跑飞的程序纳入正轨,不致冲散后面的关键指令。不过尽管如此软件冗余的应用也还是有一个前提的,那就是跑飞的程序必须落在程序区,冗余的指令得到执行方可生效,若跑飞的程序落在了非程序区,仅凭指令冗余技术便不可靠了,这时我们便还须借助其他抗干扰技术的支持,如软件陷阱、标志技术,本质可靠性程序的设计等,在此不再赘述,但这些都必须包含在一个可靠的程序内———毕竟,单片机系统来自干扰的影响是立体的,那么,我们的应对策略便也须是全方位的。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

这款全新的中端MCU系列为设计人员提供了更高水平的安全性和灵活性

关键字: 嵌入式 单片机

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

在电力电子领域,逆变器是一种将直流电(DC)转换为交流电(AC)的装置,广泛应用于各种电子设备中。对于2200W的逆变器而言,选择合适的三极管型号对于保证逆变器的性能、效率和可靠性至关重要。本文将深入探讨2200W逆变器...

关键字: 2200w逆变器 逆变器 三极管

在下述的内容中,小编将会对三极管的相关消息予以报道,如果三极管是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 8050 三极管

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机
关闭
关闭