Microwindows在远程红外抄表器中的应用
摘 要: 本文详细阐述了Mcrowindows在S3C44B0X上的应用,最后给出了Mcrowindows在远程红外抄表器中的应用。
关键词: S3C44B0X;Mcrowindows;嵌入式mClinux;远程红外抄表器
引言
随着嵌入式系统的广泛应用,面向人机交互的嵌入式产品的需求量越来越大,GUI的设计也变得越来越重要。在Linux之上进行实时嵌入式系统开发的厂商,一般会选择如下几种GUI系统:高度裁减的X Windows 系统、MiniGUI、Microwindows、QT/Embedded等。Microwindows作为一种开放式源码的嵌入式GUI软件,目的是把图形视窗环境引入到运行Linux的小型设备和平台上,其体系结构如图1所示。
Microwindows的可移植性非常好,有多种平台的支持,而以Samsung公司的S3C44B0X嵌入式处理器芯片为核心的ARM平台就是其中的一种。
本文详细阐述了Microwindows在S3C44B0X上的应用,最后给出了Mcrowindows在远程红外抄表器中的应用。
图1 Microwindows的体系结构
Microwindows在S3C44B0X上的应用
内核的裁剪与配置
在嵌入式系统中,内核裁减是必不可少的工作。内核的大小,关系到硬件系统需要多大的存储空间,存储空间越大需要的硬件成本也越高。 mClinux内核采用模块化的设计,即很多功能块可以独立的加上或卸下,开发人员在设计内核时把这些内核模块作为可选的选项,可以在编译系统内核时指定。因此,一种较通用的做法是对mClinux内核重新编译,在编译时选择嵌入式设备所需要的功能支持模块,同时删除不需要的功能。通过对内核的重新配置,可以使系统运行所需要的内核显著减小,从而缩减资源使用量。
以S3C44B0X为核心的Embest EduKit-II目标平台采用了mClinux操作系统,进入显示屏是256色STN LCD,其显示驱动基于Frame Buffer的驱动程序,因此Microwindows的显示需要在内核中有Linux Frame Buffer支持。当然,如果还需要其他的一些功能,例如TFTP下载,则也可以在配制中加载进去。mClinux内核对Frame Buffer支持的配置图如图 2 所示。
图2 mClinux内核配置图(关于Frame Buffer)
基于Microwindows API的应用程序的添加
由于Microwindows API兼容Win32 API的编程模式,所以对于熟悉Win32 API的工程师而言,只要熟悉Microwindows API的函数库,就可以根据客户需求,开发出可以在Microwindows上支持的以Intel 16位、32位CPU,MIPS R4000 以及 ARM 芯片为核心的目标平台上运行的应用程序,从而开发出新一代的嵌入式产品,如红外抄表器,PDA等。
在此GUI的平台搭建过程中,在内核中添加两个应用程序,它们分别为mterm.c、muserfd.c。其中mterm.c是一个显示终端的窗口,在主机上的超级终端上输入信息,在LCD上类似Windows的窗口中就能得到显示。实现过程如下:
(1)修改./config/config.in,在相应的菜单块中增加一行,如下所示:
bool'mterm' CONFIG_USER_
MICROWIN_BIN_MTERM
bool ' muserfd ' CONFIG_USER_
MICROWIN_BIN_MUSERFD
(2)在mClinux-distuser
microwinMakefile文件中增加一行,如下所示:
$(ROMFSINST) -e
CONFIG_USER_MICROWIN_BIN_ MTERM /bin/ mterm
$(ROMFSINST) -e CONFIG_USER_MICROWIN_BIN_ MUSERFD /bin/ muserfd
修改后,对mClinux进行重新编译,就把新的应用程序加载到文件系统中了。
此外,还有一种快速添加应用程序到文件系统中的方法,即省略在系统中添加程序编译加载信息,直接用交叉编译工具自行编译,然后将生成的Flat可执行文件放在romfs/bin目录下,使用命令生成romfs镜像。
编译Microwindows
在应用程序配置界面中,选择Microwindows,按照图 3 的提示配置选定Microwindows中的项,其余不选定。
从Microwindows的配置界面可以看到新添加的应用程序已经出现在配置界面中,设置完毕后保存、退出。在Cygwin环境下依次执行make dep; make clean; make lib_only; make user_only ; make romfs; make image命令,即可完成编译过程。
图3 Microwindows的编译配置界面
运行Microwindows应用程序
编译完成后,连接PC机上的超级终端,就可以运行新的内核了。在超级终端的sash提示符下,输入如下命令运行Microwindows应用程序:
/>cd /bin
/bin>./ mterm
这时,在LCD上就会显示一个类似Windows的窗口。
Microwindows在远程红外抄表器中的应用
远程红外抄表器是专为住宅区物业管理人员抄取电表、水表、煤气表设计的。它作为一款有推广意义的嵌入式产品,为了便于用户对其进行操作,它不但需要给用户提供一个友好的图形界面,而且对成本的考虑也非常重要。Microwindows是一个开放源码的项目,它提供了比较完善的图形功能,因此把它应用于抄表器的开发中能够在满足用户需求的基础上有效地降低成本。
远程红外抄表器的软件设计框图如图4所示。对于Microwindows在红外抄表上的应用主要涉及以下几个方面:
1、 Microwindows的硬件驱动程序的实现,包括屏幕、鼠标和键盘的驱动程序的编写。
图4 红外抄表器的软件系统
2、 Microwindows内核的裁减及其编译运行。在裁减过程中应该选择工程师熟悉的编程接口及其所选接口要求的一些选项,例如如果选择了Nano-X API,则在配置Microwindows时就必须选择支持客户/服务器的选项Nano-X和nanawm。本设计选择的是另一个编程接口Microwindows API,其配置编译过程已经做了详细的阐述。
3、对Microwindows所提供的编程接口的应用程序进行编写。选择编程接口,按照抄表器的功能需求编写应用程序,应用程序要体现所有的功能,由应用程序调用驱动程序。应用程序的设计一般包括如下几个方面:多种输入法的设计与支持;日期时间设置;定时开关机设置;背光开启时间设置;液晶对比度调节设置;自动启动设置;开机密码设置;串口选择及波特率设置;数据保护设置;节电模式设置;系统信息。
结语
本文着重阐述了Microwindows在以S3C44B0X为核心的ARM平台上的应用,在此基础上给出了Microwindows在远程红外抄表器中的应用。Microwindows正在嵌入式开发领域稳步发展,是完全免费的开放式源代码,为嵌入式设备提供了更多的解决方案。任何开发PDA或可移动设备的工程师都可从因特网免费下载相关程序,并将其移植或开发。熟悉图形应用程序的用户可以很快就在该系统上编写自己的图形应用程序,在未来的嵌入式系统设计中,它的应用潜力将是无可限量的。
参考文献:
1 田泽.嵌入式系统开发与应用教程.北京:北京航空航天大学出版社,2005.
2 张晓林,崔迎炜等.嵌入式系统设计与实践. 北京:北京航空航天大学出版社,2006.
3 宫辉.基于MC68HC908GP32的红外抄表器.清华大学Motorola单片机与DSP应用开发研究中心.
4 邓晓欧,周忠丽.嵌入式 GUI 系统 Microwindows 的研究与应用.中国民航飞行学院学报 2005,6:22-24.
5 吴升艳,岳春生,胡冰. 嵌入式 Linux 系统下 Microwindows 的应用. [J] 单片机与嵌入式系统应用 2003,1:103-105.
评论