1引言
人机界面(Human Machine Interface,HMI)又称人机交互界面,是工业现场常用的数字显示设备[1]。由于人机界面特殊的应用场合——工业现场,其电磁干扰、电源波动、高温、低温、湿度、机械振动等环境因素都可能造成人机界面的瞬时故障,如何对这些瞬时故障进行检测以及恢复,是人机界面设计过程中必须要解决的一个难题。
针对于瞬时故障的检测和恢复方法,主要分为硬件方法和软件方法。最初的解决方案主要是采用硬件的方法:错误检查和纠正(Error Correcting Code,ECC)、错误探测和纠正(Error Detection And Correction,EDAC)等硬件实现的纠错检错机制来保护系统的存储系统[2],以及采用三重模件冗余(Triple Modular Redundancy,TMR)[3]来保护硬件器件。传统的硬件方案存在着增加系统开发成本、增加产品开发周期、降低系统灵活性等缺陷。针对于硬件方案的缺陷,文献[4]中提出了一种基于软件的瞬时故障检测方案:软件实现的硬件故障容忍技术(Software implement Hardware Fault Tolerance,SIHFT)。此方法的基本思想是在软件的基础上,通过冗余、添加标签等方式,对由硬件瞬时故障所引发的软件故障进行检测。相比于硬件瞬时故障检测技术而言,软件方案有着更好的灵活性,它无需对底层硬件进行修改,同时,软件方案也可减低系统的功耗[5]。
本文将软件故障检测和恢复技术同一款工业人机界面系统的设计相结合,针对人机界面的软硬件特性以及特殊的运行环境,设计出了一种基于标签分析的软件故障检测及恢复的方法。
2WSP型-工业人机界面系统介绍
WSP型工业人机界面为一款触摸输入、TFT-LCD显示型工业人机界面。WSP型人机界面通过以太网、RS232/485/422串口等连接方式,可以同市面上主流的PLC、变频器等进行通信。下面对WSP人机界面系统的软硬件结构进行介绍。
WSP人机界面系统软件系统分为上位机和下位机两部分,上位机为组态软件,其运行环境为PC机,下位机为人机界面的应用程序,运行环境为WSP的底层硬件系统。人机界面软硬件系统框架结构如图1所示。
图1 WSP 软硬件架构
WSP人机界面的硬件主要分为核心板和底板两部分。其中核心板为六层板,底板为4层板,将核心板和底板分开,可以很好的提高系统的抗干扰能力,并且降低制板的成本。硬件部分主要包含CPU处理单元、存储单元、电源模块、通信接口、LCD接口等相关部件,其中最主要的核心处理单元采用了NXP的工业级芯片LPC3250。经过市场反馈和相关实验数据表明,外界干扰主要是通过电源、串口等部件作用在CPU和存储上而导致这些单元产生瞬时故障,进而影响到WSP软件的运行。
3基于软件的瞬时故障分析、检测及恢复
3.1人机界面瞬时故障分析
在工业现场中,会导致人机界面系统出现瞬时故障的因素主要有:电磁干扰、电源波动、高温、低温、湿度、机械振动等。在人机界面系统中最容易受到外界环境干扰而出现瞬时故障的部分为:时钟模块、CPU单元、通信模块、存储模块等。实践证明,在工业现场,这些瞬时故障一旦出现,如果不采取一定的措施进行控制和恢复,将可能导致如下的后果:
(2)人机界面系统出现死机、花屏现象;
(4)严重时,可能会导致系统硬件损坏。
通过测试可以得知,在外界环境干扰下,人机界面的CPU时钟可能会出现紊乱(出现时钟丢失、频率降低等现象),进而有可能导致程序的执行序列出错,也就是程序出现“跑飞”现象。当出现这种现象时,人机界面所表现出的外特性就是画面翻转错误、显示不正常、无法正常通信、死机等。如果非正常的程序流执行到FLASH读写部分,就会导致Flash的数据被改写而出现上述的关键参数被修改、掉画面、掉驱动等现象。如图2所示的人机界面状态转换图,实线部分为正常的程序跳转,虚线部分为外界干扰而导致的程序流异常跳转。
图2 瞬时故障导致的程序流执行错误
外界干扰除了对程序的执行顺序产生影响之外,另一种方式就是干扰太过强烈,直接破坏了程序指令或是数据,导致人机界面的运行出现错故障。对于程序执行流程错误,一般称之为控制流错误,而对于后一种错误,则称之为数据错误[5]。
鉴于不同的瞬时故障诱因所导致的软件故障的表现形式类似,故本文通过对软件的运行情况的监控,来实现系统瞬时故障的检测。
3.2人机界面系统瞬时故障诊断及恢复
基于软件的瞬时故障检测,主要是检测文中所提出的两类软件故障:数据错误和控制流错误。对于数据错误检测,一般采取冗余取指执行的方法,这种方法需要将指令多次执行,该方法会在很大程度上增加系统的负荷[6]。在实际应用中,数据错误体现在通信数据上而非处理器指令的错误,而通信模块由通信协议的重传机制来保证通信数据的正确,考虑到系统性能要求,在WSP软件系统中不采取冗余取指的方式来对检测数据流的错误。对于控制流错误,本文采取基于标签分析的方法进行错误检测和恢复。
在实际系统中,多事件扰乱(Multiple Event Upset,MEU)所发生的概率要远远的低于单事件扰乱(Single Event Upset,SEU) [6],为了建模以及研究的方便,这里假设所有的瞬时故障都是SEU瞬时故障。
通过标签分析来对人机界面做瞬时故障检测的示意图如图3所示,将整个人机界面的程序按照执行的逻辑结构,分成一系列基本块,并给每一个基本块的程序进出口处都标上唯一的标签,其中出口标签为入口标签的取反。为了确保标签数据的正确性,在每一个入口标签出保留一位奇偶校验位,以此来检验标签数据是否被篡改。系统内存中,保存程序执行的静态和动态标签列表,静态标签列表保存程序执行的正确流程,动态标签列表保存程序的实际执行流程,通过对比静态列表和动态列表,判断当前程序的执行流是否正确。
图3 HMI控制流错误检测
(1)基本块的划分及编号。程序基本块是指程序中能够顺序执行的指令序列的最大集合[5],这组指令只有一个入口和一个出口,入口就是第一条指令,出口就是最后一条指令。基本块的划分准则为:除了第一条和最后一条指令为跳转指令,其他的都不为跳转指令[5]。如图所示,由于系统中为人机界面应用程序的基本块标签为16-bits,为了保证每一个标签的独一无二性,最多可以划分的基本块个数为32767个。
表1 HMI应用程序基本块划分
应用程序模块
|
基本块个数
|
组态上载模块
|
152
|
组态下载模块
|
105
|
数据解析模块
|
58
|
通信模块
|
178
|
LCD显示模块
|
240
|
触摸输入
|
180
|
在HMI应用程序中,主要的模块基本块划分情况如图1所示。
(2)标签正确性检测。为了确保标签数据的正确性,在每一个入口标签数据之后加上一个数据奇偶校验位,在为基本块设置标签时,同时计算其中数据位‘1’的个数,如果数值‘1’的个数为奇数,则校验位置‘1’,反之置‘0’。在执行基本块的程序之前,先对其入口标签进行奇偶校验,而后同校验位中的数值进行对比,如果相同,如图4(a)所示,则代表标签数据可用,如果不相同,如图4(b)所示,则表示当前标签数据发生了SEU故障而导致数据位出现了1位的翻转。示意图如下图所示。当校验位出错时,将不进行之后的操作,而是将异常告之系统,由系统对该程序块进行重新标号。
图4 标签自检
(3)基于标签的程序流检测。在确定标签的正确性之后,开始顺序执行基本块的程序,此时,将入口标签写入一个临时变量EntranceTag中,等到程序执行到基本块的末尾,将出口标签写入到临时变量ExitTag中,通过对这两个变量相与,如果结果为0,表示基本块顺利执行完毕,此时将入口标签的值保存到动态标签列表中。反之,则表示出口标签数据被改变或者程序在执行过程中发生了非法的跳转,此时采取的措施为:则从Flash中重新读取该基本块的程序代码,重新执行基本块程序。
将经过校验之后的入口标签写入到动态标签之后,为了判断基本块的跳转为正确的跳转,需要将当前执行块动态标签同静态标签中的标签进行对比分析。如图3中所示的动态标签中0X01F4H同静态标签中的0X0101不相同,可以断定程序发生了非法的跳转,此时采取的措施为重新执行前一基本块0X000AH处执行。
3.3针对于WSP系统的其他软件防护措施
结合WSP的软硬件环境,还有如下的几种方法来增强WSP人机界面的瞬时故障容忍能力:
(1)上电时钟检测。在上电阶段,检测系统时钟是否稳定,如果不稳定,则不执行后面的程序,直到检测到系统时钟稳定才继续的执行。
(2)使能系统电源监视模块。电源监视器可以对CPU的电源进行监视,当检测到CPU的电源低于或高于一个特定的值时,发出一个复位信号让CPU复位,从而保护CPU数据不会被破坏。
(3)FLASH写保护。在程序中设置相关的标志位,并在FLASH写之前进行标志位的判断。该方法可以保证每次的FLASH读写都是在按照正确的流程来读写。
(4)软件看门狗监视程序正常运行。软件看门狗主要是检测程序是否“跑飞”。如果在一定的时间内没有进行“喂狗”操作,则认为程序已经“跑飞”,此时CPU发出一个复位信号,让系统复位。
4瞬时故障容忍机制有效性验证
瞬时故障容忍机制有效性验证,是在WSP-人机界面的基础上进行的。通过群脉冲干扰仪、高温室、冷柜、空气开关等设备,可以模拟出工业现场中的典型恶劣环境,人机界面在这些极端环境中运行,出现故障的概率会变大。主要进行的测试为:电磁干扰(电源干扰和通信线干扰)测试、高温测试、低温测试、频繁上电掉电测试。测试的指标有:系统在一定时间内的花屏次数、死机的次数以及出现掉画面的次数。
WSP型人机界面在不同的恶劣环境中的运行情况如表2所示。
表2 WSP在不同环境中的运行结果
测试环境
|
环境参数
|
持续时间/h
|
现象/次
|
添加处理机制前
|
添加处理机制后
|
电源干扰测试
|
±1KV、
5KHz
|
24
|
花屏
|
8
|
0
|
死机
|
10
|
0
|
|||
掉画面
|
0
|
0
|
|||
±2KV、
5KHz
|
24
|
花屏
|
8
|
1
|
|
死机
|
10
|
0
|
|||
掉画面
|
3
|
0
|
|||
±3KV、
5KHz
|
24
|
花屏
|
10
|
1
|
|
死机
|
20
|
1
|
|||
掉画面
|
4
|
0
|
|||
通信线干扰测试
|
±1KV、
5KHz
|
24
|
花屏
|
4
|
0
|
死机
|
5
|
0
|
|||
掉画面
|
0
|
0
|
|||
±2KV、
5KHz
|
24
|
花屏
|
16
|
1
|
|
死机
|
21
|
1
|
|||
掉画面
|
1
|
0
|
|||
±3KV、
5KHz
|
24
|
花屏
|
22
|
4
|
|
死机
|
21
|
2
|
|||
掉画面
|
4
|
0
|
|||
高温测试
|
50℃
|
48
|
花屏
|
11
|
2
|
死机
|
12
|
1
|
|||
60℃
|
48
|
花屏
|
14
|
3
|
|
死机
|
15
|
4
|
|||
低温测试
|
0℃
|
48
|
花屏
|
1
|
0
|
死机
|
3
|
0
|
|||
-10℃
|
48
|
花屏
|
3
|
0
|
|
死机
|
3
|
1
|
|||
掉电/上电测试
|
60次/分
|
10
|
花屏
|
16
|
1
|
死机
|
21
|
1
|
|||
掉画面
|
5
|
0
|
从以上实验数据可以看出,添加了瞬时故障处理机制以及相关软件防护机制后,在极端环境中运行时,WSP系统出现软件功能失效的概率有显著的降低。
5结束语
本文基于标签分析的思想,以一款人机界面系统为应用平台,实现了用软件方法检测瞬时故障所导致的程序错误。并结合系统的软硬件特性,为系统添加了一系列软件防护措施。实验证明,本方案很好的提高了系统运行的可靠性以及安全性。
参考文献
[1]周孝慧.嵌入式控制系统人机界面的开发及应用[D].武汉: 华中科技大学,2005.
Zhou Xiaohui. Research and Application on Embedded HMI Control System[D].Wuhan: Huazhong University of Science and Technology, 2005. (in Chinese).
[2]李建立,谭庆平,徐建军等.一种软件实现的瞬时故障检测方法[C].//第23届全国计算机安全学术交流会论文集,安徽:中国科学技术大学出版社, 2008. 97-102.
Li Jianli,Tan Qingping,Xu Jianjun.A Software Implemented Approach to Detecting Transient Fault[C]//Proceedings of the 23rd Computer Security Symposium. Anhui: Press of University of Science and Technology of China , 2008. 97-102. (in Chinese).
[3]Lyons R E, Vanderkulk W. The Use of Triple-Modular Redundancy to Improve Computer Reliability[J]. IBM Journal of Research and Development, 1962, 6(2): 200-209.
[4]Oh N. Software Implemented Hardware Fault Tolerance[D].Stanford, California: Stanford University, 2000.
[5]李建立,谭庆平,徐建军等.一种辐射环境下瞬时故障的软件检测方法[J].计算机工程与科学,2010, 32(3): 115-118.
Li Jianli, Tan Qingping, Xu Jianjun. A software approach to detecting transient faults in the radiation environment[J]. Computer Engineering and Science. 2010, 32(3): 115-118. (in Chinese).
[6]G. A. Reis, J. Chang, N. Vachharajani,. SWIFT: Software implemented fault tolerance[C]//Proceedings of the 3rd International Symposium on Code Generation and Optimization, California, 2005: 243 - 254.
作者简介
马杰(1988- ) 男硕士研究生,研究方向为工业人机界面。
周纯杰 教授,博士生导师,研究方向为网络化控制系统与无线传感器网络。
共0条 [查看全部] 网友评论