具体实施方式
参阅图1,本发明实施例提供一种USB设备识别操作系统的方法,该方法包括:
101、USB设备通过光盘端口接收待识别操作系统发送的SCSI命令。
本发明实施例中的USB设备在出厂时具有光盘端口,通过该端口可以接收操作系统发送的SCSI命令。本发明实施例中的USB设备可以是数据卡也可以是其他的USB设备,不影响本发明的实现。
102、当接收到操作码为0XBB的SCSI命令时,识别所述待识别操作系统为苹果MAC系统;当接收到操作码为0XA2的SCSI命令时,识别所述待识别操作系统为Windows Vista SP2以上版本的Windows操作系统。
通常操作系统包括如下三种类型:Window操作系统、苹果MAC(Macintosh)操作系统和Linux操作系统,而Window操作系统又有多个版本,例如,Window XP 2K,Windows 7和Windows Vista SP2等,这些版本的操作系统所发送的SCSI命令可能不同,Windows 7和Windows Vista SP2属于较高版本的Window系统,其发送的SCSI命令中包括0XA2,则Windows 7和WindowsVista SP2属于同一版本类别;而Window XP 2K属于较低版本的Window系统,其发送的SCSI命令中不包括0XA2,Window XP 2K属于另一版本类别。
当没有接收到操作码为0XBB的SCSI命令和操作码为0XA2的SCSI命令时,USB设备显示光盘端口中的安装程序和驱动程序,接收到用户指示运行安装程序的指令,控制所述待识别操作系统运行所述安装程序;根据所运行的安装程序对所述待识别操作系统的识别结果,在待识别操作系统上安装驱动程序;接收所述待识别操作系统通过所安装的驱动程序发送的指示信息,所述指示信息包括所述待识别操作系统的类型,当所述类型的操作系统有不同的版本时,所述指示信息还包括:所述待识别操作系统的版本。其中,在待识别操作系统上安装的驱动程序为专门用于该操作系统的驱动程序,这样,对于Linux操作系统,Window XP 2K等操作系统,需要为其开发专门的驱动程序并保存在USB设备上,在安装程序识别出操作系统之后,在该操作系统上安装该操作系统对应的驱动程序,使这些操作系统能够利用驱动程序通知USB设备该操作系统的类型,并在所述类型的操作系统有不同的版本时通知USB设备该操作系统的版本。
本发明实施例的USB设备上具有光盘端口,这样USB设备就可以通过光盘端口接收操作系统发送的SCSI命令,当SCSI命令中的操作码为0XBB时,确定该待识别操作系统为苹果MAC系统;当SCSI命令中的操作码为0XA2时,确定该待识别操作系统为Windows Vista SP2以上版本的Windows操作系统,这样就不需要像现有技术那样为MAC系统和Windows Vista SP2以上版本的操作系统开发专门的驱动程序了。
为了使本发明实施例提供的技术方案更加清楚,如下两个实施例将对本发明实施例提供的技术方案进行详细介绍,图2示出了本发明实施例提供的一种USB设备识别操作系统的方法,该实施例中数据卡上的工作端口能适用于不同类型和版本的操作系统,该实施例具体包括:
201、操作系统检测到有光盘端口的USB设备插入计算机时,为该光盘端口加载默认的光盘驱动程序。
该步骤中的操作系统为待识别的操作系统。
202、操作系统通过光盘驱动程序向数据卡发送多个SCSI命令。
如果该操作系统为MAC(Macintosh)系统,则发送的一个SCSI命令中的操作码为0XBB,其中,0XBB表示该命令为设置光盘速度命令SET CD-ROM SPEED。如果该操作系统为Windows 7和Windows Vista SP2的系统,则发送的一个SCSI命令中的操作码为0XA2,其中,0XA2表示该命令为安全协议输入命令SECURITY PROTOCOL IN。如果该操作系统为其他版本的Windows系统,则操作系统发送的SCSI命令中的操作码既不是0XA2也不是0XBB。
203、当数据卡接收到操作码为0XBB的SCSI命令时,识别该操作系统为MAC系统。
204、当数据卡接收到操作码为0XA2的SCSI命令时,识别该操作系统为Windows Vista SP2以上版本的Windows操作系统,可能为Windows 7系统或者Windows Vista SP2系统。
205、当数据卡既没有接收到操作码为0XBB的SCSI命令,也没有接收到操作码为0XA2的SCSI命令,则显示USB设备中光盘端口上的安装程序和驱动程序,当接收到用户指示运行安装程序的指令后,控制操作系统运行所述安装程序,所运行的安装程序识别该操作系统,并根据识别结果在操作系统上安装驱动程序,数据卡接收该操作系统通过所安装的驱动程序发送的指示信息,所述指示信息包括所述操作系统的类型,当所述类型的操作系统有不同的版本时,所述指示信息还包括:所述操作系统的版本。
其中,需要预先在USB设备中光盘端口上保存安装程序和驱动程序,其中,所保存的驱动程序包括除了MAC系统和Windows Vista SP2以上版本的Windows系统之外的操作系统的驱动程序,比如,Linux系统的驱动程序和Windows XP2系统的驱动程序。
206、数据卡根据对操作系统的识别结果,确定用于与该操作系统连接的工作端口的工作模式,根据所确定的工作模式设置该工作端口的传输参数。
该步骤中,数据卡上可以有一个工作端口也可以有多个工作端口,如果数据卡上有多个工作端口,则该步骤中数据卡可以任意选择一个工作端口作为与该通信系统连接的工作端口。需要说明的是,无论数据卡上有几个工作端口,工作端口在连接不同的操作系统时工作在不同的工作模式,其中,在本发明各实施例中,不同类型的操作系统是不同的操作系统,属于同一类型但具有不同版本类别的操作系统也是不同的操作系统,其中,操作系统的版本类别是根据操作系统的版本高低确定的。例如Window操作系统有多个版本,Window XP 2K,Windows 7和Windows Vista SP2等,其中Windows 7和Windows Vista SP2属于同一版本类别,两个都是较高版本的Window系统,其发送的SCSI命令的操作码为0XA2;而Window XP 2K属于另一版本类别,其为较低版本的Window系统,其发送的SCSI命令中的操作码为0XA2,则Window XP 2K与Windows 7是不同的操作系统。
由于工作端口在连接不同的操作系统时工作在不同的工作模式,所以该步骤中数据卡需要根据操作系统的类型,当该类型的操作系统具有多个版本时,还需要根据操作系统的版本类别信息,确定用于与该操作系统连接的工作端口的工作模式,然后根据所确定的工作模式设置该工作端口的传输参数。其中,工作端口的传输参数可以包括数据传输速率等。
需要说明的,如果数据卡不能通过步骤203、204识别操作系统,而是由步骤205中操作系统通过所安装的驱动程序发送的指示信息获知操作系统的类型和版本,则数据卡根据操作系统的版本确定该操作系统的版本类别,进行确定端口相应的工作模式。
207、数据卡复位。
208、操作系统检测到数据卡复位后,系统重新识别设备并向数据卡发送查询消息,数据卡向操作系统上报端口状态报告,其中,端口状态报告包括USB描述符,该USB描述符包括:端口标识(即与该操作系统连接的工作端口的标识)、该工作端口所使用的协议标识和该工作端口的传输参数。
209、操作系统接收到USB描述符之后,根据USB描述符中的端口标识,确定与数据卡通信的工作端口,根据USB描述符中的工作端口的传输参数,与该工作端口进行通信。
具体的,操作系统可以按照数据卡设置的数据传输速率,向数据卡传输数据。
本发明实施例的数据卡上具有光盘端口,这样数据卡就可以通过光盘端口接收操作系统发送的SCSI命令,根据SCSI命令中的操作码,识别出MAC操作系统和Windows Vista SP2以上版本的操作系统,这样就不需要像现有技术那样为MAC操作系统和Windows Vista SP2以上版本的操作系统开发专门的驱动程序了;进一步,根据操作系统的类型和版本类别信息,确定工作端口的工作模式,进而设置该工作端口的传输参数,并将传输参数传递给操作系统,以便操作系统与数据卡进行通信。
参阅图3,本发明另一实施例提供一种USB设备识别操作系统的方法,该实施例与上述图2所示实施例的区别在于:数据卡上有多个与不同的操作系统信息一一对应的工作端口,其中,操作系统信息包括:操作系统的类型,当所述类型的操作系统有不同的版本时,所述操作系统信息还包括:操作系统的版本类别信息,该方法具体包括:
301-305与步骤201-205相同,在此不再赘述。
306、数据卡根据操作系统的识别结果和各工作端口与操作系统信息的一一对应关系,确定该操作系统所适用的工作端口,为该工作端口配置传输参数。
在该步骤之前,数据卡预先配置工作端口与操作系统信息一一对应关系,即配置不同的操作系统信息对应不同的工作端口。其中,操作系统信息包括:操作系统的类型,当所述类型的操作系统有不同的版本时,所述操作系统信息还包括:操作系统的版本类别信息。比如Windows类型的操作系统,操作系统信息还包括:版本类别信息,此时版本类别信息表示是Windows Vista SP2以上的版本还是Windows Vista SP2以下的版本(不包括Windows Vista SP2版本)。
例如,数据卡上有多个工作端口,其中包括两个Modem口,一个网卡口,可以配置两个Modem口中的第一Modem口对应Windows Vista SP2以上版本的Windows系统,第二Modem口对应Windows Vista SP2以下版本(不包括Windows Vista SP2版本)的Windows系统;网卡口对应MAC系统。如果待识别操作系统为MAC系统,则选择网卡口,并设置该工作端口的传输参数;如果是Windows Vista SP2以上版本的系统,就选择第一Modem口,并设置该工作端口的传输参数。
307-309与步骤207-209相同,在此不再赘述。
本发明实施例的数据卡上具有光盘端口,这样数据卡就可以通过光盘端口接收操作系统发送的SCSI命令,根据SCSI命令中的操作码,识别出MAC操作系统和Windows Vista SP2以上版本的操作系统,这样就不需要像现有技术那样为MAC操作系统和Windows Vista SP2以上版本的操作系统开发专门的驱动程序了;进一步,根据操作系统的类型和版本类别信息,从多个工作端口中选择一个工作端口,进而设置该工作端口的传输参数,并将传输参数传递给操作系统,以便操作系统与数据卡进行通信。
以上两个方法实施例是以数据卡为例进行说明的,本领域技术人员能够理解的是,以上两个方法实施例所提供的技术方案适用于任何一个USB设备。
参阅图4,本发明实施例提供一种USB设备,包括:光盘端口401、判断单元402、识别单元403,其中,该USB设备可以是数据卡,也可以是其他的USB设备。
光盘端口401,用于接收待识别操作系统发送的SCSI命令;
判断单元402,用于判断接收的SCSI命令是否是操作码为0XBB的SCSI命令或者操作码为0XA2的SCSI命令;
识别单元403,用于当接收的SCSI命令是操作码为0XBB的SCSI命令时,识别所述待识别操作系统为苹果MAC系统;当接收的SCSI命令是操作码为0XA2的SCSI命令时,识别所述待识别操作系统为Windows Vista SP2以上版本的Windows操作系统。
为了能够实现USB设备与操作系统的通信,该USB设备还包括:工作端口404和配置单元405;
对于工作端口的配置可以有两种方式:
第一种方式为:USB设备的各工作端口都能够适用于不同类型的操作系统;此时配置单元405具体用于根据识别单元403的识别结果,确定工作端口的工作模式,根据工作端口的工作模式为所述工作端口配置传输参数。
第二种方式为:所述USB设备还包括:多个工作端口,每个工作端口分别与不同的操作系统信息一一对应,其中,所述操作系统信息包括:操作系统的类型,当所述类型的操作系统有不同的版本时,所述操作系统信息还包括:操作系统的版本类别信息;此时,配置单元405具体用于根据识别单元403的识别结果和工作端口与操作系统信息的一一对应关系,确定所述待识别操作系统所适用的工作端口,为所述工作端口配置传输参数。
为了与操作系统进行通信,所述工作端口404用于向所述待识别操作系统发送USB描述符,所述USB描述符包括:所述待识别操作系统所适用的工作端口的标识和传输参数,该USB描述符还可以包括该工作端口所使用的协议标识。
为了能够识别各种操作系统,可选的,该装置还包括:安装程序控制运行单元406,用于当没有接收到操作码为0XBB的SCSI命令和操作码为0XA2的SCSI命令时,接收到用户指示运行USB设备上的安装程序的指令,控制所述待识别操作系统运行所述安装程序;和驱动程序控制运行单元407,用于根据所运行的安装程序对所述待识别操作系统的识别结果,在操作系统上安装驱动程序;和指示信息接收单元408,用于接收所述待识别操作系统通过所安装的驱动程序发送的指示信息,所述指示信息包括所述待识别操作系统的类型,当所述类型的操作系统有不同的版本时,所述指示信息还包括:所述待识别操作系统的版本。
此时,配置单元405具体根据指示信息接收单元408接收的指示信息,确定工作端口的工作模式,根据工作端口的工作模式为所述工作端口配置传输参数;或者,配置单元405具体根据指示信息接收单元408接收的指示信息和工作端口与操作系统信息的一一对应关系,确定所述待识别操作系统所适用的工作端口,为所述工作端口配置传输参数。
本发明实施例的USB设备上具有光盘端口,这样USB设备就可以通过光盘端口接收操作系统发送的SCSI命令,根据SCSI命令中的操作码,识别出MAC操作系统和Windows Vista SP2以上版本的操作系统,这样就不需要像现有技术那样为MAC操作系统和Windows Vista SP2以上版本的操作系统开发专门的驱动程序了。
参阅图5,本发明实施例提供一种通信系统,该通信系统包括:带有光盘端口的USB设备501和计算机502,该计算上运行有操作系统,其中,
USB设备,用于通过光盘端口接收待识别操作系统发送的SCSI命令,当接收到操作码为0XBB的SCSI命令时,识别所述待识别操作系统为苹果MAC系统;当接收到操作码为0XA2的SCSI命令时,识别所述待识别操作系统为Windows Vista SP2以上版本的Windows操作系统。
计算机502上的操作系统,用于为光盘端口加载光盘驱动程序,利用光盘驱动程序向USB设备发送SCSI命令。
其中,USB设备、计算上的操作系统的功能,及彼此间的信息交互具体参见上述方法实施例和装置实施例的描述,在此不再赘述。进一步,USB设备的具体结构和各单元的具体功能可以参见上述装置实施例的相应描述。
本发明实施例的USB设备上具有光盘端口,这样USB设备就可以通过光盘端口接收操作系统发送的SCSI命令,根据SCSI命令中的操作码,识别出MAC操作系统和Windows Vista SP2以上版本的操作系统,这样就不需要像现有技术那样为MAC操作系统和Windows Vista SP2以上版本的操作系统开发专门的驱动程序了。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,例如只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的USB设备识别操作系统的方法、装置及通信系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。