基于嵌入式系統(tǒng)的手機(jī)編程開發(fā)平臺
引 言
隨著移動通信技術(shù)的飛速發(fā)展,手機(jī)已經(jīng)從單一的電話通信設(shè)備轉(zhuǎn)變?yōu)樾畔⒕W(wǎng)絡(luò)終端,因此,近年來手機(jī)編程已經(jīng)成為一項重要的技術(shù)。手機(jī)是一個高新技術(shù)的集合體,包含了移動終端、嵌入式系統(tǒng)、數(shù)字信號處理以及通信協(xié)議設(shè)置等多項技術(shù)。手機(jī)編程開發(fā)平臺是集合了通信技術(shù)、嵌入式技術(shù)、電子技術(shù)、軟件工程、操作系統(tǒng)等理論的軟硬件的教學(xué)與研究開發(fā)平臺。在這個開發(fā)平臺上開發(fā)相應(yīng)的程序,可以掌握嵌入式系統(tǒng)設(shè)計的流程與方法;可以根據(jù)使用者的需求,設(shè)計并實現(xiàn)手機(jī)的基本功能和擴(kuò)展功能。
1 手機(jī)編程開發(fā)平臺總體結(jié)構(gòu)
作為專業(yè)技術(shù)課程,手機(jī)編程技術(shù)的教學(xué)內(nèi)容包括系統(tǒng)設(shè)置、操作系統(tǒng)使用以及應(yīng)用軟件開發(fā),因此,手機(jī)編程平臺必須支持各項教學(xué)內(nèi)容。另外,作為教學(xué)儀器,不僅需要滿足全部工程編程測試等技術(shù)環(huán)節(jié)的學(xué)習(xí)要求,同時,還必須具有系統(tǒng)靈活、調(diào)試方便等特點。因此,手機(jī)編程開發(fā)平臺硬件的設(shè)計應(yīng)滿足以下要求:支持移動公網(wǎng)通信功能,支持嵌入式設(shè)計基本功能,支持?jǐn)U展操作功能,支持結(jié)構(gòu)調(diào)整,支持?jǐn)?shù)字測試。
根據(jù)上述要求,把手機(jī)編程系統(tǒng)設(shè)計劃分為硬件平臺和軟件平臺:硬件平臺采用了功能模塊化設(shè)計思想,有利于系統(tǒng)硬件的擴(kuò)充與更改?;谀K化的設(shè)計中,把手機(jī)的硬件部分劃分為通信單元模塊、嵌入式系統(tǒng)模塊、音頻輸入/輸出模塊和電源模塊。各模塊在結(jié)構(gòu)與功能上完全獨立,且采用統(tǒng)一的接口規(guī)范,使各模塊能簡單方便地連接到一起,構(gòu)成完整的手機(jī)編程硬件平臺。
考慮到降低開發(fā)成本以及移植與編程難度等因素,軟件開發(fā)平臺用嵌入式Linux操作系統(tǒng)作為開發(fā)平臺,包括Bootloader的設(shè)計、Linux操作系統(tǒng)移植、相關(guān)的驅(qū)動程序編寫、GUI移植等。
軟件和硬件平臺相結(jié)合,形成了硬件開放、源碼公開、滿足手機(jī)編程開發(fā)需要的系統(tǒng)。這個系統(tǒng)是嵌入式系統(tǒng)、GSM/CDMA、操作系統(tǒng)、GUI等技術(shù)的綜合技術(shù)體,構(gòu)建了一個完整的、開放的手機(jī)編程平臺。
2 手機(jī)編程開發(fā)平臺硬件結(jié)構(gòu)
手機(jī)編程平臺系統(tǒng)中,需要處理的數(shù)據(jù)有兩大類:通信數(shù)據(jù)以及應(yīng)用程序的數(shù)據(jù)。這里采用了雙處理器的解決方案,如圖1所示。
①公網(wǎng)通信模塊。利用一個微處理器(專用單片機(jī))系統(tǒng)構(gòu)成通信電路模塊,專門處理與GSM/CDMA通信相關(guān)的任務(wù)。
②應(yīng)用程序處理模塊。利用嵌入式系統(tǒng)構(gòu)成本地任務(wù)處理模塊,用來運行操作系統(tǒng)及其他應(yīng)用程序。
2.1 公網(wǎng)通信模塊
公網(wǎng)通信模塊如圖2所示,采用市場上可購買到的手機(jī)模塊實現(xiàn)。以GSM公網(wǎng)通信模塊為例,手機(jī)模塊中包括天線、內(nèi)部Flash、SDRAM、GSM基帶處理器、電源等。GSM基帶處理器是手機(jī)模塊的核心部件,其作用相當(dāng)于一個協(xié)議處理器,用來處理外部系統(tǒng)通過串口發(fā)送過來的AT指令。天線部分用來實現(xiàn)射頻信號發(fā)射一接收、調(diào)制一解調(diào),以及射頻信號與基帶處理器之間的信號轉(zhuǎn)換。匹配電源為處理器及射頻部分提供所需的電源。
2.2 應(yīng)用程序處理模塊
應(yīng)用程序處理模塊用來實現(xiàn)手機(jī)控制和操作的全部功能。本應(yīng)用處理器模塊以S3C2410構(gòu)成的ARM9嵌入式微處理器系統(tǒng)為核心。應(yīng)用程序處理模塊包括嵌入式微處理器單元、音頻輸入輸出電路單元和電源單元,如圖3所示。
圖3中,嵌入式微處理器系統(tǒng)模塊具有如下技術(shù)特點:CPU為Samsung S3C2410X,200 MHz主頻;2 MBNOR Flash,64 MB NAND Flash;64 MB SDRAM,由2片K4S561632組成,工作在32位模式下;3.5 in的TFT顯示屏,320×240像素;USB1.1標(biāo)準(zhǔn)Client接口,10M以太網(wǎng)網(wǎng)絡(luò)接口,20針JTAG調(diào)試接口。
2.3 手機(jī)開發(fā)硬件系統(tǒng)
在手機(jī)編程開發(fā)系統(tǒng)中,硬件系統(tǒng)平臺與PC機(jī)相連接,把PC機(jī)作為程序開發(fā)平臺,手機(jī)硬件系統(tǒng)平臺作為嵌入式目標(biāo)系統(tǒng)。作為開發(fā)系統(tǒng),手機(jī)開發(fā)硬件平臺的安裝比較簡單,如圖4所示。將JTAG電纜插入嵌入式系統(tǒng)單元的JTAG接口,另一端連接PC機(jī)并口,就完成了手機(jī)編程系統(tǒng)的硬件平臺連接。根據(jù)開發(fā)的需要,可用串口線連接PC機(jī)串口與手機(jī)編程系統(tǒng)的硬件平臺串口。所開發(fā)的手機(jī)應(yīng)用程序可以在手機(jī)硬件平臺系統(tǒng)的嵌入式系統(tǒng)上獨立運行,同時程序處理模塊還可以通過網(wǎng)絡(luò)接口直接用于網(wǎng)絡(luò)通信。
3 手機(jī)編程實驗臺軟件平臺的構(gòu)建
手機(jī)編程實驗臺軟件平臺包括Bootloader、嵌入式 Linuxkernel、GUI QT和用戶驅(qū)動程序4個部分,Bootloader如圖5所示。代碼(即啟動代碼)是處理器復(fù)位后進(jìn)入操作系統(tǒng)之前執(zhí)行的一段代碼,主要是為運行操作系統(tǒng)提供基本的運行環(huán)境,如初始化CPU和堆棧、初始化存儲器系統(tǒng)等。
軟件平臺的邏輯操作如圖6所示。
4 手機(jī)編程開發(fā)平臺應(yīng)用程序設(shè)計
作為基本技術(shù)學(xué)習(xí)的內(nèi)容,該基本的手機(jī)編程應(yīng)用程序主要是基于ARM的應(yīng)用處理模塊與GSM模塊,來實現(xiàn)相互通信的無線數(shù)據(jù)傳輸,包括應(yīng)用AT指令集的 GSM模塊數(shù)據(jù)讀寫子程序、鍵盤控制處理子程序、LCD顯示子程序等。此外,還提供了一個手機(jī)撥號及收發(fā)短信的程序。
(1)主程序流程主程序的流程如圖7所示。首先對輸入?yún)?shù)進(jìn)行檢查,完成對手機(jī)通信模塊的串口波特率的設(shè)置,同時對串口通信其他的一些屬性進(jìn)行設(shè)置,從而保證手機(jī)通信模塊與GSM模塊的正確通信。初始化結(jié)束后,就可以建立鍵盤控制與讀GSM模塊子函數(shù),此過程需要嵌入式Linux操作系統(tǒng)庫函數(shù)的支持。最后,主函數(shù)處于等待外部中斷請求的狀態(tài)中。外部中斷請求分別來自鍵盤輸入和外部呼叫。
(2)鍵盤控制流程
鍵盤控制流程如圖8所示。鍵盤操作是用戶與無線通信系統(tǒng)的交互接口,用戶首先對系統(tǒng)所提供的各種服務(wù)菜單進(jìn)行選擇,然后系統(tǒng)根據(jù)用戶的選擇對GSM模塊進(jìn)行設(shè)置。之后進(jìn)行鍵盤的初始化,顯示系統(tǒng)向用戶提供的各種服務(wù)菜單,并等待用戶選擇。最后對用戶的選擇進(jìn)行判斷,并跳入相應(yīng)的服務(wù)程序中。
結(jié) 語
手機(jī)編程技術(shù)是通信工程專業(yè)應(yīng)當(dāng)學(xué)習(xí)的一項重要工程技術(shù)。本手機(jī)編程實驗平臺就是為了滿足手機(jī)編程技術(shù)的學(xué)習(xí)而設(shè)計的。構(gòu)建了基于嵌入式系統(tǒng)的手機(jī)編程硬件平臺和軟件平臺,不僅可以提供完整的編程系統(tǒng),還提供了重要的手機(jī)程序驗證系統(tǒng),對手機(jī)編程的教學(xué)和手機(jī)功能應(yīng)用的擴(kuò)展開發(fā)具有很高的實用價值。