董思博,周園園,王祿祿
沈陽師范大學物理科學與技術學院,遼寧 沈陽 110034
隨著移動通信的發展以及互聯網向移動終端的普及,網絡和用戶對移動終端的要求越來越高,而Symbian,Windows Mobile,Iphone OS等手機平臺過于封閉。隨著通信產業的不斷發展,智能手機也向集通話,上網,多媒體,郵件多功能于一體的掌上電腦方向發展。Android支持wifi,采用webKit瀏覽器,擁有pushmail,Google地圖和搜索等眾多網絡應用,它的出現讓人耳目一新,它的發展更是手機與互聯網結合的必然趨勢。Android包括操作系統、中間件和一些關鍵的平臺應用,是一款真正意義的開放性的移動設備綜合平臺。Android是允許所有廠商和個人在其基礎上進行開發,由Linux+Java構成的開源軟件。Android平臺的開放性特點既有助于降低開發成本,由能促進技術的創新,更可使運營商能方便的定制自己的特色化產品,具有相當強大的市場發展潛力。
Android在框架結構的設計包含一組核心應用程序的應用層,提供包括系統各式組建的庫層、應用層需API接口的應用程序框架層,android的核心庫提供Java類庫提供的絕大部分功能,每個Android應用都運行在自己的進程上。最下面是提供安全、內存管理、進程管理、網絡組、驅動模塊的和硬件抽象層的內核層。
為了簡化通訊模塊設計的復雜性,Android的通訊模塊的設計采用分層的模式,這樣使各層相互獨立而又相互高效的協調工作,當其中一層發生變化時,其他上下兩層均不受到任何影響,這樣各層更加靈活,更加獨立,各層只用提供標準化的接口,方便了模塊間的替換,增強了其平臺代碼的可移植性。目前市面上的智能機在硬件上多采用雙CPU的架構,一個是應用處理器,運行操作系統和各種應用程序,另一個是基帶處理器,主要處理語音信號的編碼,數字信號以及GSM,WCDMA的通信協議?;鶐幚砥?、射頻和其他外圍芯片作為一個模塊,成為GSM/GPRS,WCDMA modem,提供AT命令接口。我們需要在AP系統中有一個負責數據的可靠傳輸、AT命令的發送以及response的解析的模塊。Android系統提供了RIL這樣一個模塊來滿足我們的要求。通信系統的構架框圖如圖1。

圖1
通信系統的構架主要包括電話應用層、應用框架層、庫層、內核層、基帶層五部分。電話應用層,主要為電話,聯系人,短信,以及上網等跟電話相關的應用程序,負責完成通過調用framework的借口,人機調用,實現引用等各個功能。應用框架層則是將電話應用層傳下來的數據通過Phone相關借口封裝,通過CommandInterface發送給RIL,RIL負責將數據打包,通過socket傳送給下層的RILD(Radio Interface Layer Deamon)層,并且從RILD接收反饋信息傳送給應用層。內核層存在于在通信框架中,內核含有軟件與基帶通信的驅動,作為硬件與軟件之間的抽象層?;鶐觿t為獨立的通訊模塊,其實現了無線通訊功能。可以把它看作一個硬件設備,通過標準的RSR232串口連接,用標準的AT指令命令控制,可以更換。
Android包括操作系統、中間件和一些關鍵的平臺應用,是一款真正意義的開放性的移動設備綜合平臺。他是一組面向移動設備的軟件包,由操作系統,中間和關鍵應用程序組成。由于Android的RIL和RILD的通訊是負責連接上層應用程序和底層modem,所以RIL和RILD的通訊時Android通訊的關鍵技術,對于不同的硬件系帶,只要在RILD作對應的修改,既可以完成android通訊功能在不同硬件環境,不同的基帶上的實現。Android平臺的數據傳送方式按照消息可分為兩類,第一類是從上層發送數據,然后經過RIL將數據打包,發送到RILD庫層,轉換成AT命令,發送給modem,處理后,由modem發送反饋信息,通過后由RILD和RIL的反饋到上一層,這樣表示一次數據的發送成功,已發送短信為例,其實現流程如下:
1)建立RILSender線程,通過sokcet向rild發送數據;
2)建立dispatch線程,接受由soket發送過來的數據;
3)獲取到對應的dispatch函數,然后將數據解析成AT命令;
4)通過onRequest發送請求;
5)writeline寫到初始化打開的設備中;
6)建立線程readerLoop監聽來自modem的反饋信息,轉化成上層能夠識別的數據包;
7)將接受的數據和信息網上發,反饋給ril層;
8)建立RILReceiver線程,處理由下層反饋上來的信息,給應用層處理。
第二類是有modem直接上報的消息,通過RILD和RIL將數據發送給上層對應用的應用程序,然后由應用程序解析數據。這一類中,實現過程與上層發送數據之后的反饋過程大致相同,只是這里由OnUnsolicitedResponse()來處理直接由modem上報來的信息。
Android平臺的通信系統設計通過RIL(Radio Interface Layer)和RILD(Radio Interface Layer Deamon)連接了上層應用程序和底層的modem,由于RIL和RILD數據通過打包傳輸,只需根據所用硬件修改RILD對數據的解析以及反饋部分的代碼就可以將Android移植到不同的modem和不同的硬件環境,既可以保證通信的順利進行,所以,本文對android到不同硬件環境以及modem的移植做了較為詮釋。
[1]McGraw Hill.Android A Programmers Guide[M].Bettina Faltermeier,2008,7.
[2]胥袁,劉乃琦,郝玉潔.基于Symbian操作系統的套接字通信研究[D].電子科技大學,2008.
[3]黃佳荃,陳偉.基于Symbian OS的串行通信模塊研究[D].武漢理工大學,2008.
[4]Tuukka Karvonen.Implementation of the GSM 07.10 Linux Device Driver,2004.