一、前言
隨著手持通信設備市場的快速發展,手機的功能逐漸增多。現在手機已經不只是用于語音通信的手持設備,而成為集成了短信、彩信、上網以及移動辦公等附加功能的嵌入式通信平臺。
集成了這些功能的手機被稱為智能手機。近年,嵌入式處理器的運行速度和功能都有了很大的提高,使得許多以前只能在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周的內學習嵌入式系統這門課是遠遠不夠的,嵌入式系統的理論和技術正在日新月異地發展,這更加要我們在以后的學習和工作中不斷去探索不斷去完善,另外由于水平有限再加上時間倉促,文中難免有不妥或錯誤之處。希望老師能多多包涵。我相信只有負出了努力,沒有收不到的果實。我希望學習嵌入式系統這門學科也一樣!愿與努力在嵌入式系統開發前沿的學者一起共勉。
評論
查看更多