一、前言
随着手持通信设备市场的快速发展,手机的功能逐渐增多。现在手机已经不只是用于语音通信的手持设备,而成为集成了短信、彩信、上网以及移动办公等附加功能的嵌入式通信平台。
集成了这些功能的手机被称为智能手机。近年,嵌入式处理器的运行速度和功能都有了很大的提高,使得许多以前只能在PC上实现的应用,现在都可以在手持设备上实现。目前,市面上的智能手机主要采用 Microsoft公司的Pocket PC、Palm OS等商用操作系统,但这些操作系统开放的程序不够高,限制了许多第三方应用软件的移植。为使智能手机能够为第三方应用软件提供一个更为开放的嵌入式平台,本人对智能手机系统做了比较深入的研究,提出一种以Linux作为嵌入式操作系统、Motorola的MX1作为微处理器、以Wavecom的 Q2403A作为射频模块的智能手机系统的设计与实现。
二、智能手机(PDA)简介
PDA是Personal Digital Assistant的缩写,字面意思是“个人数字助理”。这种手持设备集中了计算,电话,传真,和网络等多种功能。它不仅可用来管理个人信息(如通讯录,计划等),更重要的是可以上网浏览,收发Email,可以发传真,甚至还可以当作手机来用。尤为重要的是,这些功能都可以通过无线方式实现。当然,并不是任何PDA都具备以上所有功能;即使具备,也可能由于缺乏相应的服务而不能实现。但可以预见,PDA发展的趋势和潮流就是计算、通信、网络、存储、娱乐、电子商务等多功能的融合。
PDA一般都不配备键盘,而用手写输入或语音输入。PDA所使用操作系统主要有 Palm OS,Windows CE和EPOC。
三、个人PDA需求分析
作为3C融合到一个终端典范的智能手机,除了实现通讯功能外,还可以实现很多计算机和消费电子产品的功能,而且体积小,具有便携性和多功能性的双重优势,通过安装应用软件后,能随时随地的满足不同消费者的差异化需求,因而具有其他产品不可替代的独特优势。
IC技术的进步为智能手机的研发实现提供了可能,为了缩短产品设计周期而存在先进SOC设计理念,65nm乃至更窄线宽制程技术,BGA、CSP、MCP和SI先进封装技术和理念都为智能手机的技术进步、功能实现和性能提升提供了强有利的支撑。
3G即将启动,带宽的显著提升,为智能手机的许多新功能流畅实现、性能提升提供了强有力的保证。如拥有DMB(数字多媒体广播)功能的智能手机在2G和 2.5G上很难实施,即使实施,效果也会差很多,画面清晰度、播放流畅性都令人质疑,而这一切在3 G网上都不是问题。
智能手机正面临着前所未有的发展机会和便利,随着消费者认知程度的提高和使用习惯的养成,智能手机在整个手机市场销售份额将显著提升,未来5年内,将会从目前的6%左右提升到20%以上,伴随而来的将是智能手机产业链各个环节的巨大商业机会。
四、智能手机(PDA)系统的硬件设计
主要参数:
CPU: arm920T 200MHz(Motorola MC9328MXL);
显示: AU 3.5" Reflective TFT LCD with LED front light 65,536色;
ROM: 32MB Flash;
音效: 内置单声道麦克风、内置单声道扬声器、立体声耳机插口;
触屏:电阻式触摸屏;
SD/MMC: 1个SD卡插槽,MMC Ver3, 1.0标准SDMC;
USB: USB 2.0主,从口;
红外:IrDA, 115Kpbs;
串口:RS-232口;
LED: 红(在充电指示)、绿(软件运行或电池故障指示)
电源管理:Full featured - Sipports Run, Idle and Sleep modes
复位:设置复位开关;
电池:3.7V锂离子电池
物理尺寸:主板尺寸为65x53x5.5mm
电源适配器:5V直流;
外部连接器:Possible integration、CF卡、Sensor、Bluetooth、SIM Card、其他
智能手机系统的硬件设计如图1所示。该设计采用Motora公司的MX1(MC9328)高性能的32位微处理器、Wavecom公司的Q2403A无线收发模块等实现智能手机的GSM通话、GPRS上网及其它PDA应用等功能。
1 微处理器
MC928MX1(以下简称MX1)是摩托罗拉公司基于ARM核心的第一款MCU,主要面向高端嵌入式应用。内部采用arm920T 内核,并集成了SDRAM/Flash、触摸式LCD、USB、蓝牙(bluetooth)、多媒体闪存卡(MMC)、CMOS摄像头等控制器。作为应用开发的最小系统必须包括RAM(程序运行空间)、Flash(存放目标代码)和串行接口(用于调试和下载程序)。MX1提供了6个片选端(CS0~CS5),内置了SDRAM控制器,数据宽度32位。在本系统中采用了2片8M×16位的SDRAM和2片4M×16位的同步Flash存储器,分别接入数据线的低16位和高16位。
2 存储器系统
存储器的物理实质是一组或多组具备数据输入输出和数据存储功能的集成电路,用于充当设备缓存或保存固定的程序及数据。存储器按存储信息的功能可分为只读存储器ROM(Read Only Memory)和随机存储器RAM(Random Access Memory)。嵌入式系统中的固态存储一般不用E2PROM,而用Flash存储器。
下图为存储器系统的组成:
下图为Flash存储器部分的原理图:
SD存储卡电路:
3.电源、时钟和复位电路
1. 电源
电源部分为整个系统提供电力。电源部分的关键问题是低功耗的设计问题,低功耗的措施一般有:降低电压、降低时钟频率、选择低功耗器件等等。本系统电源的提供有电池供电和市电供电两种。电池供电功耗低、供电稳定、扛干扰能力好,但峰值性能不好。市电供电要有相应的AC-DC的适配器,并在系统上配置相应的线性稳压器进行DC-DC转换。
下图为系统电源电路部分原理图:
2. 时钟
时钟信号的产生常用的有RC时钟、晶体振荡时钟、锁相环倍频时钟等。该系统中选择OM[3:2]均接地的方式,即采用外部振荡器提供系统时钟。外部振荡器由12MHz晶振和2个15pF的微调电容组成。
下图为时钟电路部分原理图:
3. 复位
复位电路的设计常用的有RC复位、专用电路复位、软件复位等。
下图为复位电路部分原理图
系统初始化时对时钟的操作:
电源部分,应根据实际系统的需求设置掉电模式和关闭唤醒的代码
时钟部分要根据需求设置锁相环,参考代码如下:
……
ldr r0,=LOCKTIME
ldr r1,=0xffffff
str r1,[r0]
ldr r0,=MPLLCON
ldr r1,=((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV) ;Fin=12MHz,Fout=50MHz
str r1,[r0]
4.LCD模块
LCD( Liquid Crystal Display)显示器即常说的液晶显示器,具有耗电省、体积小等特点,被广泛应用于嵌入式系统中。常见的LCD有TN(Twist Nematic)、STN、TFT(Tin Film Transistor)等。LCD的主要参数有分辨率、背光、接口、色彩、刷新率等。
LCD控制器功能模块图:
接到LCD的线都经过了74LVC16245进行驱动:
LCD控制器硬件连接:
以太网是由Xeros公司开发的一种基带局域网技术,最初使用同轴电缆作为网络媒体,采用载波多路访问和碰撞检测(CSMA/CD)机制,数据传输速率达到10Mbps。虽然以太网是由Xeros公司早在20世纪70年代最先研制成功的,但是如今以太网一词更多的被用来指各种采用CSMA/CD技术的局域网。以太网被设计用来满足非持续性网络数据传输的需要,IEEE 802.3规范则是基于最初的以太网技术于1980年制定。以太网版本2.0由Digital Equipment Corporation、Intel、和Xeros三家公司联合开发,与IEEE 802.3规范相互兼容。
在Internet网络中,以太网可以算是应用最广泛的数据链路层协议了。
现在的操作系统均能够同时支持这种类型的协议格式。
从硬件的角度看,以太网接口电路主要由MAC控制器和物理层接口(Physical Layer,PHY)两大部分构成,目前常见的以太网接口芯片,如RTL8019、RTL8029、RTL8139、CS8900、DM9000等,其内部结构也主要包含这两部分。本系统采用CS8900芯片。
基于CS8900A的以太网接口设计:
RJ45接口信号定义,以及网线连接头信号安排
以太网 10/100Base-T 接口:
1 TX+ Tranceive Data+ (发信号+) 2 TX- Tranceive Data- (发信号-)
3 RX+ Receive Data+ (收信号+) 4 n/c Not connected (空脚)
5 n/c Not connected (空脚) 6 RX- Receive Data- (收信号-)
7 n/c Not connected (空脚) 8 n/c Not connected (空脚)
嵌入式系统中的网络协议:一般用户的网络应用程序开发在应用层完成,底层利用操作系统提供的现成的网络协议栈。
CS8900A的连接-CPU部分:
6.USB 总线接口
niversal Serial Bus通用串行总线)是由Compaq、HP、Intel、Lucent(朗讯)、Microsoft、NEC和Philips七家公司联合推出的新一代标准接口总线。该总线是一种连接外围设备的机外总线,最多可连接127个设备,为微机系统扩充和配置外部设备提供了方便。USB规范有多种版本,最早的版本是1994年11月推出的USB 0.7版 。1996年1月推出了标准版本USB l.0,目标是为中低速的外围设备提供双向、低成本的总线,数据传输率最高为12Mb/s。
随着微机系统及其外设性能和功能的增强,需处理的数据量越来越大,2000年4月又推出了新的USB规范—USB 2.0。在新版本中,增加了一种480Mb/s的数据传输率,以满足日益复杂的高级外设与PC机之间的高性能连接需求。USB2.0是USB的自然升级,它在保留原有USB规范的基础上又提供了更高的带宽,并且与现有的外设保持完全兼容。这里采用的是USB2.0接口。
7.音频输出和麦克风电路
下图为音频电路部分原理图:
下图为麦克风电路部分原理图:
8.无线收发模块
本系统采用WAVECOM公司的专用无线收发模块。它是双频GSM模块(EGSM900/1800MHz),其设计及开发符合ETSI GSM Phase 2+标准。具有话音、GSM电路数据/传真、GPRS分组数据、短消息等功能。该模块支持AT指令集,通过RS232与MX1通信。
五、智能手机(PDA)系统的软件设计
系统分析和软件设计是智能手机系统实现的难点之一,设计的优劣关系到系统的稳定性、扩展性等。因为要兼顾到GSM语音控制与其它智能手机应用之间的互相切换及关联关系,智能手机软件系统的设计就变得相对复杂。系统设计将软件分为三层结构,如图2所示。最下面一层为操作系统层,主要实现对Linux操作系统的移植,其中包括Bootloader引导程序、LCD等设备的驱动程序。中间层为服务程序层,该层主要包括GUI服务器以及GSM/GPRS控制服务器。智能手机系统设计的关键在于各项功能应用的实现。对智能手机软件进行分层设计,有利于各个功能有机地协调运转,同时也便于软件的开发与调试。
1.嵌入式Linux操作系统
Linux最初是由Linux Torvalds编写及发布的源代码公开、可免费使用的操作系统。后来,又通过Internet上成百上千的程序员的加入,使Linux成为一个几乎支持所有主流32位CPU的操作系统。其特点主要有:内核高效稳定、公开源代码、可移植性、可裁减、支持多任务等。
本设计中采用的Linux内核是arm-Linux基础上,编写符合硬件设计的引导程序及电源管理控制程序;并针对本系统的硬件设计,编写了LCD、触摸屏等硬件设计驱动程序。
智能手机基于Linux操作系统工作时,首先初始化CPU;然后加载各个设备驱动程序,初始化存储器及外围设备;最后启动各服务程序,进入待机状态。
2.服务程序的设计
智能手机系统中的服务程序主要有GUI Server和GSM/GPRS Server,它们是上层应用赖以实现的基础。
GUI Server
为使系统能够很好地支持浏览器及MMS等界面复杂的应用,具有良好的可扩展性,本系统中的GUI Server设计采用了客户机/服务器模式,并以动态链接库的形式对图形设备接口进行封装,具体如图3所示。
服务进程与应用进程之间采用Linux提供的消息队列进行通信。服务进程保存系统GUI环境的描述信息,为应用进程提供注册及一些计算任务,如计算当前剪切域内容等。此外,还负责显示桌面。应用程序的启动后,首先与服务进程建立连接并进行交互,将自身的一些描述信息发送到服务进程。
服务进程和应用进程通过调用动态库实现基本窗口显示功能。其中窗口树与剪切域都定义在动态库中,对于服务进程或应用程序而言,它们是透明的,不需要进行管理。因服务进程与客户进程分别运行在不同的进程空间中,所以虽然在动态库中定义了相同的数据,但它们之间不会产生任何冲突。
设计对动态库中封装的函数进行了分层。其中直接针对Framebuffer进行输出的函数位于系统最低层,其上是设备上下文。因每次对一个窗口输出的时都要首先建立设计上下文,所以设备上下文总可以引用窗体结构,自然也可以引用到窗口剪切域,在剪切域范围内才可以进行输出。
图形设备接口建立在设备上下文之上,主要包括点、线、面、文本等。如上文所述,输出之前,首先建立设备上下文,即其输出的目标是设备上下文,而不是窗口。
图形设备接口的上层是应用开发接口即API层,桌面进程与客户进程都通过调用API函数实现系统功能。
另外,系统建立了输入的抽象层,屏蔽了不同输入设备。
GSM/GPRS Server多工通信服务器软件
GSM/GPRS Server多工通信服务器软件是电话、短信及数据业务的守护进程,负责响应应用程序转发的用户操作事件及从串口的获得的无线通信模块事件,是整个智能手机系统的核心。在这部分的工作中要实现多链路的数据通信、事件优先级判别,并在执行数据通信时,保证电话、短信的接入。具体程序设备结构如图所示。
3.机系统中的应用程序设计
有了中间层的服务程序,上层应用程序可以根据GUI Server及GSM/GPRS Server提供的接口进行移植和开发。本设计中实现了电话控制程序、短信收发的管理及数据精力的应用等。下面以电话控制程序为例,介绍智能手机应用程序的设计与实现。
本人将电话控制程序设计分为三个运行态:PowerOn State(上电态)、Idle State(空闲态)、Execution State(执行态)。图5表示了三个状态之间的关系和进入各个状态的条件。
电话控制程序在智能手机系统上电复位、GSM/GPRS Server启动后,进入Power-on State(上电态)。在上电态,程序首先进行初始化工作,与GSM/GPRS Server通信,获得系统状态。初始化后,即进入Idle State(空闲态)。在空闲态,程序循环等待GSM/GPRS Server的呼入事件及来自键盘的呼出事件;当这些事件发生时,程序进入Execution State(执行态)。在执行态,用户进行语音通信,通话结束后,程序又回到空闲态。
本系统设计成功地应用于实际工程项目中,其可行性和实用性已在实际应用环境中得到检验。下一步,可将系统的CPU主频进一步提高,无线通信模块也可换成符合3G标准的。这样,就可以在本系统设计的基础上,实现更为广泛的手持设备应用。
六、总结
采用ARM技术知识产权(IP)核的微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。作为一种16/32位的高性能、低成本、低功耗的嵌入式RISC微处理器,ARM微处理器目前已经成为世界上应用最为广泛的嵌入式微处理器。通过这次嵌入式系统智能手机 (PDA)设计方案,使我们具备一定微机原理基础的学生掌握开发嵌入式系统的多方面知识,从而初步具备设计开发基于arm处理器系统的能力。在这里是衷心感谢我们的黄建华老师在课堂上给我们带来如此生动的教学,在他的帮助下让我认识到嵌入式系统这学科的重要性,让我感受到在开发嵌入式系统的过程中体会到不少乐趣。但是在短短的10周的内学习嵌入式系统这门课是远远不够的,嵌入式系统的理论和技术正在日新月异地发展,这更加要我们在以后的学习和工作中不断去探索不断去完善,另外由于水平有限再加上时间仓促,文中难免有不妥或错误之处。希望老师能多多包涵。我相信只有负出了努力,没有收不到的果实。我希望学习嵌入式系统这门学科也一样!愿与努力在嵌入式系统开发前沿的学者一起共勉。
评论
查看更多