当前位置:首页 > 单片机 > 单片机
[导读]应用于工业过程控制和智能化仪器仪表的单片机,由于现场条件往往十分恶劣,不可避免地会受到各种各样的电磁干扰。当串入系统的干扰作用于单片机内部的 CPU部件时,后果更加严重,将导致系统失控。最典型的失控故障是

应用于工业过程控制和智能化仪器仪表的单片机,由于现场条件往往十分恶劣,不可避免地会受到各种各样的电磁干扰。当串入系统的干扰作用于单片机内部的 CPU部件时,后果更加严重,将导致系统失控。最典型的失控故障是破坏程序计数器PC的状态,导致程序在地址空间内“乱飞”,或者陷入“死循环”。因此,尽可能早地发现程序失控,并采取相应的补救措施,是单片机应用系统抗干扰设计的重要内容。

使程序从“乱飞”状态纳入正轨的方法称为程序拦截技术,包括指令冗余技术、软件陷阱技术等。使程序摆脱“死循环”,通常多采用硬件电路实现的监视技术,又称“看门狗”技术(Watchdog)。常见的硬件 “看门狗”电路有单稳态型“看门狗”电路、计数器型“看门狗”电路、微处理器监控专用芯片等。上述的抗干扰方法可参阅有关资料文献。本文将讨论由软件实现的“看门狗”技术。

由硬件电路实现的“看门狗”技术,可以有效地克服主程序或中断服务程序由于陷入“死循环”而带来的不良后果。但在工业应用当中,严重的干扰有时会破坏中断方式控制字,导致中断关闭,这时一般的硬件“看门狗”将不能使中断恢复正常。依靠软件进行多重监视,可以弥补上述不足。

软件“看门狗”技术的基本思路是:在主程序中对中断服务程序的运行进行监视;在中断服务程序中对主程序的运行进行监视;采用两个中断实施相互监视,称之谓软件三重监视抗干扰技术。从概率观点,这种相互依存,相互制约的抗干扰措施,将使系统的可靠性大大提高。

本文以MCS—51单片机为例,说明软件三重监视的基本原理。系统软件包括主程序、T0定时中断子程序和T1定时中断子程序3部分,将T0设计成高级中断,T1设计成低级中断,从而形成中断嵌套。

1 主程序监视过程设计  

主程序流程如图1—1所示。主程序完成系统测控功能的同时,还要监视T0中断服务程序因干扰而引起的中断关闭故障。A0为T0中断服务程序运行状态的观测单元,T0每发生一次中断,A0计数单元少一次中断(T0定时溢出时间小于测控功能模块运行时间),引起A0的变化。在测控功能模块的出口处,将A0值与E0值进行比较,以判断A0是否发生变化。若A0发生变化,说明T0中断运行正常;若A0不变化,说明T0中断关闭,则转到程序入口0000H处,进行出错处理后,程序恢复正常运行。

设A0、E0、M计数单元分别为内RAM中的30H、40H和50H单元,监视程序如下:
        loop1:MOV   50H, #00H;  清M单元
                      MOV   40H,   30H ;暂存A0单元 
               …;           测控功能模块
           CLR    C
           MOV    A,     30H
           SUBB   A,     40H; 判断A0变化
           JZ     loop
           MOV    30H,   #00H
         LJMP   loop1
  loop:LJMP 0000H

2 T1中断服务程序监视过程设计  

T1中断程序流程如图2—1所示。T1中断服务程序在完成特定测控功能的同时,还要监视主程序的运行状态。在中断服务程序中设置一个主程序运行计时器M1,T1每中断一次,M便自行加1。M中的数值与T1定时溢出时间之积表示时间值。若由M表示的时间值大于主程序的运行时间,说明主程序因干扰而陷入了“死循环”,T1中断服务程序便修改断点地址,返回0000H,进行出错处理。若M不大于主程序运行时间,说明主程序运行正常,中断服务程序也正常返回。M单元在系统主程序运行中循环清“0”。

设单片机晶振频率为6MHz,T1以工作方式1产生2ms的定时中断,则T1的计数初值为:
(216-N)×2×10-6=2×10-3
  N=64536D=FC18H

若图1—1中主程序的最大循环时间为200ms,则图2—1中的T取值应不小于64H,可取68H。A1为T1中断程序运行状态监测单元,取内RAM 31H单元,M仍取50H单元,60H、61H为暂存单元,则T1中断监视程序如下: 
        PUSH   PSW            ;保护现场
    PUSH    ACC
    MOV     TH1,  #0FCH    ;T1置初值
    MOV     TL1,  #18H
    INC     31H              ;A1单元加1
    INC     50H                  ;M单元加1
    CLR      C
    MOV      A,#68H
    SUBB     A,50H              ;T≥M?
    JC       loop 
      …                   ;中断测控程序
    POP     ACC                  ;恢复现场
    POP     PSW
RETI                        ;返回
loop:POP  ACC            ;恢复现场
    POP     PSW
    POP     60H                  ;原断点弹出
    POP     61H
    MOV     60H,#00H           ;断点修改为0000H
    MOV     61H,#00H
    PUSH    60H
    PUSH    61H
  RETI    ;返回

3 T0中断服务程序监视过程设计  

T0中断程序流程如图3—1所示。T0中断的功能是监视T1中断服务程序的运行状态。由于T0中断服务程序较短,因干扰而引起的“死循环”的几率很小,重点考虑中断关闭故障。图3—1中A1、B1为T1中断运行状态观测单元。A1的初值为00H,T1每中断一次,A1便加1,如图2—1所示。T0中断服务程序中若检测到A1>0,说明T1中断正常;若A1=0,则B1单元加1(B1的初值为00H),若B1的累加值大于Q,说明T1中断失效,失效时间为T0定时溢出时间与Q值之积。例如:T0的定时溢出时间为4ms,T1的定时溢出时间为2 ms,当Q=5时,说明允许T1的失效时间为20 ms,在这样长的时间内,T1并没有发生中断,说明T1中断发生了故障。由于T0中断级别高于T1中断级别,所以T1的任何故障(如死循环、中断关闭)都会由T0检测出来。T0中断服务程序一般很短,发生“死循环”的几率很小。

设单片机晶振频率为6MHz,T0以工作方式1产生4 ms的定时中断,则T0的计数初值为:
(216-N)×2×10-6=4×10-3 
  N=63536D=F830H

设计数单元A0、A1、B1分别为内RAM 30H、31H、32H,Q=5,60H、61H为暂存单元,则T0中断监视程序如下: 
    PUSH   PSW     ;保护现场
    PUSH      ACC
    MOV       TH0,#0F8H  ;设T0初值
    MOV       TL0,#30H
    INC       30H          ;A0加1
    MOV       A,31H       ;A1单元判0
    JZ        loop1
    CLR        A       ;清A1、B1单元
    MOV       31H,A
    MOV       32H,A
    loop0:POP   ACC         ;恢复现场
           POP   PSW
         RETI             ;返回
    loop1:INC   32H         ;B1加1
           CLR    C
           MOV     A         ,32H;B1≥Q?
           SUBB    A,#05H    
           JC      loop0
           POP    ACC    ;恢复现场
           POP     PSW
           POP     60H        ;原断点弹出
           POP     61H
           MOV     60H,#00H ;修改断点0000H
           MOV     61H,#00H
           PUSH    60H
           PUSH    61H
         RETI

当系统受到干扰后,主程序可能发生“死循环”,中断服务程序也可能陷入“死循环”,或因中断方式字的破坏而关闭中断。主程序的“死循环”可由T1中断服务程序监视;T1中断服务程序的“死循环”和中断关闭故障由T0中断服务程序监视;T0的中断故障可由主程序监视。由于采取了三重软件监测方法,大大提高了系统运行的可靠性。

[参考文献]
[1] 何立民.单片机应用技术选编[M].北京航空航天大学出版社,1998,8.
[2] 王幸之.8051/8098单片机原理及接口设计[M].兵器工业出版社,1998,1.
 

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

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制

北京2023年9月25日 /美通社/ -- 9月21日,由中国质量报刊社·中国质量新闻网主办的第六届食品高质量发展交流会在北京举行,会议主题为"高质量,新生活",旨在推动食品行...

关键字: 自动化 BSP ISO9001 NAS

北京2023年9月23日 /美通社/ -- 近日,主线科技正式获准在北京市智能网联汽车政策先行区道路开启常态化测试与示范,将与物流客户在真实开放的城区道路场景中,率先开启基于L4级别自动驾驶能力的智能卡车运输示范。 随...

关键字: 智能卡 测试 高速公路 BSP

曼谷2023年9月18日 /美通社/ -- 作为东南亚的旅游胜地,泰国一直在全球范围内吸引着无数游客的目光。泰国旅游和体育部近日公布的报告显示,今年前7个月,泰国旅游业总收入约为1.08万亿泰铢(约合人民币2233亿元)...

关键字: BSP GEN 国美 AN

哥伦比卡尔达斯2023年9月22日 /美通社/ -- 近日,天合跟踪与中国电建签订拉美地区哥伦比亚泰普伊光伏电站跟踪支架供货协议,将为其提供108MW智能跟踪系统,其中包含开拓者1P智能跟踪支架、智能算法、以及智慧云平台...

关键字: 光伏电站 跟踪系统 控制器 BSP

2型炎症领域新突破 上海2023年9月22日 /美通社/ -- 赛诺菲今天宣布,达必妥®(度普利尤单抗注射液)获得中国国家药品监督管理局(NMPA)批准,用于治疗适合系统治疗的中度至重度结节性痒疹的成...

关键字: PRIME BSP REPORT SAR

欧莱雅中国旗下上海美次方投资有限公司达成首次开放式创新投资 法国克里希2023年9月22日 /美通社/ -- 欧莱雅集团宣布对中国创新型生物科技公司杉海创新进行少数股权投资,以建立长期合作伙伴关系,共同开发新...

关键字: AN BSP DEVELOPMENT FOR

赋能企业实现业务数据的可识别、可见、可协作和安全数据的可操作 北京2023年9月22日 /美通社/ -- 亚马逊云科技持续加速分析与安全服务创新,守护安全基座,助力企业进一步释放数据要素价值,实现创新增长。在数字经济时...

关键字: 亚马逊 BSP 生成式AI SECURITY

重庆2023年9月22日 /美通社/ -- 全球领先的高端半导体封装载板和印制电路板制造商奥特斯连续第八年受邀,出席重庆市市长国际经济顾问团于9月22日举行的第十七届年会。 奥特斯连续第八年受邀,出席重庆市市...

关键字: BSP 印制电路板 微型 微电子
关闭
关闭