通过对USB HID设备进行二次枚举以识别主机操作系统的方法技术方案

技术编号:8241513 阅读:838 留言:0更新日期:2013-01-24 22:26
本发明专利技术提供一种通过对USB?HID设备进行二次枚举以识别主机操作系统的方法,涉及计算机移动技术领域,以解决现有识别方法只能区别Windows系统,并且在主机不断电的情况下,如果切换了操作系统则需要重新插拔USB?HID设备才能识别出当前系统类型的问题,该方法包括以下步骤:USB?HID设备上电,并进行初始化;对USB?HID设备进行第一次枚举以确定主机操作系统的类型;在USB?HID设备与主机操作系统之间依次完成软掉电与再次连接处理后进行第二次枚举,以保证USB?HID设备能够正常工作;USB?HID设备在接收到主机发送的重启标志后,则重新执行整个流程来判断主机重启后的操作系统。本发明专利技术可准确的识别当前系统的类型,在不断电的情况下发生操作系统切换时不必重新插拔USB?HID设备。

【技术实现步骤摘要】

本专利技术涉及计算机移动
,尤其是一种通过对USB HID设备进行二次枚举以识别主机操作系统的方法
技术介绍
由于USB设备具有可热拔插、标准统一、可连接多个设备等优点,使用USB接口的设备与日俱增,例如数码相机、扫描仪、游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标等等。然而有些USB设备功能的实现方法随着操作系统的不同有很大的区别。这就要求设备能通过某种方法检测到主机的操作系统类型,从而实现其应有的功能。 图I为现有USB设备以识别主机操作系统的流程图,采用图I中的方法是在枚举过程中判断设备类型和是否接收到预设指令来决定当前操作系统类型。然而,此种方法存在着缺陷如下I、只能区分WINDOWS操作系统的不同版本,不能区分LINUX操作系统与MAC操作系统;2、若设备为HID设备,则不能判断操作系统类型,在主机不断电的情况下如果切换了操作系统则需要重新插拔USB HID设备才能识别出当前系统类型;3、上述方法的操作流程比较复杂。
技术实现思路
针对上述技术的不足之处,本专利技术提供一种可准确的识类当前系统的类型,在不断电的情况下发生操作系统切换时不必重新插拔USB HID设备的通过对USB HID设备进行二次枚举以识别主机操作系统的方法。为实现上述目的,本专利技术提供一种通过对USB HID设备进行二次枚举以识别主机操作系统的方法,包括以下步骤SI、USB HID设备上电,并进行初始化;S2、对USB HID设备进行第一次枚举以确定主机操作系统的类型;S3、在USB HID设备与主机操作系统之间依次完成软掉电与再次连接处理后进行第二次枚举,以保证USB HID设备能够正常工作;S4、USB HID设备在接收到主机发送的重启标志后,则重新执行整个流程来判断主机重启后的操作系统。在步骤SI中,USB HID设备通过USB总线连接到主机,并从主机的电源电压或工作电压处获取其工作电压。在步骤SI中,USB HID设备将自身存储的上电标识、操作系统标识初始化为默认标识。在步骤S2包括以下步骤200、USB HID设备接收主机操作系统发送的系统标志性数据;201、USB HID设备逐一对主机操作系统发送的系统标志性数据做出响应;202、USB HID设备主机操作系统发送的相关标志性数据存储起来,并根据相关标志性数据判断当前操作系统的类型。在步骤200与步骤201中,系统标志性数据包括取设备描述符、设置设备地址、取配置描述符、取端点描述符、取字符串描述符、取端点描述符与选择配置。在步骤S3中包括以下步骤300、对USB HID设备与主机操作系统进行软掉电处理后再次连接; 301、根据当前操作系统类型选取相应的配置描述符对USB HID设备进行第二次枚举。在步骤300中,USB HID设备在预定时间内,使其内部的上拉电阻断开与主机电源电压或工作电压的连接,在超过预定时间后,USB HID设备中的上拉电阻再次与主机的电源电压或工作电压连接,使USB HID设备再次处于上电状态。在步骤S4中,判断USB HID设备是否收到主机发送的重启标志,若确认收到,则返回步骤S2重新执行;若确认没有收到,则返回步骤S3,检测主机是否发送了重启标志。与现有技术相比,本专利技术具有以下优点I、本专利技术具有流程简洁的优点,通过在枚举过程中不同操作系统发送的数据之间的区别、以及主机重启过程中发送给USB HID设备的某些标志性数据来判别出当前正在使用的操作系统类型,与现有USB HID设备识别主机操作系统的方法相比,不仅可识别出Windows系统的不同版本,如XP、WIN7等,还可识别出Linux操作系统和Mac操作系统;2、在主机不断电的情况下,如果切换了操作系统,不需要重新插拔USB HID设备就能识别出当前系统类型。附图说明图I为现有USB设备以识别主机操作系统的流程图;图2为本专利技术的流程图;图3为图2中步骤S2中的流程图;图4为图3中步骤S3中的流程图;图5为本专利技术的实施例的流程图。具体实施例方式下面结合附图和实施例对本专利技术作进一步详细说明。如图2至图5所示,本专利技术提供一种通过对USB HID设备进行二次枚举以识别主机操作系统的方法,包括以下步骤SI、USB HID设备上电,并进行初始化。USB HID设备上电后先执行初始化操作;具体地,USB HID设备通过USB总线连接到主机,并从主机Vcc (电源电压或工作电压)处获取工作电压;初始化操作具体包括USBHID设备将自身存储的上电标识、操作系统标识初始化为默认标识。S2 JfUSB HID设备进行第一次枚举以确定主机操作系统的类型。具体地,在步骤S2包括以下步骤200、USB HID设备接收主机操作系统发送的系统标志性数据;201、USB HID设备逐一对主机操作系统发送的系统标志性数据做出响应;202、USB HID设备主机操作系统发送的相关标志性数据存储起来,并根据相关标志性数据判断当前操作系统的类型。在步骤200与步骤201中,系统标志性数据包括取设备描述符、设置设备地址、取配置描述符、取端点描述符、取字符串描述符、取端点描述符与选择配置。主机操作系统时刻监测USB总线上是否有设备插入,具体是通过检测Vcc上拉电阻的变化来确定的,并在检测到USB设备插入时,加载设备总线驱动,开始对USB设备进行枚举操作,然后USB设备接收主机下发的一系列setup包,包括“取设备描述符”、“设置设备地址”、“取配置描述符”、“取端点描述符”、“取字符串描述符”、“取端点描述符”、“选择配置” 等命令,USB HID设备逐一对其做出响应,完成枚举过程。在枚举过程中将主机发送的某些标志性数据存储起来。如Mac操作系统和Windows7操作系统的区别在于,Mac操作系统不会对USB HID设备发送Set Idle命令,而Windows7操作系统则发送;Mac操作系统和Linux操作系统的区别在于,Linux操作系统不会对设备发送Get InPutR印ort命令。枚举完成后根据这些标志来判断出当前操作系统类型。S3、在USB HID设备与主机操作系统之间依次完成软掉电与再次连接处理后进行第二次枚举,以保证USB HID设备能够正常工作。具体地,在步骤S3中包括以下步骤300、对USB HID设备与主机操作系统进行软掉电处理后再次连接;301、根据当前操作系统类型选取相应的配置描述符等数据对USBHID设备进行第二次枚举。在步骤300中,USB HID设备在预定时间内,使其内部的上拉电阻断开与主机电源电压或工作电压的连接,在超过预定时间后,USB HID设备中的上拉电阻再次与主机的电源电压或工作电压连接,使USB HID设备再次处于上电状态。根据当前操作系统类型选取相应的方法重新枚举USB设备。重新枚举即先将设备软掉电,然后选取对应的描述符等信息进行第二次USB枚举。USB HID设备是通过改变主机Vcc (电源电压或工作电压)的上拉电阻状态来告知主机自身的插拔状态,USB HID设备内部集成有上拉电阻,默认状态下是不与Vcc相连的,当USB HID设备与主机建立连接时,USB设备内部的上拉电阻连接到Vcc上,这样主机便可以通过检测Vcc上的上拉电阻的变化来确定是否有USB HID设备连入了 ;本文档来自技高网...

【技术保护点】
一种通过对USB?HID设备进行二次枚举以识别主机操作系统的方法,其特征在于,包括以下步骤:S1、USB?HID设备上电,并进行初始化;S2、对USB?HID设备进行第一次枚举以确定主机操作系统的类型;S3、在USB?HID设备与主机操作系统之间依次完成软掉电与再次连接处理后进行第二次枚举,以保证USB?HID设备能够正常工作;S4、USB?HID设备在接收到主机发送的重启标志后,则重新执行整个流程来判断主机重启后的操作系统。

【技术特征摘要】

【专利技术属性】
技术研发人员:张晓东
申请(专利权)人:无锡海森诺科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1