《通过对USBHID设备进行二次枚举以识别主机操作系统的方法.pdf》由会员分享,可在线阅读,更多相关《通过对USBHID设备进行二次枚举以识别主机操作系统的方法.pdf(10页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102890662 A (43)申请公布日 2013.01.23 C N 1 0 2 8 9 0 6 6 2 A *CN102890662A* (21)申请号 201210402673.0 (22)申请日 2012.10.19 G06F 13/10(2006.01) (71)申请人无锡海森诺科技有限公司 地址 214192 江苏省无锡市锡山区锡山经济 开发区芙蓉中三路99号 (72)发明人张晓东 (74)专利代理机构北京汇信合知识产权代理有 限公司 11335 代理人戴凤仪 (54) 发明名称 通过对USB HID设备进行二次枚举以识别主 机操作系统的方法 (57) 。
2、摘要 本发明提供一种通过对USB HID设备进行 二次枚举以识别主机操作系统的方法,涉及计算 机移动技术领域,以解决现有识别方法只能区别 Windows系统,并且在主机不断电的情况下,如果 切换了操作系统则需要重新插拔USB HID设备才 能识别出当前系统类型的问题,该方法包括以下 步骤:USB HID设备上电,并进行初始化;对USB HID设备进行第一次枚举以确定主机操作系统的 类型;在USB HID设备与主机操作系统之间依次 完成软掉电与再次连接处理后进行第二次枚举, 以保证USB HID设备能够正常工作;USB HID设 备在接收到主机发送的重启标志后,则重新执行 整个流程来判断主机重启。
3、后的操作系统。本发明 可准确的识别当前系统的类型,在不断电的情况 下发生操作系统切换时不必重新插拔USB HID设 备。 (51)Int.Cl. 权利要求书1页 说明书4页 附图4页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 4 页 附图 4 页 1/1页 2 1.一种通过对USB HID设备进行二次枚举以识别主机操作系统的方法,其特征在于, 包括以下步骤: S1、USB HID设备上电,并进行初始化; S2、对USB HID设备进行第一次枚举以确定主机操作系统的类型; S3、在USB HID设备与主机操作系统之间依次完成软掉电与再次连接处理后进行。
4、第二 次枚举,以保证USB HID设备能够正常工作; S4、USB HID设备在接收到主机发送的重启标志后,则重新执行整个流程来判断主机重 启后的操作系统。 2.根据权利要求1所述的通过对USB HID设备进行二次枚举以识别主机操作系统的方 法,其特征在于,在步骤S1中,USB HID设备通过USB总线连接到主机,并从主机的电源电 压或工作电压处获取其工作电压。 3.根据权利要求2所述的通过对USB HID设备进行二次枚举以识别主机操作系统的方 法,其特征在于,在步骤S1中,USB HID设备将自身存储的上电标识、操作系统标识初始化 为默认标识。 4.根据权利要求1所述的通过对USB HID设。
5、备进行二次枚举以识别主机操作系统的方 法,其特征在于,在步骤S2包括以下步骤: 200、USB HID设备接收主机操作系统发送的系统标志性数据; 201、USB HID设备逐一对主机操作系统发送的系统标志性数据做出响应; 202、USB HID设备主机操作系统发送的相关标志性数据存储起来,并根据相关标志性 数据判断当前操作系统的类型。 5.根据权利要求4所述的通过对USB HID设备进行二次枚举以识别主机操作系统的方 法,其特征在于,在步骤200与步骤201中,系统标志性数据包括取设备描述符、设置设备地 址、取配置描述符、取端点描述符、取字符串描述符、取端点描述符与选择配置。 6.根据权利要求。
6、1所述的通过对USB HID设备进行二次枚举以识别主机操作系统的方 法,其特征在于,在步骤S3中包括以下步骤: 300、对USB HID设备与主机操作系统进行软掉电处理后再次连接; 301、根据当前操作系统类型选取相应的配置描述符对USB HID设备进行第二次枚举。 7.根据权利要求6所述的通过对USB HID设备进行二次枚举以识别主机操作系统的方 法,其特征在于,在步骤300中,USB HID设备在预定时间内,使其内部的上拉电阻断开与主 机电源电压或工作电压的连接,在超过预定时间后,USB HID设备中的上拉电阻再次与主机 的电源电压或工作电压连接,使USB HID设备再次处于上电状态。 8。
7、.根据权利要求1所述的通过对USB HID设备进行二次枚举以识别主机操作系统的方 法,其特征在于,在步骤S4中,判断USB HID设备是否收到主机发送的重启标志,若确认收 到,则返回步骤S2重新执行;若确认没有收到,则返回步骤S3,检测主机是否发送了重启标 志。 权 利 要 求 书CN 102890662 A 1/4页 3 通过对 USB HID 设备进行二次枚举以识别主机操作系统的 方法 技术领域 0001 本发明涉及计算机移动技术领域,尤其是一种通过对USB HID设备进行二次枚举 以识别主机操作系统的方法。 背景技术 0002 由于USB设备具有可热拔插、标准统一、可连接多个设备等优点,。
8、使用USB接口的 设备与日俱增,例如数码相机、扫描仪、游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标 等等。然而有些USB设备功能的实现方法随着操作系统的不同有很大的区别。这就要求设 备能通过某种方法检测到主机的操作系统类型,从而实现其应有的功能。 0003 图1为现有USB设备以识别主机操作系统的流程图,采用图1中的方法是在枚举 过程中判断设备类型和是否接收到预设指令来决定当前操作系统类型。然而,此种方法存 在着缺陷如下: 0004 1、只能区分WINDOWS操作系统的不同版本,不能区分LINUX操作系统与MAC操作 系统; 0005 2、若设备为HID设备,则不能判断操作系统类型,在主机。
9、不断电的情况下如果切 换了操作系统则需要重新插拔USB HID设备才能识别出当前系统类型; 0006 3、上述方法的操作流程比较复杂。 发明内容 0007 针对上述技术的不足之处,本发明提供一种可准确的识类当前系统的类型,在不 断电的情况下发生操作系统切换时不必重新插拔USB HID设备的通过对USB HID设备进行 二次枚举以识别主机操作系统的方法。 0008 为实现上述目的,本发明提供一种通过对USB HID设备进行二次枚举以识别主机 操作系统的方法,包括以下步骤: 0009 S1、USB HID设备上电,并进行初始化; 0010 S2、对USB HID设备进行第一次枚举以确定主机操作系统。
10、的类型; 0011 S3、在USB HID设备与主机操作系统之间依次完成软掉电与再次连接处理后进行 第二次枚举,以保证USB HID设备能够正常工作; 0012 S4、USB HID设备在接收到主机发送的重启标志后,则重新执行整个流程来判断主 机重启后的操作系统。 0013 在步骤S1中,USB HID设备通过USB总线连接到主机,并从主机的电源电压或工 作电压处获取其工作电压。 0014 在步骤S1中,USB HID设备将自身存储的上电标识、操作系统标识初始化为默认 标识。 0015 在步骤S2包括以下步骤: 说 明 书CN 102890662 A 2/4页 4 0016 200、USB H。
11、ID设备接收主机操作系统发送的系统标志性数据; 0017 201、USB HID设备逐一对主机操作系统发送的系统标志性数据做出响应; 0018 202、USB HID设备主机操作系统发送的相关标志性数据存储起来,并根据相关标 志性数据判断当前操作系统的类型。 0019 在步骤200与步骤201中,系统标志性数据包括取设备描述符、设置设备地址、取 配置描述符、取端点描述符、取字符串描述符、取端点描述符与选择配置。 0020 在步骤S3中包括以下步骤: 0021 300、对USB HID设备与主机操作系统进行软掉电处理后再次连接; 0022 301、根据当前操作系统类型选取相应的配置描述符对USB。
12、 HID设备进行第二次枚 举。 0023 在步骤300中,USB HID设备在预定时间内,使其内部的上拉电阻断开与主机电源 电压或工作电压的连接,在超过预定时间后,USB HID设备中的上拉电阻再次与主机的电源 电压或工作电压连接,使USB HID设备再次处于上电状态。 0024 在步骤S4中,判断USB HID设备是否收到主机发送的重启标志,若确认收到,则返 回步骤S2重新执行;若确认没有收到,则返回步骤S3,检测主机是否发送了重启标志。 0025 与现有技术相比,本发明具有以下优点: 0026 1、本发明具有流程简洁的优点,通过在枚举过程中不同操作系统发送的数据之间 的区别、以及主机重启过。
13、程中发送给USB HID设备的某些标志性数据来判别出当前正在使 用的操作系统类型,与现有USB HID设 备识别主机操作系统的方法相比,不仅可识别出 Windows系统的不同版本,如XP、WIN7等,还可识别出Linux操作系统和Mac操作系统; 0027 2、在主机不断电的情况下,如果切换了操作系统,不需要重新插拔USB HID设备就 能识别出当前系统类型。 附图说明 0028 图1为现有USB设备以识别主机操作系统的流程图; 0029 图2为本发明的流程图; 0030 图3为图2中步骤S2中的流程图; 0031 图4为图3中步骤S3中的流程图; 0032 图5为本发明的实施例的流程图。 具。
14、体实施方式 0033 下面结合附图和实施例对本发明作进一步详细说明。 0034 如图2至图5所示,本发明提供一种通过对USB HID设备进行二次枚举以识别主 机操作系统的方法,包括以下步骤: 0035 S1、USB HID设备上电,并进行初始化。 0036 USB HID设备上电后先执行初始化操作;具体地,USB HID设备通过USB总线连接 到主机,并从主机Vcc(电源电压或工作电压)处获取工作电压;初始化操作具体包括:USB HID设备将自身存储的上电标识、操作系统标识初始化为默认标识。 0037 S2、对USB HID设备进行第一次枚举以确定主机操作系统的类型。 说 明 书CN 1028。
15、90662 A 3/4页 5 0038 具体地,在步骤S2包括以下步骤: 0039 200、USB HID设备接收主机操作系统发送的系统标志性数据; 0040 201、USB HID设备逐一对主机操作系统发送的系统标志性数据做出响应; 0041 202、USB HID设备主机操作系统发送的相关标志性数据存储起来,并根据相关标 志性数据判断当前操作系统的类型。 0042 在步骤200与步骤201中,系统标志性数据包括取设备描述符、设置设备地址、取 配置描述符、取端点描述符、取字符串描述符、取端点描述符与选择配置。 0043 主机操作系统时刻监测USB总线上是否有设备插入,具体是通过检测Vcc上拉。
16、电 阻的变化来确定的,并在检测到USB设备插入时,加载设备总线驱动,开始对USB设备进行 枚举操作,然后USB设备接收主机下发的一系列setup包,包括“取设备描述符”、“设置设备 地址”、“取配置描述符”、“取端点描述符”、“取字符串描述符”、“取端点描述符”、“选择配置” 等命令,USB HID设备逐一对其做出响应,完成枚举过程。 0044 在枚举过程中将主机发送的某些标志性数据存储起来。如Mac操作系统和 Windows7操作系统的区别在于,Mac操作系统不会对USB HID设备发送Set Idle命令,而 Windows7操作系统则发送;Mac操作系统和Linux操作系统的区别在于,L。
17、inux操作系统不 会对设备发送Get InPutReport命令。枚举完成后根据这些标志来判断出当前操作系统类 型。 0045 S3、在USB HID设备与主机操作系统之间依次完成软掉电与再次连接处理后进行 第二次枚举,以保证USB HID设备能够正常工作。 0046 具体地,在步骤S3中包括以下步骤: 0047 300、对USB HID设备与主机操作系统进行软掉电处理后再次连接; 0048 301、根据当前操作系统类型选取相应的配置描述符等数据对USBHID设备进行第 二次枚举。 0049 在步骤300中,USB HID设备在预定时间内,使其内部的上拉电阻断开与主机电源 电压或工作电压的连。
18、接,在超过预定时间后,USB HID设备中的上拉电阻再次与主机的电源 电压或工作电压连接,使USB HID设备再次处于上电状态。 0050 根据当前操作系统类型选取相应的方法重新枚举USB设备。重新枚举即先将设备 软掉电,然后选取对应的描述符等信息进行第二次USB枚举。USB HID设备是通过改变主机 Vcc(电源电压或工作电压)的上拉电阻状态来告知主机自身的插拔状态,USB HID设备内 部集成有上拉电阻,默认状态下是不与Vcc相连的,当USB HID设备与主机建立连接时,USB 设备内部的上拉电阻连接到Vcc上,这样主机便可以通过检测Vcc上的上拉电阻的变化来 确定是否有USB HID设备。
19、连入了;软掉电处理具体是指:USB HID设备断开内部上拉电阻与 Vcc的连接,这样,主机操作系统将会监控到USB HID设备是拔出状态,但USB HID设备是与 Vcc相连的,依然可以从Vcc处获取电源,USB HID设备依然是处于上 电状态的,断开预定 时间后(极短的时间),USB HID设备内部上拉电阻将再次连到Vcc,主机操作系统将再次 监控到USB HID设备的插入,重新开始进行枚举操作。 0051 S4、USB HID设备在接收到主机发送的重启标志后,则重新执行整个流程来判断主 机重启后的操作系统。 0052 具体地,在步骤S4中,判断USB HID设备是否收到主机发送的重启标志,。
20、若确认收 说 明 书CN 102890662 A 4/4页 6 到,则返回步骤S2重新执行;若确认没有收到,则返回步骤S3,检测主机是否发送了重启标 志。 0053 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 说 明 书CN 102890662 A 1/4页 7 图1 说 明 书 附 图CN 102890662 A 2/4页 8 图2 说 明 书 附 图CN 102890662 A 3/4页 9 图3 图4 说 明 书 附 图CN 102890662 A 4/4页 10 图5 说 明 书 附 图CN 102890662 A 10 。