具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例从USB设备侧描述实现USB设备的虚拟设备配置的方法流程图,USB设备与计算机相连接,所述USB设备与所述计算机连接后可以在所述计算机上虚拟为多个虚拟设备,每个虚拟设备对应一个驱动程序,如图1所示,所述方法包括:
步骤S101:获取所述计算机已安装的虚拟设备驱动程序的版本信息,所述版本信息包括版本号和驱动程序校验码,不同的驱动程序对应不同的驱动程序校验码,校验码可以用来判断驱动程序是否改变。
步骤S102:根据所述版本信息判断所述已安装的虚拟设备驱动程序的版本与所述USB设备的虚拟设备驱动程序的版本是否相同。如果否,执行步骤S102;如果是,执行步骤S104。
首先判断所述已安装的虚拟设备驱动程序与所述USB设备的虚拟设备驱动程序的版本号是否相同,如果版本号相同,再判断所述已安装的虚拟设备驱动程序与所述USB设备的虚拟设备驱动程序校验码是否相同,如果已安装的虚拟设备驱动程序被修改,已安装对应的校验码将会改变,所述已安装的虚拟设备驱动程序与所述USB设备的虚拟设备驱动程序的版本将不同。
步骤S103:如果不相同,向所述计算机发送虚拟设备驱动程序安装指令,(例如,在所述计算机上弹出CDROM设备)以使所述计算机安装所述USB虚拟设备驱动程序,然后执行步骤S104。
例如,USB设备在计算机上自动弹出CDROM设备,以使所述计算机自动卸载已安装的虚拟设备驱动程序并安装所述USB虚拟设备驱动程序。
步骤S104:USB设备从所述计算机获取所述USB设备的虚拟设备配置参数。
步骤S105:根据所述USB设备的虚拟设备配置参数向所述计算机发送所述虚拟设备配置参数中用于指定虚拟设备的描述符,以使所述计算机配置所述描述符对应的虚拟设备。在本发明的一些实施例中,所述虚拟设备配置参数在所述计算机的注册表或安装目录下。
USB设备通过USB接口接入计算机之后,可以虚拟成多种设备形态,如U盘、USB虚拟串口、USB虚拟网卡及光盘等。
USB设备可以是手机、上网卡以及数码相框等。下面以USB设备是手机为例进行说明。
图2为手机通过USB接口与计算机连接的实物图。如图2所示,手机201通过USB接口202与计算机203相连接。
图3为本发明实施例从手机侧描述实现手机的虚拟设备配置的流程图,与图1中的步骤相比,图3增加了手机201接入计算机及自动判断计算机203是否安装过手机的虚拟设备驱动程序的步骤。如图3所示,所述方法包括下面步骤:
步骤S301:手机201接入计算机203。
步骤S302:手机201自动判断计算机203是否安装过手机的虚拟设备驱动程序,如果计算机203已经安装过驱动程序,进行步骤S303,如果计算机203没有安装过手机各个虚拟设备的驱动程序,进行步骤S305。
USB设备接入计算机后,可以虚拟成多种设备形态。假设手机201接入计算机203后可以虚拟成的设备为U盘和网卡,还可以虚拟成多个串口,如调试串口和控制命令串口等。手机201接入计算机203后,在启动过程中把虚拟成的设备的描述符上报到计算机203。虚拟设备的描述符中包含虚拟设备的ID,假设U盘的ID为1,网卡的ID为2,调试串口的ID为3控制命令串口的ID为4。计算机203接收到手机201上报描述符后,根据描述符可以知道的虚拟设备U盘、网卡、调试串口和控制命令串口的ID分别为1、2、3和4,在计算机203上就会展开U盘、网卡、调试串口和控制命令串口四个虚拟设备对应的四个端口。
现有技术中,Windows操作系统一般在硬盘中安装有U盘的驱动程序,如果计算机203没有安装虚拟设备驱动程序,计算机会将硬盘中安装的U盘驱动程序加载到内存中。如果计算机203已经安装虚拟设备驱动程序(这里包括网卡驱动程序、调试串口驱动程序及控制命令串口驱动程序),手机201接入计算机203后,计算机203会将硬盘中已经安装的虚拟设备驱动程序加载到内存中;计算机203会在预定的时间内向手机201下发已经安装的网卡的驱动程序的版本信息,所述版本信息包括版本号和驱动程序校验码。如果计算机203在预定的时间内没有向手机发送已经安装的虚拟设备驱动程序的版本信息,说明计算机203没有安装虚拟设备驱动程序。
步骤S303:手机201获取所述计算机203已安装的虚拟设备驱动程序的版本信息。
手机201获取计算机203下发的已经安装的驱动程序版本信息,驱动程序版本信息包括已经安装的手机201的各个虚拟设备驱动程序的版本号及校验码。
步骤S304:手机201比较当前安装的驱动程序的版本与手机201自身的驱动程序的版本,如果当前安装的虚拟设备驱动程序的版本与手机201自身的驱动程序的版本不相同,进行步骤S305;否则进行步骤S306。
手机201首先根据驱动程序版本信息判断已经安装的网卡的驱动程序的版本号与接入的手机201的虚拟设备驱动程序版本号是否相同。
如果已经安装的网卡的驱动程序的版本号与接入的手机201的虚拟驱动程序版本号不同,说明已经安装的虚拟设备驱动程序版本与接入的手机201的虚拟设备驱动程序版本不相同;如果已经安装的虚拟设备驱动程序的版本号与接入的手机201的虚拟设备驱动程序版本号相同,例如都为012345,则比较已经安装的虚拟设备驱动程序校验码与接入的手机201的虚拟设备驱动程序校验码,如果已经安装的网卡驱动程序校验码与接入的手机201的网卡驱动程序校验码不同,说明已经安装的手机驱动程序被修改;如果已经安装的虚拟设备驱动程序校验码与接入的手机201的虚拟设备驱动程序校验码相同,说明已经安装的手机驱动程序版本与接入的手机201的驱动程序版本相同,手机201将会获取到计算机发送的虚拟设备配置参数,例如可以用配置参数1111的前两位表示当前的虚拟设备的形态为U盘+网卡+调试串口+控制命令串口,0111的前两位表示当前虚拟设备是网卡+调试串口+控制命令串口,1011表示当前虚拟设备是U盘+调试串口+控制命令串口。
步骤S305:手机201向计算机203发送虚拟设备驱动程序安装指令,以使计算机203安装所述USB设备的虚拟设备驱动程序。
如果手机201没有安装虚拟设备驱动程序,或者已经安装的虚拟设备驱动程序的版本与接入的手机201的虚拟驱动程序版本不同,手机201向计算机203发送虚拟设备驱动程序安装指令,以使计算机203安装所述USB设备的虚拟设备驱动程序。手机201向计算机203发送虚拟设备驱动程序安装指令可以包括:手机201在计算机203上自动弹出CDROM设备,通过CDROM设备的autorun,计算机203自动卸载已经安装的虚拟设备驱动程序,并安装手机201的虚拟设备驱动程序,本发明不限于此。现有技术中,一般要在U盘驱动程序加载到内存中之后,才能运行CDROM设备,所以计算机需要将硬盘中安装的U盘驱动程序加载到内存中。手机201在计算机203上自动弹出CDROM设备,通过CDROM设备的autorun,计算机203自动安装网卡驱动程序。
步骤S306:手机201从计算机203获取虚拟设备的配置参数。
当手机201判断出从计算机203安装的虚拟设备驱动程序的版本与手机201自身的驱动程序的版本相同时,或者在手机201的驱动程序安装完成之后,手机201从计算机203获取虚拟设备的配置参数。计算机203向手机201下发虚拟设备配置参数,手机201获取虚拟设备的配置参数。在本发明的一些实施例中,虚拟设备参数存在于计算机的注册表或安装目录下。
步骤S307:手机201根据获取的虚拟设备配置参数,完成当前虚拟设备的配置。
手机201根据虚拟设备配置参数,向计算机203上报拟设备配置参数中用于指定虚拟设备的描述符,以使所述计算机配置所述描述符对应的虚拟设备。描述符中包括虚拟设备的ID。假设虚拟设备参数为01011,手机201只需要向计算机203上报网卡的描述符、调试串口的描述符和控制命令串口的描述符,计算机203获取网卡的描述符、调试串口的描述符和控制命令串口的描述符,就能够识别当前的虚拟设备为网卡、调试串口及控制命令串口,这样就完成了对虚拟设备的配置。
手机201在运行过程中,计算机203要将原来的虚拟设备形态改为U盘、调试串口及控制命令串口,只需将虚拟设备配置参数01011修改为10011,然后发送给手机201,手机201向计算机203上报U盘的描述符,计算机203获取U盘的描述符,就能够识别当前的虚拟设备为U盘、调试串口及控制命令串口,这样就完成了对虚拟设备配置的修改。
本发明实施例的有益技术效果:本发明能够实现USB设备的虚拟设备驱动版本的匹配,动态配置USB设备的虚拟设备工作状态,动态增加或减少虚拟设备,方便动态升级虚拟设备的配置。
图4为本发明实施例USB设备的结构示意图。所述USB设备与计算机相连接,所述USB设备与所述计算机连接后可以在所述计算机上虚拟为多个虚拟设备,如U盘、USB虚拟串口、USB虚拟网卡及光盘等。每个虚拟设备对应一个驱动程序,如图4所示,所述USB设备400包括:版本信息获取单元401、版本判断单元402及指令发送单元403。版本信息获取单元401用于获取计算机已安装的虚拟设备驱动程序的版本信息,所述版本信息包括版本号和驱动程序校验码。
版本判断单元402用于根据所述版本信息判断所述已安装的虚拟设备驱动程序的版本与所述USB设备的虚拟设备驱动程序的版本是否相同。版本判断单元402首先判断所述已安装的虚拟设备驱动程序与所述USB设备的虚拟设备驱动程序的版本号是否相同,如果版本号相同,再判断所述已安装的虚拟设备驱动程序与所述USB设备的虚拟设备驱动程序校验码是否相同,如果已安装的虚拟设备驱动程序被修改,已安装的虚拟设备驱动程序对应的校验码将会改变,所述已安装的虚拟设备驱动程序与所述USB设备的虚拟设备驱动程序的版本将不同。
当所述已安装虚拟设备驱动程序的版本与所述USB设备虚拟设备驱动程序的版本不相同时,指令发送单元403向所述计算机发送虚拟设备安装指令,例如在所述计算机上弹出CDROM设备,以使所述计算机自动卸载已安装的虚拟设备驱动程序并安装所述USB虚拟设备驱动程序,不发明不限于此。
如图5所示,所述USB设备还包括:配置参数获取单元501及描述符发送单元502,配置参数获取单元501用于从所述计算机获取所述USB设备的虚拟设备配置参数,所述虚拟设备配置参数在所述计算机的注册表或安装目录下。描述符发送单元502用于根据所述USB设备的虚拟设备的配置参数向所述计算机发送所述配置参数中用于指定虚拟设备的描述符,以使所述计算机配置所述描述符对应的虚拟设备。所述虚拟设备配置参数在所述计算机的注册表或安装目录下。
当所述已安装的虚拟设备驱动程序的版本与所述USB设备的虚拟设备驱动程序的版本相同时,所述配置参数获取单元501还用于从所述计算机获取所述已安装的虚拟设备的配置参数;所述描述符发送单元502还用于根据所述已安装的虚拟设备的配置参数向所述计算机发送所述配置参数中用于指定虚拟设备的描述符,以使所述计算机配置所述描述符对应的虚拟设备。所述虚拟设备配置参数在所述计算机的注册表或安装目录下。
本发明实施例的有益技术效果:本发明能够实现USB设备的虚拟设备驱动版本的匹配,动态配置USB设备的虚拟设备工作状态,动态增加或减少虚拟设备,方便动态升级虚拟设备的配置。
图6为本发明实施例从计算机侧实现USB设备的虚拟设备配置的方法流程图。如图6所示,所述方法包括:
S601:向USB设备发送已安装的虚拟设备驱动程序的版本信息,所述版本信息包括版本号和驱动程序校验码。
S602:根据所述USB设备发来的虚拟设备驱动程序安装指令安装所述USB设备的虚拟设备驱动程序。USB设备发来的虚拟设备驱动程序安装指令可以表现为USB设备在计算机上弹出CDROM设备,本发明不限于此。
USB设备弹出CDROM设备后,通过CDROM的autorun,计算机安装所述USB设备的虚拟设备驱动程序,在安装所述USB设备的虚拟设备驱动程序之前,要先通过CDROM的autorun卸载所述已安装虚拟设备驱动程序。
上述方法在步骤S602之后,还可以包括:
S603:计算机向所述USB设备发送所述USB设备的虚拟设备配置参数。
S604:获取所述USB设备发送的所述虚拟设备配置参数中用于指定虚拟设备的描述符,以配置所述描述符对应的虚拟设备。
USB设备通过USB接口接入计算机之后,可以虚拟成多种设备形态,如U盘、USB虚拟串口、USB虚拟网卡及光盘等。USB设备可以是手机、上网卡以及数码相框等,图3中已经以手机为例从USB设备侧详细说明了如何实现USB设备的虚拟设备配置,在此不再赘述。
本发明实施例的有益技术效果:本发明能够实现USB Device驱动版本的匹配,减少系统由于PC侧驱动不相同而导致的系统不可用。能动态配置USB设备的虚拟设备工作状态,动态增加或减少虚拟设备,方便动态升级虚拟设备的配置。
图7为本发明实施例计算机的结构示意图。如图7所示,所述计算机700包括:版本信息发送单元701及驱动程序安装单元702;版本信息发送单元701用于向USB设备发送已安装的虚拟设备驱动程序的版本信息,所述版本信息包括版本号和驱动程序校验码;如果所述USB设备根据所述版本信息判断出所述已安装的虚拟设备驱动程序的版本与所述USB设备虚拟设备驱动程序的版本不相同,驱动程序安装单元702根据所述USB设备发来的虚拟设备驱动程序安装指令,安装所述USB设备的虚拟设备驱动程序。
所述USB设备发来的虚拟设备驱动程序安装指令可以为在计算机上弹出CDROM设备,本发明不限于此。在计算机上弹出CDROM设备后,通过CDROM的autorun,驱动程序安装单元702安装所述USB设备的虚拟设备驱动程序,在安装所述USB设备的虚拟设备驱动程序之前,要先通过CDROM的autorun卸载所述已安装虚拟设备驱动程序。
如图8所示,计算机700还包括:配置参数发送单元801及描述符获取单元802。配置参数发送单元801用于向所述USB设备发送所述USB设备的虚拟设备配置参数;描述符获取单元802用于获取所述USB设备发送的所述虚拟设备配置参数中用于指定虚拟设备的描述符,以配置所述描述符对应的虚拟设备。
如果所述已安装虚拟设备驱动程序的版本与所述USB设备虚拟设备驱动程序的版本相同,配置参数发送单元801向所述USB设备发送所述已安装的虚拟设备配置参数;描述符获取单元802获取所述已安装发送的所述虚拟设备配置参数中用于指定虚拟设备的描述符,以配置所述描述符对应的虚拟设备。
USB设备通过USB接口接入计算机之后,可以虚拟成多种设备形态,如U盘、USB虚拟串口、USB虚拟网卡及光盘等。USB设备可以是手机、上网卡以及数码相框等。
本发明实施例的有益技术效果:本发明能够实现USB设备的虚拟设备驱动版本的匹配,动态配置USB Device虚拟设备工作状态,动态增加或减少虚拟设备,方便动态升级虚拟设备的配置。
上述仅以手机作为USB设备对本发明的实施例进行描述,并不是用于限定本发明,网卡、数码相框等设备同样也能作为USB设备实现手机的上述功能。
显然,本领域的技术人员应该明白,上述的本发明的各单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行。或者将它们分别制作成各个电路模块,或者将它们中的多个单元或步骤制作成单个电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。