目标驱动的人机界面设计_第1页
目标驱动的人机界面设计_第2页
目标驱动的人机界面设计_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本文格式为Word版,下载可任意编辑目标驱动的人机界面设计 人机界面(human-computerinterface),又称用户界面、人机交互、人机接口等,是人与机器之间传递、交换信息的媒介是用户使用计算机系统的综合操作环境。在商品竞争中,一个应用系统的胜利与否在某种程度上也取决于用户使用界面的感受好坏,因此,人机界面的设计在应用系统的设计中有着重要的作用。嵌入式系统强调人机界面操作的实时性,简洁化,强调在特定平台上特定应用的时间空间效率。在传统的小系统设计中。程序设计一般采纳前后台工作方式。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,时间相关性很强的关键操作(crltica

2、loperation)是靠中断服务来保证的。由于中断服务供应的信息始终要等到后台程序走到该处理此信息这一步时才能得处处理这种系统在处理信息的准时性上,比实际可以做到的要差。最坏状况下的任务级响应时间取决于整个循环的执行时间。由于循环的执行时间不是常数,程序经过某一特定部分的精确时间也是不能确定的。假如程序修改了,循环的时序也会受到影响 实时操作系统将应用分解成多任务,简化了应用系统软件的设计。良好的多任务设计,有助于提高系统的稳定性和牢靠性,并使系统的实时性得到保证。许多实时操作系统供应了专用函数,简化了程序的测试。 1、系统设计 如图l所示,人机界面系统采纳小键盘操作的文本菜单方式,使用在嵌

3、入式数字视频录像DVR(DigitalVideoRecord)系统中。在MSP430F149上移植C/OS来独立实现人机界面的功能,用户通过键盘输入指令,经过单片机处理后发往主系统,同时把相应信息通过专用芯片的OSD(0nScreenDisplay)功能显示在监视器上;用户依据监视器上的信息进行菜单操作,形成人与机器的交互。 把人机界面部分从主系统中独立出来,用户全部输入的指令由单片机来处理,削减了主系统的工作量,使整个系统模块化,便于开发和调试,提高了牢靠性和稳定性另外,这种人机界面设计具有通用性,便于移植到各种嵌入式系统中。本系统选用MSP430nF149单片机,是基于以下三个方面的缘由:

4、 OSD功能需要常常刷新,并且要处理与主机部分的数据交换,要求单片机的计算速度足够高,并且要求嵌入式系统能够长时间正常运转,且芯片功耗低。 实时操作系统本身要耗费一部分内存,同时0SD功能要求建立字库,要求内存空间足够大,否则要外接闪存,增加设计的简单度及成本。要连接键盘电路,需较多IO口。MSP430系列单片机是由TI公司开发的16位单片机。其突出特点是强调超低功耗,适合于各种功率要求低的应用;有较高的处理速度,在8MHz晶振的驱动下,指令周期为125ns;MSP430F149具有60KB的FlashROM和2KBRAM,可满意系统程序量和数据量大的要求,可以解决由于加载实时操作系统而增加的

5、内存需求,具有2个串行通信接口,其中一个串口用于跟主系统通信,另一个可用于掌握其他外围模块;具有48个可独立编程的IO口,其中有2个具有中断功能的8位并行端口,在设计按键电路时,可便利地采纳中断方式识别键值。 2、软件设计与实现 2.1实时操作系统 COSII是一个源码开放,拥有抢占式内核,支持多任务的实时操作系统;任务被分为休眠态、就绪态、运行态、挂起态和被中断态五种状态,内核依据任务所处的状态对任务作相应的处理,已经预备就绪的高优先级任务可以剥夺正在运行的低优先级任务对CPU的使用权。系统大部分代码采纳C语言编写,与硬件相关的部分很集中,并给出了规范的接口说明,移植相当便利,可应用于目前大

6、多数型号的8位、16位、32位CPU。COSII供应的仅仅是一个操作系统内核,对硬件系统要求很低,很适合在低端CPU上开发小系统。 将COSII移植在MSP430F149单片机上,对其进行裁减,只保留消息队列一种任务间通信方式,利用它的任务优先级抢占机制,使人机界面很好地满意嵌入式系统对实时性和牢靠性的要求。下面具体介绍基于C0SII操作系统的程序设计。 2.2软件设计 本系统的软件部分设计基于E-O模型的思想,划分大事和目标。以有限状态机的方式,在实时操作系统COS一中,用状态机把目标和大事联系起来,实现OA(Object-Action)行为模式完成人机交互的过程,使以小键盘操作的文本菜单方

7、式设计更清楚。2.2.1大事-目标驱动的用户界面模型大事-目标驱动的用户界面模型,即E-O模型(E-vent-ObjectDriveUserInterfaceModel),将人机交互活动归结为大事与目标的相互作用大事是人机交互活动中传递的信息,目标是交互活动的对象;大事引发交互活动,目标是交互活动的承受者。E-O模型基于的基本行为模式是“目标-动作”(OA),以目标为核心,具有面对对象风格。E-O模型由四个规律部件组成:设备管理模块(devicemanagementmodule),供应与各种交互设备的接口,实现设备无关特性;大事管理子系统(eventMan-agementsubsystem),

8、它读取输入设备的输入信息形成大事并进行统一管理,将反馈信息的大事解释为适当的输出指令并传送给输出设备;目标管理子系统(objectMan-agementsubsystem),创建、装载、保存用户界面中各类目标,并对目标进行管理,大事-目标管理子系统(event-objectmanagementsubsystem),主要职责是实现大事与目标的整合,按适当策略掌握大事在各目标结点之间流淌,以形成和维持交互的过程,是整个用户界面系统的核心。 2.2.2有限状态机的形式化描述 有限状态机FSM(FiniteStateMachine)由状态、大事、转换和活动组成。每个状态有1个状态进入动作(entrya

9、ction)和1个状态退出动作(exitaction),每个转换有1个源状态和目标状态并且与1个大事相关联。当在源状态时,该大事发生且触发转换的监护条件为真,则挨次执行下列一些动作:源状态的退出动作;转换动作;目标状态的进入动作。FSM可以形式化表示为1个五元组:M=(0,I,S,S0)。其中,S为有限状态集;I为有穷的大事输入集;0为有穷的输出集,S0为初始状态集;:S×IS,进入下一个状态的过程;:S×IO,产生输出的过程。T=U。T中的每个元素又可以表示为1个五元组,T=(Soure-State,Target-State,Input-Event,Con-straint

10、,Action)。其中“Source-State”和“Target-State”分别表示T的初始状态和目标状态,“Input-Event”表示来自于I的输入大事或为空,“Constramt”表示监护条件及输入大事参数等约束,Action表示转换执行的动作。 用软件实现有限状态机有两种方法:表格法和过程驱动法。表格驱动法利用一个二维数组。该数组中的短一行与一个状态相对应,每一列与一个输入大事相对应,每一项则与某一状态下对大事的处理相对应。表格驱动法适用于具有结构规章、操作简洁的有限状态机。 过程驱动法为每一个状态都定义一个处理过程,处理过程实现在此状态时对大事的响应,包括输出处理及对当前状态值的

11、转换。这个过程可以用case语句区分大事,并采纳相应的处理。无论采纳何种方法实现FSM,当FSM收到一条消息时必需知道当前的状态。为此,对应每一个状态机必需能够保存当前所处的状态。过程法适用于实现一个具有几种转换和简单操作的有限状态机。 2.3程序设计与实现 基于消息驱动的程序设计思想,为了保证系统的实时性,在中断中只负责发送消息到相应的任务的消息队列,由应用级的任务来处理,保证各个处理的时间是可确定的主程序在消息循环中不断地推断各个任务的状态,执行进入就绪态的任务。这就允许采纳异步方式处理各种中断及任务。本系统程序中采纳了两组有限状态机,运用消息驱动的方式来驱动状态的变更。一组是通信任务中以

12、串口接收数据驱动为大事对象的有限状态机,另一组是以用户按键和命令码驱动为大事对象的有限状态机在实时操作系统COS一下,整个人机界面分为三个模块,即三个任务来实现,分别是键值处理模块、与主机通信模块和时钟模块。 (1)键值处理模块 OSTaskCreate(KEYTaskStart,(void)O,TaskKey-Stk,7);先初始化全部的模块,然后在循环中接收并处理键盘的输入,Key-Process(charKeyValue)依据相应的输入键值和系统所处的状态,对菜单进行相应的操作。State_Trans(charRxData)依据键值输入大事负责调度系统的状态,并在相应的状态下,依据从主系

13、统收到的信息显示菜单。(2)主机通信模块OSTaskCreate(UARTTaskskStart,(void)O,TaskU-artStk,6);通过消息队列OSQPend(OS_EVENTpevent,INTl6Utimeout,INT8Uerr),接受串口中断发来的消息队列,对其中的数据进行处理。在人机交互的过程中,需要大量的与主系统的交互,单独用一个任务负责与主系统的通信,实现串口接收数据驱动的有限状态机。(3)时钟模块OSTaskCreate(TimcTCk,(void)O,TimeTickStk,5);时钟任务,使用单片机的时钟中断,可以设置各个任务需要的定时器,通过消息队列发给需要

14、定时的任务。 2.3.1串口接收数据驱动的有限状态机 为了保证通信的牢靠,系统中采纳停止等待协议。在发送数据前要对数据打包,接收到数据要先解包,单片机在接收主系统发过来数据包的后需要去掉通信协议字段,然后对有效数据进行正确的处理。为此,定义了一个Frame-FSM类型的数据结构,用来对接收到的数据进行处理。typedefstructbyteState;当前所处的状态byteSYM_Plas;转义字符标志,若为1,表示需对当前数据转义bytcDatoLenoth;数据长度byteCheekSum;校验和byteOffset;偏移地址,对应当前接收到的数据在该帧中的位置byteFrame_Data

15、;帧内的有效数据Frame_FSM;利用主机发送过来的消息驱动有限状态机,串口接收数据驱动的有限状态机包括以下几种状态; 任意状态。无论单片机原来处于何种状态,收到字符0xaa,都表明1帧新的数据即将开头发送。此时,假如单片机处于1帧正在接收的状态。就会丢弃原数据重新进入收到同步字符状态。 任意状态(除了INIT_STATE之外)。无论单片机原来处于何种状态收到字符0xfc,都表明系统中消失了转义字符。此时,将转义字符标志置1,丢弃当前接收的数据后返回;每一次进入重建帧处理函数后,系统会首先推断转义字符标志是否为l。若为l,则依据当前字符进行转义(当前字符为0x00,则转义为Oxaa;当前字符

16、为0x01,则转义为Oxfc;假如为其他字符则丢弃),然后将转义字符标志重新清O。INIT_STATE,初始状态。在这个状态下,将重建帧的偏移地址和校验和清0,然后等待接收数据。收到起始宇符Oxaa后,将状态转入AA_SYN_STATE;收到其他字符都丢弃不理。AA_SYN_STATE,收到同步字符状态。在这个状态下,MCU将重建帧的偏移地址和校验和清0,然后将状态置为接收源地址状态。SRC_ADDR_STATE,收到源地址状态。此时比较源地址是否是主机地址。若是,则转接收目的地址状态;否则,转初始状态。DEST_ADDR_STATE,收到目的地址状态。此时比较目的地址是否是MCU地址。若是,

17、则转接收数据长度状态;否则,转初始状态;DATA_LEN_STATE,接收数据长度状态。将数据长度备份,转入接收数据状态。DATA_STATE,接收正常数据状态。将接收的数据存入接收数组REBUF中,每接收到一个数据就将对应的偏移地址加l,接收数据长度减1,并且计算此时的校验和。当数据长度减为0时,表明l帧数据已经全部接收完毕,转入检验校验和状态。CHECKSUM_STATE,接收校验和状态。将接收的校验和与本地计算的校验和进行比较。假如两者相等,将状态转为INIT_STATE,然后对正确的数据帧进行处理,并给主系统发送一个确认帧;假如两者不等,丢弃该帧,状态转入INIT_STATE,等待接收

18、新的数据帧。对应的状态转换图(statetransitiondiagram)如图2所示。 2.3.2键值和命令码驱动的有限状态机 这组有限状态机主要依靠用户对菜单的操作进行状态转换,即把键值和命令码作为FSM的激励源,其中键盘消息是最主要的激励源。应用层的FSM具有多种主状态,用户未按键或者是没有接收到新的数据帧时,状态处于IDLE_STATE;接收到消息后,转入对应的主状态。然后,依据按键的不同或者是接收命令码的不同,转入对应的子状态进行处理。任务处理完毕,再将状态置为IDLE_STATE,按取消键,可回到上一级状态。 以用户掌握云台上下左右转动为例,系统开头处于IDLE_STATE。若用户按云台镜头掌握键,则进入云台镜头选择状态,并显示云台镜头掌握菜单选择云台掌握选项后,进入云台方向设置状态;选择向上键,转入向上状态。在该状态执行向上命令操作后,状态重新转入IDLE_STATE,并伴随着输出菜单的相应变化,按取消键可回到上一级云境选择状态。对于其他按键,系统全部过滤掉不作响应,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论