当前位置:首页 > 智能硬件 > 智能硬件
[导读]本文介绍的人机接口与传统的人机接口相比有以下几个优点:首先采用菜单显示,简化用户操作流程;其次采用了合理的软件架构,功能模块划分明确,提高了程序的可读性与可维护性。

人机接口是使用者与机器之间互相传递信息的媒介。传统人机接口设计中,操作者与机器的对话方式比较单一、实现功能比较简单;一般采用按键操作,用户操作比较复杂。传统人机接口设计中,软件架构比较简单,功能划分比较模糊,程序的可读性与维护性较差。本文介绍的人机接口与传统的人机接口相比有以下几个优点:首先采用菜单显示,简化用户操作流程;其次采用了合理的软件架构,功能模块划分明确,提高了程序的可读性与可维护性。

人机接口硬件系统构成

本文介绍的人机接口主要为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:运行函数接口模块的流程图

本文小结

本文主要从软件架构的角度出发,提出了一种解决人机交互问题的方法。通过定义合理数据结构实现了简洁中文窗口菜单操作。文中的方法具有非常好的灵活性和良好的可维护性,可在需要的时候方便地修改原有窗口或者加入新的窗口,而不至于影响系统软件原有的结构。

作者:赵荣霞 ,硬件工程师 ,北京合众达电子技术有限责任公司

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

(全球TMT2022年9月27日讯)新思科技近日宣布推出业内首款基于其ZeBu® EP1硬件仿真系统的硬件仿真与原型验证统一硬件系统,致力为SoC验证和前期软件开发提供更高水平的性能和灵活性。新思科技ZeBu...

关键字: 硬件仿真 新思科技 硬件系统 编译

星标/置顶 公众号,硬核文章第一时间送达!链接| https://zhuanlan.zhihu.com/p/274473971题很多,先上题后上答案,便于大家思考问题点:1、C和C的特点与区别?2、C的多态3、虚函数实现...

关键字: 腾讯 函数 进程 AI

程序接口是操作系统为用户提供的两类接口之一,编程人员在程序中通过程序接口来请求操作系统提供服务。面向过程语言最基本的单元是过程和函数。

关键字: 程序接口 过程 函数

星标「嵌入式大杂烩」,一起进步!链接:https://www.cnblogs.com/jozochen/p/8541714.html一、问题复现稳定复现问题才能正确的对问题进行定位、解决以及验证。一般来说,越容易复现的问...

关键字: 嵌入式开发 函数 代码 寄存器

基本上,没有人会将大段的C语言代码全部塞入main()函数。更好的做法是按照复用率高、耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数。C语言代码的组合千变万化,因此函数的功能可能会比较复杂,不同的输入,常...

关键字: 函数 PEN C语言代码 C语言程序

Part1一、让自己习惯C条款01:视C为一个语言联邦C并不是一个带有一组守则的一体语言:他是从四个次语言(C、Object-OrientedC、Template、STL) 组成的联邦政府,每个次语言都有自己的规约。记住...

关键字: TI 函数 ASPECT 编译器

为什么会写篇栈变化的文章?做系统分析的话你肯定遇到过一些crash,oops等棘手问题,一般大家都会用gdb,objdump或者addr2line等工具分析pc位置来定位出错的地方。但是这些分析工具背后的本质原理就不见得...

关键字: 函数 ARM C语言 AI

前言:一转眼从事前端已经6年了,从当时的小白到如今大厂的技术专家,中间也走过不少弯路,从今天开始我会持续更新前端技术文章,并且整体的文章会进行体系梳理,整个知识体系分为:基础精讲,框架讲解,框架及工具原理,前端面试题精讲...

关键字: 函数 GE FUNCTION APP

前言:     SOA在IT行业已经存在很多年,随着近几年智能汽车的出现,用于对于自动驾驶、V2X、智能座舱等新功能的需求也逐渐强烈,汽车逐渐由一个机电耦合的系统转变为一个智能终端,类似智能手机,可升级可进化。面对这样的...

关键字: 软件架构

关于C的lambda是函数还是对象,这其实不是一个一概而论的问题。先说结论:对于有捕获的lambda,其等价于对象。对于没有任何捕获的lambda,其等价于函数!首先,很多C程序员从lambda用法上反推容易发现是对象,...

关键字: 函数

智能硬件

22034 篇文章

关注

发布文章

编辑精选

技术子站

关闭