一、前言
隨著手持通信設(shè)備市場的快速發(fā)展,,手機的功能逐漸增多?,F(xiàn)在手機已經(jīng)不只是用于語音通信的手持設(shè)備,而成為集成了短信,、彩信,、上網(wǎng)以及移動辦公等附加功能的嵌入式通信平臺。
集成了這些功能的手機被稱為智能手機,。近年,,嵌入式處理器的運行速度和功能都有了很大的提高,使得許多以前只能在PC上實現(xiàn)的應(yīng)用,,現(xiàn)在都可以在手持設(shè)備上實現(xiàn),。目前,市面上的智能手機主要采用 Microsoft公司的Pocket PC,、Palm OS等商用操作系統(tǒng),,但這些操作系統(tǒng)開放的程序不夠高,限制了許多第三方應(yīng)用軟件的移植,。為使智能手機能夠為第三方應(yīng)用軟件提供一個更為開放的嵌入式平臺,,本人對智能手機系統(tǒng)做了比較深入的研究,提出一種以Linux作為嵌入式操作系統(tǒng),、Motorola的MX1作為微處理器,、以Wavecom的 Q2403A作為射頻模塊的智能手機系統(tǒng)的設(shè)計與實現(xiàn)。
二,、智能手機(PDA)簡介
PDA是Personal Digital Assistant的縮寫,,字面意思是“個人數(shù)字助理”。這種手持設(shè)備集中了計算,,電話,,傳真,和網(wǎng)絡(luò)等多種功能,。它不僅可用來管理個人信息(如通訊錄,,計劃等),,更重要的是可以上網(wǎng)瀏覽,,收發(fā)Email,,可以發(fā)傳真,甚至還可以當作手機來用,。尤為重要的是,,這些功能都可以通過無線方式實現(xiàn)。當然,,并不是任何PDA都具備以上所有功能,;即使具備,也可能由于缺乏相應(yīng)的服務(wù)而不能實現(xiàn),。但可以預(yù)見,,PDA發(fā)展的趨勢和潮流就是計算、通信,、網(wǎng)絡(luò),、存儲、娛樂,、電子商務(wù)等多功能的融合,。
PDA一般都不配備鍵盤,而用手寫輸入或語音輸入,。PDA所使用操作系統(tǒng)主要有 Palm OS,,Windows CE和EPOC。
三,、個人PDA需求分析
作為3C融合到一個終端典范的智能手機,,除了實現(xiàn)通訊功能外,還可以實現(xiàn)很多計算機和消費電子產(chǎn)品的功能,,而且體積小,,具有便攜性和多功能性的雙重優(yōu)勢,通過安裝應(yīng)用軟件后,,能隨時隨地的滿足不同消費者的差異化需求,,因而具有其他產(chǎn)品不可替代的獨特優(yōu)勢。
IC技術(shù)的進步為智能手機的研發(fā)實現(xiàn)提供了可能,,為了縮短產(chǎn)品設(shè)計周期而存在先進SOC設(shè)計理念,,65nm乃至更窄線寬制程技術(shù),BGA,、CSP,、MCP和SI先進封裝技術(shù)和理念都為智能手機的技術(shù)進步、功能實現(xiàn)和性能提升提供了強有利的支撐,。
3G即將啟動,,帶寬的顯著提升,為智能手機的許多新功能流暢實現(xiàn)、性能提升提供了強有力的保證,。如擁有DMB(數(shù)字多媒體廣播)功能的智能手機在2G和 2.5G上很難實施,,即使實施,效果也會差很多,,畫面清晰度,、播放流暢性都令人質(zhì)疑,而這一切在3 G網(wǎng)上都不是問題,。
智能手機正面臨著前所未有的發(fā)展機會和便利,,隨著消費者認知程度的提高和使用習慣的養(yǎng)成,智能手機在整個手機市場銷售份額將顯著提升,,未來5年內(nèi),,將會從目前的6%左右提升到20%以上,伴隨而來的將是智能手機產(chǎn)業(yè)鏈各個環(huán)節(jié)的巨大商業(yè)機會,。
四,、智能手機(PDA)系統(tǒng)的硬件設(shè)計
主要參數(shù):
CPU: arm920T 200MHz(Motorola MC9328MXL);
顯示: AU 3.5" Reflective TFT LCD with LED front light 65,536色,;
ROM: 32MB Flash,;
RAM: 64MB SDRAM;
音效: 內(nèi)置單聲道麥克風,、內(nèi)置單聲道揚聲器,、立體聲耳機插口;
觸屏:電阻式觸摸屏,;
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
復(fù)位:設(shè)置復(fù)位開關(guān);
電池:3.7V鋰離子電池
物理尺寸:主板尺寸為65x53x5.5mm
電源適配器:5V直流,;
外部連接器:Possible integration,、CF卡、Sensor,、Bluetooth,、SIM Card、其他
智能手機系統(tǒng)的硬件設(shè)計如圖1所示,。該設(shè)計采用Motora公司的MX1(MC9328)高性能的32位微處理器,、Wavecom公司的Q2403A無線收發(fā)模塊等實現(xiàn)智能手機的GSM通話、GPRS上網(wǎng)及其它PDA應(yīng)用等功能。
1 微處理器
MC928MX1(以下簡稱MX1)是摩托羅拉公司基于ARM核心的第一款MCU,,主要面向高端嵌入式應(yīng)用,。內(nèi)部采用arm920T 內(nèi)核,并集成了SDRAM/Flash,、觸摸式LCD、USB,、藍牙(bluetooth),、多媒體閃存卡(MMC)、CMOS攝像頭等控制器,。關(guān)于 MX1的詳細資料,,感興趣的讀者可以參考http://www.motorola.com.cn/semiconductors/。作為應(yīng)用開發(fā)的最小系統(tǒng)必須包括RAM(程序運行空間),、Flash(存放目標代碼)和串行接口(用于調(diào)試和下載程序),。MX1提供了6個片選端(CS0~CS5),內(nèi)置了SDRAM控制器,,數(shù)據(jù)寬度32位,。在本系統(tǒng)中采用了2片8M×16位的SDRAM和2片4M×16位的同步Flash存儲器,分別接入數(shù)據(jù)線的低16位和高16位,。
2 存儲器系統(tǒng)
存儲器的物理實質(zhì)是一組或多組具備數(shù)據(jù)輸入輸出和數(shù)據(jù)存儲功能的集成電路,,用于充當設(shè)備緩存或保存固定的程序及數(shù)據(jù)。存儲器按存儲信息的功能可分為只讀存儲器ROM(Read Only Memory)和隨機存儲器RAM(Random Access Memory),。嵌入式系統(tǒng)中的固態(tài)存儲一般不用E2PROM,,而用Flash存儲器。
下圖為存儲器系統(tǒng)的組成:
下圖為Flash存儲器部分的原理圖:
SD存儲卡電路:
3.電源,、時鐘和復(fù)位電路
1. 電源
電源部分為整個系統(tǒng)提供電力,。電源部分的關(guān)鍵問題是低功耗的設(shè)計問題,低功耗的措施一般有:降低電壓,、降低時鐘頻率,、選擇低功耗器件等等。本系統(tǒng)電源的提供有電池供電和市電供電兩種,。電池供電功耗低,、供電穩(wěn)定、扛干擾能力好,,但峰值性能不好,。市電供電要有相應(yīng)的AC-DC的適配器,并在系統(tǒng)上配置相應(yīng)的線性穩(wěn)壓器進行DC-DC轉(zhuǎn)換,。
下圖為系統(tǒng)電源電路部分原理圖:
2. 時鐘
時鐘信號的產(chǎn)生常用的有RC時鐘,、晶體振蕩時鐘、鎖相環(huán)倍頻時鐘等。該系統(tǒng)中選擇OM[3:2]均接地的方式,,即采用外部振蕩器提供系統(tǒng)時鐘,。外部振蕩器由12MHz晶振和2個15pF的微調(diào)電容組成。
下圖為時鐘電路部分原理圖:
3. 復(fù)位
復(fù)位電路的設(shè)計常用的有RC復(fù)位,、專用電路復(fù)位,、軟件復(fù)位等。
下圖為復(fù)位電路部分原理圖
系統(tǒng)初始化時對時鐘的操作:
系統(tǒng)的初始化程序代碼,,應(yīng)對系統(tǒng)硬件進行初始化檢測
電源部分,,應(yīng)根據(jù)實際系統(tǒng)的需求設(shè)置掉電模式和關(guān)閉喚醒的代碼
時鐘部分要根據(jù)需求設(shè)置鎖相環(huán),參考代碼如下:
……
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)顯示器即常說的液晶顯示器,,具有耗電省,、體積小等特點,被廣泛應(yīng)用于嵌入式系統(tǒng)中,。常見的LCD有TN(Twist Nematic),、STN、TFT(Tin Film Transistor)等,。LCD的主要參數(shù)有分辨率,、背光、接口,、色彩,、刷新率等。
LCD控制器功能模塊圖:
接到LCD的線都經(jīng)過了74LVC16245進行驅(qū)動:
LCD控制器硬件連接:
5.以太網(wǎng)接口芯片
以太網(wǎng)是由Xeros公司開發(fā)的一種基帶局域網(wǎng)技術(shù),,最初使用同軸電纜作為網(wǎng)絡(luò)媒體,,采用載波多路訪問和碰撞檢測(CSMA/CD)機制,數(shù)據(jù)傳輸速率達到10Mbps,。雖然以太網(wǎng)是由Xeros公司早在20世紀70年代最先研制成功的,,但是如今以太網(wǎng)一詞更多的被用來指各種采用CSMA/CD技術(shù)的局域網(wǎng)。以太網(wǎng)被設(shè)計用來滿足非持續(xù)性網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)男枰?,IEEE 802.3規(guī)范則是基于最初的以太網(wǎng)技術(shù)于1980年制定,。以太網(wǎng)版本2.0由Digital Equipment Corporation、Intel,、和Xeros三家公司聯(lián)合開發(fā),,與IEEE 802.3規(guī)范相互兼容。
在Internet網(wǎng)絡(luò)中,,以太網(wǎng)可以算是應(yīng)用最廣泛的數(shù)據(jù)鏈路層協(xié)議了,。
現(xiàn)在的操作系統(tǒng)均能夠同時支持這種類型的協(xié)議格式。
從硬件的角度看,,以太網(wǎng)接口電路主要由MAC控制器和物理層接口(Physical Layer,,PHY)兩大部分構(gòu)成,,目前常見的以太網(wǎng)接口芯片,如RTL8019,、RTL8029,、RTL8139、CS8900,、DM9000等,,其內(nèi)部結(jié)構(gòu)也主要包含這兩部分。本系統(tǒng)采用CS8900芯片,。
基于CS8900A的以太網(wǎng)接口設(shè)計:
RJ45接口信號定義,,以及網(wǎng)線連接頭信號安排
以太網(wǎng) 10/100Base-T 接口:
1 TX+ Tranceive Data+ (發(fā)信號+) 2 TX- Tranceive Data- (發(fā)信號-)
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 (空腳)
嵌入式系統(tǒng)中的網(wǎng)絡(luò)協(xié)議:一般用戶的網(wǎng)絡(luò)應(yīng)用程序開發(fā)在應(yīng)用層完成,底層利用操作系統(tǒng)提供的現(xiàn)成的網(wǎng)絡(luò)協(xié)議棧,。
CS8900A的連接-CPU部分:
6.USB 總線接口
niversal Serial Bus通用串行總線)是由Compaq,、HP,、Intel,、Lucent(朗訊)、Microsoft,、NEC和Philips七家公司聯(lián)合推出的新一代標準接口總線,。該總線是一種連接外圍設(shè)備的機外總線,最多可連接127個設(shè)備,,為微機系統(tǒng)擴充和配置外部設(shè)備提供了方便,。USB規(guī)范有多種版本,最早的版本是1994年11月推出的USB 0.7版 ,。1996年1月推出了標準版本USB l.0,,目標是為中低速的外圍設(shè)備提供雙向、低成本的總線,,數(shù)據(jù)傳輸率最高為12Mb/s,。
隨著微機系統(tǒng)及其外設(shè)性能和功能的增強,需處理的數(shù)據(jù)量越來越大,,2000年4月又推出了新的USB規(guī)范—USB 2.0,。在新版本中,增加了一種480Mb/s的數(shù)據(jù)傳輸率,,以滿足日益復(fù)雜的高級外設(shè)與PC機之間的高性能連接需求,。USB2.0是USB的自然升級,它在保留原有USB規(guī)范的基礎(chǔ)上又提供了更高的帶寬,,并且與現(xiàn)有的外設(shè)保持完全兼容,。這里采用的是USB2.0接口。
7.音頻輸出和麥克風電路
下圖為音頻電路部分原理圖:
下圖為麥克風電路部分原理圖:
8.無線收發(fā)模塊
本系統(tǒng)采用WAVECOM公司的專用無線收發(fā)模塊,。它是雙頻GSM模塊(EGSM900/1800MHz),,其設(shè)計及開發(fā)符合ETSI GSM Phase 2+標準,。具有話音、GSM電路數(shù)據(jù)/傳真,、GPRS分組數(shù)據(jù),、短消息等功能。該模塊支持AT指令集,,通過RS232與MX1通信,。
五、智能手機(PDA)系統(tǒng)的軟件設(shè)計
系統(tǒng)分析和軟件設(shè)計是智能手機系統(tǒng)實現(xiàn)的難點之一,,設(shè)計的優(yōu)劣關(guān)系到系統(tǒng)的穩(wěn)定性,、擴展性等。因為要兼顧到GSM語音控制與其它智能手機應(yīng)用之間的互相切換及關(guān)聯(lián)關(guān)系,,智能手機軟件系統(tǒng)的設(shè)計就變得相對復(fù)雜,。系統(tǒng)設(shè)計將軟件分為三層結(jié)構(gòu),如圖2所示,。最下面一層為操作系統(tǒng)層,,主要實現(xiàn)對Linux操作系統(tǒng)的移植,其中包括Bootloader引導(dǎo)程序,、LCD等設(shè)備的驅(qū)動程序,。中間層為服務(wù)程序?qū)樱搶又饕℅UI服務(wù)器以及GSM/GPRS控制服務(wù)器,。智能手機系統(tǒng)設(shè)計的關(guān)鍵在于各項功能應(yīng)用的實現(xiàn),。對智能手機軟件進行分層設(shè)計,有利于各個功能有機地協(xié)調(diào)運轉(zhuǎn),,同時也便于軟件的開發(fā)與調(diào)試,。
1.嵌入式Linux操作系統(tǒng)
Linux最初是由Linux Torvalds編寫及發(fā)布的源代碼公開、可免費使用的操作系統(tǒng),。后來,,又通過Internet上成百上千的程序員的加入,使Linux成為一個幾乎支持所有主流32位CPU的操作系統(tǒng),。其特點主要有:內(nèi)核高效穩(wěn)定,、公開源代碼、可移植性,、可裁減,、支持多任務(wù)等。
本設(shè)計中采用的Linux內(nèi)核是arm-Linux基礎(chǔ)上,,編寫符合硬件設(shè)計的引導(dǎo)程序及電源管理控制程序,;并針對本系統(tǒng)的硬件設(shè)計,編寫了LCD,、觸摸屏等硬件設(shè)計驅(qū)動程序,。
智能手機基于Linux操作系統(tǒng)工作時,,首先初始化CPU;然后加載各個設(shè)備驅(qū)動程序,,初始化存儲器及外圍設(shè)備,;最后啟動各服務(wù)程序,進入待機狀態(tài),。
2.服務(wù)程序的設(shè)計
智能手機系統(tǒng)中的服務(wù)程序主要有GUI Server和GSM/GPRS Server,,它們是上層應(yīng)用賴以實現(xiàn)的基礎(chǔ)。
GUI Server
為使系統(tǒng)能夠很好地支持瀏覽器及MMS等界面復(fù)雜的應(yīng)用,,具有良好的可擴展性,,本系統(tǒng)中的GUI Server設(shè)計采用了客戶機/服務(wù)器模式,并以動態(tài)鏈接庫的形式對圖形設(shè)備接口進行封裝,,具體如圖3所示,。
服務(wù)進程與應(yīng)用進程之間采用Linux提供的消息隊列進行通信。服務(wù)進程保存系統(tǒng)GUI環(huán)境的描述信息,,為應(yīng)用進程提供注冊及一些計算任務(wù),,如計算當前剪切域內(nèi)容等。此外,,還負責顯示桌面,。應(yīng)用程序的啟動后,,首先與服務(wù)進程建立連接并進行交互,,將自身的一些描述信息發(fā)送到服務(wù)進程。
服務(wù)進程和應(yīng)用進程通過調(diào)用動態(tài)庫實現(xiàn)基本窗口顯示功能,。其中窗口樹與剪切域都定義在動態(tài)庫中,,對于服務(wù)進程或應(yīng)用程序而言,它們是透明的,,不需要進行管理,。因服務(wù)進程與客戶進程分別運行在不同的進程空間中,所以雖然在動態(tài)庫中定義了相同的數(shù)據(jù),,但它們之間不會產(chǎn)生任何沖突,。
設(shè)計對動態(tài)庫中封裝的函數(shù)進行了分層。其中直接針對Framebuffer進行輸出的函數(shù)位于系統(tǒng)最低層,,其上是設(shè)備上下文,。因每次對一個窗口輸出的時都要首先建立設(shè)計上下文,所以設(shè)備上下文總可以引用窗體結(jié)構(gòu),,自然也可以引用到窗口剪切域,,在剪切域范圍內(nèi)才可以進行輸出。
圖形設(shè)備接口建立在設(shè)備上下文之上,,主要包括點,、線,、面、文本等,。如上文所述,,輸出之前,首先建立設(shè)備上下文,,即其輸出的目標是設(shè)備上下文,,而不是窗口。
圖形設(shè)備接口的上層是應(yīng)用開發(fā)接口即API層,,桌面進程與客戶進程都通過調(diào)用API函數(shù)實現(xiàn)系統(tǒng)功能,。
另外,系統(tǒng)建立了輸入的抽象層,,屏蔽了不同輸入設(shè)備,。
GSM/GPRS Server多工通信服務(wù)器軟件
GSM/GPRS Server多工通信服務(wù)器軟件是電話、短信及數(shù)據(jù)業(yè)務(wù)的守護進程,,負責響應(yīng)應(yīng)用程序轉(zhuǎn)發(fā)的用戶操作事件及從串口的獲得的無線通信模塊事件,,是整個智能手機系統(tǒng)的核心。在這部分的工作中要實現(xiàn)多鏈路的數(shù)據(jù)通信,、事件優(yōu)先級判別,,并在執(zhí)行數(shù)據(jù)通信時,保證電話,、短信的接入,。具體程序設(shè)備結(jié)構(gòu)如圖所示。
3.機系統(tǒng)中的應(yīng)用程序設(shè)計
有了中間層的服務(wù)程序,,上層應(yīng)用程序可以根據(jù)GUI Server及GSM/GPRS Server提供的接口進行移植和開發(fā),。本設(shè)計中實現(xiàn)了電話控制程序、短信收發(fā)的管理及數(shù)據(jù)精力的應(yīng)用等,。下面以電話控制程序為例,,介紹智能手機應(yīng)用程序的設(shè)計與實現(xiàn)。
本人將電話控制程序設(shè)計分為三個運行態(tài):PowerOn State(上電態(tài)),、Idle State(空閑態(tài)),、Execution State(執(zhí)行態(tài))。圖5表示了三個狀態(tài)之間的關(guān)系和進入各個狀態(tài)的條件,。
電話控制程序在智能手機系統(tǒng)上電復(fù)位,、GSM/GPRS Server啟動后,進入Power-on State(上電態(tài)),。在上電態(tài),,程序首先進行初始化工作,與GSM/GPRS Server通信,,獲得系統(tǒng)狀態(tài),。初始化后,,即進入Idle State(空閑態(tài))。在空閑態(tài),,程序循環(huán)等待GSM/GPRS Server的呼入事件及來自鍵盤的呼出事件,;當這些事件發(fā)生時,程序進入Execution State(執(zhí)行態(tài)),。在執(zhí)行態(tài),,用戶進行語音通信,通話結(jié)束后,,程序又回到空閑態(tài),。
本系統(tǒng)設(shè)計成功地應(yīng)用于實際工程項目中,其可行性和實用性已在實際應(yīng)用環(huán)境中得到檢驗,。下一步,,可將系統(tǒng)的CPU主頻進一步提高,無線通信模塊也可換成符合3G標準的,。這樣,,就可以在本系統(tǒng)設(shè)計的基礎(chǔ)上,實現(xiàn)更為廣泛的手持設(shè)備應(yīng)用,。
六,、總結(jié)
采用ARM技術(shù)知識產(chǎn)權(quán)(IP)核的微處理器,已遍及工業(yè)控制,、消費類電子產(chǎn)品,、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng),、無線系統(tǒng)等各類產(chǎn)品市場,。作為一種16/32位的高性能,、低成本,、低功耗的嵌入式RISC微處理器,ARM微處理器目前已經(jīng)成為世界上應(yīng)用最為廣泛的嵌入式微處理器,。通過這次嵌入式系統(tǒng)智能手機 (PDA)設(shè)計方案,,使我們具備一定微機原理基礎(chǔ)的學(xué)生掌握開發(fā)嵌入式系統(tǒng)的多方面知識,從而初步具備設(shè)計開發(fā)基于arm處理器系統(tǒng)的能力,。在這里是衷心感謝我們的黃建華老師在課堂上給我們帶來如此生動的教學(xué),,在他的幫助下讓我認識到嵌入式系統(tǒng)這學(xué)科的重要性,讓我感受到在開發(fā)嵌入式系統(tǒng)的過程中體會到不少樂趣,。但是在短短的10周的內(nèi)學(xué)習嵌入式系統(tǒng)這門課是遠遠不夠的,嵌入式系統(tǒng)的理論和技術(shù)正在日新月異地發(fā)展,這更加要我們在以后的學(xué)習和工作中不斷去探索不斷去完善,另外由于水平有限再加上時間倉促,文中難免有不妥或錯誤之處,。希望老師能多多包涵。我相信只有負出了努力,,沒有收不到的果實,。我希望學(xué)習嵌入式系統(tǒng)這門學(xué)科也一樣,!愿與努力在嵌入式系統(tǒng)開發(fā)前沿的學(xué)者一起共勉。