具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供的技术方案包括:
根据状态标志的指示,判断数据卡是否进入工作状态,是则进入工作状态,枚举为用户所需要的端口,进行数据业务;
否则枚举为光驱设备,进入安装状态,进行驱动程序的自动安装;驱动程序安装完毕后,存储经过改变的状态标志;经过改变的状态标志指示数据卡再次上电之后进入工作状态。
该状态标志可以通过硬件实现,例如USIM/SIM卡,开关等。数据卡通过判断该状态标志,可以指示数据卡进入相应的状态,并进行相应的处理。
实施例一
本实施例通过判断3G、2G数据卡(以下简称数据卡)是否安装USIM/SIM卡,从而引导数据卡进入不同的状态。参见图1,本实施例提供的一种数据卡的启动方法,包括:
步骤101:数据卡上电。
数据卡上电,数据卡内的模块进行初始化。
步骤102:数据卡判断通用用户身份识别模块(USIM,Universal Subsciber Identity Module)或用户身份识别模块(SIM,Subscriber Identity Model)卡是否在位,是则执行步骤105;否则执行步骤103。
在数据卡与PC终端连接上电且初始化完成后,数据卡检测USIM/SIM卡是否在位。具体地,数据卡可以通过以下方式检测USIM/SIM卡是否在位:
(1)通过软件方法检测USIM/SIM是否在位。
数据卡程序与USIM/SIM卡进行命令交互,当数据卡收到USIM/SIM卡的正确响应后就可以判定数据卡是否安装USIM/SIM卡,即USIM/SIM卡是否在位。由于USIM/SIM卡在上电后自身有初始化过程,检测USIM/SIM卡是否在位可以用超时检测的方法,例如,在预先设定的时间段T1内,以T2为时间间隔不断查询USIM/SIM卡是否在位,如果查询到USIM/SIM卡就判定USIM/SIM卡在位,如果超出T1没有查到USIM/SIM卡,就判定USIM/SIM卡不在位。除了软件设定超时查询外,也可以用硬件检测配合检测USIM/SIM卡是否在位。
(2)通过硬件方法检测USIM/SIM卡是否在位。
例如,通过USIM/SIM卡座的电流检测,或微动开关或光电检测。USIM/SIM卡座的电流检测或其它方法都是为了检测USIM/SIM卡是否在位。
本发明实施例采用命令交互的检测方法对USIM/SIM是否在位进行检测,还可以有其它检测方法,此处不再赘述。
步骤103:数据卡将自身枚举为光驱设备,进入驱动程序自动安装状态,进行驱动程序的安装,之后执行步骤104。
例如,数据卡检测到没有安装USIM/SIM卡,数据卡自身可以根据内部程序将自身枚举为光驱设备。
具体地,数据卡检测到没有安装USIM/SIM卡后,在进入安装状态的过程中,数据卡程序不将数据卡枚举为调制解调端口、诊断信息端口和AT命令端口等端口,而把自身枚举为光驱设备,进行驱动程序与软件的安装。详细过程如下:
数据卡与PC交互的过程中,数据卡向PC报为大容量设备(Mass Storage),接着PC向大容量设备下发SCSI命令,获取大容量设备的配置信息,数据卡向PC应答为光驱设备的配置信息,PC为数据卡匹配安装光盘驱动程序后,PC会周期下发查询的SCSI命令TEST UNITREADY(0x00),数据卡返回执行失败的状态,PC会紧接着下发命令REQUEST SENSE(0x03),查询当前光驱设备的状态,数据卡收到REQUEST SENSE后响应MEDIA_CHANGED状态,从而产生了PC与光驱在光盘***时的SCSI命令的交互过程,数据卡在FLASH中存放了数据安装光盘的镜像,供PC读取,从PC的角度看,数据卡就与一个光驱***了光盘一样,该光盘的内容与数据卡的安装光盘一样,具有安装程序,并且AUTORUN.ini中指定了运行数据卡的安装程序。在Windows***下,当光盘***光驱时,PC会执行通过光盘中AUTORUN.ini指定的运行文件。通过上述过程,实现了数据卡驱动程序和后台程序的自动安装。
步骤104:驱动程序安装完成后,将数据卡与PC终端断开连接,将USIM/SIM卡安装到数据卡中,再将数据卡***PC终端。
该步骤是在执行步骤103对驱动程序和后台程序的安装之后,可以直接将数据卡从PC终端断上拔下,然后将USIM/SIM卡安装到数据卡中,再把数据卡***到PC终端。这时,数据卡再次上电之后,检测到已安装USIM/SIM卡,则执行步骤105。
步骤105:数据卡进入工作状态,把数据卡枚举为用户所需要的端口,进行数据业务。
其中,执行步骤102之后,如果数据卡检测到USIM/SIM卡在位,即说明PC已经安装了数据卡调制解调等端口的驱动和后台,数据卡枚举出调制解调等端口后,PC就为这些端口匹配驱动程序,驱动程序匹配完成后,就可以通过后台进行数据业务。
实际应用中,该工作状态可以包括:把数据卡枚举为调制解调端口、诊断信息端口和AT命令端口等。诊断信息端口用来输出程序中的诊断信息,AT命令端口用来收发AT命令。数据卡工作状态的工作流程与没有自动安装功能的数据卡一样,只枚举调制解调端口、诊断信息端口和AT命令端口等端口,不枚举为光驱端口。
当执行步骤104之后再执行步骤105,这时PC已经在步骤103安装了数据卡调制解调等端口的驱动和后台,数据卡枚举出调制解调等端口后,PC就为这些端口匹配驱动程序,驱动程序匹配完成后,就可以通过后台进行数据业务。在实际应用过程中,数据卡在某一台PC终端安装过驱动程序之后,可以为该数据卡安装USIM/SIM卡,从而使以后重复在这台PC终端上使用该数据卡时,数据卡不必每次将自身先枚举为光驱设备进行驱动程序的安装;数据卡上电之后,判断USIM/SIM卡在位,即进入工作状态,进行其他端口的枚举,进行数据业务。
本实施例通过数据卡判断是否安装USIM/SIM卡,根据判断结果进入不同的枚举状态,使枚举为光驱设备与枚举为其他用户所需要的端口的过程分离;根据判断结果,若USIM/SIM卡在位,数据卡将自身直接引导至工作状态,从而不必重复进入安装状态进行驱动程序的安装,解决了现有技术中在枚举虚拟光盘实现驱动程序的安装之后,***需要经过一段时间将虚拟光盘删去,再切换至枚举其他端口的状态而引起的超时机制。同时,克服了每次***PC时,VISTA***的Autorun安全提示。
现有技术由于超时机制的存在,每台PC根据其不同的情况,超时的时间不统一,引起数据卡在每台PC上使用存在兼容性问题,即数据卡在多台PC机上的启动时间不同导致无法安装等;本发明实施例提供的技术方案当数据卡在每台PC上安装驱动程序后,为数据卡再安装USIM/SIM卡使得数据卡再次上电后直接进入工作状态;由于将数据卡枚举为光驱设备与将数据卡枚举为其他用户所需要的端口的过程分离,实现了避免超时机制的同时可以避免兼容性问题,进而也避免了由于兼容性引起的其他问题,例如,如果虚拟光盘流程不能正常完成,调制解调器端口、诊断信息端口和AT命令端口也无法被枚举。
实施例二
本实施例为数据卡安装开关,通过判断开关的状态,从而引导数据卡进入不同的状态。参见图2,本实施例提供一种数据卡的启动方法,包括:
步骤201:数据卡上电。
数据卡上电,数据卡内的模块进行初始化。
步骤202:数据卡判断开关的位置是否为安装状态对应的位置,是则执行步骤203;否则执行步骤205。
在具体的实现过程中,当开关处于接通状态时,可以定义该开关的位置状态为安装状态;当开关处于断开状态时,可以定义该开关的位置状态为工作状态,本实施例以此为例描述。需要说明的是,反过来定义也可以,即接通状态定义为工作状态,断开状态定义为安装状态。
步骤203:数据卡将自身枚举为光驱设备,进入驱动程序安装状态,进行驱动程序的安装,之后执行步骤204。
数据卡程序检测开关的位置对应于安装状态,数据卡就将自身枚举为光驱设备,进入驱动程序安装状态。进行驱动程序的安装原理与实施例一步骤103相似,此处不再赘述。
步骤204:驱动程序安装完成后,将数据卡与PC终端断开连接,将数据卡的开关位置置为工作状态对应的位置,再将数据卡***PC终端。
当数据卡再次***PC终端,开关位置对应的状态是工作状态,则执行步骤205。
步骤205:数据卡进入工作状态,把数据卡枚举为用户所需要的端口,进行数据业务。
其中,执行步骤202之后,如果数据卡检测到开关位置在工作状态对应的位置,则数据卡根据其内部程序进入工作状态,进行数据业务。实际应用中,该工作状态可以包括:把数据卡枚举为调制解调端口、诊断信息端口和AT命令端口等。诊断信息端口用来输出程序中的诊断信息,AT命令端口用来收发AT命令。
当执行步骤204之后再执行步骤205与上述原理相似,不再赘述。
在实际应用过程中,数据卡在某一台PC终端安装过驱动程序之后,可以将该数据卡的开关位置置为工作状态对应的位置,从而使以后重复在这台PC终端上使用该数据卡时,数据卡不必每次将自身先枚举为光驱设备进行驱动程序的安装;数据卡上电之后,判断开关位置在工作状态对应的位置,即进入工作状态,进行其他端口的枚举,进行数据业务。
本实施例中,数据卡在一台PC上第一次安装过驱动之后,就将开关置于数据卡工作状态所对应的位置,下次数据卡再***该PC的时候,数据卡通过判断开关的位置,进而确定处于工作状态。处于工作状态的数据卡不需要枚举出光盘,因而避免了每次***PC时,VISTA***的Autorun安全提示。同时,也克服了由于超时机制引起的在不同PC终端上的兼容性问题和由兼容性引起的其他问题例如,如果虚拟光盘流程不能正常完成,调制解调器端口、诊断信息端口和AT命令端口也无法被枚举。
本发明实施例还提供安装有USIM/SIM卡的数据卡设备,以及安装有开关的数据卡设备。通过USIM/SIM卡或开关,数据卡可以判断该进入何种状态进行操作,进而实现本发明实施例的上述方法。
实施例三
参加图3,为本实施例提供一种数据卡结构示意图,该数据卡可以实现自启动,包括:
判断模块301,用于判断是否进入工作状态;
工作状态处理模块302,用于当判断模块301的判断结果为是,则进入工作状态,枚举为用户所需要的端口,进行数据业务;
安装状态处理模块303,用于当判断模块301的判断结果为否,则枚举为光驱设备,进入安装状态,进行驱动程序的自动安装;
标志存储模块304,用于当驱动程序安装完毕后,存储经过改变的状态标志;经过改变的状态标志指示再次上电之后进入工作状态。
优选地,判断模块可以是USIM/SIM卡判断模块,用于根据USIM/SIM卡的状态,判断是否进入工作状态;
相应地,工作状态处理模块,用于当USIM/SIM卡在位,则进入工作状态,枚举为用户所需要的端口,进行数据业务;
安装状态处理模块,用于当USIM/SIM卡不在位,枚举为光驱设备,进入安装状态,进行驱动程序的自动安装。优选地,判断模块还可以是开关判断模块,用于根据开关的状态,判断是否进入工作状态;
相应地,工作状态处理模块,用于当开关处于接通状态,则进入工作状态,枚举为用户所需要的端口,进行数据业务;
安装状态处理模块,用于当开关处于断开状态,枚举为光驱设备,进入安装状态,进行驱动程序的自动安装。
优选地,判断模块还可以是开关判断模块,用于根据开关的状态,判断是否进入工作状态;
相应地,工作状态处理模块,用于当开关处于断开状态,则进入工作状态,枚举为用户所需要的端口,进行数据业务;
安装状态处理模块,用于当开关处于接通状态,枚举为光驱设备,进入安装状态,进行驱动程序的自动安装。
进一步地,安装状态处理模块可以包括:
信息交互单元,用于向PC上报为大容量设备,当PC通过SCSI指令获取大容量设备的配置信息时,向PC应答为光驱设备的配置信息;
存储单元,用于存储驱动程序。
在优选的实施例中,数据卡还可以包括:
程序交互模块,用于与USIM/SIM卡判断模块进行命令交互;当收到USIM/SIM卡判断模块的正确响应后判定USIM/SIM卡是否在位。
本实施例通过判断模块根据状态标志的指示判断进入何种对应的状态,使安装状态与工作状态分离,安装过驱动程序的数据卡实现免安装驱动程序,直接进入工作状态;克服了每次***PC时,VISTA***的Autorun安全提示;同时,也克服了由于超时机制引起的在不同PC终端上的兼容性问题和由兼容性引起的其他问题例如,如果虚拟光盘流程不能正常完成,调制解调器端口、诊断信息端口和AT命令端口也无法被枚举以及软件复位造成的启动缓慢。
本发明实施例可以通过软件实现,相应的软件可以存储在可读取的存储介质中,例如计算机的硬盘、光盘或软盘或数据卡的FLASH中。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。