c语言sscanf函数的用法是什么
303
2022-11-19
基于ARM和MiniGUI的车载指控系统人机接口部分的设计
0 引言
随着武器装备信息化程度的提高,各种嵌入式信息装备得到了广泛应用。作为未来战场主要作战平台的各种战斗车辆,其车载指挥控制平台的设计得到了广泛重视。
2 硬件设计
该开发板采取核心板和扩展板分离的结构,提供了大部分的外设接口电路,并且有200个引出脚,引出了CPU上的大部分I/0端口,这样做为后续的开发工作提供了便利。
2.1 键盘矩阵电路
该项目的指挥控制终端功能可以分为6项。每项选中后,为便于输入或选择子条目,增加10个数字键,另外还需要确定键、取消键,再加上6个功能键,一共是24个键。因为键的数目较多,将这些键设计成一个行列式键盘矩阵(见图1)。
键盘扫描的原理是,按照有规律的时间间隔察看键盘矩阵,以确定是否有键按下。键盘扫描可以采取专用芯片,也可以采用软件方法实现,该项目采用软件方法。
2.2 显示驱动电路
3 软件设计
软件设计需要完成两个方面的工作:一是驱动程序编写;二是GUI编程。
3.1 键盘矩阵驱动程序的编写
开发板对自己所提供的硬件一般都提供相应的驱动程序,自行开发的外设电路一般需要自己编写驱动程序。设备驱动程序是Linux内核的重要部分,操作系统只有通过驱动程序才能够控制外设的硬件行为。
键盘驱动程序编制的要点有:
(1)定义一个6×4的健值矩阵,作为输出,按下一个按键,得到对应的键值;
设置I/O模式,读/写I/0端口的位,可以通过头文件S3C2410.h中专门定义的宏set_gpio_ctrl,write_gpio_bit,read_gpio_bit来进行。
键盘驱动程序经过编译后,可以作为一个设备文件编译入内核,也可以采取模块动态加载的方式。
3.2 MiniGUl IAL引擎的实现
通常,MiniGUI在使用前应针对目标系统的特点进行配置和编译,例如指定目标操作系统、运行模式、图形引擎和输入引擎、字体类型、字符集、所支持的控件类等。该课题中,因为采取了自行设计的键盘作为输入设备,因此最重要的配置是输入引擎(input abstract lay-er,IAL)。
抽象层是一组不依赖于硬件的抽象接口,其作用类似于操作系统的驱动程序,将底层的硬件操作与操作系统隔离,这样做简化了在不同平台上移植的难度。开发特定的键盘输入,主要是完成两部分工作:键盘驱动程序设计和键盘输入引擎开发。前者负责从键盘接收原始输入事件和数据,后者负责将原始的输入事件和数据转换成MiniGUl抽象的键盘事件和数据。
在代码实现上,MiniGUI通过INPUT数据结构来表示输入引擎。该结构中指定了若干函数指针,编写特定的输入引擎,主要就是编码实现INPUT结构中的各个函数。新的IAL引擎编写完成后,应加入MiniGUI进行配置,然后对MiniGUI进行编译。在工程实践中,一种比较简便的方法是对MiniGUI已经实现的引擎进行修改。
3.3 图形界面设计
MiniGUI是一个图形用户界面支持系统,通常的GUI编程概念均适用于MiniGUI编程,如窗口和事件驱动编程等。嵌入式系统完成的功能一般比较单一,对于该系统而言,重点在于实现人机接口部分,因此只需要轮询用户的按键输入即可。如图2所示。
MiniGUI中有三种窗口类型:主窗口、对话框和控件窗口。每一个MiniGUI应用程序一般都要创建一个主窗口,作为应用程序的主界面或开始界面。MiniGUI包含有许多控件类,如静态框、按钮、列表框、编辑框、进度条等,这些控件类可以实现和Windows标准控件类似的效果。
最重要的几个函数是:
其中,WndProc是这个窗口的消息处理函数。在此,对消息循环进行初立即可。例如:
3.4 其他问题
在该课题的开发过程中,还遇到了一些其他的问题,概述如下:
(1)显示的色彩深度问题。作为指控终端,该课题设计的显示分辨率为640×480,如果是16位以上的色深,对ARM处理器将是一个比较大的负担,会出现画面的抖动,不连贯。处理的方法是将色深设置为8位,这需要通过修改Linux的显示驱动来解决。
(2)键盘的防抖问题。按键的抖动问题是一类常见问题,可以通过软件延时或者其他的手段进行处理。
(3)终端功能的进一步丰富。该课题只实现了终端的人机界面,但是作为一个完整意义的终端,还应该考虑终端之间的联网、数据传输,终端和工况采集装置之间的硬件接口、数据交换等问题。这些需要进一步开发利用ARM芯片上的其他外设,这是该课题下一步的目标。
4 结语
ARM作为一款性价比突出的嵌入式芯片,与图形系统MiniGUI相结合,是嵌入式图形界面编程的优选。实验证明,本文所介绍的软、硬件系统较好地实现了在本文引言中提及的车载指控平台的几项功能。作为一类典型的车载嵌入式系统,车载指控系统的设计原理与方法同样适用于其他嵌入式系统。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~