一種自動適配不同網絡制式無線模塊的方法及裝置的製作方法
2023-12-07 02:38:56 4
專利名稱:一種自動適配不同網絡制式無線模塊的方法及裝置的製作方法
技術領域:
本發明涉及安致(Android)系統平臺中移動網際網路設備的網絡制式配置技術,尤 其涉及一種自動適配不同網絡制式無線模塊的方法及裝置。
背景技術:
隨著網際網路的發展,移動互聯的趨勢越來越明顯,人們迫切需要一種功耗低、產品 尺寸小、可以隨時隨地無線上網;並且,性能上足夠處理日常應用,又能與網際網路現有內容 完全兼容的一種無線終端產品,於是移動網際網路設備(MID,Mobile Internet Device)應 運而生。MID是在2008年英特爾開發者論壇(IDF,Intel Developer Forum)大會上由英 特爾推出的一種新概念迷你筆記本電腦,是一種體積小於筆記本電腦,但大於手機的流動 網際網路裝置;通過MID,用戶可以進入網際網路,隨時享受娛樂、進行信息查詢、郵件收發等操 作。MID產品到現在已經得到蓬勃發展,另外也加入了語音通話、數碼相框等更多、更實用的 功能。2007年11月開放手機聯盟(OHA,Open Handset Alliance)成立,並發布了名為 Android的開放手機軟體平臺。Android平臺基於Linux技術,由作業系統、用戶界面和應 用程序組成,允許開發人員自由獲取、修改原始碼,是一套具有開源性質的手機終端解決方 案。參與OHA聯盟的廠商,都基於Android平臺進行新的手機業務開發,形成使用Android 系統的手機。隨著Android系統的不斷更新和升級,到目前為止,基於Android平臺的手機、 MID、上網本等不斷湧現,且發展迅速、功能更加豐富和強大。目前,第三代(3G)移動通信網絡包括多種制式的網絡,如寬帶碼分多址(WCDMA, Wideband Code Division Multiple Access) > CDMA2000 (CodeDivision Multiple Access 2000)、以及時分同步碼分多址(TD-SCDMA,TimeDivision-Synchronous Code Division Multiple Access)等等,而市場上流行的基於Android平臺的MID,大都只支持一種3G網 絡制式,用戶在購買支持一種網絡制式的MID後,就無法更換或升級到其它網絡制式,除非 再購買其他網絡制式的MID。如此,用戶雖然可以根據自己的意願和喜好,選擇支持自己喜 歡的網絡制式的MID,但如果要從一種網絡制式切換到另一種網絡制式,就必須要重新購買 更換新的MID,這樣顯然增加了使用成本,而且也很不方便,為用戶提供一種能夠自動適配 多種網絡制式的MID產品是非常必要的。
發明內容
有鑑於此,本發明的主要目的在於提供一種自動適配不同網絡制式無線模塊的方 法及裝置,能方便地進行MID中網絡制式的切換,降低產品的使用成本。為達到上述目的,本發明的技術方案是這樣實現的本發明提供了一種自動適配不同網絡制式無線模塊的方法,在MID中存儲不同網 絡制式對應的共享庫;該方法還包括MID啟動後,Android系統中的初始化進程啟動RILD進程;
RILD進程向MID中當前無線模塊發送AT命令,獲得當前無線模塊支持的網絡制 式;根據獲得的當前無線模塊支持的網絡制式,加載所述網絡制式對應的共享庫。上述方案中,MID啟動時,該方法還包括將各種無線模塊所支持的網絡制式對應 的共享庫路徑傳入到RILD進程中。上述方案中,所述獲得當前無線模塊支持的網絡制式為RILD進程接收當前無線 模塊返回的AT命令響應,根據AT命令響應中的返回值獲得當前無線模塊支持的網絡制式。上述方案中,所述根據AT命令響應中的返回值獲得當前無線模塊支持的網絡制 式為所述AT命令響應中的返回值為1時,當前無線模塊支持的網絡制式為WCDMA制式;所 述AT命令響應中的返回值為2時,當前無線模塊支持的網絡制式為CDMA2000制式;所述AT 命令響應中的返回值為3時,當前無線模塊支持的網絡制式為TD-SCDMA制式;所述AT命令 響應中的返回值為0時,無線模塊不支持當前的任何網絡制式。上述方案中,RILD進程獲得當前無線模塊支持的網絡制式時,還進一步通過無線 模塊獲得當前MID所在區域所有的網絡制式。本發明還提供了一種自動適配不同網絡制式無線模塊的裝置,該裝置包括主處 理器、存儲模塊、無線模塊接口及無線模塊;其中,主處理器,用於在MID啟動後控制Android系統啟動,由Android系統中的初始化 進程啟動RILD進程,並由RILD進程向無線模塊發送AT命令,獲得當前無線模塊支持的網 絡制式;還用於控制Android系統加載所獲得的網絡制式對應的共享庫;存儲模塊,用於存儲不同網絡制式對應的共享庫;無線模塊接口,用於將RILD進程發送的AT命令傳送給無線模塊,並將無線模塊自 身支持的網絡制式返回給RILD進程;無線模塊,用於接收RILD進程發來的AT命令,識別自身所支持的網絡制式,並向 RILD進程返回自身支持的網絡制式。其中,所述無線模塊識別自身所支持的網絡制式為將自身的軟體版本號與各種 網絡制式的軟體版本號進行比較,並返回軟體版本號相同的網絡制式對應的值。上述方案中,所述存儲模塊,還用於存儲可執行代碼、重要參數及臨時數據。所述 存儲模塊為FLASH、或同步動態隨機存儲器;所述無線模塊接口採用PCIE接口、通用串行總 線接口。本發明提供的自動適配不同網絡制式無線模塊的方法及裝置,在MID中存儲支持 各種網絡制式的共享庫,無論MID中當前採用何種網絡制式的無線模塊,都可以通過MID中 的RILD(Radio Interface Layer Daemon)進程向MID中的無線模塊發送AT命令,查詢獲 得MID中當前無線模塊支持的網絡制式,並動態加載所獲得的網絡制式對應的共享庫,從 而實現網絡制式的自動適配,如此,用戶只需要更換MID中的無線模塊,而無需重新購買整 個MID,就能從一種網絡制式切換到另一種網絡制式。這樣,不僅對用戶來說,大大節省了使 用成本,簡化了操作;而且,對於MID生產廠商來說,通過更換MID中的無線模塊切換網絡制 式,既可以推出系列化、多網絡制式的MID產品以響應市場需求,又可以節約大量開發和維 護成本。
圖1為本發明自動適配不同網絡制式無線模塊的裝置的組成結構示意圖;圖2為本發明中Android系統的組成結構示意圖;圖3為本發明自動適配不同網絡制式無線模塊的方法的實現流程示意圖。
具體實施例方式由於MID中支持各網絡制式的無線模塊,從成本和大小而言都只佔整個MID產品 的一小部分;並且,只要更新不同的無線模塊,就可以從一種網絡制式切換到另一種網絡制 式。但是,MID中的無線模塊更新後,就存在如何識別當前無線模塊支持的網絡制式的問 題,因此,本發明的基本思想是在MID中存儲支持各種網絡制式的共享庫,MID啟動後,通 過MID中的RILD進程向MID中當前無線模塊發送AT命令,獲得MID中當前無線模塊支持 的網絡制式,並根據獲得的網絡制式動態加載該網絡制式對應的共享庫。一般,MID啟動後就運行Android系統,Android系統啟動後,Android系統中的初 始化進程會自動啟動Android系統中的RILD進程,再由RILD進程向MID中的無線模塊發 送AT命令,並根據AT命令響應獲得當前無線模塊支持的網絡制式。下面結合附圖及具體實施例對本發明再作進一步詳細的說明。圖1為本發明自動適配不同網絡制式無線模塊的裝置的組成結構示意圖,如圖1 所示,該裝置包括主處理器101、存儲模塊102、無線模塊接口 103、無線模塊104 ;其中,主處理器101,MID主板上的嵌入式CPU,作為整個Android系統的運算控制中心, 主要負責寄存器的讀寫操作、MID內複雜的數據運算、其他各個單元或模塊的管理及控制整 個Android系統的運行;具體的,主處理器101控制裝載於自身的Android系統啟動,由Android系統中的 初始化進程啟動RILD進程,並將各網絡制式所對應的共享庫的名字以參數形式傳入RILD 進程;RILD進程向無線模塊104發送AT命令,並根據無線模塊104返回的AT命令響應,獲 得當前無線模塊104所支持的網絡制式,並控制加載與當前無線模塊所支持的網絡制式對 應的共享庫;其中,所述加載由Android系統中的無線適配模塊完成。存儲模塊102,用於存儲各種網絡制式所對應的共享庫、可執行代碼、重要參數及 臨時數據;這裡,存儲模塊可以採用FLASH、或同步動態隨機存儲器(SDRAM,Synchronous Dynamic Random Access Memory)。本發明中,為每種無線模塊支持的網絡制式各封裝一個獨立的共享庫,該共享庫 存儲於存儲模塊102中。無線模塊接口 103,用於將RILD進程發送的AT命令傳送給無線模塊104,並將無 線模塊104自身支持的網絡制式返回給RILD進程,實現主處理器101與無線模塊104的連 接;這裡,為了能適配多種網絡制式的無線模塊104,必須保證MID的主處理器101 與無線數據卡之間的正常通訊,這就要求無線模塊接口 103必須採用通用標準接口,如 PCIE(PCI-Express)接口、通用串行總線(USB, Universal SerialBUS)接口等。無線模塊104,用於接收主處理器101中RILD進程通過無線接口模塊103發來的AT命令,識別自身所支持的網絡制式,並將自身所支持的網絡制式通過AT命令響應返回主 處理器101 ;無線模塊104,還用於使MID通過外部無線網絡連接到Internet ;無線模塊104作 為MID連接外部無線網絡的接口與橋梁,具體功能包括搜索無線網絡、實現MID與無線網 絡的信息同步、建立MID與無線網絡之間的語音及數據鏈路、實現MID與無線網絡之間的數 據傳遞、實現MID與主處理器101之間的指令及數據傳遞。這裡,無線模塊104識別自身所支持的網絡制式的方法為將自身的軟體版本號 與各種網絡制式的軟體版本號進行比較,並返回軟體版本號相同的網絡制式對應的值。具 體的,如果無線模塊104的軟體版本號與WCDMA制式的軟體版本號相同,則AT命令響應的 返回值為1,說明無線模塊支持WCDMA制式;如果無線模塊104的軟體版本號與CDMA2000 制式的軟體版本號相同,則AT命令響應的返回值為2,說明無線模塊支持CDMA2000制式; 如果無線模塊104的軟體版本號與TD-SCDMA制式的軟體版本號相同,說明無線模塊支持 TD-SCDMA制式,則AT命令返回值為3 ;如果都不相同,則AT命令響應的返回值為0,說明無 線模塊不支持當前的任何網絡制式。本發明的關鍵在於MID能夠支持不同網絡制式的多個無線模塊,如WCDMA、 CDMA2000、TD-SCDMA網絡制式的無線模塊,也就是說,MID中預先存儲不同網絡制式所對應 的共享庫,在MID啟動後,由RILD進程發送AT命令查詢並獲得MID中當前無線模塊的網絡 制式,之後加載當前無線模塊所支持網絡制式對應的共享庫即可。該裝置還包括用於連接電源適配器的電源接口 105、指示燈106。圖1從裝置組成的角度對MID中各組成部分進行了描述,下面從Android系統組 成的角度對MID中作業系統的架構進行進一步地描述。圖2為本發明中Android系統的組成結構示意圖,如圖2所示,Android系統主要 包括三層最底層是Linux內核,最上層是上層應用程式,中間層包括BootLoader引導程 序、初始化進程、無線適配模塊及多媒體模塊;其中,Linux內核,完成作業系統常用功能,包括進程調度、內存管理、文件管理等;BootLoader引導程序,是Android系統加電後運行的第一段程序,負責設備初始 化並加載Linux內核及文件系統。初始化進程,主要用來執行各配置文件,啟動相關進程,如RILD進程等,並完成 Android系統啟動後的初始化工作。其中,初始化進程中的驅動程序能夠完成對無線模塊104的加載。無線適配模塊,用於根據主處理器101的控制加載MID中當前無線模塊104所支 持網絡制式對應的共享庫,以保證上層應用程式能夠正常運行。多媒體模塊,主要完成各種音視頻媒體的播放、錄製等工作。BootLoader引導程序、初始化進程、無線適配模塊及多媒體模塊的上層為上層應 用程序,包括各種上層應用程式。圖3為本發明自動適配多種網絡制式無線模塊的方法的實現流程示意圖,如圖3 所示,該方法包括以下步驟步驟301,MID啟動後啟動Android系統,Android系統啟動後,Android系統中的 初始化進程加載當前MID中的無線模塊;
本發明中,以Android系統作為MID的作業系統,且在MID中存儲有不同網絡制式 所對應的共享庫。步驟302,所述初始化進程啟動RILD進程;這裡,RILD進程是一個獨立的後臺守護進程,在BootLoader引導程序加載Iinux 內核後,啟動初始化進程,初始化進程初始化RILD進程;其中,RILD進程的功能是接收 Android系統上層應用程式發送下來的通訊指令,並轉換為AT命令發送到無線模塊,同時 接收無線模塊反饋的AT命令響應,並發送給Android系統上層應用程式。這裡,Android系統初始化腳本文件init. rc,修改後的RILD進程的啟動參數偽代 碼如下所示service ril-daemon/system/bin/rild\-w/system/lib/libwcdma-ril. so\-c/system/lib/libcdma2000-ril. so\-t/system/lib/libtd-scdma-ril. so\—d/dev/ttyU SB 1其中,libwcdma-ril. so、 libcdma2000-ril. so 禾口 libtdscdma—ril. so 分別是 WCDMA、CDMA2000和TD-SCDMA三種網絡制式所對應的共享庫的名字,ttyUSBl為無線模塊對 應的設備文件名。步驟303,RILD進程向MID中當前無線模塊發送AT命令,並接收當前無線模塊返 回的AT命令響應,獲得當前無線模塊支持的網絡制式;如果檢測到MID中當前無線模塊支持的網絡制式為WCDMA制式,則繼續執行步驟
304;如果檢測到MID中當前無線模塊支持的網絡制式為CDMA2000制式,則繼續執行步驟
305;如果檢測到MID中當前無線模塊支持的網絡制式為TD-SCDMA制式,則繼續執行步驟
306;如果檢測到MID中當前無線模塊不支持當前的任何網絡制式,則結束當前處理流程。這裡,無線模塊識別自身所支持的網絡制式的方法為將自身的軟體版本號與各 種網絡制式的軟體版本號進行比較,並返回軟體版本號相同的網絡制式對應的值,該值即 為AT命令響應中的返回值。實際應用示例中,可採用以下偽代碼實現/*返回值說明*0代表模塊不匹配代表 WCDMA 制式*2 代表 CDMA2000 制式
*3 代表 TD-SCDMA 制式*/int get3GNetworkFormat(const char*devicePath){int fd_device ;char ν ersion [MAX_LEN];/*打開無線模塊。*/fd_device = open (devicePath, 0_RDWR);
/*發送AT命令,假定根據軟體模塊的軟體版本來識別*不同的網絡制式。具體實現中可以採取不同的命令。*/write(fd_device, 「 AT+CGMR\r" sizeof(「 AT+CGMR\r"));/*獲取AT命令的響應。*/read(f d_device, version, MAX_LEN);/*根據AT命令的響應來判斷是哪種網絡制式。*/if (strcmp (version, WCDMA 制式模塊軟體版本)==0)return 1 ;else if (strcmp (version, CDMA2000 制式模塊軟體版本)==0)return 2 ;else if (strcmp (version, TD-SCDMA 制式模塊軟體版本)==0)return 3 ;elsereturn 0 ;}進一步的,本步驟還可以通過當前無線模塊獲得當前MID所在區域所有的網絡制 式,如TD-SCDMA、WCDMA、移動2G、聯通2G等等,其中移動2G與聯通2G網絡均採用全球移 動通訊系統(GSM,Global System for MobileCommunications)網絡制式;相應的,用戶可 以根據獲得的當前MID所在區域所有的網絡制式以及自身需要,更換MID中當前使用的無 線模塊,進而使用所需網絡提供服務。實際應用中,用戶能通過當前無線模塊檢測到當前MID所在區域所有的網絡制 式,但是用戶只能註冊與當前MID中無線模塊的網絡制式相同的網絡制式,比如當前MID 所在區域所有的網絡制式包括TD-SCDMA、WCDMA、移動2G、聯通2G等等,MID中的無線模塊 雖然能夠檢測到上述各種網絡制式,但如果當前無線模塊支持的網絡制式是移動2G,則用 戶只能註冊到移動的GSM網絡,其餘各種網絡制式MID均無法註冊,也就是說,在移動2G的 網絡制式下MID才會有信號,MID中的無線模塊才能與外部網絡連接,進而使用該網絡制式 所提供的各種服務。步驟304,如果AT命令響應中的返回值為1,則MID中當前無線模塊支持的網絡制 式為WCDMA,RILD進程動態加載WCDMA制式對應的共享庫,完成對WCDMA制式無線模塊的適 配,執行步驟307。為了能夠自動適配多種網絡制式無線模塊,MID在啟動時就將各種無線模塊所支 持的網絡制式對應的共享庫路徑傳入到RILD進程中,因此,MID根據當前無線模塊支持的 網絡制式,在初始化腳本中修改該無線模塊所對應的RILD進程的啟動參數即可控制加載。具體地,MID啟動後,如果RILD進程的啟動參數與當前無線模塊支持的網絡制式 對應的共享庫的名字相同,則不必修改RILD進程的啟動參數;如果不同,則需要根據MID中 當前無線模塊支持的網絡制式對應的共享庫名字修改RILD進程的啟動參數。步驟305,如果AT命令響應中的返回值為1,則MID中當前無線模塊支持的網絡制 式為CDMA2000制式,RILD進程動態加載CDMA2000制式對應的共享庫,完成對CDMA2000制式無線模塊的適配,執行步驟307。步驟306,如果AT命令響應中的返回值為1,則MID中當前無線模塊支持的網絡制 式為TD-SCDMA制式,RILD進程動態加載TD-SCDMA制式對應的共享庫,完成對TD-SCDMA制 式無線模塊的適配,執行步驟307。示例偽代碼如下void IoadLibrary (void){......void氺dlhandle ;int networkFormat ;networkFormat = get3GNetworkFormat(s_devicePath);if (networkFormat ==1)/*加載WCDMA制式所對應的共享庫。*/dlhandle = dlopen (WcdmaLibPath, RTLD_N0ff);else if (networkFormat ==2)/*加載CDMA2000制式所對應的共享庫。*/dlhandle = dlopen (cdma2000LibPath, RTLD_N0ff);else if (networkFormat ==3)/*加載TD-SCDMA制式所對應的共享庫。*/dlhandle = dlopen (tdscdmaLibPath, RTLD_N0ff);else/*報錯並終止程序。*/ErrorAndAbort ;}步驟307,MID繼續執行RILD進程的後續默認處理,直到RILD進程啟動完成,則無 線模塊進入正常工作狀態。通過本發明中的MID,用戶可以根據當前MID所在區域的網絡制式更換支持該網 絡制式的無線模塊,實現不同無線模塊之間的切換。在無線模塊的正常工作狀態下,通過 MID中的無線模塊既可以實現與無線或有線用戶的通話功能,又可以接入Internet。另外, 在該MID的基礎上,還可以擴充許多新功能,如加入可視電話功能等。以上所述,僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍,凡在 本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護 範圍之內。
權利要求
一種自動適配不同網絡制式無線模塊的方法,其特徵在於,在MID中存儲不同網絡制式對應的共享庫;該方法還包括MID啟動後,Android系統中的初始化進程啟動RILD進程;RILD進程向MID中當前無線模塊發送AT命令,獲得當前無線模塊支持的網絡制式;根據獲得的當前無線模塊支持的網絡制式,加載所述網絡制式對應的共享庫。
2.根據權利要求1所述的方法,其特徵在於,MID啟動時,該方法還包括將各種無線模 塊所支持的網絡制式對應的共享庫路徑傳入到RILD進程中。
3.根據權利要求1所述的方法,其特徵在於,所述獲得當前無線模塊支持的網絡制式 為RILD進程接收當前無線模塊返回的AT命令響應,根據AT命令響應中的返回值獲得當 前無線模塊支持的網絡制式。
4.根據權利要求3所述的方法,其特徵在於,所述根據AT命令響應中的返回值獲得當 前無線模塊支持的網絡制式為所述AT命令響應中的返回值為1時,當前無線模塊支持的網絡制式為WCDMA制式;所 述AT命令響應中的返回值為2時,當前無線模塊支持的網絡制式為CDMA2000制式;所述AT 命令響應中的返回值為3時,當前無線模塊支持的網絡制式為TD-SCDMA制式;所述AT命令 響應中的返回值為0時,無線模塊不支持當前的任何網絡制式。
5.根據權利要求1所述的方法,其特徵在於,RILD進程獲得當前無線模塊支持的網絡 制式時,還進一步通過無線模塊獲得當前MID所在區域所有的網絡制式。
6.一種自動適配不同網絡制式無線模塊的裝置,其特徵在於,該裝置包括主處理器、 存儲模塊、無線模塊接口及無線模塊;其中,主處理器,用於在MID啟動後控制Android系統啟動,由Android系統中的初始化進程 啟動RILD進程,並由RILD進程向無線模塊發送AT命令,獲得當前無線模塊支持的網絡制 式;還用於控制Android系統加載所獲得的網絡制式對應的共享庫;存儲模塊,用於存儲不同網絡制式對應的共享庫;無線模塊接口,用於將RILD進程發送的AT命令傳送給無線模塊,並將無線模塊自身支 持的網絡制式返回給RILD進程;無線模塊,用於接收RILD進程發來的AT命令,識別自身所支持的網絡制式,並向RILD 進程返回自身支持的網絡制式。
7.根據權利要求6所述的裝置,其特徵在於,所述無線模塊識別自身所支持的網絡制 式為將自身的軟體版本號與各種網絡制式的軟體版本號進行比較,並返回軟體版本號相 同的網絡制式對應的值。
8.根據權利要求7所述的裝置,其特徵在於,所述獲得當前無線模塊支持的網絡制式為所述返回值為1時,當前無線模塊支持的網絡制式為WCDMA制式;所述返回值為2時, 當前無線模塊支持的網絡制式為CDMA2000制式;所述返回值為3時,當前無線模塊支持的 網絡制式為TD-SCDMA制式;所述返回值為0時,無線模塊不支持當前的任何網絡制式。
9.根據權利要求6、7或8所述的裝置,其特徵在於,所述存儲模塊,還用於存儲可執行 代碼、重要參數及臨時數據。
10.根據權利要求6、7或8所述的裝置,其特徵在於,所述存儲模塊為FLASH、或同步動態隨機存儲器;所述無線模塊接口採用PCIE接口、通用串行總線接口。
全文摘要
本發明公開了一種自動適配不同網絡制式無線模塊的方法,在MID中存儲不同網絡制式對應的共享庫;該方法還包括MID啟動後,Android系統中的初始化進程啟動RILD進程;RILD進程向MID中當前無線模塊發送AT命令,獲得當前無線模塊支持的網絡制式;根據獲得的當前無線模塊支持的網絡制式,加載所述網絡制式對應的共享庫。本發明同時還公開了一種自動適配不同網絡制式無線模塊的裝置,採用本發明能方便地進行MID中網絡制式的切換,並能降低MID產品的開發和維護成本。
文檔編號H04W88/02GK101917779SQ20101020666
公開日2010年12月15日 申請日期2010年6月12日 優先權日2010年6月12日
發明者王爭偉 申請人:中興通訊股份有限公司