0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机软件系统的可靠性设计

h1654155971.7688 来源:未知 作者:李倩 2018-03-13 09:06 次阅读

可靠性设计是一项系统工程,单片机系统的可靠性必须从软件、硬件以及结构设计等方面全面考虑。硬件系统的可靠性设计是单片机系统可靠性的根本,而软件系统的可靠性设计起到抑制外来干扰的作用。软件系统的可靠性设计的主要方法有:开机自检、软件陷阱(进行程序“跑飞”检测)、设置程序运行状态标记、输出端口刷新、输入多次采样、软件“看门狗”等。通过软件系统的可靠性设计,达到最大限度地降低干扰对系统工作的影响,确保单片机及时发现因干扰导致程序出现的错误,并使系统恢复到正常工作状态或及时报警的目的。

一、开机自检

开机后首先对单片机系统的硬件及软件状态进行检测,一旦发现不正常,就进行相应的处理。开机自检程序通常包括对RAMROM、I/O口状态等的检测。

1检测RAM检查RAM读写是否正常,实际操作是向RAM单元写“00H”,读出也应为“00H”,再向其写“FFH”,读出也应为“FFH”。如果RAM单元读写出错,应给出RAM出错提示(声光或其它形式),等待处理。

2检查ROM单元的内容对ROM单元的检测主要是检查ROM单元的内容的校验和。所谓ROM的校验和是将ROM的内容逐一相加后得到一个数值,该值便称校验和。ROM单元存储的是程序、常数和表格。一旦程序编写完成,ROM中的内容就确定了,其校验和也就是唯一的。若ROM校验和出错,应给出ROM出错提示(声光或其它形式),等待处理。

3检查I/O口状态首先确定系统的I/O口在待机状态应处的状态,然后检测单片机的I/O口在待机状态下的状态是否正常(如是否有短路或开路现象等)。若不正常,应给出出错提示(声光或其它形式),等待处理。

4其它接口电路检测除了对上述单片机内部资源进行检测外,对系统中的其它接口电路,比如扩展的E2PROM、A/D转换电路等,又如数字测温仪中的555单稳测温电路,均应通过软件进行检测,确定是否有故障。

只有各项检查均正常,程序方能继续执行,否则应提示出错。

二、软件陷阱

在程序存储器中总会有一些区域未使用,如果因干扰导致单片机的指令计数器PC值被错置,程序跳到这些未用的程序存储空间,系统就会出错。软件陷阱是在程序存储器的未使用的区域中,加上若干条空操作和无条件跳转指令,无条件跳转指令指向程序“跑飞”处理子程序的入口地址。如果程序跳到这些未用区域,就会执行无条件跳转指令,转到相应的程序出错“跑飞”处理程序。除程序未用区域外,还可以在程序段之间(如子程序之间及一段处理程序完成后)及一页的末尾处插入软件陷阱,效果会更好。下面是一段带软件陷阱的程序;

DSP:……;显示子程序

RET

NOP;软件陷阱

NOP

NOP

LIMP FLY

D10MS:MOV R0,#010H;延时子程序

……

RET

NOP ;软件陷阱

NOP

NOP

LJMP FLY

……

FLY:…… ;“跑飞”处理子程序

RET

三、程序

“跑飞”处理要进行程序“跑飞”处理,就要分清程序“跑飞”所造成的影响,以及程序“跑飞”前运行的进程,这就需要的设置相应的标志。

RAM数据正常标志RAM数据正常标志是检测RAM区的数据是否已经因程序“跑飞”或其它干扰而改变。如果RAM区的数据确因程序“跑飞”或其它干扰而改变,则系统无法自行恢复到原来的出错地点,只能由人工或由软件复位从头开始执行。要进行RAM区数据正常检测,首先应在初始化程序中,对RAM的若干单元设置RAM数据正常标志。通常是在RAM区中选数个单元,在初始化程序中将其置成固定的数,如“55H”或“0AAH”,只要程序正常运行,这些单元的内容是不会被修改的,若因程序“跑飞”或其它干扰导致这些RAM单元中的任何单元的数据发生变化,说明其它RAM单元的内容也可能发生变化,无法反映程序运行的结果和状态,不能根据RAM区中的标志去恢复程序运行现场。

程序运行标记程序运行状态标记是在RAM区中设立一些标志位,这些标志位分别代表程序运行的不同阶段及运行后的状态。在初始化程序中,首先对这些单元置初值,在程序运行的不同阶段,这些单元的内容将被改变成特定值,标记程序运行的阶段和运行后的状态。这些标志除了在程序正常运行中起到条件转移的作用外,还能在程序“跑飞”,而RAM区数据正常时起到恢复程序运行现场的作用。

程序“跑飞”处理程序“跑飞”处理就是在程序由软件陷阱检测到“跑飞”后,转入“跑飞”处理程序。“跑飞”处理程序判断“跑飞”影响的程度,根据影响程度的不同,决定是报警复位还是自动恢复现场。如自动恢复现场,则需根据程序运行状态标记进行。具体如何进行程序“跑飞”处理,要根据控制系统的设计要求进行。

四、输出端口刷新

由于单片机的I/O口很容易受到外部信号的干扰,输出口的状态也可能因此而改变。在程序中周期性地添加输出端刷新指令,可以降低干扰对输出口状态的影响。在程序中指定RAM单元存储输出口当时应处的状态,在程序运行过程中根据这些RAM单元的内容去刷新I/O口。

五、输入多次采样

干扰对单片机的输入,会造成输入信号瞬间采样的误差或误读。要排除干扰的影响,通常采取重复采样、加权平均的方法。

比如对于外部电平采样(如按键),采取软件每隔10ms读一次键盘或连续读若干次,每次读出的数据都相同或者采取表决的方法确认输入的键值。又如在用单稳电路检测温度的系统中(参《电子报》1999年第51期第九版)采取对单稳电路的脉冲宽度计数,然后查表求温度值的方法。为排除干扰的影响,可以采取三次采样求平均值,也可以采取两次采样、差值小于设定值为有效,然后求平均值的方法(又称软件滤波)。总之,对输入信号进行多次采样,其后如何进行处理是要根据具体对象实际处理的效果来优选的,读者可通过实验室调试时施加干扰及现场环境调试时的效果来确定。

六、软件“看门狗”

软件陷阱是在程序运行到ROM的非法区域时检测程序出错的方法。而“看门狗”是根据程序在运行指定时间间隔内未进行相应的操作,即未按时复位看门狗定时器,来判断程序运行出错的。

在系统成本允许的情况下,应选择专门的看门狗电路芯片或片内带看门狗定时器的单片机。如果条件不允许,应加软件“看门狗”。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43975

    浏览量

    620860
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113706

原文标题:单片机系统常用软件抗干扰措施

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机应用系统可靠性设计

    可靠性生产和可靠性使用及维护来保证。因此,在系统设计时要充分利用可靠性的概念和方法考虑系统硬件设计和软件
    发表于 02-13 10:29 3369次阅读

    单片机应用系统中的软件抗干扰技术

    可靠性与安全成为人们日益关心的问题。单片机抗干扰技术的研究,就是在这种需求下产生,并从软件角度探讨几种抗干扰的方法。【关键词】:单片机;
    发表于 04-24 09:46

    单片机复位电路的可靠性分析

    单片机以及Microchip公司的PIC系列单片机。无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。而单片机复位电路设计的好坏
    发表于 10-23 11:13

    单片机复位电路的可靠性分析

    单片机复位电路的可靠性分析
    发表于 08-16 15:39

    单片机系统中复位电路的可靠性设计探讨

    单片机系统中复位电路的可靠性设计探讨
    发表于 10-31 10:28

    用于单片机通讯的可靠性高485芯片有推荐吗?

    请推荐一个可靠性高的485芯片,用于单片机通讯
    发表于 10-08 14:25

    提高单片机可靠性的方法

    受到干扰,CPU读指令时出错了。以上提到的是当前广泛使用的单片机应该具有的内部抗干扰措施。在选用单片机时,要检查一下这些性能是否都有,以求设计出可靠性高的系统。在应用
    发表于 07-16 11:07

    单片机应用系统可靠性可靠性设计

    现代电子系统可靠性现代电子系统具有如下特点:嵌入式的计算机系统.智能化的体系结构;以计算机为核心的柔性硬件基础,由软件实现
    发表于 01-11 09:34

    单片机应用系统可靠性特点

    可靠性设计技术和软件系统可靠性设计技术的解决方法。可供单片机应用系统的开发人员借鉴与参考。
    发表于 02-05 07:57

    MCS一51单片机软件系统可靠性设计

    McS一51单片机应用系统在使用过程中,由于存在大量的干扰源,虽不能造成硬件系统的损坏.但常常使微机系统下能正常工作.因此,软件
    发表于 11-17 16:05 11次下载

    如何提高单片机系统可靠性

    提高单片机系统可靠性的方法与措施很多。一般地,应根据系统所面临的具体的可靠性问题,针对引起或影响系统
    发表于 11-09 15:20 4827次阅读

    如何进行单片机应用系统可靠性设计

    首先简要地介绍了单片机应用系统可靠性的重要性,并分别给出了硬件可靠性软件可靠性的概念及其区别。
    发表于 01-08 15:14 3次下载
    如何进行<b class='flag-5'>单片机</b>应用<b class='flag-5'>系统</b>的<b class='flag-5'>可靠性</b>设计

    单片机应用系统可靠性特点

      本文从现代电子系统可靠性出发,详细论述了单片机应用系统可靠性特点。提出了芯片选择、电源设计、PCB制作、噪声失敏控制、程序失控回复等
    的头像 发表于 01-10 09:03 3039次阅读

    浅谈单片机应用系统可靠性设计

    本文从现代电子系统可靠性出发,详细论述了单片机应用系统可靠性特点。提出了芯片选择、电源设计、PCB制作、噪声失敏控制、程序失控回复等集合
    的头像 发表于 01-20 14:23 466次阅读

    单片机应用系统可靠性设计

    本文从现代电子系统可靠性出发,详细论述了单片机应用系统可靠性特点。提出了芯片选择、电源设计、PCB制作、噪声失敏控制、程序失控回复等集合
    发表于 01-21 06:27 14次下载
    <b class='flag-5'>单片机</b>应用<b class='flag-5'>系统</b>的<b class='flag-5'>可靠性</b>设计