新型图形人机接口硬件系统和软件架构设计
扫描二维码
随时随地手机看文章
人机接口是使用者与机器之间互相传递信息的媒介。传统人机接口设计中,操作者与机器的对话方式比较单一、实现功能比较简单;一般采用按键操作,用户操作比较复杂。传统人机接口设计中,软件架构比较简单,功能划分比较模糊,程序的可读性与维护性较差。本文介绍的人机接口与传统的人机接口相比有以下几个优点:首先采用菜单显示,简化用户操作流程;其次采用了合理的软件架构,功能模块划分明确,提高了程序的可读性与可维护性。
人机接口硬件系统构成
本文介绍的人机接口主要为SEED_MMI5402系统服务。SEED_MMI5402系统可提供多路数字信号源,并与其它子卡进行通讯,控制多种外设。根据系统要求,操作者必须能够通过人机接口控制信号源,及完成其它相应的控制任务。
为节约成本、简化设计,该人机接口不采用单独的主控芯片,其功能由SEED_MMI5402系统的主控芯片TMS320VC5402完成。因SEED_MMI5402系统需控制多个外设,且液晶屏的显示控制线较多,为保证系统的功能实现,液晶屏的显示控制由TMS320VC5402通过CPLD实现。
该人机接口中使用的显示模块是240x120点阵液晶屏(其控制芯片是T6963C)。T6963C是点阵式液晶屏图形显示控制器,显示方式有图形方式、文本方式以及图形和文本合成方式,还可实现文本方式下的特征显示以及图形拷贝操作等。T6963C的字符字体由硬件设置,在该人机接口系统中,固定使用8x8字体。
该人机接口中使用的键盘其功能与布局与计算机小键盘相似,在此将做不介绍。
图形人机接口软件架构
该图形人机接口设计的目标是实现中文窗口界面,用户可以在菜单方式下进行操作。该图形人机接口提供多级界面操作,操作者可以通过键盘选择不同的窗口,进行参数输入、程序的运行选择,并可通过液晶屏查看相应运行结果。图形人机接口的程序流程图如图2所示。
根据需求分析,该图形人机接口的软件由以下几个模块构成:
1. 键值处理模块
本模块功能是获取键值,并根据按键类型调用不同处理函数。图3是键值处理模块的流程图。
2. 菜单显示模块
因为该图形人机接口的菜单选项比较多,各级子菜单的显示只能通过覆盖上级菜单实现,不能通过下拉菜单实现。为了能较好实现各级菜单的切换,应该确定本系统需要多少个界面,每个界面有多少个菜单选项,并画出各菜单选项之间的关系图。
分析菜单操作示意图(图4),可知该图形人机接口菜单由以下两类菜单构成:
a. 标题菜单类:每级菜单的索引;
b. 项目菜单类:每级菜单的菜单选项。
图1:人机接口硬件构成框图
图2:图形人机接口的程序流程图
图3:键值处理模块的流程图
图4:菜单操作示意图
在进行界面显示处理时,不仅要知道各菜单项的逻辑关系,还要知道菜单项的功能(用户选中该菜单选项时,处理器对应的函数操作)。根据分析,该图形人机接口的菜单功能分为以下几类:
a. 跳转菜单类:下级子菜单入口,用户选中该菜单选项时,液晶屏进入其下级子菜单的显示与操作;
b. 命令菜单类:操作函数入口,用户选中该菜单选项时,通知处理器进入相应的处理程序;
c. 选择菜单类:参数或命令选项的输出显示,用户选中该菜单选项时,可根据液晶屏的显示进行相应的输入选择;
d. 编辑菜单类:对话菜单类的入口,用户选中该菜单选项时,进入对话菜单类的显示,同时保留当前参数值;
e. 对话菜单类:参数的输入输出显示,在当前菜单下,用户可根据需求对运行参数进行修改。
为更好体现各个菜单之间的变迁,该图形人机接口中使用到的菜单项按使用顺序进行编号。该图形人机接口设计了一个结构体,所有菜单项按菜单使用序号顺次存放在该结构体的中,这样所有的菜单选项组成一个树状结构,每一个菜单项都是树上的枝、叶。结构属性描述如下:
struct GUITREE_Node
{
菜单种类域:该菜单的功能描述
菜单位置描述域:该菜单的与其它菜单项的关系
菜单状态描述域:该菜单的状态信息
菜单输入显示域:该菜单允许的参数输入范围信息
菜单选项显示域:该菜单对应的参数或命令选项信息
菜单操作函数域:该菜单所对应操作函数的信息
菜单名显示域:该菜单名显示信息由该域控制
}
3. 运行函数接口模块
用户操作与处理器运行程序的连接由此模块实现。操作者根据液晶屏的显示,通过按键输入参数或选择不同操作命令,运行函数接口模块将这些信息传递给处理器;当处理器处理完成相应的用户操作后,调用运行函数接口模块将结果通过液晶屏显示反馈给用户。运行函数接口模块的流程图见图5。
图5:运行函数接口模块的流程图
本文小结
本文主要从软件架构的角度出发,提出了一种解决人机交互问题的方法。通过定义合理数据结构实现了简洁中文窗口菜单操作。文中的方法具有非常好的灵活性和良好的可维护性,可在需要的时候方便地修改原有窗口或者加入新的窗口,而不至于影响系统软件原有的结构。
作者:赵荣霞 ,硬件工程师 ,北京合众达电子技术有限责任公司