具体实施方式
请参见图1,其为本发明在USB装置上自动侦测操作系统的示意图,其包含主机110、USB装置120、USB连接线130。该USB装置120可直接通过USB插接孔(图未示)而电气连接至该主机110,或是通过该USB连接线130而电气连接至该主机110。该USB装置120可为USB键盘、或USB鼠标或USB控制杆(joystick)或任何具有仿真键盘鼠标描述表的USB装置。其中具有仿真键盘鼠标描述表的USB装置是指在主机110取得装置组件描述(Get Device Descriptor)的过程中,该USB装置可被宣告成键盘鼠标。主机110可执行操作系统,该操作系统较佳为MicrosoftWindows操作系统、Apple MAC操作系统、或Linux操作系统。
当该USB装置120连接该USB插接孔或该USB连接线130后,该主机110通过该USB插接孔或该USB连接线130输出一串USB命令,以初始化该USB装置120。在本发明中,该USB装置120记录该操作系统传送至该USB装置120的USB命令。
图2为本发明中Microsoft Windows操作系统、Apple MAC操作系统、及Linux操作系统的USB行为差异的示意图。由图2可知,在初始化过程中,Microsoft Windows操作系统、Apple MAC操作系统、及Linux操作系统所输出的USB命令不完全相同。本发明即依此特性,而可在该USB装置120上判断位于主机110的操作系统。
例如:在Apple MAC操作系统及Linux操作系统中,不会输出SetInterface Report的USB命令,而仅有Microsoft Windows操作系统会输出Set Interface Report的USB命令。由此即可判断位于主机110的操作系统为Microsoft Windows操作系统。
图3为本发明中Microsoft Windows操作系统、Apple MAC操作系统、及Linux操作系统的USB行为差异的比较图。由图3可知,当接收到连续两次的Get Product String的USB命令、一次Get Vender String的USB命令、在Set Address的USB命令前面没有Reset的USB命令、没有Get Language ID的USB命令、或没有Set Feature Report的USB命令时,该USB装置120判定该操作系统为Apple MAC操作系统。
当没有Get Vender String的USB命令、有两组Get Language ID及Get Product String的USB命令、在Get Product String的USB命令后面有Get Device Descriptor的USB命令、或有Set Interface Report的USB命令时,该USB装置120判定该操作系统为Microsoft Windows操作系统。
当在Get Product String的USB命令后面接续Get Vender String的USB命令、只有一次Get4 Descriptor的USB命令、或有Get FeatureReport的USB命令时,该USB装置判定该操作系统为Linux操作系统。
图4为本发明在USB装置上自动侦测操作系统的方法另一实施例的流程图,其用以侦测与该USB装置120连接的主机110的操作系统为Microsoft Windows操作系统或是Apple MAC操作系统。
首先,在步骤S410中,当该USB装置120插入该USB插接孔或该USB连接线130后,该主机110通过该USB插接孔或该USB连接线130输出一串USB命令,以初始化该USB装置120。
在步骤S420中,该USB装置120接收该操作系统传送至该USB装置120的Get Device Descriptor的USB命令。其中该USB装置送出具有仿真键盘鼠标的描述表,以宣告其为键盘鼠标装置。
在步骤S430中,该USB装置120判断该操作系统是否传送Reset的USB命令。
若判定该操作系统没有传送该Reset的USB命令,则将旗标设为0(步骤S440),否则将该旗标设为1(步骤S450)
在步骤S460中,记录该操作系统传送至该USB装置的USB命令。
在步骤S470中,判断该操作系统是否传送Set Interface Report的USB命令,若有且该该旗标为1时,该USB装置判定该操作系统为Windows操作系统(步骤S480),否则,该USB装置判定该操作系统为MAC操作系统(步骤S490)。
本发明的技术可在该USB装置120的微控器的固件算法来达成,故无需通过驱动程序,也不需系统重新开机或热插拔的动作,即可立即完成判别功能。通过本发明,USB装置120可在不同操作系统达到相同功能,故可避免因操作系统语系及输入法的不同而发生功能失效的情况。
通过本发明的技术,该USB装置120可判别主机110端的操作系统,因此可提供非Microsoft Windows操作系统通过复合指令的方式,启动其对应的功能,使得该USB装置120在不同操作系统中仍可提供相同服务,进而提升该USB装置120的功能。由于以往未有此类型的判别方法,因此在非Windows操作系统中必须安装应用程序及驱动程序才能达成原本Windows操作系统才具有的多媒体功能。通过本发明,可无需安装任何驱动程序与应用程序,仅由该USB装置120的微控器上的固件判别目前的操作系统,即可依据操作系统执行相对应的功能,由此提升产品支持性、降低软件的依赖性。
由上述说明可知,利用本发明的技术,可以彻底解决USB装置120在单一操作系统所具有的功能无法使用在另一操作系统的问题。例如在Microsoft Windows操作系统中,具有快捷键可执行浏览器,而其功能却无法作Apple MAC操作系统或Linux操作系统中使用;或是智能型输入装置仅能在Microsoft Windows操作系统中使用,而无法在AppleMAC操作系统或Linux操作系统中启动相同功能。现有USB输入装置常局限在单一操作系统中发展其固件,在其它操作系统中却无法具有其新增功能。本方法的USB装置在正确识别操作系统后,可针对各种不同操作系统执行相对应的功能。
相比于以往的技术,由于各操作系统的操作方式皆不相同,加上未有侦测操作系统的方法,导致USB装置仅能针对部分操作系统提供输入装置完整服务,而其它的操作系统仅能使用部分功能。此外,现有技术仅靠驱动程序以针对不同的操作系统提供相同的功能。本发明则无需安装驱动程序,也不需要重开操作系统或热插拔的动作,在USB装置120插入后,即可完成侦测主机110的操作系统的功能。在配合智能型输入装置时,使得智能型输入装置可针对所识别的操作系统以执行该操作系统的操作行为,由此避免智能型输入系统在无法识别操作系统时,造成不可预期的操作错误。
由上述可知,本发明无论就目的、手段及功效,均显示出其迥异于现有技术的特征,极具实用价值。但是应注意的是,上述诸多实施例仅为了便于说明用来举例而已,本发明所主张的权利范围自应以权利要求为准,而非仅限于上述实施例。