APP下载

μC/OS 的层次式状态机在人机界面中的应用

2010-01-08建,王

关键词:分析仪器状态机人机界面

周 建,王 健

(杭州电子科技大学电子信息学院,浙江杭州310018)

μC/OS 的层次式状态机在人机界面中的应用

周 建,王 健

(杭州电子科技大学电子信息学院,浙江杭州310018)

为提高人机界面设计中软件的可靠性和可扩展性,该文提出一种基于层次式有限状态机的人机界面设计方法,针对嵌入式系统高实时性的要求,将μC/OS-II操作系统应用于人机界面的设计之中,使得人机界面显示任务层次化、结构化。将层次式有限状态机的设计方法在硬件平台上予以应用,并在该硬件平台上设计并实现人机界面。

微控制系统;状态机;人机界面;事件驱动

0 引 言

随着电子技术和计算机技术的迅猛发展,人机界面已经广泛应用于工业仪表、通信、消费电子等领域。由于工业仪器定制化[1]的特点,导致人机界面的设计在可扩展性、可靠性、实时性、可复用性、软硬件耦合度等方面提出了更高的要求。现阶段,国内外研究都针对当前仪器人机界面[2]中软硬件耦合性过强、软件复用性差、开发周期长等缺点进行了改进,其中,国外研究提出了新的人机界面设计思想。本文提出并实现在μC/OS-II操作系统基础上将层次式有限状态机[3]应用于人机界面的设计,使得人机界面的显示和刷新都由事件触发完成,实现人机界面良好可靠的显示。

1 层次式有限状态机

层次式有限状态机是一种应用非常广泛的软件设计方法,其作用主要是描述对象在它的生命周期内所经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作。设计层次式有限状态机需要采用对象行为建模工具[4],在面向对象的软件系统中,一个对象无论简单或者复杂,都必然会经历一个从开始创建到最终消亡的完整过程,这通常被称为对象的生命周期。对象在其生命期内是不可能完全孤立的,它必须通过发送消息来影响其它对象,或者通过接收消息来改变自身。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机中状态转移图。

状态:对象的生命周期中满足某种条件,执行某些动作或等待某些事件发生的阶段。

事件:事件是一个在时空中显示出现的特定现象或信号,它可以触发状态转换。

转换:转换是从一个状态结点到另一个状态结点的移动。

行为继承:状态嵌套允许子状态继承来自超状态中的某些行为操作。

在层次式有限状态机中,每个基状态都对应一个超状态,多个子状态机相互协作的状态机子群构成一个低层次的有限状态机。这样子群内状态机间的层次和逻辑关系构成了相应有限状态机间的层次和逻辑关系。如图1所示。属于父状态机的是状态1,属于子状态2和状态3。层次式状态机初始化时进入状态1,在状态1下经过不同的触发事件E或者G转换到状态2或者状态3;同理,在其他状态下,经过不同的驱动事件,状态机发生相应的转移。图1描述在不同事件的驱动下发生的状态转移。在人机界面的设计中,需要定义子状态行为和父状态行为的不同之处,而子状态可以重用父状态中定义的行为。极大方便了代码的可扩展性和维护性。

图1 简单层次状态图

2 μC/OS应用

μC/OS是专门为计算机的嵌入式应用设计的实时操作系统,具有执行效率高、占用空间小、实时性能优良、可移植性优和可扩展性强等特点。μC/OS-II采用的是基于优先级调度、可剥夺型实时多任务内核,在任何时候μC/OS-II都运行就绪了的最高优先级的任务。最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。

在人机界面的设计中使用μC/OS-II操作系统可以保证界面刷新显示的及时性,结合层次式有限状态机[2]保证了对外部事件驱动进行及时处理。

3 分析仪器人机界面的状态模型

3.1 系统人机界面功能描述

人机界面(Human Machine Interface,HMI)是一种良好的交互语言,良好的界面显示极大方便了使用者。分析仪器中普遍采用HM I来显示仪器的状态、仪器故障、测量结果等信息。基于层次式有限状态的思想来设计分析仪器中HM I的模型如图2所示。图2中HMI的切换都是通过事件来进行驱动触发的,利用μC/OS-II中OSQPend()函数来查询消息队列中是否存在状态机的事件,可以保证状态机对事件响应的实时性,以便及时刷新显示界面。层次式有限状态机根据用户事件和系统保留事件驱动状态机的切换和执行。在HMI设计中,系统根据键盘输入的信息,操作系统会向对状态机进行分发相应的驱动事件,从而完成HMI的刷新和显示。

3.2 HMI状态机分析实现

层次式有限状态机包含许多行为,并且状态之间的关系需要根据建立的结构模型来确定。当有限个子状态具有共同的行为事件驱动,则子状态可以将该行为事件交给共同的父状态来统一处理。色谱分析系统中HMI设计中包含很多状态,在此并没有画出所有的状态,现以部分状态结构图来说明层次式有限状态机的工作原理以及程序实现。如图3所示。

系统启动初始状态为主界面,即为系统的父状态或超状态,其它各子状态由此进行跃迁。每进入一个状态首先要进行该状态的初始化工作,有限状态机的实现需要定义进入、退出、超时、初始化等系统事件以及用户自定义的事件。其中,用户自定义事件由用户程序自行处理,其余事件皆由系统自身处理。系统中层次式状态机在任一状态下,可以通过μC/OS-II中的系统函数获取状态机中的消息事件,如果有事件驱动,系统则在当前状态下对事件进行处理并发生状态的跃迁,每进入一个状态首先对该状态进行初始化工作,在对事件处理的同时刷新HM I的显示。若发生事件驱动,当前状态不能对该事件进行处理,则将事件交付给其父状态处理,若父状态无法处理事件,则将事件交给父状态的父状态进行处理,直至事件被处理。最高层(TOP)可以处理任何事件。在事件被处理的过程中,状态机发生相应状态跃迁[5]并根据事件刷新HMI的切换。如图4所示层次式有限状态机在HMI应用中的显示界面。

层次式有限状态机在HMI的设计中用到的主要函数说明:

(1)#define Q_TRAN(target)QHsmTran((QHsm*)me,(QState)(target))

图2 一级状态转换图

图3 部分状态机结构图

图4 HM I应用截图

主要功能是实现状态机中状态的切换和转移;

(2)#define Q_SUPER(super_)(((QHsm*)me)->state=QStateHandler)(super_),Q_RET_SUPER)

主要功能是在状态机中指定一个给定状态的父状态;

(3)#define QHsm_ctor(me_,initial_)((me_)->state=(initial_))

主要功能是构建状态机,并赋给状态机一个初始状态;

(4)Void QHSMDispatch(QHsm*me);

主要功能是实现状态机对事件或者信号的处理或者响应;

(5)QState QHSMTop(QHsm*me);

QHSMTop()是状态机中最根本、最高的状态,能处理任何信号或者事件。

上述函数完成层次式有限状态机在HMI中的初始化、事件的处理、状态的转移。层次式有限状态机的使用与建模密不可分,合理的状态机建模可以为在后续开发和设计中节省大量的工作。

4 MCF52259硬件平台

采用基于层次式有限状态机的思想来设计HMI,并根据气相色谱分析仪器中实际应用的需求,选用MCF52259作为主控芯片,辅之以μC/OS-Ⅱ操作系统,在气相色谱分析仪器系统中实现HMI。气相色谱分析仪器系统设计架构如图5所示。气相色谱分离混合物的原理是根据混合气体不同成分的沸点,通过色谱柱温度的变化使得气体分离,检测器对分离出来的气体成分浓度进行检测,将检测到的信号进行处理,通过HMI显示模块将测量成分及其浓度显示出来,从而完成气相色谱对混合气体的分离和检测。在系统中实现了完整的以层次式有限状态机为建模思想的HM I的显示。

图5 硬件架构图

5 结束语

嵌入式HM I具有典型的反应式系统的特点,本文通过具体实例阐述层次式状态机的构造方法,结合μC/OS-Ⅱ实时操作系统,采用MCF52259的硬件平台,设计嵌入式HMI,很好地完成了气相色谱分析系统和HMI中各种复杂状态的转变和相应界面显示。实际应用表明,用层次式有限状态机方法实现人机界面易于扩展菜单,界面转换迅速、稳定可靠、复用性好并有效降低软硬件的耦合度。

[1]唐东平.网络时代的人机交互发展研究[J].矿山机械,2006,34(6):116-118.

[2]卢国伟,蔡武昌.2004年日本工业自动化仪表概况分析[J].世界仪表与自动化,2006,10(5):20-20.

[3]吉峰,白瑞林.基于UML和μC/OS-II的嵌入式系统设计[J].微计算机应用,2005,26(4):495-497.

[4]李润博,李明树.基于状态机的UML行为继承关系[J].计算机科学,2004,31(1):16-19.

[5]刘刚.基于层次式有限状态机的织造控制任务设计[J].纺织学报,2008,29(8):25-29.

Human Machine Interface Design BasedμC/OS and Hierarchical Finite State Machine ZHOU Jian,WANG Jian

(School of Electronics Information,Hangzhou Dianzi University,Hangzhou Zhejiang310018,China)

To improve the human-machine interface design in software reliability and scalability,the paper presentsamethod todesign human-machine interface(HMI),which used hierarchical finite statemachineandμC/OS-IIoperating system with real-time demands.TheμC/OS-IIoperating system used in the design of humanmachine interface,making human-machine interface display more hierarchical,structured.Themethod will be applied in the hardware platform to design and implement Human-Machine interface.

μC/OS;statemachine;HMI;event-driven

TP393

A

1001-9146(2010)05-0037-04

2010-07-20

周建(1985-)男,湖北鄂州人,在读研究生,嵌入式系统.

猜你喜欢

分析仪器状态机人机界面
哈希水质分析仪器(上海)有限公司
北京市华云分析仪器研究所有限公司
北京市华云分析仪器研究所有限公司
北京市华云分析仪器研究所有限公司
基于有限状态机的交会对接飞行任务规划方法
CBTC系统车载人机界面的设计与实现
基于PLC与人机界面的经编机电子横移控制系统研究
CTCS-3级列控车载人机界面的系统设计与实现
双口RAM读写正确性自动测试的有限状态机控制器设计方法
达人机界面DOP-B10VS511