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