一种自动适配不同网络制式无线模块的方法及装置的制作方法

文档序号:7752057阅读:166来源:国知局
专利名称:一种自动适配不同网络制式无线模块的方法及装置的制作方法
技术领域
本发明涉及安致(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日
发明者王争伟 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1