好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

USB设备识别主机Windows操作系统版本类型的方法.docx

7页
  • 卖家[上传人]:ting****789
  • 文档编号:308617047
  • 上传时间:2022-06-12
  • 文档格式:DOCX
  • 文档大小:22.97KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • USB设备识别主机Windows操作系统版本类型的方法专利名称:USB设备识别主机Windows操作系统版本类型的方法技术领域:本发明涉及计算机操作系统领域,具体来说,涉及一种USB设备识别主机Windows 操作系统版本类型的方法背景技术:USB协议技术是主机与外部设备连接的串行总线标准,在主机(例如,个人计算 机、个人数字助理以及移动电脑等)上使用十分广泛,支持热插拔和即插即用,并支持总线 供电,鼠标、键盘、游戏手柄、扫描仪、数码相机、打印机、硬盘、安全设备、光驱和网卡等几乎 所有的外围设备都可以通过运行USB接口与主机相连并进行通信,USB接口已经成为目前 大多数主机外设与计算机相连的缺省接口在某些情况下,设备可能必须知道它所连接的主机计算机上运行的操作系统的类 型,但是,现有技术中,设备却是无法识别主机操作系统的发明内容本发明提供了一种USB设备识别主机Windows操作系统版本类型的方法,具体技 术方案如下一种USB设备识别主机Windows操作系统版本类型的方法,所述方法包括步骤A、USB设备上电,并进行初始化;步骤B、所述USB设备进行USB枚举,并判断所述USB枚举过程中是否接收到第一 预设命令,如果是,则判定主机操作系统为第一操作系统,执行步骤D,否则,执行步骤C ;步骤C、所述USB设备判断所述USB枚举过程中向主机返回的设备类型,当所述USB设备向所述主机返回的设备类型是CCID设备时,所述USB设备判断接 收到的指令中是否存在第二预设命令,如果存在所述第二预设命令,则判定主机操作系统 为第二操作系统,如果不存在所述第二预设命令,则判定主机操作系统为第三操作系统;当所述USB设备向所述主机返回的设备类型是SCSI设备时,所述USB设备接收所 述主机下发的SCSI指令,并判断接收到的所述第二条SCSI指令是第三预设命令还是第四 预设命令,如果是所述第三预设命令,则判定主机操作系统为第二操作系统,如果是所述第 四预设命令,则判定主机操作系统为第三操作系统;步骤D、所述USB设备与主机建立通信,并等待接收所述主机下发的指令,根据所 述判定出的主机操作系统类型向所述主机返回相应的信息。

      所述初始化包括将设备类型标识初始化为默认设备类型标识所述初始化还包括将上电标识初始化为第一预设值、设备类型标识初始化为默 认设备类型标识所述USB设备判断所述USB枚举过程中向主机返回的设备类型为所述USB设备 根据所述USB枚举过程中返回的设备类型标识来判断所述返回的设备类型所述方法还包括所述USB设备判定出主机操作系统类型是第一操作系统、第二4操作系统或第三操作系统后,将设备类型标识置为第一设备类型、第二设备类型或第三设 备类型所述步骤D还包括所述USB设备判断当前设备类型标识是否与默认设备类型标 识相同,如果相同,则所述USB设备与主机通信,等待接收所述主机下发的指令;如果不相 同,所述USB设备进行软掉电处理,并将所述上电标识置为第二预设值,执行步骤A所述初始化还包括将上电标识初始化为第一预设值,将操作系统类型标识初始 化为默认操作系统类型标识所述方法还包括所述USB设备存储有操作系统类型标识与设备类型标识的映射表所述USB设备判断所述USB枚举过程中返回的设备类型为所述USB设备根据默 认操作系统类型标识查找所述映射表得到相应的设备类型标识,根据所述查找所得的设备 类型标识来判断所述返回的设备类型。

      所述方法还包括所述USB设备判定出主机操作系统类型是第一操作系统、第二 操作系统或第三操作系统后,将操作系统类型标识置为第一预设标识、第二预设标识或第 三预设标识所述步骤D还包括所述USB设备判断当前操作系统类型标识是否与所述默认操 作系统类型标识相同,如果相同,则所述USB设备与主机建立通信,并等待接收所述主机下 发的指令;如果不相同,所述USB设备进行软掉电处理,并将所述上电标识置为第二预设 值,执行步骤A在所述步骤A之后,所述方法还包括判断所述USB设备是否是首次上电,如果是 首次上电,则执行步骤B ;如果不是,所述USB设备执行步骤D判断所述USB设备是否是首次上电具体为判断上电标识是否是第一预设值,如 果是,则所述USB设备是首次上电,如果不是,则所述USB设备不是首次上电;所述USB设备向所述主机返回的设备类型还包括HID设备所述第一预设命令为取设备配置描述符命令;所述第二预设命令为取设备状态指 令;所述第二条SCSI指令为取设备信息指令所述USB设备判断接收到的第二条SCSI指令是第三预设命令还是第四预设命令 为所述USB设备根据所述第二条SCSI指令的命令域的内容进行判断,当所述第二条SCSI 指令的命令域内容是第一预设内容时,所述第二条指令是所述第三预设命令;当所述第二 条SCSI指令的命令域内容是第二预设内容时,所述第二条指令是所述第四预设命令。

      所述第一操作系统为Windows XP,所述第二操作系统为Windows 7,所述第三操作 系统为 Windows Vista有益效果USB设备通过分析接收到的由主机下发的指令,便可以确定主机 Windows操作系统版本类型,并在确定主机Windows操作系统版本类型后,向不同版本的主 机操作系统暴露不同的USB属性,以便更好的和主机操作系统配合工作图1为本发明实施例1提供的一种USB设备识别主机Windows操作系统版本类型 的方法流程图2为本发明实施例2提供的一种USB设备识别主机Windows操作系统版本类型 的方法流程图;图3为本发明实施例3提供的一种USB设备识别主机Windows操作系统版本类型 的方法流程图具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述在进行具体说明之前,对USB设备与主机之间的通信原理进行简单的说明,如下USB设备与主机之间的通信是由主机发送命令给USB设备,USB设备对接收到的 命令进行响应,USB设备与主机之间通信的基本单位是“包”,其中,“包”的分类主要有令 牌包、数据包和握手包,由PID来决定包的具体类型。

      其中,令牌包的格式为SYNC+PID+ADDR+ENDP+CRC ;数据包分为DATAO包和DATAl 包,在USB设备返回的数据长度超过相应端点的最大输出数据包长度时,需要将返回的数 据分批发送,一般情况下,DATAO包和DATAl包交替发送;握手包的格式为SYNC+PID其中,USB设备与主机之间通过设备端点来进行数据的收发例如PID=SETUP ADDR 00 ENDP 00 CRC5 02 idle 3PID=DATAO data 80 06 00 01 00 00 40 00 CRC16 :94dd idle 7PID :ACK idle :2ela上述命令说明,该包为SETUP包,数据内容是80 06 00 01 00 00 40 00,握手包 为ACK ;其中,SETUP包由主机下发,USB设备接收到该SETUP包后向主机返回应答信息,例 如PID :IN ADDR 00 ENDP 00 CRC5 02 idle 7PID =DATAl data 12 01 10 01 00 00 00 08 CRC16 :7711 idle 7PID :ACK idle :2el6PID :0UT ADDR 00 ENDP 00 CRC5 02 idle 3PID DATAl data :CRC16 0000 idle 7PID :ACK idle :2e5aUSB设备向主机返回的应答数据是12 01 10 01 00 00 00 08,需要说明的是,USB设备在接收到主机下发的IN或OUT的令牌包后,向主机返回应答数据;这样,USB设备与主机之间便完成了一次信息交互,而每一次的信息交互,都是由 接收到主机下发的SETUP包开始的。

      另外,还需要说明的是,根据USB设备与主机间进行数据通信时采用的通信协议 (CCID、SCSI或HID协议)的不同,USB设备又可以分为CCID设备、SCSI设备和HID设备实施例1本实施例提供了一种USB设备识别主机Windows操作系统版本类型的方法, Windows操作系统版本类型是根据内核的不同进行划分的,以Windows XP.ffindows Vista、 Windows 7为代表进行说明参见图1,具体方法如下101、USB设备上电,并进行初始化;其中,USB设备具体包括安全设备(如USB Key)、读卡器等;具体地,USB设备通过USB总线连接到主机,并从主机Vcc (电源电压或工作电压) 处获取工作电压;初始化操作具体包括USB设备将自身存储的上电标识、操作系统标识初始化为 默认标识;具体地,默认上电标识为第一预设值,默认操作系统标识可以是第一预设标识、第 二预设标识或第三预设标识中的一个;其中,第一预设标识对应第一操作系统、第二预设标识对应第二操作系统、第三预 设标识对应第三操作系统;需要说明的是,主机操作系统时刻监测USB总线上是否有设备接入,具体是通过 检测Vcc上拉电阻的变化来确定的,并在检测到USB设备接入时,加载设备总线驱动,开始 对USB设备进行枚举操作,具体如102至106所示。

      102、USB设备总线复位;需要说明的是,USB设备总线复位后,该USB设备的默认地址0被使能,接下来,USB 设备与主机之间通过地址0来传输命令及数据103、USB设备判断自身是否是首次上电,如果不是,执行104,如果是,执行105 ;判断USB设备是否是首次上电具体为判断上电标识是否为第一预设值,如果是, 则USB设备为首次上电,否则,不是首次上电104、USB设备按照当前操作系统标识完成枚举,并与主机建立通信,等待接收主机 下发的指令;105、USB设备接收主机下发的一系列setup包,按照默认操作系统标识完成USB枚 举;具体地,默认操作系统标识所对应的主机操作系统向USB设备下发一系列的 setup包,对USB设备进行枚举,以获取USB设备的描述信息;USB设备接收主机下发的一系列setup包,包括“取设备描述符”、“设置设备地 址”、“取配置描述符”、“取端点描述符”、“取字符串描述符”、“取端点描述符” “选择配置”等 命令,USB设备逐一对其做出响应106,USB设备判断USB枚举过程中是否存在第一预设命令,如果存在,执行107,如 果不存在,执行108;具体地,第一预设命令为取配置描述符命令;具体地,取配置描述符命令为80 06 00 02 00 00 09 00。

      107、USB设备认定主机操作系统是第一操作系统,并将操作系统标识置为第一预 设标识,执行116 ;具体地,第一操作系统是Windows XP;108、USB设备根据默认操作系统标识来判断USB枚举过程中返回的设备类型是 CCID设备、SCSI设备和HID设备的哪一种,如果是CCID设备,执行109 ;如果是SCSI设备,执行112 ;7如果是HID设备,执行115 ;具体地,在USB枚举过程中,USB设备接收到主机下发的“取设备描述符”信息后, 在操作系统标识与设备类型标识的映射表中,查找操作系统标识所对应的设备类型,并将 查找所得的设备类型返回给主机其中,操作系统标识与设备类型标识的映射表是预先设定,并存储在USB设备中 的;这样,USB设备在判断返回的设备类型时,就可以通过操作系统标识与设备类型标 识的映射表,根据操作系统标识来确认设备类型了 ;例如,第一预设标识映射CCID设备标识、第二预设标识映射SCSI设备标识、第三 预设标识映射HID设备标识,则,当操作系统标识是第一预设标识时,USB设备便根据该标 识知道返回的设备类型是CCID设备109、USB设备接收主机CCID驱动程序下发的CCID命令,并判断接收到的命令中 是否存在第二预设命令,如果不存在,执行110,如果存在,执行111 ;之前,主机在接收到USB设备。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.