快捷搜索:  as  MTU2MjM0ODMxNA`  test

嵌入式系统HCI僵化解决方案概述

嵌入式系统因此利用为中间、软硬件可剪裁的专用谋略机系统,其工程实践正徐徐地引起钻研职员的关注,在实际工程中有诸多身分必要斟酌,比如微处置惩罚器的功耗,器件的靠得住性,设备的抗恶劣情况能力,人机交互界面(HCI),现场通信等等问题。此中HCI是嵌入式系统工程中的一个紧张课题。因为某些嵌入式系统研发的繁杂性和工程实施中的不确定性,导致嵌入式系统HCI有僵化的趋势,对此提出一种可适应性的办理思路是需要的。

1 嵌入式工程的HCI

图形用户界面是当前用户界面的主流。HCI是抉择嵌入式谋略机系统是否友好的一个紧张身分。嵌入式系统人机交互功能主要靠输入输出的设备与响应的软件协同来实现。可供人机交互应用的设备主要有键盘、显示以及各类模式识别设备等。嵌入式系统的人机交互因其特殊性而与PC有所差别,多半的嵌入式系统都是显示屏幕与键盘,或者带触摸屏定位的设备组成。对用户而言,必要用按键或触摸屏的动作见告系统若何按照人的意图去输出,绝大年夜多半嵌入式系统都有个HCI系统供用户应用。问题是在工程中交互设计时,设计者每每会把交互界面和系统的资本联系起来,使得界面的设计不自力于系统资本。软件设计势必在很大年夜程度上受限于硬件资本。实践中,平日的做法是根据现有的硬件前提临时组织一个数据布局,把一系列字符串值“串”起来,之间可以实现互相跳转。一个交互节点的快照描述一样平常必要几部分组成:1)状态罗列量;2)显示常量状态值;3)前趋状态;4)后继状态。还可能必要包孕节点Id标识等其他的帮助信息。显然,这是用一种静态的措施来天生一个菜单工具,代码易读性强,但各个部分互相依附,编码和调试对照繁琐,必要设计者对各部分都十分清楚。最大年夜的问题是可扩展性受限,对后续规模的增添造成必然的影响。工程实践中,用户的需求及隐含需求每每是繁杂和不确定的。

本文的钻研目的是建立一套能够适应利用繁杂性和不确定性的实现规划,为后续嵌入式系统开拓供给一个工程性的办理思路。

2 可适应的嵌入式HCI

可适应的HCI是指可根据系统的谋略情况或利用情境进行伴随调节的界面。可以进一步区分为被动性适应和主动性适应(或自适应)。

可适应性HCI在嵌入式系统开拓中有着越来越迫切的要求。平日该需求滥觞于2个方面,一个是用户需求的变化;另一个是系统履行中的利用情况变更。由这2种身分启程,依据可适应性的行径模式,嵌入式HCI的可适应性从以下2个方面展开钻研:

所谓静态可适应性是指与系统静态设置设置设备摆设摆设相关的可适应性,平日适应行径发生在2次系统启动之间。这种适应的需求平日是外来的,比如用户需求的改动,设计规划的变更。在工程中,经常呈现迭代式的适应性改动,以是静态可适应性也是一个很有现实意义的需求。这种可适应性的实现必须借助非易掉性存储器来进行,用来存储变更后的定义及设置设置设备摆设摆设参数,使得顺利完成适应行径。

动态可适应性是指在系统运行历程中,可以依据情况的变更进行在线自适应改动,即普适情况下的改动。平日普适设备在应用情况中迁移,引起了情况参数的强制性变更,系统的HCI与情况就会孕育发生抵触,是以普适策略下的自适应调剂是很有需要的。依据网络到的系统状态信息,判断是否HCI与系统设置设置设备摆设摆设同步,寄托算法实时矫正系统设置设置设备摆设摆设来实现自适应。普适情况下的自适应特征在于动态性,只有在呈现抵触的时刻才做普适调剂,在设计中必须对匹配性进行斟酌。

3 基于多重链表的嵌入式HCI

3.1 模型建立

多重链表在组织顺序型布局数据时具有较快的搜索速率,下面给出一个基于多重链表的模型,每个节点扇出为4,分手指向上层节点、下层节点及左、右的邻居节点,扇入不限。每个节点与相邻的节点之间都有双向连接,并且每个节点均可带子节点进行扩展。

模型从功能上讲是个层次布局,从数据模型上看是网状布局,容许有一个以上的节点无双亲,并且一个节点可以有多于一个的双亲。每层节点的数目不固定,可视实际环境而变更。每层都是一个闭环的双向回路,可进行水平双向遍历。层与层之间由父节点与宗子节点双向连接。父层节点对子层节点是一对一联系,由父节点进入子层时在宗子节点立足;子层节点对父节点是多对一联系,意味着由每个子节点都可回溯至父节点。由父层切换至子层的每次遍历必须颠末宗子节点,然后可由宗子节点依次进行水平轮回遍历,子层切换至父层则对照机动,每个子节点均可到达其父节点。

3.2 规划实现

3.2.1 内存布局设计

节点应该具备4个域,除了标示身份外还至少应该具备指向上层父节点的指针域、指向下层子节点的指针域以及指向同层左、右兄弟的指针域。

图1是一个简单的HCI布局图,从功能上看,它分为5层,第一层有5个节点项形成一个闭环,第二层闭环是第一层第一个节点的子节点组,该子节点组的第二项又有子节点组。如斯下去共有5层,处在最高位置的节点其父指针为空,最低位置的节点的儿子指针为空。

3.2.2 类设计

依据模型定义如图2所示的类工具。左边所示是个基础的菜单节点类,除了模型中提到的几个节点指针,还增添了几个相关的属性域,Id用来标识节点身份,displayValue用来存储菜单的显示标题,布尔成员editable指明当前节点是否可编辑,别的还增添一个ptr_function域,用来指向一个功能函数,该函数完成节点在吸收确定消息后要做的事情。

在节点类中还定义了几个成员措施,与私有属性相关的命名相符OOP的命名规定,均应用Get—Set前缀规则。除针对几个成员属性的措施外,还引入了别的几个成员措施,CoUp履行向父节点的跳转,CoDown履行向宗子节点的跳转,CoLeft和GoRight认真向阁下邻居的跳转。

从软件设计自力与资本来斟酌,提出一个界面代理的观点,界面代理便是基于事故驱动,处在界面与情况之间一其中心工具。外界事故的消息均由代理来接管识别,并由它调用界面元素,对界面做出改变。图2右边上部所示的定义的是菜单代理类MenuManageAgent。该类工具用来作为菜单体系与外界交互的序言物,它用来记录菜单的头指针,菜单体系的规模以及菜单的总体状态;初始化菜单布局,创建菜单系统并代表菜单吸收外来的消息,并对消息加以识别和做出合理的相应。图2右下是对外部消息的定义。消息的列表可以依据实际环境扩展和修正。

4 嵌入式HCI的可适应性实现

静态可适应的实现是基于用户主不雅意图进行的。这个历程强调人机交互,是以用户的事情内容很紧张,一样平常也作为静态可适应性实现的输入参数。而实现的技巧细节相对简单。在算法设计上,该种可适应性实现事情重点仍旧放在用户交互内容的治理上,由用户的“交互内容”综合系统功能可以获得界面的“变化差”,进而推导出系统HCI的详细参数集的变更。

如图3所示,设备在应用情况中的动态可适应以系统状态检测开始,这是一个周期性的行径,频率依据系统在HCI上的实时性要求而定。系统状态检测应该包孕几部分的事情:1)应该有监测情况参数的手段,比如传感器、接入旌旗灯号等;2)要依据特定的算法来测定这个抵触,此中包括差异的获取,尺度的拟订。状态检测的结果是,是否有抵触输出,假如有抵触呈现的环境下,还必要做决策阐发,其主要义务是基于系统现有前提是否可实现动态可适应,比如已经达到了临界状态时,就丢掉了这种可能性。以是这里涉及到对系统资本的治理调整。下一步便是在动态适应的环境下,采纳动态适应策略对系统HCI给出相宜的调剂,从而达到普适情况下可动态适应的目的。

5 工程利用

5.1 工程先容

我们在一个系列工程中采纳了以下规划构造HCI的菜单体系。某公司研发一款嵌入式的数据采集产品,该产品的代码与数据自力存储在两个Flash芯片,经由过程采集外界的模拟量和数字量对其处置惩罚落后行输出。产品的人机交互界面采纳按键、LED数码管,谋略节制单元采纳飞思卡尔半导体的微处置惩罚器Coldfire V2系列,该CPU基于变长RISC处置惩罚器核心,具有32位地址线和数据线以及集成的调试模块,MAC/eMAC单元能供给高机能的品德。

嵌入式操作系统采纳Nucleus PLUS,Nucleus PLUS实时操作系统是Accelerated Technology公司开拓的嵌入式RTOS产品,只需一次性购买Licenses,就可以得到操作系统的源码。终极因此C库的形式供给给用户,可以选择所必要的部分链入到利用法度榜样中。具有如下特点:

1)快速相应光阴:对临界资本的检测光阴不依附于占领该临界资本的线程履行光阴是非,一旦低优先级线程开释掉落临界资本(不管其是否履行完),高优先级线程就会抢占运行。

2)模块互相自力:每个义务的履行光阴和其他义务的处置惩罚光阴无关。

3)较高吞吐量:跟着义务数目的增多,义务的调整光阴为常数。

4)具有可扩展性:使用现有系统调用的结合可获得新的系统调用。

5.2 验证历程

我们拟在这个项目开拓中实现普适设备的嵌入式人机交互界面,在此中利用可适应性的思惟。

首先是硬件设计,该产品设计了8个Ied数码管,8个按键Key1~Key8。这部分设计的功用体现在两个方面:

1)数据采集设备经由过程LED显示采集的数据和处置惩罚结果;

2)用户经由过程按键可以查看和设置设备的参数。

其次是一些需要的定义,对按键的功能经由过程项目组评论争论做了如表1的定义。

表1的定义给消息定义供给一个依据。按功能键送入一个OK消息,按取消键则发送了一个CANCEL消息,其他按键事故以此类推。于是我们便获得一个消息罗列量的定义。

界面状态定义。把人机交互事情分为事情、验证和设置状态。每种状态用一个MenuStatus罗列常量表示,NORMAL表示事情状态,CHECKI-NG表示验证状态,SETHNG表示设置状态。正常事情时处于NORMAL状态,一旦按下功能键会进入菜单成为验证或设置态。

交互行径定义如下:

1)常态时默觉得各通道实时数据轮回显示,有报警时,可显示报警标识;

2)默认常态下按功能键进入1层菜单,按上翻键、下翻键显示1-、2-、3-、…、14-Reset;

3)状态2-和状态4-可用作扩展;

4)状态3-时,按功能键进入日期光阴设置菜单,按上翻键、下翻键显示日期、光阴,设置好后,按功能键确定退出;

5)状态4-时,按功能键进入参数设置菜单,按上翻键、下翻键显示4-1、4-2、4-3……、4-19,表示通道选择;

状态4-x时,按功能键进入x通道的参数设置菜单,按上翻键、下翻键显示4-x-O、4-x-2、4-x-3、…、4-x-8时,按功能键进入x通道的y(0≤y≤8)参数设置菜单,按加1键、减1键和移位可以进行参数改动操作;改动好参数按功能键确定退出;

6)在任一状态时,按Key7则返回上层;

7)在任一状态时,按取消键可返回常态。

然后按照上面定义的交互行径,定义菜单节点的功能函数。在菜单的创建时把函数的指针赋值给节点。该模型同样可以用于实现经由过程通信进行的交互。

上述HCI的实例,不只实现简洁,开拓效率高,而且是布局开放性的,便于界面规模的节制。

6 停止语

经由过程工程实践验证,该基于可适应性斟酌的嵌入式HCI规划有如下特征:

1)易于掩护,在拓扑布局不变的环境下,随按键或输入的不合,数据布局易于加以改动。菜单节点可以随实际项目需求增减成员,代理类也可随实际需求改动。

2)开放性好,便于扩展。只要内存容量容许,菜单规模理论上不受限,并且增删省点轻易实现。菜单布局可以静态声明,也可以应用动态内存分配。

3)通用性强,不只适应于Led数码管与按键的组合,而且适应于LCD屏幕与按键或触摸屏。只如果用户与系统交互,能孕育发生消息驱动的地方都可以应用。

4)效率高,从根节点到任一节点的路由不必要软件实现,由用户交互抉择。虽然是网状模型,但对用户而言,从功能上仍是个层状布局,脉络对照清楚,轻易被开拓职员掌握。

别的,在详细利用中,可适应性的实现还可能以混杂的模式呈现。

未来的钻研是考察在宿主机与目标机交互的环境下,若何实现HCI规划到目标机的迁移,实现目标机HCI动态设置设置设备摆设摆设。

您可能还会对下面的文章感兴趣: