提高单片机系统的稳定性研究

发布者:Huanle最新更新时间:2011-08-24 关键字:单片机系统  稳定性研究 手机看文章 扫描二维码
随时随地手机看文章

        当系统的CPU部位受到干扰信号的作用时,将使系统失控。最典型的故障是破坏程序计数器PC的状态值。导致程序在地址空间内“乱飞”,或者陷入死循环。而我们对这种情况的处理主要有这么几种方法:

  1、 指令冗余技术;

  2、 软件陷阱技术;

  3、 看门狗技术。

  我们以MCS-51单片机来做以说明。

  一、指令冗余技术

  我们知道,指令由操作码和操作数组成,操作码指明CPU要完成什么样的操作,而操作数是操作码的对象。单字节指令只有操作码,隐含操作数;双字节指令,第一个字节是操作码,第二个字节是操作数;三字节指令第一个字节是操作码,后二个字节是操作数。CPU在取指令的时候是先取操作码再取操作数,如何判断是操作码还是操作数就是通过取指令的顺序。而取指令的顺序完全由指令计数器PC来控制,因此,一旦PC受干扰出现错误程序便会脱离正常轨道,出现“乱飞”,这样就会使得把操作数当作操作码,或者把操作码当作操作数的情况。但只要PC指针落在单字节指令上程序就可纳入正轨,所以为了快速的将程序纳入正轨,我们应该多用单字节指令,并在关键的地方人为的插入一些单字节指令NOP,或将有效的单字节指令重写,这就称之为指令冗余。

  常用的方法就是在一些双字节,三字节指令后面插入两个单字节指令NOP,或在一些对程序的流向起决定作用的指令前面插入两条NOP指令。还可对一些重要的指令进行重复放置。

  但采用指令冗余技术将程序纳入正轨的条件是:乱飞的PC必须指向程序运行区。

  二、软件陷阱技术

  当乱飞的程序进入非程序区的时候, 我们就可设定软件陷阱对乱飞的程序进行拦截从而将程序引向一个固定的位置。这样我们就可将捕获的程序重新纳入正轨。

  软件陷阱主要就是把程序从新引入它的复位入口处,也就是说我们在适当的地方设置这样的指令:

  NOP

  NOP

  LJMP 0000H

  对于软件陷阱的安排,我们主要安排在这样一些区域,未使用的中断区,未使用的EPROM空间及非EPROM空间。程序运行区,及中断服务程序区。在这里我们主要来看前三种:

  1、 未使用的中断区

  如果对于未使用的中断因干扰而开放的话,我们可以把中断服务程序这样来写:

  NOP

  NOP

  POP  D1  ;将原来的错误断点弹出

  POP  D2  ;将原来的错误断点弹出

  PUSH 00H

  PUSH 00H  ;将断点地址重写为0000H

  RETI

  2、 未使用的EPROM区

  假设我们用了一片2764,但并没有用完整个存储区。这时候就可在未用的区域里填充上020000数据,这样当程序飞入其中时就会很快的走入正轨。这条指令其实是“LJMP 0000H”的机器码。

  3、 非EPROM空间

  单片机系统的程序空间是64K,正常情况下我们所使用的EPROM不会占用所有的空间,假设我们现在的EPROM占用16K的空间那么剩下的48K空间就被闲置不用了。当乱飞的PC落入这些空间时,读入的数据将为FFH,这是 :MOV  R7,A 指令的机器码,将修改R7的内容。因此,当程序乱飞入非EPROM芯片区后,不仅无法导入正规,面且破坏了R7的内容。

  我们知道,当CPU读程序存储器的时候,伴随着会产生一个PSEN信号,我们就可利用这个信号,再加上一个非EPROM区的地址译码信号,构成一个选通信号来起动一个空闲的中断,再用软件陷井的方法从中断程序中把程序导入正规。我们可看下面的一个图:

  INT0

  PSEN

  非EPROM地址选通信号

  

 

  我们也可通过硬件的方法用一个缓冲器直接给数据线写一个值,其原理与上述方法相同。

  三、  软件看门狗技术

  我们知道看门狗的作用就是防止程序发生死循环,或者说程序跑飞。硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。

  软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。

  对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1 的定时中断就会使单片机复位。在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。而T1的中断正常与否我们再由T0定时中断子程序来监视。这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。

关键字:单片机系统  稳定性研究 引用地址:提高单片机系统的稳定性研究

上一篇:ADμC812的数据采集子系统及其系统编程技术
下一篇:单总线制多机呼叫系统方案

推荐阅读最新更新时间:2024-03-16 12:40

单片机系统抗干扰措施应从哪些方面设计
  1 引言   目前,开关电源模块单片机系统在星载仪器中担负着非常重要的任务,星载仪器往往处于复杂的空间环境之中,存在着大量的干扰源,如高能带电粒子主要通过单粒子效应对单片机系统构成影响,使其发生单粒子翻转事件,将导致程序走向混乱,使系统无法正常工作。因此,在系统设计上充分考虑MTD2002抗干扰设计,提高系统的可靠性尤为重要。对于单片机系统而言,干扰有两种,一是来源于系统外部环境和其它电气设备产生的干扰,通过传导和辐射等途径影响单片机系统正常工作;二是来源于系统内部,由系统结构、制造工艺等决定以及内部元器件在工作时产生干扰,通过地址、电源线、信号线、分布电容等传输,影响开关电源模块系统工作状态。MTD2002单片机系统抗干扰
[单片机]
可编程无线遥控技术单片机系统设计
  介绍了一种可编程无线遥控多通道开关系统的设计方法,详述了其组成结构和工作原理。该系统采用单片机对接收到的信号进行软件解码,避免了采用专用解码芯片的有关限制,可以增强系统的扩展性和灵活性,经试验证明是一种可行方案。   1 引言   随着集成电路技术的飞速发展,基于各类芯片新型遥控的不断出现。遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。在无线遥控领域,目前常用的遥控方式主要有超声波遥控、红外线遥控、无线电遥控等。由于无线电波的自身技术特点可以在很大区域和空间内实现,成为遥控的主要方式,并在生产、建设和日常生活中具有广泛的应用价值。为此,在前人研究的基础上探索出了一种基
[单片机]
可编程无线遥控技术<font color='red'>单片机系统</font>设计
单片机系统的低功耗设计策略
在嵌入式应用中,系统的功耗越来越受到人们的重视,这一点对于需要电池供电的便携式系统尤其明显。降低系统功耗,延长电池的寿命,就是降低系统的运行成本。对于以单片机为核心的嵌入式应用,系统功耗的最小化需要从软、硬件设计两方面入手。 随着越来越多的嵌入式应用使用了实时操作系统,如何在操作系统层面上降低系统功耗也成为一个值得关注的问题。限于篇幅,本文仅从硬件设计和应用软件设计两个方面讨论。 1 硬件设计 选用具有低功耗特性的单片机可以大大降低系统功耗。可以从供电电压、单片机内部结构设计、系统时钟设计和低功耗模式等几方面考察一款单片机的低功耗特性。 1.1 选用尽量简单的CPU内核 在选择CPU内核时切忌一味追求性能。8位
[嵌入式]
单片机系统中的汉字显示解决方案
引言 在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字。通常的汉字显示方式是先根据所需要的汉字提取汉字点阵(如16×16点阵),将点阵文件存入ROM,形成新的汉字编码;而在使用时刚需要先根据新的汉字编码组成语句,再由MCU根据新编码提取相应的点阵进行汉字显示。在这种显示方式中,如果使用的流字数量较大或语句较多时,利用汉字的新编码组成语句将是一件十分繁琐而枯燥的工作。针对这种情况,本文提出了一种十分简单的方式——直接利用PC机的汉字内码作为单片机系统的编码。下面以8051单片机系统为例阐述如下: 一、硬件组成 本系统中采用香港精电公司的内置T6963控制器 的240128T点阵图形液晶显示器。该
[单片机]
<font color='red'>单片机系统</font>中的汉字显示解决方案
单片机系统中什么是数据、地址、指令
数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的──数字,或者说都是一串 0 和 1 组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不能由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元能由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象,在各种不一样的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况: 1 地址(如MOV DPTR,#1000H),即地址1000H送入D
[单片机]
在51系列单片机系统中应用SPI总线
1 引言 SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOST和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。由于SPI系统总线一共只需3~4位数据线和控制即可实现与具
[单片机]
最小单片机系统
  MCS-51系列是由INTEL公司于1980年所开发的8位单片机系列,最初的产品为带内部ROM的8051和不带内部ROM的8031。随着MCS-51系列单片机用户的增加,INTEL公司推出了带内部EPROM的8751和扩展功能的8032、8052、8752,同时其他公司也推出了在MCS-51单片机内核基础上设计的产品,如ATMEL的带FLASH MEMORY 的89C51、89C52,带在系统编程(ISP)接口的89S51、89S52。8031的内核还被集成在诸如智能IC卡一类的集成电路中。MCS-51系列的微控制器以其良好的可扩展性被广泛地应用。   MCS-51单片机具有4个8位的端口,分别为P0、P1、P2、P3。P0、P
[单片机]
最小<font color='red'>单片机系统</font>
单片机系统常用软件抗干扰措施
单片机的可靠性设计是一项系统工程,单片机系统的可靠性必须从软件、硬件以及结构设计等方面全面考虑。硬件系统的可靠性设计是单片机系统可靠性的根本,而软件系统的可靠性设计起到抑制外来干扰的作用。软件系统的可靠性设计的主要方法有:开机自检、软件陷阱(进行程序“跑飞”检测)、设置程序运行状态标记、输出端口刷新、输入多次采样、软件“看门狗”等。通过软件系统的可靠性设计,达到最大限度地降低干扰对系统工作的影响,确保单片机及时发现因干扰导致程序出现的错误,并使系统恢复到正常工作状态或及时报警的目的。   一、开机自检 开机后首先对单片机系统的硬件及软件状态进行检测,一旦发现不正常,就进行相应的处理。开机自检程序通常包括对RAM、ROM、I/O口
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved