无线接口层驱动多模终端机的方法及多模终端机的制作方法

文档序号:7742191阅读:138来源:国知局
专利名称:无线接口层驱动多模终端机的方法及多模终端机的制作方法
技术领域
本发明涉及多模终端机无线通信技术,特别涉及一种无线接口层(RIL,Radio Interface Layer)驱动多模终端机的方法及多模终端机。
背景技术
现有技术中,大量的终端机基于Windows CE、Windows Mobile、Linux 和 Android 等操作系统平台实现通信,Windows CE、Windows Mobile、Linux和Android等操作系统平 台的设计针对单卡系统,即上层应用模块的操作系统平台仅能针对一个协议栈,如全球移 动通信系统(GSM,Global System forMobile communications)协议栈或码分多址(CDMA, Code Division MultipleAccess)协议栈来进行数据交互、通讯等工作。为适应工作和生活的需要,用户对双网双待终端机的需求越来越强烈,要求现有 的终端机需要具备双卡双待的功能,也就是说,在一个终端机上可以同时配置两张用户识 别模块(SIM,Subscriber identification Module)卡,即在一个移动电话上配置有两个无 线通信模块、两个协议栈,通过无线接口层驱动模块驱动相应的无线通信模块,并根据需要 进行相关通信操作。由于上述操作系统平台及其软件架构并不支持两个协议栈、两个无线通信模块以 及两个卡同时待机的机制,为了实现基于上述操作系统平台的双卡双待功能,现有技术提 出了一种基于Windows Mobile平台的扩展RIL代理(PROXY)装置以实现通过无线接口层 驱动两个无线通信模块。图1为现有基于Windows Mobile平台的扩展RIL代理装置结构示意图。参见图 1,该装置包括定制的上层应用模块、微软上层应用模块、扩展RIL代理模块、RIL代理模 块、RIL驱动模块、第一通信模块以及第二通信模块,其中,定制的上层应用模块,用于存储多模终端机扩展的上层应用,调用扩展RIL代理 模块、RIL驱动模块以及第二通信模块,注册并获取扩展RIL句柄,根据用户输入的指令触 发上层应用,根据获取的扩展RIL句柄调用相应的扩展RIL代理函数;其中,举例来说,如果原有Windows Mobile操作系统只支持GSM协议栈,则定制 的上层应用模块用于存储CDMA协议栈相关的上层应用程序,例如,电话应用程序(TAP, Telephony Application Pro gram) > E (SMS, Short Message Service)SIM 卡存储程序等,相应地,用户输入的指令包括拨号指令、发送短消息业务指令或存储SIM卡 指令等。实际应用中,如果用户选择通过GSM协议栈进行拨号,则定制的上层应用模块调 用RIL代理拨号函数。微软上层应用模块,用于存储多模终端机微软默认的上层应用,调用RIL代理模 块、RIL驱动模块以及第一通信模块,注册并获取RIL句柄,根据用户输入的指令触发上层 应用,根据获取的RIL句柄调用相应的RIL代理函数;RIL代理模块,用于存储为Windows Mobile自带的动态链接库(DLL,Dynamic LinkLibrary),根据动态链接库内调用的RIL代理函数,将对微软上层应用模块输入的用户指 令转换为对RIL驱动模块的DevicelOControl调用; 扩展RIL代理模块,用于存储扩展的动态链接库,根据调用的扩展RIL代理接口函 数,将对定制的上层应用模块输入的用户指令转换为对RIL驱动模块的DevicelOControl 调用;实际应用中,扩展的动态链接库可以参考Windows Mobile原有的动态链接库以及 扩展的上层应用进行改写,这可以由本领域普通技术人员设计得到,在此不再赘述。其中,可以在DevicelOControl调用中包含RIL句柄,以标识对定制的上层应用模 块输入的用户指令进行转换的调用。RIL驱动模块,用于根据DevicelOControl调用中包含的句柄,向第一通信模块或 第二通信模块发送操作指令命令;如前所述,如果第一通信模块为GSM通信模±夬,则RIL驱动模块根据 DevicelOControl调用中包含的RIL句柄,向第一通信模块发送操作指令命令。第一通信模块,用于根据RIL驱动模块输出的操作指令命令执行相应的操作;如果操作指令命令为拨号命令,即AT命令,则第一通信模块向AT命令中携带的被 叫号码发起呼叫,在此不再赘述。第二通信模块,用于根据RIL驱动模块输出的操作指令命令执行相应的操作。由上述可见,现有的基于Windows Mobile平台扩展RIL代理装置实现RIL驱动多 模终端机的方法,通过在原有微软的RIL代理模块的基础上增加扩展RIL代理模块,并相应 改动RIL驱动模块,用于对定制的上层应用进行处理,从而实现多模终端机的RIL驱动。但 由于一个RIL驱动模块需要对应多个代理模块,即研发人员根据多模终端用户的需求开发 完成相应的扩展的动态链接库后,还需要将多个扩展的动态链接库进行合并、调试后置于 RIL驱动模块中以便能兼容各扩展的动态链接库,这样,RIL驱动实现比较复杂、RIL驱动模 块与各代理模块耦合性大,使得代理模块设计可复用性不高,合并、调试扩展的动态链接库 繁琐,增加了设计周期、降低了多模终端机的稳定性;同时,由于多个代理模块共用RIL驱 动模块,多模终端机的通信效率受制于RIL驱动模块,通信效率较低;而且,RIL驱动模块需 要维护多个通信模块的状态,也增加了装置的设计复杂度。

发明内容
有鉴于此,本发明的主要目的在于提供一种无线接口层驱动多模终端机的方法, 增强设计的可复用性、提高多模终端机的稳定性以及通信效率。本发明的另一目的在于提供一种多模终端机,增强设计的可复用性、提高多模终 端机的稳定性以及通信效率。为达到上述目的,本发明提供的一种无线接口层驱动多模终端机的方法,该方法 包括预先设置并存储支持多模制式动态链接库的RIL代理,并根据多模终端机的N种 制式类型分别设置每种制式类型对应的RIL驱动,每一 RIL驱动对应一个通信模块,其中, N为自然数、且N彡2;上层应用程序调用RIL代理、RIL驱动以及该RIL驱动对应的通信模块,注册并获取该RIL驱动对应的RIL句柄;接收用户输入的指令,触发上层应用,查询获取用户指令对应的RIL句柄,调用相 应的RIL代理函数;根据动态链接库内调用的RIL代理函数,将输入的用户指令转换为对应的RIL驱 动的 DevicelOControl 调用;获取DevicelOControl调用中包含的RIL句柄,向该RIL句柄对应的通信模块发 送操作指令命令,通信模块根据接收的操作指令命令执行操作。所述多模制式包括码分多址CDMA2000制式、时分同步码分多址TD-SCDMA制式、 宽带码分多址WCDMA制式和全球移动通信系统GSM制式。所述RIL驱动包括第一 RIL驱动和第二 RIL驱动,所述通信模块包括第一通信模 块和第二通信模块,所述第一 RIL驱动与所述第一通信模块相连,所述第二 RIL驱动与所述 第二通信模块相连,所述上层应用程序调用RIL代理、RIL驱动以及该RIL驱动对应的通信 模块,注册并获取该RIL驱动对应的RIL句柄包括上层应用程序模块调用RIL代理,与第一 RIL驱动以及第一通信模块建立通信,注 册并获取第一 RIL驱动句柄;上层应用程序模块调用RIL代理,与第二 RIL驱动以及第二通信模块建立通信,注 册并获取第二 RIL驱动句柄。所述第二通信模块为CDMA2000模块,所述用户输入的指令为通过CDMA2000协议 栈进行拨号的拨号指令,所述查询获取用户指令对应的RIL句柄,调用相应的RIL代理函数为上层应用程 序模块根据预先获取的第二 RIL驱动句柄调用RIL代理拨号函数;所述根据动态链接库内调用的RIL代理函数,将输入的用户指令转换为对应的 RIL驱动的DevicelOControl调用为所述RIL代理拨号函数将对上层的拨号指令转换为 对第二 RIL驱动的DevicelOControl调用;所述获取DevicelOControl调用中包含的RIL句柄,向该RIL句柄对应的通信模 块发送操作指令命令为所述第二 RIL驱动模块根据DevicelOControl调用包含的所述第 二 RIL句柄,向第二通信模块发送AT拨号命令。在所述上层应用程序调用RIL代理、RIL驱动以及该RIL驱动对应的通信模块,注 册并获取该RIL驱动对应的RIL句柄的步骤前,进一步包括多模终端机上电,设备管理器模块运行,检测需要加载的RIL驱动;设备管理器模块依序加载所述需要加载的RIL驱动,所述需要加载的RIL驱动与 其相连的通信模块执行握手。进一步包括通信模块将拨号的结果反馈信息上报给所述RIL句柄对应的RIL驱 动,RIL驱动接收该信息,广播给所述RIL句柄对应的上层应用程序。所述RIL驱动接收该信息,广播给所述RIL句柄对应的上层应用程序的步骤包 括RIL驱动将执行结果信息组装成一个数据结构体返回给RIL代理,携带所述RIL句 柄;RIL代理根据数据结构体中的所述RIL句柄,将执行结果信息发送至上层应用程序的回调函数中;上层应用程序通过回调函数获取执行结果信息。所述上层应用程序包括电话应用程序、短消息业务程序以及SIM卡存储程序。一种多模终端机,该多模终端机包括上层应用程序模块、无线接口层RIL代理模 块、N种制式类型对应的N个RIL驱动模块以及N个通信模块,每个RIL驱动模块对应一个 通信模块,N为自然数、且N > 2,其中,上层应用程序模块,用于存储多模终端机的上层应用程序,调用RIL代理模块、每 一制式类型对应的RIL驱动模块以及通信模块,注册并获取相应制式类型对应的RIL句柄, 根据用户输入的指令触发上层应用,根据用户指令对应的RIL句柄调用相应的RIL代理函 数;RIL代理模块,用于存储预先设置的支持多模制式的动态链接库,根据动态链接库 内调用的RIL代理函数,将对上层应用程序模块输入的用户指令转换为对用户指令对应的 RIL驱动模块的DevicelOControl调用;RIL驱动模块,用于根据DevicelOControl调用中包含的相应制式类型对应的RIL 句柄,向对应通信模块发送操作指令命令;通信模块,用于根据RIL驱动模块输出的操作指令命令执行相应的操作。所述通信模块通过串口、双口随机存储器或通用串行接口与对应的所述驱动模块 相连。 所述RIL驱动模块包括第一 RIL驱动模块和第二 RIL驱动模块,所述通信模块包 括第一通信模块以及第二通信模块,第一 RIL驱动模块对应第一通信模块,第二 RIL驱动模 块对应第二通信模块,其中,所述应用程序模块调用RIL代理模块、第一 RIL驱动模块以及第一通信模块,注册 并获取第一 RIL句柄,调用RIL代理模块、第二 RIL驱动模块以及第二通信模块,注册并获 取第二 RIL句柄,根据用户输入的指令触发上层应用,根据用户指令对应的RIL句柄调用相 应的RIL代理函数;第一 RIL驱动模块,用于根据DevicelOControl调用中包含的第一 RIL句柄,向第 一通信模块发送操作指令命令;第二 RIL驱动模块,用于根据DevicelOControl调用中包含的第二 RIL句柄,向第 二通信模块发送操作指令命令;第一通信模块,用于根据第一 RIL驱动模块输出的操作指令命令执行相应的操 作;第二通信模块,用于根据第二 RIL驱动模块输出的操作指令命令执行相应的操作。由上述技术方案可见,本发明的无线接口层驱动多模终端机的方法及多模终端 机,预先设置并存储支持多模制式动态链接库的RIL代理,并根据多模终端机的N种制式类 型分别设置每种制式类型对应的RIL驱动,每一 RIL驱动对应一个通信模块;上层应用程 序调用RIL代理、RIL驱动以及该RIL驱动对应的通信模块,注册并获取该RIL驱动对应的 RIL句柄;接收用户输入的指令,触发上层应用,查询获取用户指令对应的RIL句柄,调用相 应的RIL代理函数;根据动态链接库内调用的RIL代理函数,将输入的用户指令转换为对应的RIL驱动的DevicelOControl调用;获取DevicelOControl调用中包含的RIL句柄,向 该RIL句柄对应的通信模块发送操作指令命令,通信模块根据接收的操作指令命令执行操 作。这样,设置的多个RIL驱动模块之间相互独立,因而,每个RIL驱动的代码可以重用,耦 合度较小,可复制性强;多个RIL驱动模块与相应的通信模块并行运行,从而提高了多模终 端机的通信速率以及通信效率;而且,每个RIL驱动模块与对应的通信模块相连,相互不受 影响,提高了多模终端机的稳定性;此外,由于RIL驱动独立运行,易于扩展,能够实现复杂 的多模终端机多卡多待功能。


图1为现有基于Windows Mobile平台的扩展RIL代理装置结构示意图。图2为本发明实施例的多模终端机结构示意图。图3为本发明实施例设备管理器模块加载RIL驱动模块的示意图。图4为本发明实施例的无线接口层驱动多模终端机的方法流程示意图。图5为本发明实施例RIL驱动的加载流程示意图。图6为本发明实施例的无线接口层驱动多模终端机的方法具体流程示意图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对 本发明作进一步详细说明。在多模终端机中,一般带有两个或者两个以上的通信模块,这两个通信模块可以 是CDMA2000、TD-SCDMA、WCDMA和GSM中的任意两者的组合,也可以是多个通信模块的组合。本发明实施例中,考虑到现有多模终端机中,多个代理模块,例如,RIL代理模块以 及扩展RIL代理模块,对应一个RIL驱动模块所导致的耦合性大、实现复杂、设计可复用性 不高以及通信效率较低的问题,参考WindowsMobile原有的动态链接库以及扩展的上层应 用,编写能够兼容多种制式,例如,CDMA2000制式、TD-SCDMA制式、WCDMA制式以及GSM制式 等的动态链接库,同前所述,该动态链接库可以由本领域普通技术人员设计得到,在此不再 赘述。并设置多个RIL驱动模块,每一 RIL驱动模块通过不同的物理信道与相应的通信模 块相连,从而实现与通信模块之间的并行数据和语音通信,提高通信效率。图2为本发明实施例的多模终端机结构示意图。参见图2,该多模终端机包括上 层应用程序模块、RIL代理模块、第一 RIL驱动模块、第二 RIL驱动模块、第一通信模块以及 第二通信模块,其中,上层应用程序模块,用于存储多模终端机的上层应用程序,调用RIL代理模块、第 一 RIL驱动模块以及第一通信模块,注册并获取第一 RIL句柄,调用RIL代理模块、第二 RIL 驱动模块以及第二通信模块,注册并获取第二 RIL句柄,根据用户输入的指令触发上层应 用,根据用户指令对应的RIL句柄调用相应的RIL代理函数;本发明实施例中,上层应用程序包括电话应用程序、短消息业务程序、SIM卡存储 程序等程序。实际应用中,对于不同制式的多模终端机,例如,支持GSM制式以及CDMA制式的双 卡双待终端机,GSM制式对应的上层应用程序与CDMA制式对应的上层应用程序相同,因而,本发明实施例中,将多种制式的上层应用程序进行合并,使用相同的上层应用程序。例如, 第二 RIL驱动模块对应CDMA制式的RIL驱动,第二通信模块对应CDMA,用户输入的指令为 通过CDMA协议栈进行拨号的拨号指令,则上层应用程序模块根据通过CDMA协议栈的用户 指令查询获取CDMA协议栈对应的第二 RIL句柄,调用第二 RIL句柄对应的第二 RIL代理函数。RIL代理模块,用于存储预先设置的支持多模制式的动态链接库,根据动态链接库 内调用的RIL代理函数,将对上层应用程序模块输入的用户指令转换为对用户指令对应的 RIL驱动模块的DevicelOControl调用;本实施例中,参考Windows Mobile原有的动态链接库以及上层应用,编写兼容多 种制式,例如,CDMA2000制式、TD-SCDMA制式、WCDMA制式以及GSM制式等的动态链接库,该 动态链接库可以由本领域普通技术人员设计得到,在此不再赘述。如前所述,第二 RIL驱动模块对应CDMA制式的RIL驱动,用户输入的指令为通 过CDMA协议栈进行拨号的拨号指令,则用户指令对应的RIL驱动模块为第二 RIL驱动 模块,上层应用程序模块将通过CDMA协议栈进行拨号的拨号指令传输给RIL代理模块, RIL代理模块根据拨号指令中携带的CDMA协议栈调用动态链接库内CDMA协议栈的第 二 RIL代理函数,将对上层应用程序模块输入的用户指令转换为对第二 RIL驱动模块的 DevicelOControl调用。如果用户输入的指令为通过GSM协议栈进行拨号的拨号指令,则用 户指令对应的RIL驱动模块为第一 RIL驱动模块,上层应用程序模块将通过GSM协议栈进 行拨号的拨号指令传输给RIL代理模块,RIL代理模块根据拨号指令中携带的GSM协议栈 调用动态链接库内GSM协议栈的第一 RIL代理函数,将对上层应用程序模块输入的用户指 令转换为对第一 RIL驱动模块的DevicelOControl调用。第一 RIL驱动模块,用于根据DevicelOControl调用中包含的第一 RIL句柄,向第 一通信模块发送操作指令命令;第二 RIL驱动模块,用于根据DevicelOControl调用中包含的第二 RIL句柄,向第 二通信模块发送操作指令命令;第一通信模块,用于根据第一 RIL驱动模块输出的操作指令命令执行相应的操 作;第二通信模块,用于根据第二 RIL驱动模块输出的操作指令命令执行相应的操作。本实施例中,如果操作指令命令为拨号命令,即AT命令,则第二通信模块向AT命 令中携带的被叫号码发起呼叫;如果操作指令命令为短消息业务命令,则第二通信模块向 短消息业务命令中携带的被叫号码发送短消息。本实施例中,第一通信模块、第二通信模块可以通过串口、双口随机存储器(RAM, Random Access Memory)或通用串行接口 (USB,Universal SerialBus)分别与第一 RIL 驱 动模块、第二 RIL驱动模块相连。上述实施例中,多模终端机的制式类型为两种,对于多于两种制式类型的多模终 端机,例如,包含N种制式类型,N ≥3,则多模终端机的N种制式类型对应N个RIL驱动模 块以及N个通信模块,每个RIL驱动模块对应一个通信模块,相应地,上层应用程序模块,用 于存储多模终端机的上层应用程序,调用RIL代理模块、每一制式类型对应的RIL驱动模块以及通信模块,注册并获取相应制式类型对应的RIL句柄,根据用户输入的指令触发上层 应用,根据用户指令对应的RIL句柄调用相应的RIL代理函数;RIL驱动模块,用于根据DevicelOControl调用中包含的相应制式类型对应的RIL 句柄,向对应通信模块发送操作指令命令;通信模块,用于根据RIL驱动模块输出的操作指令命令执行相应的操作。进一步地,该多模终端机还包括设备管理器模块,分别与第一 RIL驱动模块以及 第二 RIL驱动模块相连,用于在多模终端机上电后,检测需要加载的RIL驱动,加载相应的 RIL驱动模块。图3为本发明实施例设备管理器模块加载RIL驱动模块的示意图。参见图3,对 于具有多个RIL驱动模块的多模终端机,在上电时依序加载第一 RIL驱动模块(RIL1)、第 二 RIL驱动模块(RIL2),…,直到加载完最后一个RIL驱动模块(RILn)。在每个RIL驱动 模块被加载后,该RIL驱动模块对与自身相连的通信模块进行握手,并初始化该RIL驱动模 块,例如,查询当前通信模块的网络状态、搜网、PIN码状态等。当然,设备管理器启动模块也用于对键盘驱动以及蓝牙驱动等进行加载并进行相 应的初始化。由上述可见,本发明实施例的多模终端机,通过设置支持多模制式的动态链接库 的RIL代理模块,并为每种制式设置RIL驱动模块,通过独立的物理信道与该制式对应的通 信模块相连,这样,设置的多个RIL驱动模块之间相互独立,不需要对多个RIL驱动进行合 并、调试,因而,每个RIL驱动的代码不但可以重用,而且开发起来耦合度也很小,便于后期 维护与升级、可复制性强,也降低了设计周期;多个RIL驱动模块与相应的通信模块并行运 行,实现了和各个通信模块之间的并行数据和语音通信,从而提高了多模终端机的通信速 率以及通信效率;而且,每个RIL驱动模块维护自己对应的通信模块内部状态,相互不受影 响,提高了多模终端机的稳定性;此外,由于RIL驱动独立运行,易于扩展,能够实现复杂的 多模终端机多卡多待功能,适用于Windows CE、Windows Mobile、Linux和Android等智能 嵌入式终端平台。以下对本发明实施例的无线接口层驱动多模终端机的方法进行说明。图4为本发明实施例的无线接口层驱动多模终端机的方法流程示意图。参见图4, 该流程包括步骤401,预先设置并存储支持多模制式动态链接库的RIL代理;步骤402,根据多模终端机的制式类型分别设置制式对应的RIL驱动;步骤403,上层应用程序调用RIL代理、RIL驱动以及该RIL驱动对应的通信模块, 注册并获取该RIL驱动对应的RIL句柄;步骤404,接收用户输入的指令,触发上层应用,查询获取用户指令对应的RIL句 柄,调用相应的RIL代理函数;步骤405,根据动态链接库内调用的RIL代理函数,将输入的用户指令转换为对应 的 RIL 驱动的 DevicelOControl 调用;步骤406,获取DevicelOControl调用中包含的RIL句柄,向该RIL句柄对应的通 信模块发送操作指令命令,通信模块根据接收的操作指令命令执行操作。本步骤中,通信模块在执行操作后,通信模块可以将拨号的结果反馈信息上报给相应的RIL驱动模块,RIL驱动模块接收该信息,广播给拥有自己句柄,即向自己注册过的 上层应用程序。当然,通信模块也可以将信号强度信息、来电信息、或新短消息信息等信息 进行上报。在注册并获取该RIL驱动对应的RIL句柄的步骤前,可以进一步包括对RIL驱动 的加载步骤。图5为本发明实施例RIL驱动的加载流程示意图。参见图5,以多模终端机包含第 一 RIL驱动模块以及第二 RIL驱动模块为例,该流程包括步骤501,多模终端机上电,设备管理器模块运行,检测需要加载的RIL驱动;本步骤中,设备管理器模块根据多模终端机的制式类型以及与其相连的RIL驱动 模块的状态,确定需要加载的RIL驱动。步骤502,设备管理器模块加载第一 RIL驱动模块,第一 RIL驱动模块与第一通信 模块执行握手;本步骤中,第一 RIL驱动模块与第一通信模块执行握手为现有技术。步骤503,设备管理器加载第二 RIL驱动模块,第二 RIL驱动模块与第二通信模块 执行握手。图6为本发明实施例的无线接口层驱动多模终端机的方法具体流程示意图。以下 以双模终端机为例,该双模终端机具有两个通信模块,第一通信模块为GSM模块,第二通信 模块为CDMA2000模块,预先设置有支持GSM制式和CDMA2000制式动态链接库的RIL代理 模块;并设置GSM制式对应的第一 RIL驱动模块,第一 RIL驱动模块与第一通信模块相连, 设置CDMA2000制式对应的第二 RIL驱动模块,第二 RIL驱动模块与第二通信模块相连,第 一 RIL驱动模块、第二 RIL驱动模块分别通过RIL代理模块与上层应用程序模块相连。参 见图6,该流程包括步骤601,加载第一 RIL驱动模块以及第二 RIL驱动模块;本步骤与图5所示流程相同。步骤602,上层应用程序模块调用RIL代理模块,与第一 RIL驱动模块和第二 RIL 驱动模块分别建立通信,注册并获取第一 RIL驱动模块和第二 RIL驱动模块的句柄;本步骤中,获取RIL驱动模块的句柄的流程为现有技术。步骤603,接收用户输入的通过CDMA模块拨打电话的指令,上层应用程序模块根 据预先获取的第二 RIL驱动模块的句柄调用相应的RIL代理拨号函数;本步骤中,拨打电话对应的RIL代理函数为RIL代理拨号函数。步骤604,RIL代理拨号函数将对上层的拨打电话指令转换为对第二 RIL驱动模块 的 DevicelOControl 调用;步骤605,第二 RIL驱动模块根据DevicelOControl调用包含的第二 RIL句柄,向 第二通信模块发送相应的AT拨号命令;步骤606,第二通信模块根据接收的AT拨号命令发起呼叫;上述上层应用程序调用RIL代理、注册RIL句柄的程序示例如下HRESULT RIL_Initialize (DWORD dwlndex,//RIL 驱动 n 的编号;RILRESULTCALLBACK pfnResult,//上层应用程序注册到RILn的回调函数1 ;
RILNOTIFYCALLBACK pfnNotify, //上层应用程序注册到RILn的回调函数2 ;DWORD dwNotificationClasses, // 用户感兴趣的消息掩码;DWORD dwParam, //上层应用程序传送到RILn的参数;HRIL*lphRil //注册到的RILn句柄,返回给上层应用程序自己存储;)。当注册成功后,上层应用程序通过如下程序调用函数拨打电话HRESULT RIL_Dial (HRIL hRil,//上层应用程序在注册后得到的RIL句柄;LPCSTR IpszAddress, // 要拨出的电话号码;DWORD dwType, //呼出参数;DWORD dwOptions //呼出选项;)。步骤607,第二通信模块执行该AT拨号命令,向第二 RIL驱动模块返回执行结果信 息;步骤608,第二 RIL驱动模块将执行结果信息组装成一个数据结构体返回给RIL代 理模块,携带第二 RIL句柄;步骤609,RIL代理模块根据数据结构体中的第二 RIL句柄,将执行结果信息发送 至上层应用程序的回调函数中;本步骤中,回调函数与RIL代理拨号函数相对应。步骤610,上层应用程序通过回调函数获取执行结果信息。上述示例中,如果用户拨打“10000”号,则拨出成功或者失败的结果信息通过 pfnResult传递给上层应用程序,这样,实现了从上层应用程序至通信模块的拨号操作。这样,通过设计多个并行工作的RIL驱动,不仅结构简单,而且系统稳定,上层应 用程序也容易开发,可复制性强,易于实现多RIL驱动的独立开发,各RIL驱动开发互不干 扰。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保 护范围之内。
权利要求
一种无线接口层RIL驱动多模终端机的方法,其特征在于,该方法包括预先设置并存储支持多模制式动态链接库的RIL代理,并根据多模终端机的N种制式类型分别设置每种制式类型对应的RIL驱动,每一RIL驱动对应一个通信模块,其中,N为自然数、且N≥2;上层应用程序调用RIL代理、RIL驱动以及该RIL驱动对应的通信模块,注册并获取该RIL驱动对应的RIL句柄;接收用户输入的指令,触发上层应用,查询获取用户指令对应的RIL句柄,调用相应的RIL代理函数;根据动态链接库内调用的RIL代理函数,将输入的用户指令转换为对应的RIL驱动的DeviceIOControl调用;获取DeviceIOControl调用中包含的RIL句柄,向该RIL句柄对应的通信模块发送操作指令命令,通信模块根据接收的操作指令命令执行操作。
2.如权利要求1所述的方法,其特征在于,所述多模制式包括码分多址CDMA2000制 式、时分同步码分多址TD-SCDMA制式、宽带码分多址WCDMA制式和全球移动通信系统GSM 制式。
3.如权利要求2所述的方法,其特征在于,所述RIL驱动包括第一RIL驱动和第二 RIL 驱动,所述通信模块包括第一通信模块和第二通信模块,所述第一 RIL驱动与所述第一通 信模块相连,所述第二 RIL驱动与所述第二通信模块相连,所述上层应用程序调用RIL代 理、RIL驱动以及该RIL驱动对应的通信模块,注册并获取该RIL驱动对应的RIL句柄包括上层应用程序模块调用RIL代理,与第一 RIL驱动以及第一通信模块建立通信,注册并 获取第一 RIL驱动句柄;上层应用程序模块调用RIL代理,与第二 RIL驱动以及第二通信模块建立通信,注册并 获取第二 RIL驱动句柄。
4.如权利要求3所述的方法,其特征在于,所述第二通信模块为CDMA2000模块,所述用 户输入的指令为通过CDMA2000协议栈进行拨号的拨号指令,所述查询获取用户指令对应的RIL句柄,调用相应的RIL代理函数为上层应用程序模 块根据预先获取的第二 RIL驱动句柄调用RIL代理拨号函数;所述根据动态链接库内调用的RIL代理函数,将输入的用户指令转换为对应的RIL驱 动的DevicelOControl调用为所述RIL代理拨号函数将对上层的拨号指令转换为对第二 RIL 驱动的 DevicelOControl 调用;所述获取DevicelOControl调用中包含的RIL句柄,向该RIL句柄对应的通信模块发 送操作指令命令为所述第二 RIL驱动模块根据DevicelOControl调用包含的所述第二 RIL句柄,向第二通信模块发送AT拨号命令。
5.如权利要求1所述的方法,其特征在于,在所述上层应用程序调用RIL代理、RIL驱 动以及该RIL驱动对应的通信模块,注册并获取该RIL驱动对应的RIL句柄的步骤前,进一 步包括多模终端机上电,设备管理器模块运行,检测需要加载的RIL驱动;设备管理器模块依序加载所述需要加载的RIL驱动,所述需要加载的RIL驱动与其相 连的通信模块执行握手。
6.如权利要求1所述的方法,其特征在于,进一步包括通信模块将拨号的结果反馈信 息上报给所述RIL句柄对应的RIL驱动,RIL驱动接收该信息,广播给所述RIL句柄对应的 上层应用程序。
7.如权利要求6所述的方法,其特征在于,所述RIL驱动接收该信息,广播给所述RIL 句柄对应的上层应用程序的步骤包括RIL驱动将执行结果信息组装成一个数据结构体返回给RIL代理,携带所述RIL句柄; RIL代理根据数据结构体中的所述RIL句柄,将执行结果信息发送至上层应用程序的 回调函数中;上层应用程序通过回调函数获取执行结果信息。
8.如权利要求7所述的方法,其特征在于,所述上层应用程序包括电话应用程序、短消 息业务程序以及SIM卡存储程序。
9.一种多模终端机,其特征在于,该多模终端机包括上层应用程序模块、无线接口层 RIL代理模块、N种制式类型对应的N个RIL驱动模块以及N个通信模块,每个RIL驱动模 块对应一个通信模块,N为自然数、且N > 2,其中,上层应用程序模块,用于存储多模终端机的上层应用程序,调用RIL代理模块、每一制 式类型对应的RIL驱动模块以及通信模块,注册并获取相应制式类型对应的RIL句柄,根据 用户输入的指令触发上层应用,根据用户指令对应的RIL句柄调用相应的RIL代理函数;RIL代理模块,用于存储预先设置的支持多模制式的动态链接库,根据动态链接库内调 用的RIL代理函数,将对上层应用程序模块输入的用户指令转换为对用户指令对应的RIL 驱动模块的DevicelOControl调用;RIL驱动模块,用于根据DevicelOControl调用中包含的相应制式类型对应的RIL句 柄,向对应通信模块发送操作指令命令;通信模块,用于根据RIL驱动模块输出的操作指令命令执行相应的操作。
10.如权利要求9所述的多模终端机,其特征在于,所述通信模块通过串口、双口随机 存储器或通用串行接口与对应的所述驱动模块相连。
11.如权利要求9或10所述的多模终端机,其特征在于,所述RIL驱动模块包括第一 RIL驱动模块和第二 RIL驱动模块,所述通信模块包括第一通信模块以及第二通信模块,第一RIL驱动模块对应第一通信模块,第二 RIL驱动模块对应第二通信模块,其中,所述应用程序模块调用RIL代理模块、第一RIL驱动模块以及第一通信模块,注册并获 取第一 RIL句柄,调用RIL代理模块、第二 RIL驱动模块以及第二通信模块,注册并获取第二RIL句柄,根据用户输入的指令触发上层应用,根据用户指令对应的RIL句柄调用相应的 RIL代理函数;第一 RIL驱动模块,用于根据DevicelOControl调用中包含的第一 RIL句柄,向第一通 信模块发送操作指令命令;第二 RIL驱动模块,用于根据DevicelOControl调用中包含的第二 RIL句柄,向第二通 信模块发送操作指令命令;第一通信模块,用于根据第一 RIL驱动模块输出的操作指令命令执行相应的操作; 第二通信模块,用于根据第二 RIL驱动模块输出的操作指令命令执行相应的操作。
全文摘要
本发明公开了一种无线接口层RIL驱动多模终端机的方法及多模终端机,包括预先设置并存储支持多模制式动态链接库的RIL代理,并根据多模终端机的制式类型分别设置制式对应的RIL驱动;上层应用程序调用RIL代理、RIL驱动以及该RIL驱动对应的通信模块,注册并获取该RIL驱动对应的RIL句柄;接收用户输入的指令,触发上层应用,查询获取用户指令对应的RIL句柄,调用相应的RIL代理函数;根据动态链接库内调用的RIL代理函数,将输入的用户指令转换为对应的RIL驱动的DeviceIOControl调用;获取DeviceIOControl调用中包含的RIL句柄,向该RIL句柄对应的通信模块发送操作指令命令,通信模块根据接收的操作指令命令执行操作。应用本发明,可以增强设计的可复用性、提高多模终端机的稳定性以及通信效率。
文档编号H04W92/00GK101854743SQ20101011189
公开日2010年10月6日 申请日期2010年2月5日 优先权日2010年2月5日
发明者祝志文, 赵磊 申请人:深圳市同洲电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1