介绍以MotorolaMX1作为中央处理器、Wavecom公司的Q2403A作为无线收发模块、嵌入式Linux作为操作系统的智能手机系统的设计与实现。该设计可以实现GSM语音通讯、GPRS上网及PDA相关应用软件等功能,具有结构清晰、易于开发等优点。
关键词:Linux嵌入式系统智能手机随着手持通讯设备市场的快速发展,手机的功能渐渐增多。现今手机早已不只是用于语音通讯的手持设备,而成为集成了邮件、彩信、上网以及联通办公等附加功能的嵌入式通讯平台。集成了这种功能的手机被称为智能手机。近些年,嵌入式处理器的运行速率和功能都有了很大的提升,促使许多原先只能在PC上实现的应用,如今都可以在手持设备上实现。目前,市面上的智能手机主要采用Microsoft公司的ocketPC、PalmOS等商用操作系统,但这种操作系统开放的程序不够高,限制了许多第三方应用软件的移植。为使智能手机才能为第三方应用软件提供一个更为开放的嵌入式平台,笔者对智能手机系统做了比较深入的研究,提出一种以Linux作为嵌入式操作系统、Motorola的MX1作为微处理器、以Wavecom的Q2403A作为射频模块的智能手机系统的设计与实现。
1智能手机系统的硬件设计
智能手机系统的硬件设计如图1所示。该设计采用Motorol公司的MX1(MC9328)高性能的32位微处理器、Wavecom公司的Q2403A无线收发模块等实现智能手机的GSM通话、GPRS上网及其它PDA应用等功能。
1.1微处理器
系统采用的MC9328MXMX1微处理器是最新推出的MotorolaDragonBall系列微处理器。它采用先进省电的ARM920920T核心linux解压rar,速率最高可达200MHz。集成了LCD控制器、SRAM、USB插口、一个A/D转换器(支持触摸屏控制)、一个MMC/SD主机端控制器。256-pin的MPPBGA封装。
1.2无线收发模块
系统采用WAVECOM公司的专用无线收发模块。它是双频GSM模块(EGSM900/1800MHz),其设计及开发符合ETSIGSMPhase2+标准。具有话音、GSM电路数据/传真、GPRS分组数据、短消息等功能。该模块支持AT指令集,通过RS232与MX1通讯。
1.3其它外围设备
智能手机的其它外围设备还有LCD、Touchpanel、AudioCODEC等。
2智能手机系统的软件设计
系统分析和软件设计是智能手机系统实现的难点之一,设计的好坏关系到系统的稳定性、扩展性等。由于要兼具到GSM语音控制与其它智能手机应用之间的相互切换及关联关系,智能手机软件系统的设计就显得相对复杂。系统设计将软件分为三层结构,如图2所示。最下边一层为操作系统层,主要实现对Linux操作系统的移植,其中包括Bootloader引导程序、LCD等设备的驱动程序。中间层为服务程序层,该层主要包括GUI服务器以及GSM/GPRS控制服务器。智能手机系统设计的关键在于各项功能应用的实现。对智能手机软件进行分层设计,有利于各个功能有机地协调运转,同时也易于软件的开发与调试。
2.1嵌入式Linux操作系统
Linux最初是由LinuxTorvalds编撰及发布的源代码公开、可免费使用的操作系统。后来,又通过Internet上成百上千的程序员的加入,使Linux成为一个几乎支持所有主流32位CPU的操作系统。其特征主要有:内核高效稳定、公开源代码、可移植性、可裁减、支持多任务等。
本设计中采用的Linux内核是ARM-Linux基础上,编撰符合硬件设计的引导程序及电源管理控制程序;并针对本系统的硬件设计,编撰了LCD、触摸屏等硬件设计驱动程序。
智能手机基于Linux操作系统工作时,首先初始化CPU;之后加载各个设备驱动程序基于嵌入式linux的智能手机应用系统研究,初始化储存器及外围设备;最后启动各服务程序,步入待机状态。
2.2服务程序的设计
智能手机系统中的服务程序主要有GUIServer和GSM/GPRSServer,它们是下层应用赖以实现的基础。
2.2.1GUIServer
为使系统才能挺好地支持浏览器及MMS等界面复杂的应用,具有良好的可扩充性,本系统中的GUIServer设计采用了顾客机/服务器模式,并以动态链接库的方式对图形设备插口进行封装,具体如图3所示。
服务进程与应用进程之间采用Linux提供的消息队列进行通讯。服务进程保存系统GUI环境的描述信息,为应用进程提供注册及一些估算任务,如估算当前剪切域内容等。据悉,还负责显示桌面。应用程序的启动后,首先与服务进程构建联接并进行交互,将自身的一些描述信息发送到服务进程。
服务进程和应用进程通过调用动态库实现基本窗口显示功能。其中窗口树与剪切域都定义在动态库中基于嵌入式linux的智能手机应用系统研究,对于服务进程或应用程序而言,它们是透明的,不须要进行管理。因服务进程与顾客进程分别运行在不同的进程空间中,所以即使在动态库中定义了相同的数据,但它们之间不会形成任何冲突。
设计对动态库中封装的函数进行了分层。其中直接针对Framebuffer进行输出的函数坐落系统最低层,其上是设备上下文。因每次对一个窗口输出的时都要首先构建设计上下文,所以设备上下文总可以引用窗体结构,自然也可以引用到窗口剪切域,在剪切域范围内才可以进行输出。
图形设备插口构建在设备上下文之上,主要包括点、线、面、文本等。如上文所述,输出之前,首先构建设备上下文,即其输出的目标是设备上下文,而不是窗口。
图形设备插口的下层是应用开发插口即API层,桌面进程与顾客进程都通过调用API函数实现系统功能。
另外,系统构建了输入的具象层,屏蔽了不同输入设备。
2.2.2GSM/GPRSServer多工通讯服务器软件
GSM/GPRSServer多工通讯服务器软件是电话、短信及数据业务的守护进程,负责响应应用程序转发的用户操作风波及从并口的获得的无线通讯模块风波linux运维招聘,是整个智能手机系统的核心。在这部份的工作中要实现多链路的数据通讯、事件优先级判断,并在执行数据通讯时,保证电话、短信的接入。具体程序设备结构如图4所示。
2.3智能手机系统中的应用程序设计