数据包传输系统及方法与流程

文档序号:11778581阅读:202来源:国知局
数据包传输系统及方法与流程

本发明涉及通信技术领域,尤其涉及一种数据包传输系统及方法。



背景技术:

随着移动通信技术的发展,移动终端已经成为用户随身携带,必不可少的电子设备。在运营商和各大oem(originalequipmentmanufacturer,原始设备制造商)厂商的牵头下,3g(3rdgeneration,第三代移动通信技术)、4g(the4thgenerationmobilecommunicationtechnology,第四代移动通信技术)、ca(carrieraggregation,应用载波聚合技术)以及最新的5g(5th-generation,第五代移动通信技术)应运而生,这些技术的目的是为了提高用户的上网带宽。在此种背景下,一种提高用户上网带宽的方式也悄然而生,移动终端连接两个调制解调器,每个调制解调器都有对应的sim(subscriberidentificationmodule)卡,且每个调制解调器都可以独立上网,然后在上层将用户访问的网络根据实际情况进行两个数据网络的网速叠加,从而达到提高上网带宽的目的。由于运营商对传统用户上网带宽的垄断和限制,终端厂商可以通过该网速叠加技术方案加大用户上网带宽,有效的整合了移动终端中两张sim卡的上网资源,并实现了dsda(dualsimdualactive,双卡双通),以及双卡双lte(longtermevolution,长期演进)待机。

因此,为了使移动终端连接两个调制解调器,需要将移动终端与含有调制解调器的外接设备进行连接。以实现移动终端和外接设备之间的数据传输,但是,移动终端和外接设备的连接是在应用处理器中连接,而数据包从调制解调器发出,由于调制解调器之间跨设备,没有物理链路相连,导致数据包无法传输。



技术实现要素:

本发明的主要目的在于提出一种数据包传输系统及方法,旨在解决移动终端通过外接设备实现双lte通信过程中,外接设备和移动终端之间的数据包无法传输的技术问题。

为实现上述目的,本发明提供的一种数据包传输系统,所述数据包传输系统包括移动终端,以及通过预设接口与所述移动终端连接的外接设备;所述移动终端包括第一应用处理器,以及与第一用户识别卡和第二用户识别卡连接的第一调制解调器,所述第一调制解调器包括远程数据访问服务器、第一拦截模块和第一数据转发服务器,所述第一应用处理器包括第一数据读写转发模块和与所述第一数据转发服务器连接的第一数据转发客户端;所述外接设备包括第二应用处理器和第二调制解调器,所述第二调制解调器包括远程数据访问客户端、第二拦截模块和第二数据转发服务器,所述第二应用处理器包括通过所述预设接口与所述第一数据读写转发模块连接的第二数据读写转发模块,以及与所述第二数据转发服务器连接的第二数据转发客户端;

所述远程数据访问服务器,用于调用第一拦截模块中的拦截函数,以通过调用的拦截函数调用打包函数,并通过调用的打包函数对数据进行打包;

所述远程数据访问服务器,还用于将打包后的数据包传输至第一数据转发服务器,由所述第一数据转发器将数据包通过第一数据转发客户端传输至第一数据读写转发模块;

第一数据读写转发模块,用于通过所述预设接口将数据包传输至第二数据读写模块,以供所述第二数据读写模块将数据包传输至远程数据访问客户端,所述预设接口包括以太网控制模型端口,所述以太网控制模型端口包括数据管道和控制管道。

可选地,所述远程数据访问服务器,还用于将打包后的数据包缓存至发送队列中,并发送第一信号至所述第一数据转发服务器,以通知所述第一数据转发服务器在所述发送队列中获取数据。

可选地,所述第一数据转发服务器,还用于在接收到第一数据转发客户端通过第一数据读写转发模块传输的数据包时,将数据包传输至第一拦截模块;

第一拦截模块,用于调用解包函数对接收到的数据包进行解包,并确定解包后的数据携带的类型标识,基于确定的类型标识,调用远程数据访问服务器中的拦截函数;

所述第一拦截模块,还用于根据调用的拦截函数,将所述数据包传输至远程数据访问服务器。

可选地,所述第一数据转发服务器,还用于将所述数据包缓存至接收队列中,并发送第二信号至所述第一拦截模块,以供所述第一拦截模块在所述接收队列中获取数据包。

可选地,所述预设接口还包括调试端口,所述调试端口用于调试数据。

此外,为实现上述目的,本发明还提出一种数据包传输方法,应用于移动终端以及通过预设接口与所述移动终端连接的外接设备,所述移动终端包括第一应用处理器,以及与第一用户识别卡和第二用户识别卡连接的第一调制解调器,所述第一调制解调器包括远程数据访问服务器、第一拦截模块和第一数据转发服务器,所述第一应用处理器包括第一数据读写转发模块和与所述第一数据转发服务器连接的第一数据转发客户端;所述外接设备包括第二应用处理器和第二调制解调器,所述第二调制解调器包括远程数据访问客户端、第二拦截模块和第二数据转发服务器,所述第二应用处理器包括通过所述预设接口与所述第一数据读写转发模块连接的第二数据读写转发模块,以及与所述第二数据转发服务器连接的第二数据转发客户端;所述方法包括:

所述远程数据访问服务器调用第一拦截模块中的拦截函数,以通过调用的拦截函数调用打包函数,并通过调用的打包函数对数据进行打包;

所述远程数据访问服务器将打包后的数据包传输至第一数据转发服务器,由所述第一数据转发器将数据包通过第一数据转发客户端传输至第一数据读写转发模块;

所述第一数据读写转发模块通过所述预设接口将数据包传输至第二数据读写模块,以供所述第二数据读写模块将数据包传输至远程数据访问客户端,所述预设接口包括以太网控制模型端口,所述以太网控制模型端口包括数据管道和控制管道。

可选地,所述远程数据访问服务器将打包后的数据包传输至第一数据转发服务器的步骤包括:

所述远程数据访问服务器将打包后的数据包缓存至发送队列中;

所述远程数据访问服务器发送第一信号至所述第一数据转发服务器,以通知所述第一数据转发服务器在所述发送队列中获取数据。

可选地,所述数据包传输方法还包括:

所述第一数据转发服务器在接收到第一数据转发客户端通过第一数据读写转发模块传输的数据包时,将数据包传输至第一拦截模块;

所述第一拦截模块调用解包函数对接收到的数据包进行解包,并确定解包后的数据携带的类型标识,基于确定的类型标识,调用远程数据访问服务器中的拦截函数;

所述第一拦截模块根据调用的拦截函数,将所述数据包传输至远程数据访问服务器。

可选地,第一数据转发服务器将数据包传输至第一拦截模块的步骤包括:

所述第一数据转发服务器将所述数据包缓存至接收队列中;

所述第一数据转发服务器发送第二信号至所述第一拦截模块,以供所述第一拦截模块在所述接收队列中获取数据包。

可选地,所述预设接口还包括调试端口,所述调试端口用于调试数据。

本发明提供一种数据包传输系统及方法,远程数据访问服务器先调用第一拦截模块中的拦截函数,以通过调用的拦截函数调用打包函数,并通过调用的打包函数对数据进行打包,远程数据访问服务器再将打包后的数据包传输至第一数据转发服务器,由所述第一数据转发器将数据包通过第一数据转发客户端传输至第一数据读写转发模块,最终第一数据读写转发模块通过所述预设接口将数据包传输至第二数据读写模块,以供所述第二数据读写模块将数据包传输至远程数据访问客户端。本发明中,远程数据访问服务器通过第一拦截模块调用打包函数对截取的数据进行打包,并将数据包通过第一数据转发服务器、第一数据转发客户端及第一数据读写转发模块传输给外接设备的第二数据读写转发模块,以便第二数据读写转发模块将数据包传输至远程数据访问客户端,以实现移动终端和外接设备之间的数据传输。

附图说明

图1为本发明一实施例的lte网络架构的示意图;

图2为本发明移动终端和外接设备通讯连接的一种实体结构示意图;

图3为本发明移动终端和外接设备通讯连接的一种硬件结构示意图;

图4为本发明移动终端和外接设备通讯连接的内部硬件结构示意图;

图5为本发明中数据包传输方法第一实施例的流程示意图;

图6为本发明中数据包传输方法第二实施例的流程示意图;

图7为本发明中数据包传输方法第三实施例的流程示意图;

图8为本发明中数据包传输方法第四实施例的流程示意图;

图9为本发明中预设接口的内部硬件结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意结合。

为了对本发明的技术特征、目的和效果有更加清楚的理解,现在将参考附图描述实现本发明各个实施例的移动终端。

在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。

图1是本发明一实施例的lte网络架构的示意图。本发明一实施例的lte网络架构包括:一个或多个移动终端(userequipment,ue)100、外接设备200、e-utran(evolvedumtsterrestrialradioaccessnetwork,演进的umts陆地无线接入网)(图中未标号)、演进分组核心(epc)(图中未标号)、归属订户服务器(hss)107、网络(例如,因特网)(图中未标号)以及电路交换系统(图中未标号)。

e-utran包括演进b节点(enodeb)101和其它enodeb102。enodeb101提供朝向移动终端100的用户面和控制面的协议终接。enodeb101可经由x2接口连接到其他enodeb。enodeb101也可称为基站、基收发机站、无线电基站、无线电收发机、收发机功能、基本服务集、扩展服务集、或其他某个合适的术语。enodeb101为移动终端100提供去往epc的接入点。

enodeb101通过s1接口连接到epc。epc包括移动管理实体(eem)104、其他移动管理实体106、服务网关103,以及分组数据网络(pdn)网关105。移动管理实体104是处理移动终端100与epc之间的信令的控制节点。移动管理实体104提供承载和连接管理。所有用户ip分组通过服务网关103来传递,服务网关103自身连接到pdn网关105。pdn网关105提供ueip地址分配以及其他功能。pdn网关105连接到网络,例如,因特网。

电路交换系统包括交互解决方案模块(iws)108、移动交换中心(msc)109、基站110和移动站111。在一个方面,电路交换系统可以通过iws和mme(mobilitymanagemententity,移动管理实体)与eps(evolvedpacketsystem,演进的分组系统)进行通信。

移动终端100通过预设接口,如usb(universalserialbus,通用串行总线)数据线与外接设备200通讯连接。

图2为本发明移动终端100和外接设备200通讯连接的实体示意图。

如图2所示,移动终端100通过usb数据线与外接设备200通讯连接,其中,所述移动终端包括但不限于手机、pc(personalcomputer,个人电脑)或pad(personaldigitalassistant,个人数字助理),所述外接设备200可选为无线上网卡或数据卡。

图3为本发明实施例中移动终端和外接设备通讯连接的一种硬件结构示意图。

在本发明实施例中,移动终端100通过usb与外接设备200连接。移动终端100包括第一处理芯片001和与第一处理芯片001连接的第一射频模块12。其中,第一处理芯片001包括第一应用处理器(applicationprocessor)10、与第一用户识别卡13和第二用户识别卡14连接的第一调制解调器11(modem1)和rpm(resourcepowermanager,资源电源管理器)15。外接设备200包括第二处理芯片002和与第二处理芯片002连接的第二射频模块22。其中,第二处理芯片002包括第二应用处理器20和第二调制解调器(modem2)21。用户识别卡为sim卡。

第一应用处理器10和第二应用处理器20的内部框架包括应用层、框架层等,可处理复杂的逻辑操作以及进行任务分配等。在一个实施例中,应用处理器指android操作系统,以及基于android操作系统的各种apk(androidpackage,安卓安装包)。第一应用处理器10和第二应用处理器20通过usb实现连接,为用户提供交互接口,将用户输入的操作指令(例如,用户通过用户界面输入的有关启动视频通话的操作指令)传输给第一调制解调器11或第二调制解调器21,以实现两个处理器之间数据的定义与传递,例如,进行两个应用处理器的休眠、唤醒、同步的控制、开关机时芯片启动顺序的控制等。

第一应用处理器10通过usb与第二应用处理器20连接,以实现移动终端100与外接设备200之间的连接。在本发明实施例中,usb复用出三条数据通道,分别用于第一应用处理器10和第二应用处理器20之间用户数据、信令数据和sim卡鉴权数据的交互。即第一应用处理器10和第二应用处理器20通过usb传输用户数据、信令数据和sim卡鉴权数据。其中,用户数据包括但不限于上网产生的数据,图片和聊天信息数据;信令数据包括但不限于开关机的控制数据,开关飞行模式的控制数据,显示状态信号的控制数据;sim卡鉴权数据包括但不限于imsi(internationalmobilesubscriberidentificationnumber,国际移动用户识别码)和ki(keyidentifier,鉴权密钥)。

具体地,第一应用处理器10和第二应用处理器20通过otg(on-the-go)技术进行数据交互。通过otg技术,移动终端100中的第一调制解调器11可通过第二用户识别卡14或第一用户识别卡13中的sim卡参数来接入enodeb101,第二调制解调器21可通过第二用户识别卡14或第一用户识别卡13的sim卡参数来接入enodeb101,sim卡参数包括但不限于sim卡鉴权数据。

第一调制解调器11和第二调制解调器21包含各种网络交互的网络制式的协议栈,协议栈包含lte/wcdma(widebandcodedivisionmultipleaccess,宽带码分多址)/gsm(globalsystemformobilecommunication,全球移动通信系统)/td-scdma(timedivision-synchronouscodedivisionmultipleaccess,同步时分码分多址)/cdma(codedivisionmultipleaccess,码分多址)/edge(enhanceddatarateforgsmevolution,强型数据速率gsm演进技术)等通讯标准里边规定的协议代码。移动终端100通过协议与运营商网络进行交互,即进行数据流量上网、volte(voiceoverlte)打电话或者cs(circuitswitched,电路交换)域打电话。第一调制解调器11和第二调制解调器21还用于对sim卡的管控等等。

在本发明实施例中,第一射频模块12用于将移动终端100传输的数据处理后传给enodeb101(基站网络),以及用于将enodeb101传输的数据处理后传给移动终端100。第二射频模块22用于将外接设备200传输的数据处理后传给enodeb101(基站网络),以及用于将enodeb101传输的数据处理后传给外接设备200。

第一用户识别卡13和第二用户识别卡14用于提供移动通信业务(cs语音业务、ps数据业务和ps语音业务)所需的相关数据,并在其内部存储用户信息、短消息、执行鉴权算法和产生加密密匙等。

第一用户识别卡13和第二用户识别卡14可存储与不同或相同的技术标准相关联的用户信息。在特定非限制性实例中,技术标准可为2g通信技术,例如,gsm、edge)、3g通信技术(例如,wcdma、td-scdma)、4g通信技术(例如,lte),或任何其它移动通信技术(例如,4g等等)。第一用户识别卡13和第二用户识别卡14优选为sim卡。

第一用户识别卡13和第二用户识别卡14在与移动终端100交互时,移动终端100检测用户识别卡存在与否的信号只在开机瞬时产生,当开机检测不到用户识别卡存在时,将提示“插入用户识别卡”。移动终端100开机之后,移动终端100和用户识别卡之间28秒通信一次,完成一些固定的通信检查(例如,用户识别卡是否在位等)。

由于目前的移动终端100只有一套射频模块,当移动终端100有两张用户识别卡时,移动终端100的两张用户识别卡使用该套射频是分时复用的关系,并不能同时占用。例如,在两张用户识别卡全开时,其中一张用户识别卡只处理gsm通话,而另一张用户识别卡处理4g网络信息,具体哪张用户识别卡执行何种网络,在此不做限定。因此目前的射频双卡分时复用这种架构仅做到了lte+gsm(即一张用户识别卡对应的技术标准为lte,另一张用户识别卡对应的技术标准为gsm)。

可以理解的是,现有的移动终端100虽然可以支持双用户识别卡,由于移动终端100在注册网络的情况下,两张用户识别卡支持的是不同技术标准的网络,一张支持2g或3g,另一张支持4g,会使得移动终端100使用过程中,上网流量速度较慢。在本发明实施例中,移动终端100通过usb连接外接设备200,由于外接设备200包括第二调制解调器21和第二射频模块22,且第二射频模块22支持4g网络,因此,移动终端100可通过usb与外接设备200交互,从而使得移动终端100具备双lte功能(此时第一用户识别卡13和第二用户识别卡14管理的技术标准均为lte标准,第一射频模块12和第二射频模块22所涉及的无线接入技术为lte)。

移动终端100的rpm15用于管控各种资源,包括时钟资源、总线资源、pmic(powermanagementic,电源管理集成电路,即各个芯片的电压)、ddr(内存分配),以及管理芯片的休眠唤醒的中断和应用处理器唤醒的截止时间。移动终端100的各个子系统,在需要资源时,向rpm15申请资源,各个子系统分别包括第一应用处理器10,第一调制解调器11、pronto(wifi/蓝牙、nfc(nearfieldcommunication,近场通信)等)、lpass(lowpoweraudiosubsystem,低功耗音频子系统),rpm15用来决定移动终端100系统的休眠状态,具体是,rpm15基于各个子系统的投票机制实现,当各个子系统都投休眠票时,rpm15才可以使移动终端100整个系统进行休眠。而当移动终端100有一个子或者多个子系统投反对休眠的票,移动终端100整个系统都无法休眠。

在移动终端100的整个系统休眠之后,若是要重新启动运行,需要唤醒第一应用处理器10以进行数据的传输交互。

在移动终端100和外接设备200通过usb通讯连接的情况下,唤醒方式可为以下三种:

1、第一应用处理器10接收到信令数据时,通过usb发送握手关键字给第二应用处理器20,以唤醒第二应用处理器20。

2、第二调制解调器21接收到用户数据时,唤醒第二应用处理器20,由第二应用处理器20通过usb传送握手关键字给第一应用处理器10,以唤醒第一应用处理器10。

3、第二调制解调器21周期性查找寻呼请求,以主动激活自己。若接收到寻呼请求,第二调制解调器21则唤醒第二应用处理器20,由第二应用处理器20通过usb发送握手关键字给第一应用处理器10,以唤醒第二应用处理器20。

需要说明的是,握手关键字可用固定字长的字符标识,是正常数据包中不会出现的字段。如可用0xf9f9f9或者0x9f9f9f表示握手关键字,通过握手关键字可唤醒处于睡眠状态的第一应用处理器10或第二应用处理器20。

此外,第二调制解调器21还可以定期唤醒自己,以在移动终端100进行位置更新时,跟基站进行握手交互,此时不需要唤醒第一应用处理器10。

应当说明的是,传统的调制解调器之间的数据传输,一般是在远程数据访问服务器和远程数据访问客户端中,调用函数实现数据传输,即调制解调器中的数据无法直接传输至应用处理器中。因此,本发明中,为了解决这个问题,在移动终端中添加第一拦截模块,在外接设备中添加第二拦截模块,以通过拦截模块截取远程数据访问服务器和远程数据访问客户端的数据,并将截取的数据传输至移动终端和外接设备的应用处理器中,以实现调制解调器中的数据传输至应用处理器,再由应用处理器传输至对端。

参照图4,图4为本发明移动终端和外接设备通讯连接的内部硬件结构示意图。

如图4可知,第一调制解调器11包括uim(useridentitymodule)驱动112、第一sim卡模块代理113、远程sim数据访问_server(远程数据访问服务器)114、第一拦截模块115和数据转发_server1(第一数据转发服务器)116。第一应用处理器10包括数据转发_client1(第一数据转发客户端)011和第一数据读写转发模块012。

第二调制解调器21包括modem非接入层部分212、第二sim卡模块代理213、远程sim数据访问_client(远程数据访问客户端)214、第二拦截模块215和数据转发_server2(第二数据转发服务器)216,第二应用处理器20包括数据转发_client2(第二数据转发客户端)021和第二数据读写转发模块022。

其中,uim驱动112存储了接入网络必须的数据,如uimid(identification,身份)、鉴权数据、imsi号等。

远程sim数据访问_server114和远程sim数据访问_client214用于实现第一调制解调器11和第二调制解调器21之间sim卡数据的传输。

第一拦截模块115用于截取远程sim数据访问_server114中所需传输的sim卡数据;第二拦截模块215用于截取远程sim数据访问_client214中所需传输的sim卡数据。通过第一拦截模块115和第二拦截模块215实现远程sim数据访问_server114和远程sim数据访问_client214中sim卡数据的交互,具体地:第一拦截模块115或第二拦截模块215截取到数据之后,将截取的数据传输至第一数据转发服务器116或第二数据转发服务器216,以实现数据的传输。

第二数据转发服务器216和第二数据转发客户端021相对应,用于实现第二调制解调器21和第二应用处理器20之间的数据传输;第一数据转发服务器116和第一数据转发客户端011相对应,用于实现第一调制解调器11和第一应用处理器10之间的数据传输。

第一数据读写转发模块012和第二数据读写转发模块022用于通过usb实现第二应用处理器20和第一应用处理器10之间的数据传输。

本发明中,要实现数据的拦截转发,可将远程数据访问服务器114需要用到的函数都进行替换重写,具体地:在移动终端中配置第一拦截模块,该第一拦截模块中,配置有两种拦截函数,分别为respond(响应)函数和ind(通知)函数,然后采用配置的两种函数,替换远程数据访问服务器114原本调用的函数。

此外,在外接设备中要实现数据的拦截转发,同样将远程数据访问客户端214要用到的函数进行替换重写,具体地,在外接设备中配置第二拦截模块,该第二拦截模块中,配置一种拦截函数,该拦截函数为cmd(命令)函数,然后采用配置的该函数,替换远程数据访问客户端214原本要调用的函数。

本发明实施例中,移动终端的第一拦截模块和外接设备的第二拦截模块,可以都配置cmd函数、respond函数和ind函数三种,但是由于一般情况下移动终端处理的是cmd类型的数据,而外接设备一般处理的是respond和ind类型的数据,因此优选在移动终端中替换respond函数和ind函数,以便后续传输至外接设备中,以供外接设备处理该respond函数和ind函数,并在外接设备中替换cmd函数,以便后续传输至移动终端中,以供移动终端处理该cmd函数。

在本实施例中,需要说明的是,所述第一拦截模块115可位于远程数据访问服务器114和第一数据转发服务器116之间,也可内嵌到远程数据访问服务器114,相当于是将第一拦截模块115和远程数据访问服务器114进行耦合,具体地,需要在远程数据访问服务器114的底层中修改代码,以实现第一拦截模块和远程数据访问服务器的耦合。第二拦截模块215同样,可位于远程数据访问客户端214和第二数据转发服务器216之间,也可内嵌到远程数据访问客户端214中。

在配置第一拦截模块115的基础上,远程数据访问服务器114可调用所述第一拦截模块115中的拦截函数,实现数据的拦截转发,以将数据转发至第一数据转发服务器116,最终由第一数据转发服务器116实现数据转发至外接设备。

在本发明实施例中,由于移动终端和外接设备都包含有应用处理器和调制解调器,且第一数据转发服务器116和第二数据转发服务器216位于调制解调器,第一数据转发客户端011和第二数据转发客户端021位于应用处理器。因此,本实施例中,数据包传输过程发生在移动终端和外接设备之间,并且移动终端的数据转发机制和外接设备的数据转发机制一致,本发明的各个实施例中,以移动终端为执行主体,详述数据包传输过程,但是本领域技术人员应当理解的是,当用外接设备替换本发明中的移动终端时,同样可以实现本发明的数据包传输过程。

具体地,移动终端发数据:

远程数据访问服务器114-第一拦截模块115-第一数据转发服务器116-第一数据转发客户端011-第一数据读写转发模块012;

移动终端收数据:

第一数据读写转发模块012-第一数据转发客户端011-第一数据转发服务器116-第一拦截模块115-远程数据访问服务器114。

外接设备发数据:

远程数据访问客户端214-第二拦截模块215-第二数据转发服务器216-第二数据转发客户端021-第二数据读写转发模块022;

外接设备收数据:

第二数据读写转发模块022-第二数据转发客户端021-第二数据转发服务器216-第二拦截模块215-远程数据访问客户端214。

本发明实施例中,虽然以移动终端所在端进行详述,但是外接设备的数据传输机制与移动终端一致,不做赘述。

基于上述的lte网络架构图、移动终端100和外接设备200通讯连接的硬件结构示意图、实体结构示意图以及现有技术存在的问题,提出本发明的各个实施例。

本实施例提出一种数据包传输系统,所述数据包传输系统包括移动终端100,以及通过预设接口与所述移动终端100连接的外接设备200;所述移动终端100包括第一应用处理器10,以及与第一用户识别卡13和第二用户识别卡14连接的第一调制解调器11,所述第一调制解调器11包括远程数据访问服务器114、第一拦截模块115和第一数据转发服务器116,所述第一应用处理器10包括第一数据读写转发模块012和与所述第一数据转发服务器116连接的第一数据转发客户端011;所述外接设备200包括第二应用处理器20和第二调制解调器21,所述第二调制解调器21包括远程数据访问客户端214、第二拦截模块215和第二数据转发服务器216,所述第二应用处理器20包括通过所述预设接口与所述第一数据读写转发模块012连接的第二数据读写转发模块022,以及与所述第二数据转发服务器216连接的第二数据转发客户端021;

所述远程数据访问服务器,用于调用第一拦截模块中的拦截函数,以通过调用的拦截函数调用打包函数,并通过调用的打包函数对数据进行打包;

所述远程数据访问服务器,还用于将打包后的数据包传输至第一数据转发服务器,由所述第一数据转发器将数据包通过第一数据转发客户端传输至第一数据读写转发模块;

第一数据读写转发模块,用于通过所述预设接口将数据包传输至第二数据读写模块,以供所述第二数据读写模块将数据包传输至远程数据访问客户端,所述预设接口包括以太网控制模型端口,所述以太网控制模型端口包括数据管道和控制管道。

在本实施例中,在接收到外接设备发送的数据传输请求之后,移动终端的远程数据访问服务器从第一或第二用户识别卡中获取到待发送的数据之后,调用第一拦截模块中的拦截函数,即respond函数或ind函数,具体要调用哪种函数,根据数据的类型确定,若数据是要响应给外接设备的,则远程数据访问服务器调用respond函数,若数据要发送给外接设备进行通知的,则远程数据访问服务器调用ind函数。

远程数据访问服务器在第一拦截模块中调用到拦截函数之后,通过该拦截函数再调用打包函数,在本实施例中,虽然第一拦截模块中的拦截函数包括两种,但是通过两种拦截函数调用到的打包函数都是同一种,在调用到打包函数之后,所述远程数据访问服务器通过调用的打包函数对数据进行打包,具体地:所述远程数据访问服务器通过调用的拦截函数对打包函数传输参数,并采用传入参数的打包函数对数据进行打包。由于拦截函数包括两种,因此,通过不同拦截函数传入打包参数的参数不同,那么,对打包函数传输参数时,并通过传入参数的打包函数对数据进行打包,即可得到不同包头的数据包。本实施例中,打包函数是采用现有移动终端中的打包函数,此处不做详述。

远程数据访问服务器对数据打包得到数据包之后,将打包后的数据包传输至第一数据转发服务器,由所述第一数据转发器将数据包通过第一数据转发客户端传输至第一数据读写转发模块。需要说明的是,当第一数据转发服务器获取到数据包之后,需要对数据包的容量值进行解析,以确定数据包的容量值是否超出预设阈值,若数据包的容量值超出所述预设阈值,则对所述数据包进行拆分,得到各个数据包,然后在拆分后的各个数据包中,对中间数据包添加中间标识,该中间标识用第二预设值表示,如flag=0,对结束数据包添加结束标识,该结束标识用第一预设值表示,如flag=1,然后将添加有标识的各个数据包发送至第一数据转发客户端。第一数据转发客户端接收到数据包之后,将数据包发送给第一数据读写转发模块。

本实施例中,当所述第一数据读写转发模块接收到数据包之后,通过预设接口将数据包传输至外接设备的第二数据读写转发模块,以供所述第二数据读写转发模块将数据包传输至远程数据访问客户端,本实施例中,所述预设接口即usb接口,usb接口可包括网络端口,该网络端口可选为以太网控制模型端口(communicationdeviceclassethernetnetworkingcontrolmodel,cdcecm,通信设备类-以太网控制模型),该以太网控制模型端口包括数据管道和控制管道,数据管道用于传输网络数据,即tcp(transmissioncontrolprotocol,传输控制协议)/ip(internetprotocol,网际协议)的数据的传输,控制管道用于传输sim卡数据,即用户识别卡数据。

本发明实施例中,远程数据访问服务器获取的数据是sim卡数据,因此第一数据读写转发模块从控制管道中将数据包传输给外接设备的第二数据读写转发模块。

本实施例提出的技术方案,远程数据访问服务器先调用第一拦截模块中的拦截函数,以通过调用的拦截函数调用打包函数,并通过调用的打包函数对数据进行打包,远程数据访问服务器再将打包后的数据包传输至第一数据转发服务器,由所述第一数据转发器将数据包通过第一数据转发客户端传输至第一数据读写转发模块,最终第一数据读写转发模块通过所述预设接口将数据包传输至第二数据读写模块,以供所述第二数据读写模块将数据包传输至远程数据访问客户端。本发明中,远程数据访问服务器通过第一拦截模块调用打包函数对截取的数据进行打包,并将数据包通过第一数据转发服务器、第一数据转发客户端及第一数据读写转发模块传输给外接设备的第二数据读写转发模块,以便第二数据读写转发模块将数据包传输至远程数据访问客户端,以实现移动终端和外接设备之间的数据传输。

进一步地,提出本发明数据包传输系统的第二实施例。

数据包传输系统的第二实施例与数据包传输系统的第一实施例的区别在于:所述远程数据访问服务器,还用于将打包后的数据包缓存至发送队列中,并发送第一信号至所述第一数据转发服务器,以通知所述第一数据转发服务器在所述发送队列中获取数据。

在本实施例中,远程数据访问服务器对数据打包之后,先将数据包缓存至发送队列中,所述发送队列可建立在远程数据访问服务器中,也可以建立在第一拦截模块中,该发送队列用于远程数据访问服务器和第一拦截模块之间的数据传输。此外,本发明实施例中,还可建立接收队列,该接收队列同样可建立在远程数据访问服务器中,或者建立在第一拦截模块中,该接收队列同样用于远程数据访问服务器和第一拦截模块之间的数据传输。其中,所述发送队列用于存储远程数据访问服务器放置的数据,并由第一拦截模块从该发送队列中提取数据,接收队列用于存储第一拦截模块放置的数据,并由远程数据访问服务器从该接收队列中提取数据。

当所述远程数据访问服务器将打包后的数据包缓存至发送队列中之后,所述远程数据访问服务器发送第一信号至所述第一数据转发服务器,以通知所述第一数据转发服务器在所述发送队列中获取数据,保证了数据拦截转发的及时性。本实施例中,第一信号用于提示从发送队列中获取数据。

本发明实施例中,还包括:

外接设备的第二数据读写转发模块,用于通过usb接口接收到数据包之后,通过第二数据转发客户端将数据包传输至第二数据转发服务器,由所述第二数据转发服务器将数据包传输至第二拦截模块;

第二拦截模块,用于接收到数据包之后,调用接包函数对接收到的数据包进行解包,并确定解包后的数据携带的类型标识,基于确定的类型标识,调用远程数据访问客户端中的拦截函数;

第二拦截模块,还用于根据调用的拦截函数,将所述数据包传输至远程数据访问客户端。

其中,所述“第二数据转发服务器将数据包传输至第二拦截模块”包括:

第二数据转发服务器将所述数据包缓存至接收队列中;

第二数据转发服务器发送第二信号至所述第二拦截模块,以供所述第二拦截模块在所述接收队列中获取数据包。

即,当第二数据读写转发模块通过usb接口的控制管道接收到数据包之后,先通过第二数据转发客户端将数据包传输至第二数据转发服务器,当第二数据转发服务器接收到数据包之后,可将所述数据包缓存至接收队列中,然后发送第二信号至所述第二拦截模块,以通知所述第二拦截模块在所述接收队列中获取数据包。第二信号用于提示从接收队列中获取数据。

第二拦截模块从接收队列中获取到数据包之后,调用解包函数对获取到的数据包进行解包,此处所采用的解包函数也是现有的解包函数,此处不做详述。在采用解包函数对数据包进行接包之后,识别数据携带的类型标识,由于上文中已经提及移动终端发送的是respond或ind类型的数据,因此当前识别出来的类型标识为respond类型或ind类型,在确定类型标识之后,所述第二拦截模块调用远程数据访问客户端中已有的拦截函数,即respond或ind函数,以根据调用的拦截函数,将所述数据包传输至远程数据访问客户端,从而完成移动终端和外接设备之间的数据拦截转发过程。

在本实施例中,通过消息队列传输数据,使得数据的传输具有时序性,由于消息队列先进先出的特点,防止数据的传输顺序混乱,从而提高数据传输的准确性。

应当理解,本实施例中,相当于是移动终端根据外接设备发送的数据获取请求,提取出数据反馈至外接设备,从而完成移动终端和外接设备之间的数据传输。

进一步地,提出本发明数据包传输系统的第三实施例。

数据包传输系统的第三实施例与数据包传输系统的第一或第二实施例的区别在于,所述第一数据转发服务器,还用于在接收到第一数据转发客户端通过第一数据读写转发模块传输的数据包时,将数据包传输至第一拦截模块;

第一拦截模块,用于调用解包函数对接收到的数据包进行解包,并确定解包后的数据携带的类型标识,基于确定的类型标识,调用远程数据访问服务器中的拦截函数;

所述第一拦截模块,还用于根据调用的拦截函数,将所述数据包传输至远程数据访问服务器。

在本实施例中,除了由移动终端中远程数据访问服务器发送respond或ind类别的数据给外接设备的远程数据访问客户端,移动终端中远程数据访问服务器同样可以接收远程数据访问客户端发送的cmd类别的数据。

第一数据转发服务器在接收到第一数据转发客户端通过第一数据读写转发模块传输的数据包时,对数据包执行解包操作得到数据,并对解开后的数据的flag标识信息进行识别,本实施例中,在flag标识信息为第一预设值时,如flag=1,即解析出结束标识,此时,表示该数据包是最后一个数据包,可将数据包传输至第一拦截模块。若解析出中间标识,即flag标识信息为第二预设值,如flag=0,认为该数据包不是最后一个数据包,此时,第一数据转发服务器将接收到的数据缓存至临时缓缓冲区中,并继续接收数据包,仅在接收到数据包对应的flag标识信息为第一预设值时,才将缓存在临时缓缓冲区中的各个数据包与当前接收到的数据包组合后发送至第一拦截模块。

在本实施例中,第一数据转发服务器解析出数据包携带中间标识时,说明书当前接收到的数据包是中间数据包,从外接设备发送过来的数据包还没有发送完成,此时,先缓存中间数据包,以便接收到结束数据包时,才组合进行发送,防止发生丢包的情况。

第一拦截模块接收到数据包之后,调用解包函数对接收到的数据包进行解包,并确定解包后的数据携带的类型标识,由于前面已经提及远程数据访问客户端发送的数据为cmd数据,因此当前的类型标识就是cmd,然后基于该类型标识,调用远程数据访问服务器中的拦截函数,本实施例中,该拦截函数为cmd函数,最终根据调用的拦截函数,将所述数据包传输至远程数据访问服务器。

应该理解,本实施例中,相当于外接设备发起数据获取请求,移动终端接收该数据获取请求,从而完成数据的传输过程。

进一步地,提出本发明数据包传输系统的第四实施例。

数据包传输系统的第四实施例与数据包传输系统的第三实施例的区别在于:所述第一数据转发服务器,还用于将所述数据包缓存至接收队列中,并发送第二信号至所述第一拦截模块,以供所述第一拦截模块在所述接收队列中获取数据包。

在本实施例中,所述系统还包括:

外接设备的远程数据访问客户端,用于调用第二拦截模块中的拦截函数,以通过调用的拦截函数调用打包函数,并通过调用的打包函数对数据进行打包;

所述远程数据访问客户端,还用于将打包后的数据包传输至第二数据转发服务器,由所述第二数据转发器将数据包通过第二数据转发客户端传输至第二数据读写转发模块;

第二数据读写转发模块,用于通过所述预设接口将数据包传输至第一数据读写模块,以供所述第一数据读写模块将数据包传输至远程数据访问服务器。

具体地,所述“远程数据访问客户端将打包后的数据包传输至第二数据转发服务器”包括:

所述远程数据访问客户端将打包后的数据包缓存至发送队列中;

发送第一信号至所述第二数据转发服务器,以通知所述第二数据转发服务器在所述发送队列中获取数据。

需要说明的是,远程数据访问客户端在接收到第二sim卡模块代理传输的数据获取请求时,将所述数据获取请求转化成数据,基于转化后的数据调用第二拦截模块中的拦截函数。在本实施例中,第二拦截模块中的拦截函数为cmd函数,因此,远程数据访问客户端待发送的数据为cmd数据,由于第二拦截模块中的拦截函数为cmd函数,因此,远程数据访问客户端调用打包函数后,传入打包函数中的参数只有一种,打包后数据包的包头标识也只有一种,cmd标识。所述远程数据访问客户端对数据打包之后,将数据包缓存至发送队列中,并发送第一信号给第二数据转发服务器,由所述第二数据转发器在发送队列中提取数据包。第二数据转发器提取出数据包之后,同样会根据数据包的容量值决定是否执行拆分操作,具体的拆包过程在上文详述,此处不做赘述。然后,第二数据转发器将数据包通过第二数据转发客户端传输至第二数据读写转发模块,第二数据读写转发模块接收到数据包之后,通过usb接口的控制管道将数据包传输至第一数据读写模块,以供所述第一数据读写模块将数据包通过第一数据转发客户端传输至第一数据转发服务器。

当第一数据转发服务器接收到数据包之后,先将数据包缓存至接收队列中,然后发送第二信号至所述第一拦截模块,以通知所述第一拦截模块在所述接收队列中获取数据包。

在本实施例中,通过消息队列传输数据,使得数据的传输具有时序性,由于消息队列先进先出的特点,防止数据的传输顺序混乱,从而提高数据传输的准确性。

进一步地,提出本发明数据包传输系统的第五实施例。

数据包传输系统的第五实施例与数据包传输系统的第一至第四实施例的区别在于,所述预设接口还包括调试端口,所述调试端口用于调试数据。

在本实施例中,预设接口的内部硬件结构示意图可参照图9,如图9所示,所述预设接口包括以太网控制模型端口,所述以太网控制模型端口包括数据管道和控制管道。

进一步地,本发明实施例中,预设接口除了包括以太网控制模型端口,还可以包括调试端口,该调试端口可选为diag(diagnostics,调试)/adb(androiddebugbridge,安卓调试桥)端口,用于调试数据。

本发明实施例中,继续参照图9,数据管道、控制管道和调试端口的两端分别连接到第一应用处理器10和第二应用处理器20。需要说明的是,移动终端的第一应用处理器10的角色是host(主机),外接设备的第二应用处理器20的角色是device(设备)。在数据管道、控制管道和调试端口两端分别连接到第一应用处理器10和第二应用处理器20的情况下,第一应用处理器10和第二应用处理器20分别设置有usbhost驱动和usbdevice驱动,usbhost驱动和usbdevice驱动又分别设置有对应的数据管道驱动、控制管道驱动和调试端口驱动。

本发明实施例中,以太网控制模型端口中数据管道和控制管道的驱动文件不同,并且以太网控制模型端口中数据管道和控制管道在第一应用处理器10与第二应用处理器20中的驱动文件也不相同。移动终端和外接设备通过usb接口中的以太网控制模型端口连接,实现网络数据和sim卡数据的传输。

本发明进一步提供一种数据包传输方法。

参照图5,图5为本发明数据包传输方法第一实施例的流程示意图。

本实施例提出一种数据包传输方法,在本实施例中,提供了数据包传输方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明中,数据包传输方法应用于移动终端100以及通过预设接口与所述移动终端连接的外接设备200,所述移动终端100包括第一应用处理器10,以及与第一用户识别卡13和第二用户识别卡14连接的第一调制解调器11,所述第一调制解调器11包括远程数据访问服务器114、第一拦截模块115和第一数据转发服务器116,所述第一应用处理器10包括第一数据读写转发模块012和与所述第一数据转发服务器116连接的第一数据转发客户端011;所述外接设备200包括第二应用处理器20和第二调制解调器21,所述第二调制解调器21包括远程数据访问客户端214、第二拦截模块215和第二数据转发服务器216,所述第二应用处理器20包括通过所述预设接口与所述第一数据读写转发模块012连接的第二数据读写转发模块022,以及与所述第二数据转发服务器216连接的第二数据转发客户端021;所述方法包括:

步骤s10,所述远程数据访问服务器调用第一拦截模块中的拦截函数,以通过调用的拦截函数调用打包函数,并通过调用的打包函数对数据进行打包;

步骤s20,所述远程数据访问服务器将打包后的数据包传输至第一数据转发服务器,由所述第一数据转发器将数据包通过第一数据转发客户端传输至第一数据读写转发模块;

步骤s30,第一数据读写转发模块通过所述预设接口将数据包传输至第二数据读写模块,以供所述第二数据读写模块将数据包传输至远程数据访问客户端,所述预设接口包括以太网控制模型端口,所述以太网控制模型端口包括数据管道和控制管道。

在本实施例中,在接收到外接设备发送的数据传输请求之后,移动终端的远程数据访问服务器从第一或第二用户识别卡中获取到待发送的数据之后,调用第一拦截模块中的拦截函数,即respond函数或ind函数,具体要调用哪种函数,根据数据的类型确定,若数据是要响应给外接设备的,则远程数据访问服务器调用respond函数,若数据要发送给外接设备进行通知的,则远程数据访问服务器调用ind函数。

远程数据访问服务器在第一拦截模块中调用到拦截函数之后,通过该拦截函数再调用打包函数,在本实施例中,虽然第一拦截模块中的拦截函数包括两种,但是通过两种拦截函数调用到的打包函数都是同一种,在调用到打包函数之后,所述远程数据访问服务器通过调用的打包函数对数据进行打包,具体地:所述远程数据访问服务器通过调用的拦截函数对打包函数传输参数,并采用传入参数的打包函数对数据进行打包。由于拦截函数包括两种,因此,通过不同拦截函数传入打包参数的参数不同,那么,对打包函数传输参数时,并通过传入参数的打包函数对数据进行打包,即可得到不同包头的数据包。本实施例中,打包函数是采用现有移动终端中的打包函数,此处不做详述。

远程数据访问服务器对数据打包得到数据包之后,将打包后的数据包传输至第一数据转发服务器,由所述第一数据转发器将数据包通过第一数据转发客户端传输至第一数据读写转发模块。需要说明的是,当第一数据转发服务器获取到数据包之后,需要对数据包的容量值进行解析,以确定数据包的容量值是否超出预设阈值,若数据包的容量值超出所述预设阈值,则对所述数据包进行拆分,得到各个数据包,然后在拆分后的各个数据包中,对中间数据包添加中间标识,该中间标识用第二预设值表示,如flag=0,对结束数据包添加结束标识,该结束标识用第一预设值表示,如flag=1,然后将添加有标识的各个数据包发送至第一数据转发客户端。第一数据转发客户端接收到数据包之后,将数据包发送给第一数据读写转发模块。

本实施例中,当所述第一数据读写转发模块接收到数据包之后,通过预设接口将数据包传输至外接设备的第二数据读写转发模块,以供所述第二数据读写转发模块将数据包传输至远程数据访问客户端,本实施例中,所述预设接口即usb接口,usb接口可包括网络端口,该网络端口可选为以太网控制模型端口(communicationdeviceclassethernetnetworkingcontrolmodel,cdcecm,通信设备类-以太网控制模型),该以太网控制模型端口包括数据管道和控制管道,数据管道用于传输网络数据,即tcp(transmissioncontrolprotocol,传输控制协议)/ip(internetprotocol,网际协议)的数据的传输,控制管道用于传输sim卡数据,即用户识别卡数据。

本发明实施例中,远程数据访问服务器获取的数据是sim卡数据,因此第一数据读写转发模块从控制管道中将数据包传输给外接设备的第二数据读写转发模块。

本实施例提出的技术方案,远程数据访问服务器先调用第一拦截模块中的拦截函数,以通过调用的拦截函数调用打包函数,并通过调用的打包函数对数据进行打包,远程数据访问服务器再将打包后的数据包传输至第一数据转发服务器,由所述第一数据转发器将数据包通过第一数据转发客户端传输至第一数据读写转发模块,最终第一数据读写转发模块通过所述预设接口将数据包传输至第二数据读写模块,以供所述第二数据读写模块将数据包传输至远程数据访问客户端。本发明中,远程数据访问服务器通过第一拦截模块调用打包函数对截取的数据进行打包,并将数据包通过第一数据转发服务器、第一数据转发客户端及第一数据读写转发模块传输给外接设备的第二数据读写转发模块,以便第二数据读写转发模块将数据包传输至远程数据访问客户端,以实现移动终端和外接设备之间的数据传输。

进一步地,参照图6,提出本发明数据包传输方法的第二实施例。

数据包传输方法的第二实施例与数据包传输方法的第一实施例的区别在于,所述步骤s20包括:

步骤s21,所述远程数据访问服务器将打包后的数据包缓存至发送队列中;

步骤s22,发送第一信号至所述第一数据转发服务器,以通知所述第一数据转发服务器在所述发送队列中获取数据。

在本实施例中,远程数据访问服务器对数据打包之后,先将数据包缓存至发送队列中,所述发送队列可建立在远程数据访问服务器中,也可以建立在第一拦截模块中,该发送队列用于远程数据访问服务器和第一拦截模块之间的数据传输。此外,本发明实施例中,还可建立接收队列,该接收队列同样可建立在远程数据访问服务器中,或者建立在第一拦截模块中,该接收队列同样用于远程数据访问服务器和第一拦截模块之间的数据传输。其中,所述发送队列用于存储远程数据访问服务器放置的数据,并由第一拦截模块从该发送队列中提取数据,接收队列用于存储第一拦截模块放置的数据,并由远程数据访问服务器从该接收队列中提取数据。

当所述远程数据访问服务器将打包后的数据包缓存至发送队列中之后,所述远程数据访问服务器发送第一信号至所述第一数据转发服务器,以通知所述第一数据转发服务器在所述发送队列中获取数据,保证了数据拦截转发的及时性。本实施例中,第一信号用于提示从发送队列中获取数据。

本发明实施例中,所述步骤s30之后,所述方法还包括:

步骤a,外接设备的第二数据读写转发模块通过usb接口接收到数据包之后,通过第二数据转发客户端将数据包传输至第二数据转发服务器,由所述第二数据转发服务器将数据包传输至第二拦截模块;

步骤b,第二拦截模块接收到数据包之后,调用接包函数对接收到的数据包进行解包,并确定解包后的数据携带的类型标识,基于确定的类型标识,调用远程数据访问客户端中的拦截函数;

步骤c,第二拦截模块根据调用的拦截函数,将所述数据包传输至远程数据访问客户端。

其中,所述“第二数据转发服务器将数据包传输至第二拦截模块”的步骤包括:

步骤c1,第二数据转发服务器将所述数据包缓存至接收队列中;

步骤c2,发送第二信号至所述第二拦截模块,以供所述第二拦截模块在所述接收队列中获取数据包。

即,当第二数据读写转发模块通过usb接口的控制管道接收到数据包之后,先通过第二数据转发客户端将数据包传输至第二数据转发服务器,当第二数据转发服务器接收到数据包之后,可将所述数据包缓存至接收队列中,然后发送第二信号至所述第二拦截模块,以通知所述第二拦截模块在所述接收队列中获取数据包。第二信号用于提示从接收队列中获取数据。

第二拦截模块从接收队列中获取到数据包之后,调用解包函数对获取到的数据包进行解包,此处所采用的解包函数也是现有的解包函数,此处不做详述。在采用解包函数对数据包进行接包之后,识别数据携带的类型标识,由于上文中已经提及移动终端发送的是respond或ind类型的数据,因此当前识别出来的类型标识为respond类型或ind类型,在确定类型标识之后,所述第二拦截模块调用远程数据访问客户端中已有的拦截函数,即respond或ind函数,以根据调用的拦截函数,将所述数据包传输至远程数据访问客户端,从而完成移动终端和外接设备之间的数据拦截转发过程。

在本实施例中,通过消息队列传输数据,使得数据的传输具有时序性,由于消息队列先进先出的特点,防止数据的传输顺序混乱,从而提高数据传输的准确性。

应当理解,本实施例中,相当于是移动终端根据外接设备发送的数据获取请求,提取出数据反馈至外接设备,从而完成移动终端和外接设备之间的数据传输。

进一步地,参照图7,提出本发明数据包传输方法的第三实施例。

数据包传输方法的第三实施例与数据包传输方法的第一或第二实施例的区别在于,所述方法还包括:

步骤s40,第一数据转发服务器在接收到第一数据转发客户端通过第一数据读写转发模块传输的数据包时,将数据包传输至第一拦截模块;

步骤s50,第一拦截模块调用解包函数对接收到的数据包进行解包,并确定解包后的数据携带的类型标识,基于确定的类型标识,调用远程数据访问服务器中的拦截函数;

步骤s60,根据调用的拦截函数,将所述数据包传输至远程数据访问服务器。

在本实施例中,除了由移动终端中远程数据访问服务器发送respond或ind类别的数据给外接设备的远程数据访问客户端,移动终端中远程数据访问服务器同样可以接收远程数据访问客户端发送的cmd类别的数据。

第一数据转发服务器在接收到第一数据转发客户端通过第一数据读写转发模块传输的数据包时,对数据包执行解包操作得到数据,并对解开后的数据的flag标识信息进行识别,本实施例中,在flag标识信息为第一预设值时,如flag=1,即解析出结束标识,此时,表示该数据包是最后一个数据包,可将数据包传输至第一拦截模块。若解析出中间标识,即flag标识信息为第二预设值,如flag=0,认为该数据包不是最后一个数据包,此时,第一数据转发服务器将接收到的数据缓存至临时缓缓冲区中,并继续接收数据包,仅在接收到数据包对应的flag标识信息为第一预设值时,才将缓存在临时缓缓冲区中的各个数据包与当前接收到的数据包组合后发送至第一拦截模块。

在本实施例中,第一数据转发服务器解析出数据包携带中间标识时,说明书当前接收到的数据包是中间数据包,从外接设备发送过来的数据包还没有发送完成,此时,先缓存中间数据包,以便接收到结束数据包时,才组合进行发送,防止发生丢包的情况。

第一拦截模块接收到数据包之后,调用解包函数对接收到的数据包进行解包,并确定解包后的数据携带的类型标识,由于前面已经提及远程数据访问客户端发送的数据为cmd数据,因此当前的类型标识就是cmd,然后基于该类型标识,调用远程数据访问服务器中的拦截函数,本实施例中,该拦截函数为cmd函数,最终根据调用的拦截函数,将所述数据包传输至远程数据访问服务器。

应该理解,本实施例中,相当于外接设备发起数据获取请求,移动终端接收该数据获取请求,从而完成数据的传输过程。

进一步地,参照图8,提出本发明数据包传输方法的第四实施例。

数据包传输方法的第四实施例与数据包传输方法的第三实施例的区别在于,所述步骤s40包括:

步骤s41,所述第一数据转发服务器将所述数据包缓存至接收队列中;

步骤s42,发送第二信号至所述第一拦截模块,以供所述第一拦截模块在所述接收队列中获取数据包。

在本实施例中,所述步骤s40之前,所述方法包括:

步骤d,外接设备的远程数据访问客户端调用第二拦截模块中的拦截函数,以通过调用的拦截函数调用打包函数,并通过调用的打包函数对数据进行打包;

步骤e,所述远程数据访问客户端将打包后的数据包传输至第二数据转发服务器,由所述第二数据转发器将数据包通过第二数据转发客户端传输至第二数据读写转发模块;

步骤f,第二数据读写转发模块通过所述预设接口将数据包传输至第一数据读写模块,以供所述第一数据读写模块将数据包传输至远程数据访问服务器。

具体地,所述步骤e包括:

步骤e1,所述远程数据访问客户端将打包后的数据包缓存至发送队列中;

步骤e2,发送第一信号至所述第二数据转发服务器,以通知所述第二数据转发服务器在所述发送队列中获取数据。

需要说明的是,远程数据访问客户端在接收到第二sim卡模块代理传输的数据获取请求时,将所述数据获取请求转化成数据,基于转化后的数据调用第二拦截模块中的拦截函数。在本实施例中,第二拦截模块中的拦截函数为cmd函数,因此,远程数据访问客户端待发送的数据为cmd数据,由于第二拦截模块中的拦截函数为cmd函数,因此,远程数据访问客户端调用打包函数后,传入打包函数中的参数只有一种,打包后数据包的包头标识也只有一种,cmd标识。所述远程数据访问客户端对数据打包之后,将数据包缓存至发送队列中,并发送第一信号给第二数据转发服务器,由所述第二数据转发器在发送队列中提取数据包,第二数据转发器提取出数据包之后,同样会根据数据包的容量值决定是否执行拆分操作,具体的拆包过程在上文详述,此处不做赘述。然后,第二数据转发器将数据包通过第二数据转发客户端传输至第二数据读写转发模块,第二数据读写转发模块接收到数据包之后,通过usb接口的控制管道将数据包传输至第一数据读写模块,以供所述第一数据读写模块将数据包通过第一数据转发客户端传输至第一数据转发服务器。

当第一数据转发服务器接收到数据包之后,先将数据包缓存至接收队列中,然后发送第二信号至所述第一拦截模块,以通知所述第一拦截模块在所述接收队列中获取数据包。

在本实施例中,通过消息队列传输数据,使得数据的传输具有时序性,由于消息队列先进先出的特点,防止数据的传输顺序混乱,从而提高数据传输的准确性。

进一步地,提出本发明数据包传输方法的第五实施例。

数据包传输方法的第五实施例与数据包传输方法的第一至第四实施例的区别在于,所述预设接口还包括调试端口,所述调试端口用于调试数据。

在本实施例中,预设接口的内部硬件结构示意图可参照图9,如图9所示,所述预设接口包括以太网控制模型端口,所述以太网控制模型端口包括数据管道和控制管道。

进一步地,本发明实施例中,预设接口除了包括以太网控制模型端口,还可以包括调试端口,该调试端口可选为diag(diagnostics,调试)/adb(androiddebugbridge,安卓调试桥)端口,用于调试数据。

本发明实施例中,继续参照图9,数据管道、控制管道和调试端口的两端分别连接到第一应用处理器10和第二应用处理器20。需要说明的是,移动终端的第一应用处理器10的角色是host(主机),外接设备的第二应用处理器20的角色是device(设备)。在数据管道、控制管道和调试端口两端分别连接到第一应用处理器10和第二应用处理器20的情况下,第一应用处理器10和第二应用处理器20分别设置有usbhost驱动和usbdevice驱动,usbhost驱动和usbdevice驱动又分别设置有对应的数据管道驱动、控制管道驱动和调试端口驱动。

本发明实施例中,以太网控制模型端口中数据管道和控制管道的驱动文件不同,并且以太网控制模型端口中数据管道和控制管道在第一应用处理器10与第二应用处理器20中的驱动文件也不相同。移动终端和外接设备通过usb接口中的以太网控制模型端口连接,实现网络数据和sim卡数据的传输。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1