本發(fā)明涉及通訊技術(shù)領(lǐng)域,特別是基于安卓系統(tǒng)的AP與Modem的通信系統(tǒng)。
背景技術(shù):
目前市場大多采用安卓(Android)系統(tǒng)的智能手機均是采用高通公司的芯片組,在具體設(shè)計時通常使用二個芯片,其中一個負責用戶界面及Android操作系統(tǒng)的運行,通常稱之為AP,另外一個負責射頻通信(語音通話、數(shù)據(jù)業(yè)務(wù)、網(wǎng)絡(luò)連接)等底層功能,通常稱之為Modem。
在Android 4.0以及以上版本,高通公司采用自己開發(fā)的QMI(Qualcomm Modem Interface高通射頻模塊通訊接口)技術(shù)完全替代了先前的RPC技術(shù)。同時,高通公司也開發(fā)了相應(yīng)的工具,用以生成QMI消息收發(fā)相關(guān)代碼。
上述的QMI是高通公司自定義的一種數(shù)據(jù)接口,用于AP和Modem之間的數(shù)據(jù)通信,其中數(shù)據(jù)業(yè)務(wù)基本全都是通過QCRIL、QMI與Modem交互實現(xiàn)相應(yīng)的功能。
盡管高通公司已有的QMI架構(gòu)中囊括了非常豐富的AP和Modem之間的通信接口,但由于不同通訊運營商的需求的多樣性,OEM手機廠商依然需要增加一些自己特有的接口。
高通公司的QMI功能代碼都是由其內(nèi)部的工具自動生成,因此其代碼結(jié)構(gòu)、可讀性和易擴展性都不適合OEM手機廠商手動開發(fā)。并且高通公司生成QMI消息的工具并不對外開放,所以O(shè)EM手機廠商還是需要手動添加QMI消息。在實際的開發(fā)過程中如手動增加一條QMI消息的編碼過程極為復(fù)雜,而且一旦出現(xiàn)問題便很難調(diào)試通過,通常添加一條簡單結(jié)構(gòu)的QMI消息,從編碼、調(diào)試到功能可用平均需要1個月的開發(fā)周期,無形中增加了開發(fā)的難度與成本。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于安卓系統(tǒng)的AP與Modem的通信系統(tǒng),用以解決現(xiàn)有技術(shù)中添加QMI消息困難、周期較長的問題。
為實現(xiàn)上述目的,實施本發(fā)明的基于安卓系統(tǒng)的AP與Modem的通信系統(tǒng)涉及安卓系統(tǒng)的應(yīng)用層、安卓框架層、Java語言和C語言的轉(zhuǎn)換層及AP側(cè)和Modem側(cè)的第一與第二AP與Modem通訊層,該AP包括基于安卓系統(tǒng)的應(yīng)用層、安卓框架層、Java語言和C語言的轉(zhuǎn)換層及第一AP與Modem通訊層,而Modem設(shè)有第二AP與Modem通訊層及數(shù)個功能處理模塊,該基于安卓系統(tǒng)的AP與Modem的通信系統(tǒng)包括接口透傳模塊、接口轉(zhuǎn)換模塊及消息封裝模塊、其中接口透傳模塊設(shè)置在安卓框架層,用以將應(yīng)用層的功能請求直接傳遞給Java語言和C語言的轉(zhuǎn)換層,接口轉(zhuǎn)換模塊用以將來自安卓框架層的請求消息傳遞給第一AP和Modem通訊層,消息封裝模塊將Java語言和C語言的轉(zhuǎn)換層的socket消息體解析,封裝高通射頻模塊通訊接口消息,并將其發(fā)送到Modem,Modem的第二AP和Modem通訊層設(shè)有高通射頻模塊通訊接口消息解析模塊,接收并解析來自AP的高通射頻模塊通訊接口消息,根據(jù)自定義消息字的值來識別具體的功能需求,調(diào)用Modem的功能處理模塊實現(xiàn)功能后將執(zhí)行結(jié)果封裝成高通射頻模塊通訊接口消息回送給AP。
依據(jù)上述主要特征,該接口透傳模塊還用以將Java語言和C語言的轉(zhuǎn)換層的實現(xiàn)結(jié)果返回給應(yīng)用層。
依據(jù)上述主要特征,該接口轉(zhuǎn)換模塊還用以將第一AP和Modem通訊層的執(zhí)行結(jié)果返回給安卓框架層。
依據(jù)上述主要特征,該基于安卓系統(tǒng)的AP與Modem的通信系統(tǒng)還包括一Modem執(zhí)行結(jié)果解析模塊,設(shè)置在AP的第一AP和Modem通訊層中,用以解析Modem返回的執(zhí)行結(jié)果,再回傳給Java語言和C語言的轉(zhuǎn)換層。
依據(jù)上述主要特征,該接口透傳模塊所接收的應(yīng)用層的輸入?yún)?shù)包含功能ID與數(shù)據(jù)區(qū)二部分,其中功能ID用以表示應(yīng)用層的具體需求,而數(shù)據(jù)區(qū)為可選項,用以存儲參數(shù)值。
與現(xiàn)有技術(shù)相比較,本發(fā)明通過設(shè)置接口透傳模塊、接口轉(zhuǎn)換模塊、消息封裝模塊及高通射頻模塊通訊接口消息解析模塊,從應(yīng)用層獲取Modem信息時,只需要通過上述的模塊即可實現(xiàn),對現(xiàn)有的安卓框架層和Java語言和C語言的轉(zhuǎn)換層都不需要新增代碼開發(fā),而在AP和Modem通訊層僅做簡單的增量修改即可實現(xiàn),從而極大地提高了研究開發(fā)的效率。
【附圖說明】
圖1為實施本發(fā)明的基于安卓系統(tǒng)的AP與Modem的通信系統(tǒng)的組成框架示意圖。
【具體實施方式】
請參閱圖1所示,為實施本發(fā)明的基于安卓系統(tǒng)的AP與Modem的通信系統(tǒng)的組成框架示意圖,其中實施本發(fā)明的基于安卓系統(tǒng)的AP與Modem的通信系統(tǒng)涉及安卓系統(tǒng)的應(yīng)用層、安卓框架層、Java語言和C語言的轉(zhuǎn)換層及高通AP和Modem通訊層。
安卓系統(tǒng)的應(yīng)用層通常設(shè)有“彩信應(yīng)用”、“通話應(yīng)用”、“客戶設(shè)置應(yīng)用”、“工程師應(yīng)用”等應(yīng)用程序,這些均是標準的Android應(yīng)用程序,這部分代碼用java語言實現(xiàn),主要處理用戶界面顯示等相關(guān)邏輯,上述的應(yīng)用程序會調(diào)用本發(fā)明中實現(xiàn)的接口。
安卓框架層是安卓系統(tǒng)非常重要的部分,處理平臺各種功能邏輯,為上面的應(yīng)用層提供各種功能接口,這部分代碼用java語言實現(xiàn)。本發(fā)明在安卓框架層增加一OMID(OEM Modem Info Deal,以下簡稱OMID)接口透傳模塊,以實現(xiàn)接口透傳功能,將來自應(yīng)用層的功能請求直接傳遞給下面的Java語言和C語言的轉(zhuǎn)換層,再將Java語言和C語言的轉(zhuǎn)換層的實現(xiàn)結(jié)果返回給應(yīng)用層(容后詳述)。
Java語言和C語言的轉(zhuǎn)換層負責接收來自安卓框架層的java函數(shù)調(diào)用,然后將其轉(zhuǎn)換成socket消息,這樣由C語言實現(xiàn)的高通AP和Modem通訊層就可以接收并處理這些功能請求了。在這一層本發(fā)明增加了OMID接口轉(zhuǎn)換模塊,用以將來自安卓框架層的請求消息傳遞給第一AP和Modem通訊層,再將第一AP和Modem通訊層的執(zhí)行結(jié)果返回給安卓框架層。
AP的第一AP和Modem通訊層負責Modem和AP的通訊,由C語言實現(xiàn)。本發(fā)明在這一層增加了OMID QMI(Qualcomm Modem Interface高通射頻模塊通訊接口)消息封裝模塊及Modem執(zhí)行結(jié)果解析模塊,其中OMID QMI消息封裝模塊將來自Java語言和C語言的轉(zhuǎn)換層的socket消息體解析,封裝QMI消息,并將其發(fā)送到Modem,Modem執(zhí)行結(jié)果解析模塊解析Modem返回的執(zhí)行結(jié)果,再會送給Java語言和C語言的轉(zhuǎn)換層。
Modem的第二AP和Modem通訊層負責Modem和AP的通訊,由C語言實現(xiàn)。本發(fā)明在Modem的第二AP和Modem通訊層增加了OMID QMI消息解析模塊,用以接收并解析來自AP側(cè)的QMI消息,根據(jù)自定義消息字的值來識別具體的功能需求,然后調(diào)用Modem的底層功能模塊(如通話管理模塊、網(wǎng)絡(luò)搜索模塊及參數(shù)模塊等)實現(xiàn)功能,之后將執(zhí)行結(jié)果封裝成QMI(Qualcomm Modem Interface高通射頻模塊通訊接口)消息回送給AP。
綜上所述,本發(fā)明定義了符合OMID功能邏輯的函數(shù)接口,在具體實施時,輸入?yún)?shù)包括二部分,分別為功能ID與數(shù)據(jù)區(qū),其中功能ID用來表示應(yīng)用層的具體需求,而數(shù)據(jù)區(qū)為可選項,例如應(yīng)用程序想要修改Modem的參數(shù)時,可以在這里存儲參數(shù)值。OMID接口透傳模塊負責直接傳遞應(yīng)用程序的輸入?yún)?shù),例如功能ID及數(shù)據(jù)區(qū)。OMID接口轉(zhuǎn)換模塊利用平臺原有架構(gòu),將來自Java語言函數(shù)調(diào)用轉(zhuǎn)換成C語言。OMID QMI消息封裝模塊及Modem執(zhí)行結(jié)果解析模塊將應(yīng)用層的功能ID和數(shù)據(jù)區(qū)封裝到QMI消息里面發(fā)送給Modem。Modem的OMID QMI消息解析模塊接收來自AP的QMI消息,解析出功能ID及數(shù)據(jù)區(qū),執(zhí)行具體的功能,比如發(fā)送彩信,查詢網(wǎng)絡(luò)信號等。
在具體實施時,如應(yīng)用層的工程師應(yīng)用欲新增一個接口用以獲取網(wǎng)絡(luò)信噪比,這時只需要新增一個功能ID,上述的安卓框架層及Java語言和C語言的轉(zhuǎn)換層均不需要做代碼修改,在AP的第一AP和Modem通訊層增加這條新增功能ID的socket消息的解析和QMI消息組裝代碼,利用圖1所示的系統(tǒng),本發(fā)明就會將該請求消息傳遞到Modem,然后在Modem的第二AP和modem通訊層增加這條新增功能ID功能處理邏輯即可。由此可以看出,利用本發(fā)明,從應(yīng)用層(工程師應(yīng)用、彩信應(yīng)用等)獲取Modem的信息時,只需要統(tǒng)一走本發(fā)明提供的消息通道。在安卓框架層和Java語言和C語言的轉(zhuǎn)換層都不需要新增代碼開發(fā),而在AP和Modem通訊層僅做簡單的增量修改即可實現(xiàn)功能。
與現(xiàn)有技術(shù)相比較,本發(fā)明增加設(shè)計一OMID通道,即由接口透傳模塊、接口轉(zhuǎn)換模塊、消息封裝模塊及高通射頻模塊通訊接口消息解析模塊等組成,該通道與原有的運行方式并行。手機平臺原有設(shè)計通過原有的通道運行,新增的功能則通過新增的OMID通道運行。無論是原有通道還是本發(fā)明實現(xiàn)的OMID通道均可運行在安卓平臺原始架構(gòu)上,因此如需要從AP訪問modem的接口時,開發(fā)周期可以大大縮短,沒有該發(fā)明,添加一個新接口需要1個月的開發(fā)調(diào)試周期,而利用本發(fā)明提供的方案則只需要三天開發(fā)周期,從而極大地提高了研究開發(fā)的效率。
本領(lǐng)域的普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例所描述的方法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件與軟件的可互換性,在上述的說明中已經(jīng)按照功能一般性地描述了各示例的組成和步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用使用不同的方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實現(xiàn)。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、CD-ROM或本技術(shù)領(lǐng)域內(nèi)所公知的任意其他形式的存儲介質(zhì)中。
可以理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案及其發(fā)明構(gòu)思加以等同替換或改變,而所有這些改變或替換都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。