具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中的双卡双待手机如图5所示,包括第一芯片和第二芯片。其中,第一芯片的通信接口包括用来与外部设备连接的端口(该端口可以是USB端口、蓝牙端口、串口等物理端口,也可以是能够与外部设备进行通信的虚拟端口,本发明实施例中,在第一芯片的端口下设置了一个用来透传第二芯片的通信数据的虚拟接口,即将该端口模拟为复合端口)和用来与第二芯片连接的通信端口(该通信端口可以是物理端口,例如串口,也可以是虚拟端口),第二芯片的通信端口包括用来与第一芯片连接的通信端口(该通信端口可以是物理端口,例如串口,也可以是虚拟端口),第一芯片与第二芯片用来相互通信的通信端口为类型相同的对应端口。为了实现双卡双待手机中的第二芯片与外部设备的通信,本发明实施例提供的处理过程如图1所示,具体实现方式如下:
S101、双卡双待手机的第一芯片接收第一切换命令后,建立第一芯片的虚拟端口与该双卡双待手机的第二芯片的通信端口的连接,其中,第一切换命令用来指示第一芯片建立该第一芯片的虚拟端口与该双卡双待手机的第二芯片的通信端口的连接,可以是外部设备发出的,以USB端口为例,该第一切换命令可以是外部设备发送的DIAG命令,也可以是第二芯片发出的,例如,该第一切换命令可以承载于第二芯片发出的上报消息中;
S102、该第一芯片通过S101中建立的连接透传该第二芯片与外部设备之间的通信数据,该外部设备通过上述虚拟端口所属的复合端口与所述第一芯片连接。
现有技术的双卡双待手机中,从CPU芯片为了与外部设备连接,需要为从CPU芯片的串口安装接口头,还需要设置用来控制切换的切换开关,因此增加了硬件成本。且由于主CPU芯片与从CPU芯片分别使用各自的接口与外部设备连接以进行通信,造成用户使用不便。而本发明实施例提供的方法,由于为第一芯片(即主CPU芯片)设置了虚拟的端口,并建立该虚拟端口与第二芯片的通信端口之间的连接,使得第二芯片与外部设备之间可以通过第一芯片的复合端口进行数据通信,实现了外部设备通过一个复合端口双卡双待手机的两个芯片进行通信,无需第二芯片另外安装接口头,本发明实施例提供的方法也无需设置硬件切换开关,节省了硬件成本。
当第二芯片不再需要与外部设备通信时,本发明实施例提供的方法还包括:上述第一芯片接收到第二切换命令后、或者上述外部设备断开与该第一芯片的连接(作为举例而非限定,如果上述第一芯片的端口是USB端口,即指拔下外部设备与第一芯片之间的USB连接线)后,该第一芯片断开上述虚拟端口与上述第二芯片的通信端口之间的连接,并通过对应的通信端口与所述第二芯片的通信端口建立连接,即建立第一芯片与第二芯片用相互通信的一对端口的连接,以便传递所述第一芯片与所述第二芯片之间的通信数据。其中,第二切换命令可以是外部设备发出的,以USB端口为例,该第二切换命令可以是外部设备发送的DIAG命令,也可以是第二芯片发出的,例如,该第二切换命令可以承载于第二芯片发出的上报消息中。
在本发明实施例中,预先为双卡双待手机的第一芯片设置虚拟端口,并与第一芯片原有的端口组成复合端口。在双卡双待手机正常使用过程中,第一芯片与第二芯片之间通过对应的通信端口连接,实现内部通信。当第一芯片需要与外部设备进行通信时,则通过复合端口与外部设备建立连接。当第二芯片需要与外部设备进行通信时,第一芯片根据接收到的第一切换命令,断开第二芯片的通信端口与第二芯片对应的通信端口的连接,并建立第一芯片的虚拟端口与该第二芯片的通信端口之间的连接。
上述本发明实施例中的第一切换命令和第二切换命令可以是外部设备发起的,也可以是第二芯片发起的。当由外部设备发起时,本发明实施例还提供一种外部设备与双卡双待手机进行通信的方法其处理过程如图2所示,具体实现方式如下:
S201、通过与双卡双待手机的第一芯片的复合端口建立的连接,向该双卡双待手机的第一芯片发送第一切换命令;
S202、通过该复合端口下的虚拟端口与该双卡双待手机的第二芯片的通信端口建立的连接,与所述第二芯片进行数据通信。
下面将对本发明实施例在实际应用过程中的具体实现方式进行详细的说明。
实施例一
在本发明实施例一中,双卡双待手机包括主CPU芯片(即第一芯片)和从CPU芯片(即第二芯片)。主CPU芯片通过USB端口与外部设备进行通信。预先为主CPU芯片模拟以下USB端口以组成复合USB端口:DIAG、CONT,可选的,还可以模拟以下USB端口:Modem、CDROM。其中,Modem端口用于实现手机上网功能,DIAG端口用于实现手机诊断功能,CDROM端口用于实现手机模拟光盘功能,CONT端口用于实现外部设备与手机的从CPU芯片进行通信。
另外,手机的主CPU芯片还包括用来与从CPU芯片连接的通信端口,手机的从CPU芯片包括一个用来与主CPU芯片连接的通信端口,主CPU芯片与从CPU芯片之间用来相互连接的通信端口是一对类型相同的端口,其可以是物理端口,也可以是虚拟端口。手机正常工作时,上述主CPU芯片和从CPU芯片的一对通信端口连接。本发明实施例一提供的切换过程如图3所示,具体包括如下操作:
当外部设备需要与从CPU芯片进行通信时,
S301、外部设备通过其USB端口与主CPU芯片的复合USB端口建立连接;
S302、外部设备通过上述复合USB端口中的有效端口向主CPU发送第一切换命令,用于建立CONT端口与从CPU的通信端口之间的连接;例如,外部设备通过DIAG端口向主CPU发送第一切换命令,或者,外部设备通过SCSI(Small Computer System Interface,小型计算机系统接口)命令向主CPU发送第一切换命令(该第一切换命令以SCSI命令格式发送),或者,外部设备通过Modem端口向主CPU芯片发送第一切换命令(该第一切换命令以扩展的AT(Attention)命令格式发送);
S303、主CPU芯片接收到上述第一切换命令后,断开主CPU芯片与从CPU芯片之间一对通信端口的连接,并建立CONT端口与该从CPU芯片的通信端口的连接;
S304、主CPU芯片通过上述建立的CONT端口与从CPU芯片的通信端口的连接,透传外部设备与从CPU芯片之间的通信数据;
当外部设备需要结束与从CPU之间的通信时,
S305、外部设备通过上述复合USB端口中的有效端口向主CPU发送第二切换命令,用于断开CONT端口与从CPU的通信端口之间的连接;
S306、主CPU芯片接收到上述第二切换命令后,断开CONT端口与从CPU芯片的通信端口建立的连接,并建立主CPU芯片与从CPU芯片的一对通信端口之间的连接。
上述本发明实施例一中,外部设备通过主CPU芯片的复合USB端口实现了与从CPU芯片的通信,且从CPU芯片的通信端口连接切换可以通过软件实现,无需单独设置硬件切换开关。另外,当主CPU芯片与从CPU芯片之间的一对通信端口是虚拟端口时,主CPU芯片和从CPU芯片无需设置与对方通信的物理端口,进一步节省了硬件成本,并减少了硬件设计复杂度。
实施例二
本发明实施例二中,双卡双待手机的配置与实施例一中相同。手机正常工作时,手机的主CPU芯片和从CPU芯片的一对通信端口连接。本发明实施例二提供的切换过程如图4所示,具体包括如下操作:
当从CPU芯片需要与外部设备进行通信时,
S401、从CPU芯片通过与主CPU芯片连接的通信端口向主CPU发送第一切换命令(作为举例而非限定,该第一切换命令可以通过消息上报的形式发送),用于建立CONT端口与从CPU的通信端口之间的连接;
S402、主CPU芯片接收到上述第一切换命令后,断开主CPU芯片与从CPU芯片之间一对通信端口的连接,并建立CONT端口与该从CPU芯片的通信端口的连接;
S403、主CPU芯片通过上述建立的CONT端口与从CPU芯片的通信端口的连接,透传外部设备与从CPU芯片之间的通信数据;
当从CPU需要结束与外部设备之间的通信时,可参照实施例一中的步骤S305~S306;或者,从CPU通过与CONT端口连接的通信端口向外部设备发送通信结束命令,外部设备接收到该通信结束命令后,向主CPU芯片发送第二切换命令,并继续执行步骤306的操作。
上述本发明实施例二中,从CPU芯片通过主CPU芯片的复合USB端口实现了与外部设备的通信,且从CPU芯片的通信端口连接切换可以通过软件实现,无需单独设置硬件切换开关。另外,当主CPU芯片与从CPU芯片之间的一对通信端口是虚拟端口时,主CPU芯片和从CPU芯片无需设置与对方通信的物理端口,进一步节省了硬件成本,并减少了硬件设计复杂度。
实施例三
本发明实施例三中,双卡双待手机的配置与实施例一中相同。手机正常工作时,上述主CPU芯片和从CPU芯片的一对通信端口连接。当外部设备需要与从CPU芯片进行通信时,其处理过程可参照实施例一中的步骤S301~S304;当从CPU芯片需要与外部设备断开连接时,从CPU通过与CONT端口连接的通信端口向外部设备发送通信结束命令,外部设备接收到该通信结束命令后,向主CPU芯片发送第二切换命令,并继续执行步骤306的操作。
实施例四
本发明实施例四中,双卡双待手机包括主CPU芯片(即第一芯片)和从CPU芯片(即第二芯片)。主CPU芯片通过蓝牙端口与外部设备进行通信,预先为主CPU芯片模拟一个蓝牙端口,并与主CPU芯片原有的蓝牙端口组成复合蓝牙端口,该虚拟的蓝牙端口用于实现外部设备与手机的从CPU芯片进行通信。另外,手机的主CPU芯片还包括用来与从CPU芯片连接的通信端口,手机的从CPU芯片包括一个用来与主CPU芯片连接的通信端口,主CPU芯片与从CPU芯片之间用来相互连接的通信端口是一对类型相同的端口,其可以是物理端口,也可以是虚拟端口。手机正常工作时,上述主CPU芯片和从CPU芯片的一对通信端口连接。
本发明实施例四提供的切换过程具体包括如下操作:
当外部设备需要与从CPU芯片进行通信时,
外部设备通过其蓝牙端口与主CPU芯片的复合蓝牙端口建立连接;
外部设备通过上述复合蓝牙端口中的有效端口向主CPU发送第一切换命令,用于建立上述模拟的蓝牙端口与从CPU的通信端口之间的连接;
主CPU芯片接收到上述第一切换命令后,断开主CPU芯片与从CPU芯片之间一对通信端口的连接,并建立上述模拟的蓝牙端口与该从CPU芯片的通信端口的连接;
主CPU芯片通过上述建立的模拟蓝牙端口与从CPU芯片的通信端口的连接,透传外部设备与从CPU芯片之间的通信数据;
当外部设备需要结束与从CPU之间的通信时,
外部设备通过上述复合蓝牙端口中的有效端口向主CPU发送第二切换命令,用于断开上述模拟的蓝牙端口与从CPU的通信端口之间的连接;
主CPU芯片接收到上述第二切换命令后,断开上述模拟的蓝牙端口与从CPU芯片的通信端口建立的连接,并建立主CPU芯片与从CPU芯片的一对通信端口之间的连接。
上述本发明实施例四中,外部设备通过主CPU芯片的复合蓝牙端口实现了与从CPU芯片的通信,且从CPU芯片的通信端口连接切换可以通过软件实现,无需单独设置硬件切换开关。另外,当主CPU芯片与从CPU芯片之间的一对通信端口是虚拟端口时,主CPU芯片和从CPU芯片无需设置与对方通信的物理端口,进一步节省了硬件成本,并减少了硬件设计复杂度。
实施例五
本发明实施例五中,双卡双待手机的配置与实施例四中相同。手机正常工作时,手机的主CPU芯片和从CPU芯片的一对通信端口连接。本发明实施例五提供的切换过程具体包括如下操作:
当从CPU芯片需要与外部设备进行通信时,
从CPU芯片通过与主CPU芯片连接的通信端口向主CPU发送第一切换命令(作为举例而非限定,该第一切换命令可以通过消息上报的形式发送),用于建立模拟的蓝牙端口与从CPU的通信端口之间的连接;
主CPU芯片接收到上述第一切换命令后,断开主CPU芯片与从CPU芯片之间一对通信端口的连接,并建立上述模拟的蓝牙端口与该从CPU芯片的通信端口的连接;
主CPU芯片通过上述建立的模拟蓝牙端口与从CPU芯片的通信端口的连接,透传外部设备与从CPU芯片之间的通信数据;
当从CPU需要结束与外部设备之间的通信时,可参照实施例一中相应的步骤实现;或者,从CPU通过与CONT端口连接的通信端口向外部设备发送通信结束命令,外部设备接收到该通信结束命令后,向主CPU芯片发送第二切换命令,并继续执行操作:主CPU芯片接收到上述第二切换命令后,断开上述模拟的蓝牙端口与从CPU芯片的通信端口建立的连接,并建立主CPU芯片与从CPU芯片的一对通信端口之间的连接。
上述本发明实施例五中,从CPU芯片通过主CPU芯片的复合蓝牙端口实现了与外部设备的通信,且从CPU芯片的通信端口连接切换可以通过软件实现,无需单独设置硬件切换开关。另外,当主CPU芯片与从CPU芯片之间的一对通信端口是虚拟端口时,主CPU芯片和从CPU芯片无需设置与对方通信的物理端口,进一步节省了硬件成本,并减少了硬件设计复杂度。
实施例六
本发明实施例六中,双卡双待手机的配置与实施例四中相同。手机正常工作时,上述主CPU芯片和从CPU芯片的一对通信端口连接。当外部设备需要与从CPU芯片进行通信时,其处理过程可参照实施例四中相应的步骤;当从CPU芯片需要与外部设备断开连接时,从CPU通过与模拟蓝牙端口连接的通信端口向外部设备发送通信结束命令,外部设备接收到该通信结束命令后,向主CPU芯片发送第二切换命令,并继续执行步骤操作:主CPU芯片接收到上述第二切换命令后,断开上述模拟的蓝牙端口与从CPU芯片的通信端口建立的连接,并建立主CPU芯片与从CPU芯片的一对通信端口之间的连接。
实施例七
本发明实施例中,双卡双待手机是android手机,包括芯片ARM9和芯片ARM11,ARM9主要用于进行3G网络下的无线传输及应用功能的实现,ARM11运行Linux操作系统和android应用程序。预先在ARM9(即第一芯片)的USB端口下虚拟一个ADB(Android Debug Bridge,android的调试桥)端口,用于实现外部设备与android手机的ARM11进行通信。预先在ARM11上虚拟一个通信端口,用于实现与ARM9的虚拟ADB端口连接。当需要实现外部设备与ARM11之间通信连接以实现ARM11的ADB功能时,作为举例而非限定,其处理过程如下:
ARM9接收到第一切换命令后,建立虚拟ADB端口与ARM11的虚拟通信端口之间的连接;
ARM9通过虚拟ADB端口与ARM11的虚拟通信端口之间建立的连接,透传外部设备与ARM11上的ADB应用程序之间的通信数据,从而实现ADB功能。
本发明实施例中,在手机正常工作过程中,ARM11与ARM9之间通过一对对应的虚拟通信端口连接,上述第一切换命令可以由ARM11发起,也可以由外部设备通过USB端口发起。
当外部设备与ARM11之间需要断开连接时,ARM9根据接收到的第二切换命令,断开虚拟ADB端口与ARM11的虚拟通信端口之间的连接,上述第二切换命令可以由ARM11发起,也可以由外部设备通过USB端口发起。
实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种双卡双待手机,包括第一芯片51和第二芯片52,其结构如图5所示,第一芯片51的具体实现结构包括:
切换控制模块511,用于在接收第一切换命令后,建立第一芯片51的虚拟端口与第二芯片52的通信端口的连接,其中,第一切换命令用来指示第一芯片建立该第一芯片的虚拟端口与该双卡双待手机的第二芯片的通信端口的连接,可以是外部设备发出的,以USB端口为例,该第一切换命令可以是外部设备发送的DIAG命令,也可以是第二芯片52发出的,例如,该第一切换命令可以承载于第二芯片发出的上报消息中;
复合端口模块512,该复合端口模块包括上述虚拟端口,用于与外部设备的端口进行连接;复合端口模块512中还包括第一芯片51的原有端口;
数据透传控制模块513,用于通过上述切换控制模块511建立的连接透传第二芯片52与外部设备之间的通信数据。
上述本发明实施例提供的双卡双待手机中,第一芯片51的通信端口还包括用来与第二芯片连接的通信端口(该通信端口可以是物理端口,例如串口,也可以是虚拟端口),第二芯片52的通信端口包括用来与第一芯片连接的通信端口(该通信端口可以是物理端口,例如串口,也可以是虚拟端口),第一芯片51与第二芯片52用来相互通信的通信端口为类型相同的对应端口。
本发明实施例提供的双卡双待手机,由于为第一芯片(即主CPU芯片)设置了虚拟的端口,并建立该虚拟端口与第二芯片的通信端口之间的连接,使得第二芯片与外部设备之间可以通过第一芯片的复合端口进行数据通信,不仅实现了外部设备通过一个复合端口双卡双待手机的两个芯片进行通信,无需第二芯片另外安装接口头,本发明实施例提供的方法也无需设置硬件切换开关,节省了硬件成本。
当第二芯片不再需要与外部设备通信时,切换控制模块511还用于在接收到第二切换命令后、或者在复合端口模块512与上述外部设备的端口连接断开(作为举例而非限定,如果上述第一芯片的端口是USB端口,即指拔下外部设备与第一芯片51之间的USB连接线)后,断开虚拟端口512与第二芯片52的通信端口之间的连接,并通过对应的通信端口与第二芯片52的通信端口建立连接,即建立第一芯片51与第二芯片52用相互通信的一对端口的连接,以便传递第一芯片51与第二芯片52之间的通信数据。其中,第二切换命令可以是外部设备发出的,以USB端口为例,该第二切换命令可以是外部设备发送的DIAG命令,也可以是第二芯片发出的,例如,该第二切换命令可以承载于第二芯片发出的上报消息中。
本发明实施例中,在双卡双待手机正常工作时,第一芯片51与第二芯片52之间的一对通信端口连接,以便实现内部通信,因此,切换控制模块511在建立第一芯片51的虚拟端口与第二芯片52的通信端口的连接时,还用于断开第二芯片52的通信端口与第一芯片51对应的通信端口之间的连接。
上述本发明实施例中的第一切换命令和第二切换命令可以是外部设备发起的,也可以是第二芯片52发起的。当由外部设备发起时,本发明实施例还提供一种与双卡双待手机通信的设备,其结构如图6所示,具体实现结构包括:
端口模块61,用于与双卡双待手机的第一芯片中的复合端口进行连接;
命令发送模块62,用于通过上述端口模块与双卡双待手机的第一芯片的复合端口建立的连接,向该双卡双待手机的第一芯片发送第一切换命令;
数据传输模块63,用于通过上述复合芯片下的虚拟端口与上述双卡双待手机的第二芯片的通信端口建立的连接,与该第二芯片进行数据通信。
本发明实施例提供的设备中,命令发送模块62还用于通过端口模块61与双卡双待手机的第一芯片的复合端口建立的连接,向该双卡双待手机的第一芯片发送第二切换命令,结束与上述第二芯片之间的数据通信。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。