一种有源usb设备及其工作模式的切换方法

文档序号:6375279阅读:159来源:国知局
专利名称:一种有源usb设备及其工作模式的切换方法
技术领域
本发明涉及无线通信领域,尤其涉及一种有源USB设备及其工作模式的切换方法。
背景技术
基于USB接口的很多产品(包括无线终端产品、高性能HID产品等等),都已具备自动安装(或称自启动)的功能。其实现原理就是将该产品模拟出一个虚拟光盘设备,用户可 以直接安装该虚拟光盘中的驱动程序从而替代了传统的通过随机附带的物理光盘来安装驱动程序的整个操作。为了实现这个功能,该USB设备必须至少具备单光盘模式(用于安装驱动程序或其他配置管理软件)和正常工作模式(可能是多端口复合设备用以实现不同的端口功能)这两种模式。用户在单光盘模式下安装完PC驱动程序后,设备需要切换至工作模式下来执行各种用户功能。就无线终端领域的USB Modem数据卡产品而言,设备进行端口切换操作时主要采取硬件重启的策略设备收到PC发送的SCSI (Small Computer System Interface,小型计算机系统接口)切口指令后会先在其Flash空间设置相应的标志文件,标志文件建立后执行整板重启函数。待设备整板重启后初始化USB模块的过程中,通过判断相应的标志文件将设备枚举为复合设备多端口模式,即正常工作模式。随着无线终端的飞速发展,越来越多的移动运营商及用户群体更青睐于支持WiFi功能的Ufi类数据卡产品。Ufi类数据卡产品因具备独立供电的电池功能模块,因此其应用环境也较传统的数据卡产品复杂很多。使用传统自启动方式安装Ufi类数据卡产品的PC驱动程序时可能会如下状况设备在单光盘模式下安装完PC侧驱动程序后会切换至复合设备多端口模式。用户拔掉USB线缆,在电池供电不关机的状态下将该设备插入到另外一台未安装过驱动程序的PC。此时,设备已处于复合设备多端口模式,因此会在该PC上枚举出多个未安装过驱动程序的端口,且所有端口都无法正常使用。在这种情况下,用户只有通过重启设备,待单光盘重新上报枚举完成后才可以正常安装驱动程序。从用户体验的角度上讲,上述现象都属于用户无法容忍接受,需要开发者即刻规避或解决的。

发明内容
本发明要解决的主要技术问题是,提供一种有源USB设备及其工作模式的切换方法,使得USB设备能够在与主机设备断开连接后,无需用户重启设备还能安装驱动程序,提闻用户体验。为解决上述技术问题,本发明提供一种有源USB设备工作模式的切换方法,其具体技术方案如下
一种有源USB设备工作模式的切换方法,其特征在于,包括以下步骤USB设备与第一主机设备连接,USB设备处于复合设备多端口模式;USB设备与第一主机设备断开连接,USB设备保持开机状态;当检测到USB设备与第一主机设备断开连接时,USB设备从复合设备多端口模式切换到单光盘模式。进一步地,所述有源USB设备工作模式的切换方法还包括当检测到所述USB设备与已经安装过驱动程序的第一主机设备或其他已经安装过驱动程序的主机设备连接时,所述USB设备从单光盘模式切换到复合设备多端口模式。进一步地,所述USB设备从复合设备多端口模式下切换到单光盘模式的过程包·括执行USB协议栈重启功能使USB设备从复合设备多端口模式下切换到单光盘模式。进一步地,所述执行USB协议栈重启功能的处理过程包括获取单光盘模式的配置信息;USB控制器断连操作;禁止功能驱动程序FD和端点EP,重新配置功能驱动程序FD和端点EP ;以新的配置重新初始化功能驱动程序FD和端点EP ;USB控制器重新连接操作;回调函数处理。进一步地,所述USB设备从单光盘模式切换到复合设备多端口模式包括执行USB协议栈重启功能使USB设备从单光盘模式切换到复合设备多端口模式。进一步地,所述USB设备从单光盘模式切换到复合设备多端口模式包括USB设备接收第一主机设备或者其他主机设备的切口指令,重启设备使USB设备从单光盘模式切换到复合设备多端口模式。进一步地,所述执行USB协议栈重启功能的具体处理过程获取复合设备多端口模式的配置信息;USB控制器断连操作;禁止功能驱动程序FD和端点EP,重新配置功能驱动程序FD和端点EP ;以新的配置重新初始化功能驱动程序FD和端点EP ;USB控制器重新连接操作;回调函数处理。同样为了解决上述的技术问题,本发明还提供了一种有源USB设备,其具体的技术方案如下一种有源USB设备,其特征在于,包括电源模块、检测模块、切换模块;所述电源模块用于当USB设备与第一主机设备断开连接后,提供电源给USB设备使其保持开机状态,所述检测模块用于检测USB设备是否与主机设备断开连接;所述切换模块用于当检测模块检测USB设备与主机设备断开连接时,使USB设备从复合设备多端口模式下切换到单光盘模式。进一步地,所述检测模块还用于检测所述USB设备是否与第一主机设备或者其他主机设备连接;所述切换单元还用于当检测模块检测到USB设备与第一主机设备或者其他主机设备连接时,判断第一主机设备或者其他主机设备是否已经安装过驱动程序,若已经安装过驱动程序,则将USB设备的工作模式从单光盘模式切换到复合设备多端口模式。进一步地,所述切换模块用于执行USB协议栈重启功能使USB设备的工作模式从复合设备多端口模式下切换到单光盘模式。进一步地,所述USB设备为支持WiFi功能的数据卡。本发明的有益效果是本发明的一种有源USB设备及其工作模式的切换方法可以提高用户的体验。具体的在方法中,当USB设备与主机设备断开连接后USB设备从复合设备多端口模式下切换到单光盘模式使得USB设备在与其他未安装过的主机设备连接时,能够直接安装驱动程序;USB设备执行USB协议栈重启功能来切换USB的工作模式替代使用设备重启来切换工作模式可以节省USB设备开机的时间,提高USB设备的工作效率,同时也提高了用户的实际体 验。


图I为本发明实施例一 USB设备在正常开机过程中USB端口上报切换的流程图;图2为本发明实施例一 USB设备在复合设备时拔掉USB线缆后端口切换的流程图;图3为本发明实施例一中执行USB协议栈重启的处理流程图;图4为本发明实施例一中一种USB设备初始化流程5为本发明实例一 USB设备的工作流程图;图6为本发明实施例二有源USB设备的结构示意图。
具体实施例方式下面通过具体实施方式
结合附图对本发明作进一步详细说明。实施例一具体的以Ufi类终端产品为例,在通常情况下,无论用户是否第一次开机,本发明涉及的Ufi类终端产品都会正常枚举为单光盘设备。设备通过USB线缆插入PC,会上报为一个单光盘设备(PC未安装过驱动程序)或者上报为复合设备多端口模式(PC已经安装过驱动程序,则会从单光盘模式直接切换至复合设备多端口模式),该流程为通用的流程,如图I所示。本实施例的切换方法包括USB设备与第一主机设备连接,USB设备处于复合设备多端口模式;USB设备与第一主机设备断开连接,USB设备保持开机状态;当检测到USB设备与第一主机设备断开连接时,USB设备从复合设备多端口模式切换到单光盘模式。基于该方法USB设备在不关机状态下与主机设备断开连接后,USB设备从复合设备多端口模式下切换到单光盘模式。通常设备在PC机上安装完驱动程序后,会被过滤驱动发送的指令(SCSI指令)切换至复合设备多端口工作模式,用户在该模式下正常使用设备。用户拔掉USB线缆后,在不断电的情况下断开USB连接后,设备的状态会由复合设备多端口模式再次切换回到单光盘模式。此时若用户将设备重新插入一台未安装过驱动程序的PC机,该PC机可以为先前USB设备插入的PC机,也可以是其他PC机,就可以通过设备枚举出来的光盘进行驱动程序安装等操作,之后就可以正常使用设备了。用户不必重新启动设备使USB设备处于单光盘模式,这是只需将在不关机状态下的USB插入未安装过驱动程序的PC机中即可安装驱动程序。本实施例的切换方法还包括当检测到所述USB设备与已经安装过驱动程序的第一主机设备或其他已经安装过驱动程序的主机设备连接时,所述USB设备从单光盘模式切换到复合设备多端口模式。USB设备重新与先前插入的主机设备连接或者与其他主机设备连接,若主机设备已经安装过驱动程序,则USB设备从单光盘模式切换到复合设备多端口模式。如在用户拔掉USB线缆后,USB设备从复合设备多端口模式下切换到单光盘模式。当用户将该USB设备插入之前安装过驱动程序的PC机,USB设备从单光盘模式切换到复合设备多端口模式,使USB与主机设备正常工作。 本实施例中的USB设备无论设备是从单光盘模式切换至复合设备多端口模式还是从复合设备多端口模式切回单光盘模式都可以通过执行USB协议栈重启功能来实现。如图2所示,当用户拔掉USB线缆后,USB在不断电的情况下,设备的状态会由复合设备多端口模式再次切换回到单光盘模式的过程设备检测到USB线缆断开的中断后,电源管理模块进行相应的处理,并向USB适配层的MS任务发送信号量。MS任务循环检测各种信号量,当检测到USB断连的信号量后开始执行USB协议栈重启功能。若用户将该USB设备插入已安装过驱动程序的PC机,USB设备将会执行USB协议栈重启功能使USB设备从单光盘模式切换到复合设备多端口模式,实现USB设备与主机设备的正常工作。当然在USB设备插入已安装过驱动程序的PC机时,当检测到PC机已经安装过驱动程序后,下发切口指令通过设备重启的方式将设备切换至复合设备多端口模式供用户使用。如过滤驱动检测到设备上报的光盘PID是已经安装过的,就会直接下发SCSI切口指令,将设备重启后切换至复合设备多端口模式供用户使用。在实际应用中装好电池开机待设备正常启动运行后,将设备通过USB线缆连接至PC。如果此时不是设备第一次连接PC (即设备以前已经安装过PC侧驱动程序),则PC会直接发送端口切换指令给设备,设备收到该指令后会执行重启操作。只有在用户先连接USB线缆再开机的情况下,设备重启的操作才会在不被察觉的状态下完成。但是在此环境下设备一共启动了两次,用户可能会感觉开机的时间较长。所以通过执行USB协议栈重启功能使USB设备从单光盘模式切换到复合设备多端口模式可以避免重启设备,减少开机时间,提闻用户的体验。上述USB设备执行USB协议栈重启功能使USB设备从复合设备多端口模式下切换到单光盘模式,其中执行USB协议栈重启功能的处理过程主要包括获取单光盘模式的配置信息;USB控制器断连操作;禁止功能驱动程序FD和端点EP,重新配置功能驱动程序FD和端点EP ;以新的配置重新初始化功能驱动程序FD和端点EP ;
USB控制器重新连接操作;回调函数处理。同样在USB设备执行USB协议栈重启功能使USB设备从单光盘模式切换到复合设备多端口模式,其中执行USB协议栈重启功能的处理过程主要包括获取复合设备多端口模式的配置信息;USB控制器断连操作; 禁止功能驱动程序FD和端点EP,重新配置功能驱动程序FD和端点EP ;以新的配置重新初始化功能驱动程序FD和端点EP ;USB控制器重新连接操作;回调函数处理。具体的,如图3所示,执行USB协议栈重启功能实现USB设备从复合设备多端口模式下切换到单光盘模式中执行USB协议栈重启功能具体处理过程包括MS (Mass Storage,大容量存储设备)任务单元接收到电源管理的信号量;获取单光盘模式的必要信息;禁止功能驱动程序FD和端点EP,重新配置功能驱动程序FD和端点EP以新的配置重新初始化USB设备FD (Function Driver,功能驱动程序)和EP (EndPoint,端点)结构;USB断连操作;设置USB Core相应的状态;将禁用并释放FD (Function Driver,功能驱动程序)和EP (End Point,端点)的状态;以新的配置初始化FD (Function Driver,功能驱动程序);重新分配EP及配置相关控制器;USB重新连接操作;其他回调函数处理;结束。在执行USB协议栈重启功能过程中,首先需要将光盘相关的VID、PID等信息从配置文件中读出并保存在全局变量中;USB断连操作可以通过更改USB相关控制寄存器内容,断开USB设备与PC机的USB连接,如果是用户拔线断开USB连接的话这一步可以省略掉;按照新的端口组合类型完成各类FD (不同类型的FD用以实现不同类型的板侧功能)结构配置工作,为后续的初始化工作准备,包括OBEX (Object Exchange,中文对象交换)、ACM (Abstract Control Model,抽象控制模式)、ECM (Ethernet Control Model,以太网控制I旲式)等等;进入USB适配层任务命令队列,等待执行协议栈重启相关操作;清空USB相关描述符数组,禁用并释放当前所有类型的FD实例(释放内存和Pipe管道),按照配置顺序重新初始化各类型的FD实例,具体的初始化过程可参考M M C设备类的初始化过程如图4所示;配置操作完成,释放先前申请的用于存放配置参数和信息的内存空间;
通过更改USB相关控制寄存器内容,将设备与PC机重新连接起来或插入设备;其他回调函数的处理执行操作。在执行协议栈重启的过程中第 一次由单光盘切换至复合设备多端口时需要在执行协议栈重启的函数中执行一个回调函数,回调函数会打开各个端口对应的服务例程。之后的切换不再需要任何回调函数。基于上述的USB设备工作模式的切换方法,USB设备可以实现以下场景需求,如图5所示。通常情况下,设备每次正常开机都会以一个单光盘模式上报给PC,待过滤驱动向设备发送切口指令或者用户右键弹出光盘后,设备经过端口切换工作,以复合设备多端口模式上报给PC。当用户拔掉USB线缆后,设备完成复合设备多端口模式向单光盘模式的切换,当USB线缆被再次连接后,设备以一个单光盘模式上报给PC。如果当前PC是之前装过驱动程序的PC,此时,过滤驱动会再次发送切口指令,设备接收到指令后直接切回复合设备多端口模式供用户正常使用;如果当前PC未安装过驱动程序,则用户可以通过该光盘的镜像内容,进行驱动程序安装的操作,安装完成后切至复合设备多端口模式供用户正常使用。本实施例中的USB设备可以为无线终端产品、Ufi类数据卡产品,Ufi类数据卡产品为可以支持WiFi功能的数据卡产品。通过USB协议栈重启功能的实现,解决了各种应用环境下驱动程序安装的问题,在提高用户体验的同时,也大大提高了本产品的市场竞争力。实施例二在上述的有源USB设备工作模式的切换方法的基础上本实施例还提出了一种有源USB设备,如图6所示,包括电源模块、检测模块、切换模块;所述电源模块用于当USB设备与第一主机设备断开连接后,提供电源给USB设备使其保持开机状态,所述检测模块用于检测USB设备是否与主机设备断开连接;所述切换模块用于当检测模块检测USB设备与主机设备断开连接时,使USB设备从复合设备多端口模式下切换到单光盘模式。该USB设备切换的过程为USB设备与主机设备断开连接后,电源模块提供电源给USB设备使其保持开机状态;检测模块检测到USB设备与主机设备已经断开连接,将检测结果传输至切换模块;切换模块根据检测结果将USB设备从先前的连接时复合设备多端口模式下切换到单光盘模式。本实施例的有源USB设备中的检测模块还用于检测所述USB设备是否与第一主机设备或者其他主机设备连接;所述切换单元还用于当检测模块检测到USB设备与第一主机设备或者其他主机设备连接时,判断第一主机设备或者其他主机设备是否已经安装过驱动程序,若已经安装过驱动程序,则将USB设备的工作模式从单光盘模式切换到复合设备多端口模式。该USB设备切换的过程为用户将USB设备与先前已经连接过的主机设备或者其他主机设备相连接;检测模块检测到USB设备与先前已经连接过的主机设备或者其他主机设备相连接,并将检测的结果传输给切换模块;
切换模块根据检测的结果,判断与USB连接的主机设备是否已经安装过驱动程序,若已经安装,则将USB设备的工作模式从单光盘模式切换到复合设备多端口模式。上述切换单元用于执行USB协议栈重启功能使USB设备的工作模式从复合设备多端口模式下切换到单光盘模式。本实施例的有源USB设备可为支持WiFi功能的数据卡。该有源USB设备能够通过USB协议栈重启功能的实现工作模式的切换,使得USB设备如Ufi类数据卡产品在各种复杂的应用环境中都可以无差别、完整的安装驱动程序,在提高用户体验的同时,也避免了一些潜在Bug发生的可能。以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护·范围。
权利要求
1.一种有源USB设备工作模式的切换方法,其特征在于,包括以下步骤 USB设备与第一主机设备连接,USB设备处于复合设备多端口模式; USB设备与第一主机 设备断开连接,USB设备保持开机状态; 当检测到USB设备与第一主机设备断开连接时,USB设备从复合设备多端口模式切换到单光盘模式。
2.如权利要求I所述的有源USB设备工作模式的切换方法,其特征在于,还包括 当检测到所述USB设备与已经安装过驱动程序的第一主机设备或其他已经安装过驱动程序的主机设备连接时,所述USB设备从单光盘模式切换到复合设备多端口模式。
3.如权利要求I或2所述的有源USB设备工作模式的切换方法,其特征在于,所述USB设备从复合设备多端口模式下切换到单光盘模式的过程包括 执行USB协议栈重启功能使USB设备从复合设备多端口模式下切换到单光盘模式。
4.如权利要求3所述的有源USB设备工作模式的切换方法,其特征在于,所述执行USB协议栈重启功能的处理过程包括 获取单光盘模式的配置信息; USB控制器断连操作; 禁止功能驱动程序FD和端点EP,重新配置功能驱动程序FD和端点EP ; 以新的配置重新初始化功能驱动程序FD和端点EP ; USB控制器重新连接操作; 回调函数处理。
5.如权利要求2所述的有源USB设备工作模式的切换方法,其特征在于,其特征在于,所述USB设备从单光盘模式切换到复合设备多端口模式包括 执行USB协议栈重启功能使USB设备从单光盘模式切换到复合设备多端口模式。
6.如权利要求2所述的有源USB设备工作模式的切换方法,其特征在于,所述USB设备从单光盘模式切换到复合设备多端口模式包括 USB设备接收第一主机设备或者其他主机设备的切口指令,重启设备使USB设备从单光盘模式切换到复合设备多端口模式。
7.如权利要求5所述的有源USB设备工作模式的切换方法,其特征在于,所述执行USB协议栈重启功能的具体处理过程 获取复合设备多端口模式的配置信息; USB控制器断连操作; 禁止功能驱动程序FD和端点EP,重新配置功能驱动程序H)和端点EP ; 以新的配置重新初始化功能驱动程序FD和端点EP ; USB控制器重新连接操作; 回调函数处理。
8.一种有源USB设备,其特征在于,包括电源模块、检测模块、切换模块;所述电源模块用于当USB设备与第一主机设备断开连接后,提供电源给USB设备使其保持开机状态,所述检测模块用于检测USB设备是否与主机设备断开连接;所述切换模块用于当检测模块检测USB设备与主机设备断开连接时,使USB设备从复合设备多端口模式下切换到单光盘模式。
9.如权利要求8所述的有源USB设备,其特征在于,所述检测模块还用于检测所述USB设备是否与第一主机设备或者其他主机设备连接;所述切换单元还用于当检测模块检测到USB设备与第一主机设备或者其他主机设备连接时,判断第一主机设备或者其他主机设备是否已经安装过驱动程序,若已经安装过驱动程序,则将USB设备工作的模式从单光盘模式切换到复合设备多端口模式。
10.如权利要求8或9所述的有源USB设备,其特征在于,所述切换模块用于执行USB协议栈重启功能使USB设备的工作模式从复合设备多端口模式下切换到单光盘模式。
11.如权利要求10所述的有源USB设备,其特征在于,所述USB设备为支持WiFi功能的数据卡。
全文摘要
本发明公开了一种有源USB设备及其工作模式的切换方法。其中USB设备工作模式的切换方法包括USB设备与第一主机设备连接,USB设备处于复合设备多端口模式;USB设备与第一主机设备断开连接,USB设备保持开机状态;当检测到USB设备与第一主机设备断开连接时,USB设备从复合设备多端口模式切换到单光盘模式。本发明的USB设备工作模式的切换方法能够使得USB设备能够在各种复杂的应用环境中都可以无差别、完整的安装驱动程序,提高用户体验。
文档编号G06F9/445GK102902518SQ201210293480
公开日2013年1月30日 申请日期2012年8月17日 优先权日2012年8月17日
发明者路旋 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1