技术领域:
本发明涉及一种usb复合设备在windows操作系统和android显示硬件设备的方法。
背景技术:
:
通用串行总线usb设备:是指能够通过通用串行总线usb来发送和接收数据,从而实现一定功能的实体。
复合通用串行总线usb设备:是一个具有多个功能和配置多个介面的组合设备,但是只有一个唯一的设备(device)地址,透过相对应的通用串行总线usb设备驱动程式(devicedriver)来与主机通讯,无法满足使用需求。
小型计算机系统接口scsi指令:是一种连结主机和外围设备的接口,支持包括磁盘驱动器、磁带机、光驱、扫描仪在内的多种设备。它由小型计算机系统接口scsi控制器进行数据操作,小型计算机系统接口scsi控制器相当于一块小型中央处理器cpu,有自己的命令集和缓存,结构复杂。
大容量存储设备:主要用于为软磁盘接口、ata接口(暂准进口单证专册接口)、集成开发环境ide硬盘接口及闪光flash存储器等设备建立的复合通用串行总线usb接口设备;几种设备无法集于一体进行使用。
技术实现要素:
:
本发明的目的是提供一种实现了在windows和android系统下显示不同的硬件设备的usb复合设备在windows操作系统和android显示硬件设备的方法。
上述的目的通过以下的技术方案实现:
一种usb复合设备在windows操作系统和android显示硬件设备的方法,本方法包括七步,第一步通用串行总线usb设备上电,
第二步通用串行总线usb设备待主机操作系统发送通用串行总线usb设备请求指令,
第三步通用串行总线usb设备判断主机系统发送的通用串行总线usb设备请求指令中的配置configuration子命令,发送的命令长度是否为特征码,如果为特征码则代表是android系统,则执行第五步,如果不是则继续执行第四步既重复第三步;
第五步继续处理通用串行总线usb设备请求命令,在getmaxlun命令请求时,返回支持的逻辑单元个数;
第六步继续处理通用串行总线usb设备请求命令,在getmaxlun命令请求时,返回不同的支持的逻辑单元个数;
第七步当逻辑单元个数在windows系统和android系统为不同时,硬件设备在android系统显示为只读存储器cd-rom设备,在windows系统下,硬件设备显示只读存储器cd-rom和大容量存储设备。
所述的usb复合设备在windows操作系统和android显示硬件设备的方法,windows上显示只读存储器cd-rom和大容量存储设备,在android上只显示只读存储器cd-rom设备;根据不同系统在发送通用串行总线usb设备请求命令的不同,返回不同逻辑单元个数,以显示不同的硬件设备。
有益效果:
1.本发明根据usb复合设备在windows和android系统下usb设备请求指令的不同,返回不同的逻辑单元个数,以实现在windows和android系统下显示不同的硬件设备。
附图说明:
附图1是本产品的示意图。
具体实施方式:
下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例1:
一种usb复合设备在windows操作系统和android显示硬件设备的方法,本方法包括七步,第一步通用串行总线usb设备上电,
第二步通用串行总线usb设备待主机操作系统发送通用串行总线usb设备请求指令,
第三步通用串行总线usb设备判断主机系统发送的通用串行总线usb设备请求指令中的配置configuration子命令,发送的命令长度是否为特征码,如果为特征码则代表是android系统,则执行第五步,如果不是则继续执行第四步既重复第三步;
第五步继续处理通用串行总线usb设备请求命令,在getmaxlun命令请求时,返回支持的逻辑单元个数;
第六步继续处理通用串行总线usb设备请求命令,在getmaxlun命令请求时,返回不同的支持的逻辑单元个数;
第七步当逻辑单元个数在windows系统和android系统为不同时,硬件设备在android系统显示为只读存储器cd-rom设备,在windows系统下,硬件设备显示只读存储器cd-rom和大容量存储设备。
实施例2:
实施例1所述的usb复合设备在windows操作系统和android显示硬件设备的方法,windows上显示只读存储器cd-rom和大容量存储设备,在android上只显示只读存储器cd-rom设备;根据不同系统在发送通用串行总线usb设备请求命令的不同,返回不同逻辑单元个数,以显示不同的硬件设备。
实施例3:
实施例1所述的usb复合设备在windows操作系统和android显示硬件设备的方法,步骤一通用串行总线usb设备上电;步骤二通用串行总线usb设备等待主机操作系统发送usb设备请求指令;步骤三usb设备判断主机系统发送的通用串行总线usb设备请求指令中的configuration子命令,发送的命令长度是否为特征码,如果为特征码则代表为android系统,则执行步骤五,如果不是则继续执行步骤四;步骤5继续处理usb设备请求命令,在getmaxlun命令请求时,返回支持的逻辑单元个数;步骤六继续处理usb设备请求命令,在getmaxlun命令请求时,返回支持的逻辑单元个数不同;步骤七当逻辑单元个数在windows系统和android系统为不同时,硬件设备在android系统显示为只读存储器cd-rom设备,在windows系统下,硬件设备显示只读存储器cd-rom和大容量存储设备。
实施例4:
实施例1所述的usb复合设备在windows操作系统和android显示硬件设备的方法,如下为windows和android系统枚举过程数据(每条安装stup包只截取前8个字节);
第一条指令安装stup8006000100001200,
第二条指令安装stup800600020000特征码00,第二条指令的第7个字节如果为特征码,则表示主机系统为android系统,如果为非特征码,则为windows系统,
第三条指令安装stup8006000200002000,
第四条安装stup8006000300000200,
第五条安装stup8006000300000400,
第六条安装stup8006030309040200,
第七条安装stup8006030309042200,
第八条安装stup0009010000000000,
第九条安装stup010b000000000000,
第十条安装stupa1fe000000000100,
如果判断主机系统为android系统,第十条命令返回第二条,如果为windows系统则返回第一步;主机系统收到返回数据,会继续发送scsi命令;第十条命令返回的数据表示支持的逻辑单元个数,主机系统会根据返回的数据下发scsi指令来继续后续的上盘操作。在android系统下上盘为1个设备,在windows系统下上盘为2个设备包括cd-rom和大容量存储设备。