一种自动识别主机操作系统的方法、装置及usb设备的制造方法

文档序号:8502142阅读:772来源:国知局
一种自动识别主机操作系统的方法、装置及usb设备的制造方法
【技术领域】
[0001]本发明涉及嵌入式开发领域,涉及一种外接设备自动识别主机操作系统的方法、装置及USB设备。
【背景技术】
[0002]现今,USB设备越来越多,其被广泛应用在各种操作系统之上。但是,不同的操作系统对同一个USB设备的需求可能会有所不同。因此,USB设备如何能识别出当前接入主机的操作系统类型便成为一个问题。
[0003]目前已有的自动识别操作系统的方法主要有两种。一种是在主机上预先安装USB设备的过滤驱动,并且在驱动中预先实现和USB设备约定的识别码,比如WINDOS系统下主机驱动会下发Oxal,MAC系统下主机驱动下发0xa2等。一种是利用微软扩展的MODS消息做区别,由于WINDOWS系统会下发该消息给支持MODS的设备,而非WINDOWS系统不会下发该消息给设备,从而达到识别操作系统的目的。
[0004]以上两种方法,第一种需要用户在使用USB设备前必须预先安装过滤驱动,对用户的使用造成不便。第二种需要在USB设备中扩展对MODS消息的支持,同时该方案的缺陷就是无法达到对LINUX系统与MAC系统的更细粒度的区分。

【发明内容】

[0005]有鉴于此,本发明提供了一种自动识别主机操作系统的方法、装置及USB设备,以解决现有技术中主机操作系统识别方法复杂及对某些主机操作系统无法识别的问题。
[0006]为解决上述问题,本发明提供了一种自动识别主机操作系统的方法,用于一外接设备,所述外接设备中保存有所述外接设备支持的各种操作系统各自不同的系统判别参数标准值,每个操作系统对应于一消息序列,所述消息序列由所述操作系统在所述外接设备配置完成前应该发送的消息组成,每个操作系统对应的所述系统判别参数标准值根据所述操作系统对应的消息序列计算得到,所述方法包括:
[0007]获取步骤,获取所述外接设备在配置完成前从当前主机接收到的所有消息;
[0008]计算步骤,根据收到的所述消息,计算所述系统判别参数的实际值;
[0009]识别步骤,确定对应的系统判别参数标准值等于所述实际值的操作系统为所述当前主机的操作系统。
[0010]优选地,所述消息序列中的消息为请求描述符消息,所述获取步骤中获取的消息为请求描述符消息。
[0011]优选地,每个所述请求描述符消息具有各自对应的权值,且每个操作系统的系统判别参数标准值根据所述操作系统对应的消息序列中的请求描述符消息的权值计算得到,所述计算步骤具体包括:
[0012]第一计算步骤,确定接收到的每个请求描述符消息的权值;
[0013]第二计算步骤,根据接收到的每个请求描述符消息的权值计算所述系统判别参数的实际值。
[0014]优选地,所述外接设备可能接收到的所有所述请求描述符消息按照任意方式排序后,第η个请求描述符消息对应的权值为211-1,其中η大于或等于1,所述系统判别参数的实际值为接收到的所有请求描述符消息的权值的和。
[0015]优选地,所述外接设备为USB3.0设备。
[0016]本发明还提供一种自动识别主机操作系统的装置,用于一外接设备,所述外接设备中保存有所述外接设备支持的各种操作系统各自不同的系统判别参数标准值,每个操作系统对应于一消息序列,所述消息序列由所述操作系统在外接设备配置完成前应该发送的消息组成,每个操作系统对应的系统判别参数标准值根据所述操作系统对应的消息序列计算得到,所述装置包括:
[0017]获取模块,获取所述外接设备在配置完成前从当前主机接收到的所有消息;
[0018]计算模块,根据收到的所述消息,计算所述系统判别参数的实际值;
[0019]识别模块,确定对应的系统判别参数标准值等于所述实际值的操作系统为所述当前主机的操作系统。
[0020]优选地,所述消息序列中的消息为请求描述符消息,所述获取步骤中获取的消息为请求描述符消息。
[0021]优选地,每个所述请求描述符消息具有各自对应的权值,且每个操作系统的系统判别参数标准值根据所述操作系统对应的消息序列中的请求描述符消息的权值计算得到,所述计算模块具体包括:
[0022]第一计算模块,确定接收到的每个请求描述符消息的权值;
[0023]第二计算模块,根据接收到的每个请求描述符消息的权值计算所述系统判别参数的实际值。
[0024]优选地,所述外接设备可能接收到的所有所述请求描述符消息按照任意方式排序后,第η个请求描述符消息对应的权值为211-1,其中η大于或等于1,所述系统判别参数的实际值为接收到的所有请求描述符消息的权值的和。
[0025]优选地,所述外接设备为USB3.0设备。
[0026]本发明还提供一种自动识别主机操作系统的USB设备,所述USB设备中保存有所述USB设备支持的各种操作系统各自不同的系统判别参数标准值,每个操作系统对应于一消息序列,所述消息序列由所述操作系统在所述USB设备配置完成前应该发送的消息组成,每个操作系统对应的系统判别参数标准值根据所述操作系统对应的消息序列计算得至IJ,所述USB设备包括:
[0027]USB协议栈模块,获取所述USB设备在配置完成前从当前主机接收到的所有消息;
[0028]计算模块,根据收到的所述消息,计算所述系统判别参数的实际值;
[0029]识别模块,确定对应的系统判别参数标准值等于所述实际值的操作系统为所述当前主机的操作系统;
[0030]切换模块:根据确定的所述当前主机的操作系统类型,切换所述USB设备的当前状态,以适应所述当前主机的操作系统的需求。
[0031]本发明利用所述外接设备在配置完成前从当前主机接收到的所有消息计算而出的结果一实际值,来判别当前主机的操作系统类型,因而无需预先在主机安装过滤驱动即可获知当前主机的操作系统类型;再者,由于不同操作系统下发的消息不同,从而计算得到的所述实际值也能确保不同,因而其优于通过微软下发的MODS消息来进行操作系统的区分,可以对MAC系统和LINUX系统达到更细颗粒的区分。通过对不同操作系统的区分,以使所述外接设备切换到不同的设备类型,来满足不同操作系统对同一设备的需求。
【附图说明】
[0032]图1为本发明的实施例的自动识别主机操作系统的方法的一流程示意图;
[0033]图2为本发明的实施例的自动识别主机操作系统的装置的一结构示意图;
[0034]图3为本发明的实施例的自动识别主机操作系统的USB设备的一结构示意图;
[0035]图4为本发明的实施例的自动识别主机操作系统的方法的另一流程示意图。
【具体实施方式】
[0036]为使本发明要解决的技术问题、技术方案和有益效果更加清楚,下面将结合附图及具体实施例进行详细描述。
[0037]图1为本发明的实施例的自动识别主机操作系统的方法的一流程示意图。如图1所示,本发明提供一种自动识别主机操作系统的方法,用于一外接设备,所述外接设备中保存有所述外接设备支持的各种操作系统各自不同的系统判别参数标准值,每个操作系统对应于一消息序列,所述消息序列由所述操作系统在外接设备配置完成前应该发送的消息组成,每个操作系统对应的系统判别参数标准值根据所述操作系统对应的消息序列计算得至1J,所述方法包括:
[0038]获取步骤101,获取所述外接设备在配置完成前从当前主机接收到的所有消息;
[0039]计算步骤102,根据收到的所述消息,计算所述系统判别参数的实际值;
[0040]识别步骤103,确定对应的系统判别参数标准值等于所述实际值的操作系统为所述当前主机的操作系统。
[0041]采用上述实施例的自动识别主机操作系统的方法,由于利用所述外接设备在配置完成前从当前主机接收到的所有消息计算而出的结果一实际值,来判别当前主机的操作系统类型,因而无需预先在主机安装过滤驱动即可获知当前主机的操作系统类型;再者,由于不同操作系统下发的消息不同,从而计算得到的所述实际值也能确保不同,因而其优于通过微软下发的MODS消息来进行操作系统的区分,可以对MAC系统和LINUX系统达到更细颗粒的区分。通过对不同操作系统的区分,以使所述外接设备切换到不同的设备类型,来满足不同操作系统对同一设备的需求。
[0042]所述主机可以是个人计算机,也可以是支持USB的其它设备,例如具有操作系统的掌上电脑等。所述消息序列中的消息可以为所述操作系统在所述外接设备配置完成前发送的任何消息,例如可以为数码摄像机通过IEEE1394接口接收到的请求消息。
[0043]作为优选,所述消息序列中的消息为请求描述符消息,所述获取步骤中获取的消息为请求描述符消息。
[0044]所述请求描述符消息的特点在于所有操作系统都会对外接设备发送请求描述符消息,并且不同操作系统下发的所述请求描述符消息各不相同,这对于通过所述请求描述符消息来进行操作系统的判别,达到更细颗粒的区分提供了便利。
[0045]本实施例的自动识别主机操作系统的方法,通过收到的所述消息,计算所述系统判别参数的实际值,这里的计算是指任意形式的数学运算,例如可以是每个所述请求描述符消息具有各自对应的权值,且每个操作系统的系统判别参数标准值根据所述操作系统对应的消息序列中的请求描述符消息的权值计算得到,所述计算步骤具体包括:
[0046]第一计算步骤1021,确定接收到的每个请求
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1