CN103748569B - Usb设备的无驱动操作的系统和方法 - Google Patents
Usb设备的无驱动操作的系统和方法 Download PDFInfo
- Publication number
- CN103748569B CN103748569B CN201280041333.8A CN201280041333A CN103748569B CN 103748569 B CN103748569 B CN 103748569B CN 201280041333 A CN201280041333 A CN 201280041333A CN 103748569 B CN103748569 B CN 103748569B
- Authority
- CN
- China
- Prior art keywords
- peripherals
- equipment
- existing connection
- computer system
- communication channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
- Information Transfer Systems (AREA)
Abstract
提供了重新列举可操作地连接到计算机系统的外围设备的系统和方法。在一个例子中,系统被配置为通过向OS重新描述外围设备禁止通过设备驱动建立的操作系统和外围设备之间的现有连接。在另一个例子中,所述系统还可以被配置为在外围设备上执行一个或多个操作,而不必使用OS固有的通信信道进行新驱动的安装。一旦完成一个或多个操作,就可以配置所述系统重新恢复现有连接。
Description
背景
技术领域
本发明的技术领域总体上涉及对设备操作进行控制的系统和方法,并且更具体地,涉及在附接的外围设备上对无驱动操作的执行进行控制的系统和方法。
背景技术
一般地,计算机系统上的传统设备安装涉及对执行在计算机系统上的操作系统“OS”的配置,以接受和管理外围设备。外围设备(也称为“设备”)包含任何不属于计算机系统的原始配置的、附接到计算机系统的、基于硬件的设备。在传统的OS中,OS被配置为自动检测这些设备并基于设备类型和任何可用设备描述,加载适当的设备驱动。自动检测并加载设备驱动能够帮助用户集成并操作标准设备(例如:鼠标、键盘、外部硬盘驱动器、打印机等等)。然而,已经知道传统设备驱动操作具有一些重大缺点,包含非预期的操作、OS不稳定、甚至驱动错误导致的OS故障。
对设备驱动的通信和操作进行标准化已经尝试解决了这些问题中的一些问题。对于通过USB连接而连接的外围设备,可以应用人机界面设备“HID”架构。任何设备都可以是USBHID类设备,只要它被配置为满足USBHID类逻辑规范。HID规范定义了可采用的标准配置和通信信道。作为标准通信协议的一部分,为了在其他通信信道中与USB设备进行通信,HID规范定义了控制端点和中断端点。在HID架构中可以将设备的某些类型组织为特定类。例如,可以将不间断电源“UPS”分组到电力设备类,并且通过USB连接进行配置的兼容的UPS也可以称为HID电力设备。
当任何USB兼容的设备通过USB连接来连接到主计算机系统时,该设备就与主计算机系统建立通信。运行在主计算机系统上的OS基于设备提供的描述信息识别设备,该描述信息可以包含特定类的标识且可以包含特定类型。基于OS检索到的标识信息,OS识别适当的驱动并加载该驱动以管理设备。在一些例子中,OS没有特定于该设备的驱动,因此终端用户必须首先安装供货商供应的设备驱动以管理该设备。一般地,给传统的OS配发一大批外围设备供货商/制造商供应的定制的驱动。
此外,可以通过特定的外围设备附带的软件对定制的设备驱动进行安装。在一些场景中,OS可以通过例如互联网的网络连接定位适当的驱动。OS安装已识别的驱动并可以将驱动加载以管理设备。在其他场景中,设备驱动提供在随外围设备提供的安装介质上。
USB连接的设备通过USB规范定义的多种类型的子通信信道进行通信。对于USB和USBHID兼容的设备,可以使用设备或主OS发起的用于双向通信的控制端点(获取/设置特征)和用于异步通信的中断端点进行通信。传统地,OS只支持一个软件应用(例如,已安装并加载的驱动)使用中断端点同外围设备通信。传统地,如果另一个应用或工具请求终端控制或通信,或者如果请求支持附加特征,则OS必须安装并加载新驱动以代替现有的驱动。
发明内容
根据一些方面,不希望为了转移中断控制、改变外围设备配置、或扩展外围设备功能而请求安装新驱动。一般地,需要新驱动发生在供货商更新软件、修订设备操作、支持定制的特征和操作、和/或重新设计特定于特殊设备的设备驱动的情况下。一般地,大多数终端用户不熟悉驱动的安装且对于对其有一定了解的用户而言,安装新设备驱动的前景可能是令人望而生畏的、耗费时间的、和充满错误的。此外,安装新驱动可能导致无论是由于在特定的操作系统上安装的驱动的错误、非期望的交互、或非预料的功能引起的系统不稳定和非预计的操作。更复杂的驱动问题、驱动开发可能需要OS制造商进行验证从而保证驱动的有效性。
在一些实施方案中,通过执行“无驱动的”设备控制消除与设备驱动安装相关的困难。无驱动的设备控制可以用在OS能够与外围设备进行通信和对其进行管理而不必安装设备驱动的场景。例如,WINDOWS操作系统包含不必安装可以使用的标准USBHID驱动。因为不必安装新驱动来通过转换(reversion)到OS的固有控制来建立控制权,所以这种操作称为无驱动的。在一些例子中,用户模式应用可以通过这些无驱动的通信信道与外围设备进行通信,这些无驱动的通信信道是由正被采用来操作该设备的、与任何供货商供应的驱动无关的OS固有驱动提供的。
根据另一个方面,提出了更改外围设备或更改外围设备控制的方法和系统,其支持软件应用控制中断业务而不必更改给定的OS的配置和/或任何已安装的供货商供应的驱动。在一些设置中,可以执行进行控制的应用而不必安装任何驱动或与OS进一步集成。在一些实施方案中,无驱动控制应用可以使用已经配置在OS中的USB通信信道直接与外围设备进行通信。在一些设置中,控制应用可以触发外围设备标识信息的改变,从而断开OS和已安装的驱动之间的现有连接。在一个例子中,设备被重新定义为通用USBHID设备。例如,外部硬盘驱动器外围设备可以被重新定义为具有不同类型的不同设备。一旦外部硬盘驱动器被重新列举为具有不同类型的不同设备,就断开了OS和使用当前驱动的设备之间的任何现有连接。重新列举可以涉及将外围设备识别为未知类型和/或类。在一些例子中,重新列举可以包含将设备描述为通用类型和/或类。因为存在用于USB的已定义的通信信道,所以仍然可以同设备进行通信而不必安装新驱动,进而建立“无驱动的”通信。因此,基于标识信息的选择,控制应用可以采用已经配置在OS中的现有控件以承担对外围设备和其产生的任何中断业务的管理而不必安装新驱动。
USB连接的设备通过已知的USB通信信道进行通信,OS可以管理这些标准通信信道而不必依靠用于控制的新驱动安装。而且,包含明确定义的通信信道和另外定义的用于各种HID设备类的通信协议的HID规范作为USB标准的扩展。已经可以使用的标准OS驱动提供操控外围设备所需的稳定性和功能性。USB标准和相关规范被认为将是熟知的,并且USB标准可以在万维网地址usb.org上找到,并且HID规范也可以在同一个站点usb.org/developers/hidpage/上找到且包含,例如,在usb.org/developers/devclass_docs/pdcv10处的“HID电力设备的通用串行总线用途表(UniversalSerialBusUsageTablesforHIDPowerDevices)”。
在一些实施方案中,无驱动的控制软件可以同外围设备进行通信,从而使得设备被重新列举。重新列举过程被配置为断开任何OS和已安装的驱动之间的现有连接。基于外围设备的重新列举,OS使用已经常驻在OS中的驱动对外围设备建立控制权。重新列举HID兼容的设备断开了通过任何已安装的设备驱动而建立的、设备和OS之间的现有连接且向OS上存在的标准USBHID驱动转移控制权。一旦现有连接被断开,无驱动的控制软件就可以使用固有的USBHID驱动控制外围设备且执行任何预期的操作而不必依靠安装新驱动。支持的功能可以包含原有驱动不支持的、外围设备上的操作。
在一些设置中,无驱动控制软件可配置为用于个别的操作,例如,可以在外围设备上执行固件升级。在其他设置中,在外围设备上可以执行多种操作,包含,例如,类重新定义、设备功能重组、外围设备特征激活、外围设备特征去激活,等等。一旦无驱动的控制软件在外围设备上执行了预期的功能,无驱动的控制软件就可以被配置为重新建立重新列举之前的设备标识信息。可以配置OS按照它之前的定义辨别设备,并且一旦完成识别,就可以进一步配置OS重新建立外围设备的重新列举之前使用的、OS和已安装的驱动之间的连接。
根据一个方面,提供了一个系统,其包括:可操作地连接到存储器的至少一个处理器,其中处理器被配置为基于存储器执行系统部件;控制部件被配置为:禁止操作系统和至少一个外围设备之间的现有连接,其中通过第一设备驱动来建立现有连接;在现有连接被禁止期间,使用已定义的通信信道来建立与至少一个外围设备的通信;通过已定义的通信信道在至少一个外围设备上执行至少一个操作;以及触发至少一个外围设备的列举以恢复操作系统和至少一个外围设备之间的现有连接。根据一个实施方案,控制部件还被配置为通过现有连接重新定义外围设备的标识信息。根据一个实施方案,控制部件还被配置为将外围设备的标识信息恢复到原始状态。根据一个实施方案,控制部件还被配置为触发由操作系统执行的硬件发现操作。根据一个实施方案,至少一个外围设备通过USB接口可操作地连接到计算机系统。
根据一个实施方案,控制部件还被配置为确定至少一个外围设备支持重新列举。根据一个实施方案,控制部件还被配置为确定外围设备被识别为USB人机界面设备HID。根据一个实施方案,控制部件还被配置为将外围设备变为对操作系统是未知的。根据一个实施方案,控制部件还被配置为使用无驱动的通信信道与外围设备进行通信。根据一个实施方案,系统被配置为在现有连接被禁止期间,使用已定义的通信信道并使用固有的OS驱动与至少一个外围设备建立通信。根据一个实施方案,固有的OS驱动是USBHID驱动。根据一个实施方案,已定义的通信信道包含用于至少一个外围设备的控制端点和中断端点。
根据一个实施方案,至少一个操作包含升级外围设备的固件,在外围设备上启动附加功能,在外围设备上禁止功能,以及修改外围设备的至少一个运行参数中的至少一个。根据一个实施方案,外围设备包括不间断电源“UPS”设备。根据一个实施方案,UPS设备被识别为USBHID电力设备。根据一个实施方案,通过与至少一个外围设备相关的控制端点和中断端点中的至少一个进行无驱动的通信。根据一个实施方案,至少一个操作改变外围设备的至少一个运行参数。
根据一个方面,提供了用于对外围设备进行重新列举的计算机实现的方法。该方法包括:由计算机系统禁止运行在计算机系统上的操作系统和可操作地连接到计算机系统上的至少一个外围设备之间的现有连接,其中现有连接是通过第一设备驱动来建立的;由计算机系统使用已定义的通信信道来建立与至少一个外围设备的通信;由计算机系统通过已定义的通信信道在至少一个外围设备上执行至少一个操作;以及由计算机系统触发对外围设备的列举以恢复通过第一设备驱动而建立的操作系统和外围设备之间的现有连接。根据一个实施方案,禁止现有连接的动作包含通过现有连接重新定义外围设备的标识信息的动作。根据一个实施方案,该方法还包括将外围设备标识信息恢复到原始状态。根据一个实施方案,触发对外围设备的列举以恢复现有连接的动作包含触发由操作系统执行的硬件发现操作的动作。
根据一个实施方案,至少一个外围设备通过USB接口可操作地连接到计算机系统。根据一个实施方案,方法还包括确定至少一个外围设备支持重新列举。根据一个实施方案,方法还包括确定外围设备被识别为USB人机界面设备HID。根据一个实施方案,禁止现有连接的动作包含将外围设备变为对操作系统是未知的动作。根据一个实施方案,建立通信的动作包含使用无驱动的通信信道与外围设备进行通信。根据一个实施方案,建立通信的动作包含使用固有的OS驱动使其发生。根据一个实施方案,固有的OS驱动是USBHID驱动。根据一个实施方案,已定义的通信信道包含用于至少一个外围设备的控制端点和中断端点。根据一个实施方案,至少一个操作包含升级外围设备的固件,在外围设备上启动附加功能,在外围设备上禁止附加功能,以及修改外围设备的至少一个运行参数中的至少一个。根据一个实施方案,外围设备包括不间断电源“UPS”设备。根据一个实施方案,UPS设备由操作系统识别为USBHID电力类设备。根据一个实施方案,通过与至少一个外围设备相关的控制端点和中断端点中的至少一个进行无驱动的通信。根据一个实施方案,至少一个操作改变外围设备的至少一个运行参数。根据一个实施方案,禁止现有连接的动作包含禁止第一设备驱动的动作。
根据一个方面,提供了一种非暂态计算机可读介质。该计算机可读介质具有存储在其上的用于重新列举外围设备的指令序列,该指令序列包含指令,其使得至少一个处理器禁止运行在计算机系统上的操作系统和可操作地连接到计算机系统上的至少一个外围设备之间的现有连接,其中现有连接是通过第一设备驱动来建立的;使用已定义的通信信道来与至少一个外围设备建立通信;通过已定义的通信信道在至少一个外围设备上执行至少一个操作;以及触发外围设备的列举以恢复通过第一设备驱动而建立的操作系统和外围设备之间的现有连接。
根据一个实施方案,指令序列包含另外的指令,其将使得至少一个处理器通过现有连接重新定义外围设备的标识信息。根据一个实施方案,指令序列包含另外的指令,其将使得至少一个处理器将外围设备标识信息恢复到原始状态。根据一个实施方案,指令序列包含另外的指令,其将使得至少一个处理器触发由操作系统执行的硬件发现操作。根据一个实施方案,至少一个外围设备通过USB接口可操作地连接到计算机系统。根据一个实施方案,指令序列包含另外的指令,其将使得至少一个处理器确定至少一个外围设备支持重新列举。根据一个实施方案,指令序列包含另外的指令,其将使得至少一个处理器确定外围设备被识别为USB人机界面设备HID。根据一个实施方案,指令序列包含另外的指令,其将使得至少一个处理器将外围设备变为对操作系统是未知的。
根据一个实施方案,指令序列包含另外的指令,其将使得至少一个处理器使用无驱动的通信信道与外围设备进行通信。根据一个实施方案,指令序列包含另外的指令,其将使得至少一个处理器在现有连接被禁止期间,使用已定义的通信信道、使用固有的OS驱动建立与至少一个外围设备的通信。根据一个实施方案,固有的OS驱动为USBHID驱动。根据一个实施方案,已定义的通信信道包含用于至少一个外围设备的控制端点和中断端点。根据一个实施方案,至少一个操作包含升级外围设备的固件,在外围设备上启动附加功能,在外围设备上禁止功能,向外围设备上增加特征,以及修改外围设备的至少一个运行参数中的至少一个。
根据一个实施方案,外围设备包括不间断电源“UPS”设备。根据一个实施方案,UPS设备被识别为USBHID电力设备。根据一个实施方案,通过与至少一个外围设备相关的控制端点和中断端点中的至少一个进行无驱动的通信。根据一个实施方案,至少一个操作改变外围设备的至少一个运行参数。
如下仍会详细讨论其他的方面、其他的实施方案、以及这些有代表性的方面和实施方案的优点。此外,需要理解的是,前述信息和下述详细描述都仅是各个方面和各个实施方案的说明性的例子,并且旨在提供用于理解所要求保护的方面和实施方案的本质和特性的概述或框架。本文公开的任何例子或实施方案可以与任何其他例子或实施方案结合。所提到的“例子”、“实施方案”、“一些例子”、“一些实施方案”、“供选择的例子”、“各种实施方案”、“一个例子”、“至少一个实施方案”、“这些和其他例子”或相似项不一定相互排斥,且旨在表示结合例子或实施方案的相关的所描述的特定特征、结构、或特性可以包含在至少一个例子或实施方案中。本文出现的这些术语不一定都涉及相同的例子或实施方案。而且,当出现本文和通过引用合并到本文的文档之间的术语的使用不一致时,合并的引文中的术语的使用是对本文术语使用的补充;对于不可调和的不一致,本文的术语使用起决定作用。
附图说明
通过参照附图如下讨论了至少一个实施方案的各个方面,附图不必按照比例绘制。附图被包含是为了提供对各个方面和实施方案的说明和进一步理解,并且被合并在本说明书中且构成本说明书的一部分,但不必视为对任何具体实施方案的限制性的定义。附图连同本说明书的剩余部分,用于解释所描述和要求保护的方面和实施方案的原理和操作。在附图中,同样的数字代表了各个附图所示出的每个完全相同的或几乎完全相同的部件。为了清楚的目的,没有在每个附图中标注每个部件。在附图中:
图1是描述了在已安装的外围设备上执行无驱动的操作的示例过程的流程图;
图2是描述了在已安装的外围设备上执行无驱动的操作的示例过程的流程图;
图3是描述了在已安装的外围设备上执行无驱动的操作的示例过程的流程图;
图4是示出了在其上可以实现本公开内容的若干方面的通用计算机系统的框图;
图5是示出了在其上可以实现本公开内容的若干方面的分布式计算机系统的框图;以及
图6是示出了示例UPS外围设备的框图。
具体实施方式
本文公开的若干方面和若干实施方案提供通过其可以在可操作地连接到计算机系统的外围设备上可以执行无驱动的操作的过程和装置。例如,至少一个实施方案实现了对执行在计算机系统上的OS和用于控制外围设备的已加载的设备驱动之间的现有连接的断开的重新列举过程。在一些实施方案中,设备供货商提供设备驱动以使设备驱动与给定的设备进行特定的工作。一旦断开OS和驱动之间的连接,“无驱动的”控制应用就可以调用固有的管理控件。无驱动指的是控制应用使用OS中嵌入的驱动管理外围设备而不必请求传统的方法可能要求的需要安装新设备驱动的能力。
根据另一个方面,提供了可操作地连接到存储器的处理器执行的无驱动的控制引擎。无驱动的控制引擎被配置为在任何传统的OS上安装和执行。无驱动的控制引擎还可以被配置为识别能够支持无驱动的操作外围设备,包含例如,引擎能够识别HID兼容的USB设备。控制引擎可以被配置为断开通过已安装的驱动建立的OS和外围设备之间的现有连接。在一个例子中,控制引擎通过触发USBHID设备上可以使用的用途触发了外围设备的重新列举。该用途被配置为触发重新识别USBHID设备为与之前的配置不同类型的设备。当经由控制端点将该特定的用途写入外围设备中时,外围设备更改它的描述符信息、向OS重新识别它自身以及断开设备和OS之间的现有连接。
图1示出了用于在外围设备上执行无驱动的操作的示例处理流程100。执行无驱动的操作的过程和装置特别适合于使用明确定义的协议和标准,例如,USB和USBHID,进行计算机系统和外围设备之间的通信的环境。在一些实施方案中,外围设备为USBHID兼容设备且采用明确定义的通信信道,其在用于主机(连接的计算机系统)和设备之间的通信的USB和HID规范中进行描述。
过程100开始于在102处将外围设备耦合到计算机系统。在一些实施方案中,外围设备可以经由USB接口连接到计算机系统。在一些设置中,外围设备可以是USBHID兼容的。例如,符合USBHID电力类设备规范的UPS可以是在102处已安装的外围设备。在104处,计算机执行控制应用以执行外围设备上的“无驱动的”操作。无驱动的操作指的是获取与外围设备的中断通信的控制权而不必安装新设备驱动的能力。根据一些实施方案,在106处,通过断开OS和管理外围设备的驱动之间的任何连接实行了这种操作。通过重新列举外围设备为OS未知的类型和/或类可以断开连接。在一些例子中,管理外围设备的驱动为特定于外围设备的供货商供应的设备驱动。在另一个例子中,基于供货商的特定的信息变更描述符信息以将设备识别为通用类型和/或通用类设备。在其他实施方案中,可以通过OS固有的驱动来建立现有连接。
传统的OS在连接到外围设备时尝试使用存储在外围设备上的描述符识别外围设备且选择适合的驱动以管理外围设备。对外围设备的识别和对驱动的选择称为列举。列举过程可以包括主机(连接的计算机系统)通过读取外围设备的描述符发现新连接的外围设备,识别外围设备,以及加载适当的设备驱动。在动作102处已经被列举的USB外围设备然后可以在动作106处被重新列举,以断开通过选定的驱动构造的OS和外围设备之间的现有连接。在一个例子中,通过重写外围设备的描述符并基于重写的描述符信息触发重新列举断开现有连接。一旦现有连接断开,控制应用就可以使用包含中断控制的用于外围设备的任何已定义的通信信道。
一旦控制应用可以使用任何已定义的通信信道进行通信,控制应用就在108处执行在外围设备上的操作。操作可以改变外围设备的运行参数、改变功能、更新和/或更换常驻代码、以及可以访问OS和外围设备之间的现有连接不支持的设备功能。例如,对使用供货商供应的设备驱动的外围设备上的固件进行升级一般需要安装同样由供货商供应的新设备驱动。新设备驱动代替现有驱动。在一些例子中,新设备的驱动被特定地配置为用于升级设备固件的目的。可以通过在106处断开OS和现有驱动之间的连接且在108处支持控制应用采用已定义的通信信道在外围设备上执行期望的操作而不必安装任何新驱动,来消除安装新设备驱动的需求。一旦预期的操作完成,就在动作110处按照外围设备的原始描述通过重新列举外围设备恢复OS和外围设备之间的连接。例如在110处,OS将基于设备的原始描述辨别设备且适当的驱动将会是早已安装好的并且可以被用来管理外围设备。在一些例子中,OS根据设备的原始描述来识别外围设备以响应于断开和重新连接物理连接,例如,处于计算机系统和外围设备之间的USB线缆。在一些例子中,一旦基于外围设备的原始描述识别出外围设备,控制软件就可以触发OS所固有的硬件发现操作。OS被配置为基于外围设备的原始描述辨别外围设备且采用已经安装的设备驱动管理外围设备。
在另一个例子中,在动作102处OS可以识别用于操作外围设备的固有的OS驱动。通过在动作104处执行控制应用能够断开OS和固有的OS驱动之间的现有连接,以将外围设备的控制端点和中断端点的控制权从现有连接转移到控制应用或其他应用。在一些例子中,基于通过在动作106处重新列举外围设备而断开现有连接来转移控制权。在一些实施方案中,控制应用可以例如在动作108处访问现有连接不支持的、外围设备上的附加功能。而且,控制应用可以被配置为更新外围设备上的固件,启动外围设备上的附加功能,禁止外围设备上的功能,给外围设备增加特征,访问现有连接不支持的特征,以及修改外围设备的至少一个运行参数。根据一些实施方案,一旦控制应用已经执行了配置的一个或多个操作,控制端点和中断端点的控制权就可以返回到现有连接。在一些例子中,在动作110处,控制应用可以触发外围设备以基于它的原始信息重新识别它自身。OS被配置为辨别外围设备并使用固有的OS驱动来重新建立现有连接。在其他的例子中,控制应用可以触发外围设备来采取新标识信息,进而触发OS使用不同的驱动来建立OS和外围设备之间的连接。
图2是将外围设备的控制权从已安装的驱动转移到另一个应用的示例过程200。在连接到USBHID兼容的外围设备的计算机系统上实现过程200。在动作202处,常驻在计算机系统上的操作系统检测连接的外围设备且在动作202处使用已安装的驱动来建立至外围设备的连接。在动作204处执行控制应用,其被配置为将外围设备的控制权从OS和当前已安装的驱动重新分配给控制应用。在动作206处,检测出感兴趣的外围设备。基于在外围设备上执行操作的需求确定感兴趣的外围设备。在一些设置中,可能已经获得了可以使用的外围设备的新固件,那么终端用户希望将外围设备升级到固件最新版本。与外围设备相关的自动升级处理也可以识别感兴趣的设备。传统地,设备供货商包含被配置为定期地检查供货商发布的对外围设备的升级的可执行程序。一般地,终端用户或外围设备供货商(包含制造商)将清楚设备需要哪些操作(例如,升级、修订等)。
期望的操作可以基于外围设备、用户、和其他环境因素而变化。在一些设置中,可以执行固件升级以外的操作,其可以包含,例如,扩展外围设备的功能、消除外围设备的功能、管理和/或修改外围设备上的可执行的信息、管理和/或修改外围设备上不可执行的信息、访问当前驱动不支持的特征、以及其他选择。预期的操作也可以镜像计算机系统执行的任何固有的操作系统操作并提供相同的功能。
一旦在动作206处检测到感兴趣的外围设备,就可以选择地测试外围设备以确定设备是否能够支持重新列举。在一些例子中,可以在外围设备上定义重新列举的用途。可选择的测试步骤可以用于确定在给定的外围设备上是否定义了重新列举的用途。根据USBHID,“用途”识别外围设备上支持的操作。用途可以描述被配置为实现操作的集合。该集合可以包含每个输入、输出、特征、和/或使用的集合数据项,同时可以给每个分配具有其自身用途的目的。USBHID设备可以使用作为合并在本文中的USBHID标准的一部分的标准的用途和用途表。
在外围设备上可以存储重新列举用途。在一些实施方案中,将用途写为特定的值的请求触发设备向OS重新描述它自身。在一些实施方案中,可以以一大批其他方法执行触发,这些其他方法包括响应于可以被配置在附连的计算机系统上或在一些例子中直接在外围设备上的按钮或其他用户接口。在一些实施方案中,一旦被触发,重新列举用途就更改设备的描述符。在另外的实施方案中,可以通过执行的过程,并且在一些供选择方案中通过接口,来自动触发重新列举用途。在主计算机上可以显示或在外围设备自身上可以访问该接口。在一个例子中,变更(alteration)可以是暂时的且基于至计算机系统的新物理连接进行恢复。在另一个例子中,可以存储变更,且外围设备到它的原始描述符的返回可能需要对外围设备描述符的另一个变更。在一些实施方案中,确定设备是否能够支持重新列举可以包含对重新列举用途的存在进行验证。
在一些例子中,可选择的测试可以确定外围设备是USBHID兼容的。对于不具有重新列举用途但是USBHID兼容的设备,可以使用传统的技术来安装新用途。特别是,可以配置新驱动从而支持使用重新列举用途对USBHID兼容的设备进行升级。新驱动会代替在计算机系统上安装的任何现有驱动、对USBHID兼容的设备进行升级以包含重新列举用途,并且例如,过程200能够适用于本文所述的这些设备。
在动作208处,控制应用将命令发送给外围设备以重新列举。在一些实施方案中,动作208可以包含为了触发与重新列举用途相关的操作而交付给设备的、来自控制应用的请求。一旦外围设备接收到了请求,外围设备就更改它的描述符。将更改的描述符信息提供给OS,进而在210处使用变更的描述符信息来引起外围设备的重新列举。在其他实施方案中,计算机系统和设备之间的已定义的通信信道,包含例如控制端点,可以用于直接变更外围设备的描述符。一旦变更了外围设备的描述符信息,就配置OS以在210处按照已更改的描述符信息触发设备的重新列举。可以配置重新列举过程以将外围设备从OS辨别出的设备改变成“新”设备。在一个例子中,可以设置新设备描述符对于OS是未知的,或者可以将设备的分类改变成另一个已知类设备。在一些例子中,设备更改它的描述符记录以指出该设备是通用类和/或通用类型设备。在一个例子中,更改的描述符记录可以描述通用USBHID设备。
一旦在动作210处进行重新列举,就断开在OS和外围设备之间的现有连接且在动作212处通过已定义的通信信道,控制应用可以与外围设备进行通信而不必依靠已安装的驱动。将已定义的通信信道定义为是OS所固有的且是不必安装新的和/或供货商供应的驱动就能使用的。一旦将外围设备的控制权转移到控制应用,那么过程200就结束了。可以实现并执行其他过程以执行外围设备上的操作而不必依靠安装驱动。在一些设置中,控制应用可以包含这些其他过程,并且在其他设置中,在过程200结束之后,可以触发其他过程。
在一些例子中,特别的外围设备适合于无驱动的操作,其支持软件在计算机系统上执行以从设备供货商供应的已安装的驱动获取外围设备的控制且一旦软件完成了已定义的一个或多个操作就将控制归还给已安装的驱动。对外围设备进行控制包含将中断业务导向执行中的软件。因为传统的OS一般只支持一个应用管理中断业务,所以为外围设备特定安装的驱动必须释放中断业务的控制权。当管理外围设备,并且特别是,当管理UPS和智能UPS时,传统OS的这种属性导致了效率低下。在一些实施方案中,UPS和智能UPS设备可能要求重新定义它们的设备类型以便完成对UPS设备的维护功能。传统的方法会要求对新设备驱动进行安装且对任何现有驱动进行替代以便执行这些操作。对新驱动进行安装可以使这些系统遭受由OS触发的不稳定和非预料的功能,以及其他问题。在一些例子中,用户错误、困惑、和不情愿还会恶化与新设备驱动安装的相关问题。根据一些实施方案,通过消除新驱动安装的需求改善了系统效率和稳定性。
图3示出了识别被配置为无驱动的操作的、连接到计算机系统的供货商特定的外围设备的示例过程300。提到供货商时也应该包含外围设备制造商。一般地,供货商和制造商是相同的实体。在一些例子中,过程300可以用于通过供货商和产品ID明确地识别UPS设备。在其他实施方案中,通过其供货商和产品ID识别出其他外围设备。进行识别可以要求对特定的供货商、特定的产品ID、和是否支持设备的重新列举进行匹配。进行识别也可以包含对USBHID兼容性的确定,识别即使在设备上尚未定义具体的重新列举用途也能够支持重新列举的设备。
在一些实施方案中,外围设备上待执行的操作不仅特定于外围设备,也特定于特定的制造商和由制造商提供的特定的产品。例如一般地,固件升级特定于供货商和产品。固件升级甚至可以特定于给定外围设备上的固件版本。同样地,外围设备上执行的其他操作,是不能适合于跨供货商和/或跨产品线的。
过程300在动作302处以测试与一个或多个外围设备相关的信息是否匹配已定义的供货商标识符而开始。在302(否)处,没有检测到具有匹配的供货商标识符的外围设备且在动作318处过程确定没有设备可以使用,则要么结束过程300(未显示),要么引起动作302之后一直重复。如果在302(是)处检测到了匹配的供货商标识符,则在动作304处可以考虑附加的条件。在动作304处,测试产品ID(PID)以确定连接到计算机的外围设备是否与为无驱动的操作定义的参数匹配。如果304(否)处PID不匹配,则过程在动作318处确定没有设备可以使用,并且过程300可能结束(未显示)或之后重复动作302。
如果PID匹配304(是),则对是否在外围设备上定义了重新列举用途进行确定。根据一些实施方案,通过确定特定的控制端点是否在外围设备上存在来进行确定。在一些实施方案中,可以获取特殊设备的用途报告。用途报告描述特殊设备可以使用的用途。在一些实施方案中,过程300可以基于外围设备处获得的用途报告来确定重新列举用途是否可以使用。如果306处(否)不支持用途,则在动作318处过程确定没有设备可以使用且过程300可以结束(未显示)或之后重复动作302。如果306(是)处支持用途,则在动作308处,在设备上设置的一个数值指出是否已经发生了重新列举。在一个例子中,可以测试该数值以确定它是否等于1或者不等于1。等于1的数值指出已经发生了重新列举且不等于1的数值指出尚未发生重新列举。根据其他实施方案,可以实现其他变量和测试以确定与重新列举相关的外围设备的状态。在308(否)处,过程300确定尚未发生重新列举,并且在动作310处,使用控制端点将数值写入外围设备中以触发设备的重新列举。响应于该数值被写入,该外围设备可以被配置为,例如通过更改它的描述符信息,来重新描述它自身。在动作312处,过程300等待对设备进行重新列举。在一个例子中,随着立刻将数值设置为1,308(是)处通过了动作308处的测试,并且过程300继续进行到动作314。在一个供选择的方案中,过程300可以识别已经进行了重新列举的、具有指出了那种状态的相应的数值的设备,并且过程300可以直接从308(是)处继续进行到动作314处。
在动作314处,过程300确定控制应用现在是否可以使用中断业务。在一些实施方案中,可以配置控制应用来执行过程300,并且在其他实施方案中,控制应用可以独立于过程300。可以配置控制应用来执行外围设备上的操作,并且一旦在314(是)处,控制应用可以使用中断业务,在动作316处控制应用就是可运行的,并且过程300就可以结束了,供选择地,可以在动作302处重新启动过程300以为了有匹配信息的附接设备而继续对计算机系统进行监测。控制应用可以被配置为响应于接收到来自于外围设备的中断业务而执行多种操作。
如果314(否)处不能使用中断业务,则过程300在动作318处确定没有与其通信的设备可以使用,并且过程300就可以结束了(未显示),或者供选择地,则可以之后在动作302处重启过程300。
根据一些实施方案,计算机系统上的处理器可以执行控制部件以在连接的外围设备上执行无驱动的操作。可以配置控制部件来至执行任何示例过程100、200、和300。还可以配置控制部件来执行外围设备上的各种操作。例如,控制部件来可以被配置为确定外围设备支持重新列举,并且可以被配置为在执行任何过程100、200、和/或300之前这样执行。在其他实施方案中,可以配置控制引擎来识别USBHID兼容的设备并来验证操作系统具有适合于给定的USBHID设备的USBHID类的驱动。可以配置控制引擎来将外围设备的驱动控制权从已加载的供货商供应的驱动转移到通用的OS固有的驱动。在一些设置中,控制引擎触发外围设备更改它的描述符记录。在一个例子中,更改的描述符记录将外围设备识别为通用的USBHID设备。从OS的角度,具有供货商供应的驱动的外围设备停止连接到计算机系统上,并且立刻按照更改的描述符记录附接了新USBHID设备。变更的描述符记录也可以识别出特别的USBHID类的外围设备。一旦OS识别出变化,OS就将断开通过已加载的供货商供应的驱动建立的现有连接,并且通过固有的USBHID设备驱动来管理外围设备。在一些实施方案中,控制引擎被配置为运行在多个不同的操作系统上。在一些实施方案中,控制引擎可以被实现为在计算机系统上安装和运行的控制应用的一部分或构成其整体。
计算机系统
可以将本文描述的各个方面、功能和/或算法实现为在一个或多个计算机系统上执行的专门的硬件、软件部件、或引擎。一个或多个任何类型的计算机系统中可以用于执行控制部件,所述控制部件配置成断开通过设备驱动而建立的操作系统和外围设备之间的现有连接,在现有连接断开期间,使用已定义的通信信道与至少一个外围设备建立通信,已定义的通信信道可以经由固有的OS功能进行访问而不必安装新驱动,通过已定义的通信信道在外围设备上执行至少一个操作,以及触发外围设备的重新列举以恢复操作系统和外围设备之间的现有连接。计算机系统还可以配置为:进行外围设备的标识信息的重新定义,进行外围设备的标识信息到原始状态的恢复,进行硬件发现操作的触发以检测连接到计算机系统的外围设备,进行外围设备支持重新列举和/或满足USBHID标准的确定,进行固件升级的执行或进行外围设备上的运行参数的更改而不必请求安装新驱动,进行从已安装的驱动到OS固有的通信信道的外围设备的中断控制的转移,以及进行从已安装的驱动到USBHID驱动的外围设备的中断控制的转移而不必请求安装新驱动。
此外,任何系统可以位于单个计算机上或可以分布在通过通信网络附接的数个计算机上。可以举出许多正在使用中的计算机系统的例子。这些例子包含网络装置、个人计算机、工作站、大型计算机、网络化客户端、服务器、媒体服务器、应用服务器、数据库服务器和网站服务器,以及其他。其他计算机系统的例子可以包含移动计算设备、例如移动电话、个人掌上电脑、平板电脑和手提电脑,以及网络装备,例如负载均衡器、路由器和交换机。而且,若干方面可以位于单个计算机系统上或可以分布在连接到一个或多个通信网络的数个计算机系统上。
例如,各种方面和功能可以分布在被配置为将服务提供给一个或多个客户端计算机的、或执行作为分布式系统的一部分的一项整体任务的服务的一个或多个计算机系统上。此外,若干方面可以执行在包含分布在一个或多个执行各个功能的服务器系统上的若干部件的客户端服务器或多层系统上。因此,若干例子不限于执行在任何特定的系统或系统组之上。而且,可以在软件、硬件或固件、或者他们的任何组合上实现若干方面、功能、和/或算法。因而,可以在若干使用多种硬件和软件配置的方法、动作、系统、系统元件和部件中实现若干方面、过程、算法和功能,并且若干例子不受限于任何特别的分布式架构、网络、或通信协议。
参考图5,示出了实践了各种方面和功能的分布式计算机系统500的功能示意图,分布式计算机系统500包含一个多个交换信息的计算机系统。更具体地,分布式计算机系统500包含计算机系统502、504和506。如图所示,计算机系统502、504和506通过通信网络508互连且经由通信网络508交换数据。网络508可以包括任何经由其计算机系统可以交换数据的通信网络。为使用网络508交换数据,计算机系统502、504和506以及网络508可以使用各种方法、协议和标准,包括RS-485、RS-422、光纤信道、令牌环、以太网、无线以太网、蓝牙、IP、IPV6、TCP/IP、UDP、DTN、HTTP、FTP、SNMP、SMS、MMS、SS7、JSON、SOAP、CORBA、REST和网站服务、以及其他。为了确保数据传输安全,计算机系统502、504和506可以使用各种安全措施包括,例如,TLS、SSL或VPN,经由网络508来传输数据。虽然分布式计算机系统500示出了三个网络化计算机系统,然而分布式计算系统500不受限于此且可以包含任何数量的使用任何介质和通信协议网络化的计算机系统和计算设备。
图4示出了可以独立的运行或在分布式环境中工作的计算机系统400的一个特别的例子。在一些实施方案中,可以反复地实现计算机系统400,例如,像如图5中502、504和506处显示的计算机系统一样。如图4中示出的,计算机系统400包含处理器410、存储器412、总线414、接口416和数据储存器418。为了实现本文所述的若干方面、功能和过程中的至少一些,处理器410执行一系列引起对数据进行处理的指令。处理器410可以是任何类型的处理器、多处理器、控制器或微控制器。一些示例性的处理器包括商业上可用的处理器,例如,StellarisARMCortex-M3、IntelXeon、Itanium、Core、Celeron、Pentium、AMDOpteron、SunUltraSPARC、IBMPower5+和IBM大型机芯片。处理器410通过总线414连接到包含一个或多个存储器设备412的其他系统部件。
存储器412在计算机系统400运行期间存储程序和数据。因此,存储器412可以是相对高性能的、易失的、随机存取存储器,例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。然而,存储器412可以包含任何用于存储数据的设备,例如硬盘驱动器或其他非易失储存设备。各种例子可以将存储器412组织成特殊的和一些场景中的独特结构以执行本文所公开的功能。可以设置这些数据结构的大小和对其进行组织以存储特定的数据和数据类型的值。
例如总线414的互连元件将计算机系统400的部件耦合起来。总线414可以包含一个或多个物理总线,例如,集成到同一个机器内的若干部件之间的总线,但是可以包含系统元件之间耦合的任何通信,其包含专有的或标准的计算总线技术,例如IDE、SCSI、PCI和InfiniBand。因此,总线414使得例如数据和指令的通信在计算机系统400的系统部件之间进行交换。
计算机系统400也包含一个或多个连接到接口416的设备,例如输入设备、输出设备和组合型输入/输出设备。接口设备可以接收输入或提供输出。更特别地,输出设备可以呈现用于外部展示的信息。输入设备可以从外部来源接收信息。接口设备的例子包含键盘、鼠标设备、轨迹球、麦克风、触摸屏、打印设备、显示屏、扬声器、网络接口卡,等等。接口设备支持计算机系统400与例如用户和其他系统的外部实体交换信息和通信。接口416可以被配置为由接口设备使用以连接到计算机系统400的多接口连接器。接口连接器可以包括,例如串行接口、并行接口、USB连接器、sata、和其他可以拆卸的储存介质接口。外围设备可以连接到计算机系统400以扩展计算机系统400的基本操作。外围设备可以通过接口连接器连接到计算机系统400。存在各种外围设备以增加计算机系统的操作且外围设备可以包含如上所述的接口设备,并且也可以包括例如,UPS、智能UPS、电力分配单元(PDU)。外围设备也可以经由网络408通过无线通信可操作地连接到计算机系统,或者无线通信可以通过被配置为提供无线功能给计算机系统400的外围设备经由接口416来提供。
数据储存器418包含计算机可读和可写的、非易失的(永久的)、数据储存介质,其存储由处理器410执行的、定义了程序或其他对象的指令。数据储存器418也可以包含在介质上或介质中记录的、并且在执行程序期间由处理器410处理的信息。更具体地,信息可以存储在一个或多个被特定地配置为节约存储空间或提高数据交换性能的数据结构中。指令可以永久地存储为编码的信号,并且指令可以使得处理器410执行任何本文所描述的功能。介质可以是,例如,光盘、磁盘或闪存、以及其他存储器。运行时,处理器410或某个其他的控制器使得数据从非易失记录介质被读入到另一个存储器,例如存储器412,其支持处理器410比包含在数据储存器418中的存储介质更加快速的存取信息。存储器可以位于数据储存器418中或存储器412中,然而,处理器410操控存储器中的数据,然后在处理完成之后将数据拷贝到与数据储存器418相关的存储介质中。多个部件可以管理储存介质和其他存储器元件之间的数据移动,并且例子不受限于特定的数据管理部件。而且,例子不受限于特定的存储器系统或数据储存系统。
尽管计算机系统400通过示例的方式显示为一种类型的计算机系统,基于计算机系统400可以实践各个方面和功能,然而这些方面和功能不受限于在图4中示出的计算机系统400上实现。可以在一个或多个不同于图4和图5所示的架构或部件的计算机上实践各个方面和功能。例如,计算机系统400可以包含专门编程的、专用目的的硬件,例如本文所公开的、为执行特定的操作而定制的专用集成电路(ASIC)。然而在另一个例子中,计算机系统400可以使用数个通用目的计算设备和数个专用计算设备的网格执行相同功能,通用目的计算设备通过MotorolaPowerPC处理器运行MACOSSystemX,然而数个专用计算设备运行专有的硬件和操作系统。
计算机系统400可以是包含管理包含在计算机系统400中的至少一部分硬件元件的操作系统的计算机系统。在一些例子中,处理器或控制器,例如处理器410,执行操作系统。可执行的特定操作系统的例子包含微软公司提供的基于Windows的操作系统,例如,WindowsNT、Windows2000(WindowsME)、WindowsXP、WindowsVista或Windows7操作系统,苹果计算机公司提供的MACOSSystemX操作系统,许多基于Linux的操作系统发行版中的一种,例如,红帽子公司提供的企业级Linux操作系统、Sun微系统公司提供的Solaris操作系统、或可从各种来源获得的UNIX操作系统。可以使用许多其他的操作系统,并且例子不受限于任何特定的操作系统。
处理器410和操作系统一起定义了用于以高级编程语言来编写应用程序的计算机平台。这些组件应用可以是使用例如TCP/IP的通信协议的、通过例如互联网的通信网络进行通信的可执行程序、中间代码、字节代码或解释性代码。相似地,可以使用面向对象的编程语言,例如,.Net、SmallTalk、Java、C++、Ada或C#(C-Sharp)实现若干方面。也可以使用其他面向对象的编程语言。供选择地,可以使用功能语言、脚本语言、或逻辑编程语言。
此外,在非编程的环境中可以实现各个方面和功能,例如,以HTML、XML、或其他格式创建的文档,其可以在浏览器程序的窗口中进行查看时,渲染图形用户接口的若干方面或执行其他功能。而且,各种例子可以实现为编程元件或非编程元件、或任何它们的组合。例如,使用HTML实现网页,然而从网页中调用的数据对象可以是用C++或其他编程语言编写的。因此,这些例子不受限于特定的编程语言且能够使用任何适当的编程语言。因此,本文公开的功能部件可以包含许多种元件,例如,专用硬件、可执行代码、数据结构或对象,它们被配置为执行本文所述的功能。
如所描述的,例如400的计算机系统,可以连接到多个外围设备且外围设备可以通过例如400的计算机系统执行与控制相关的不同操作。在一些实施方案中,外围设备可以包含UPS设备和智能UPS设备。图6根据本文公开的方面和实施方案示出了可以无驱动地运行的UPS设备的一个例子。图6显示了用于当连接到例如400的计算机系统时提供经调整的、不间断的电力的在线UPS10的例子。虽然显示了在线UPS10,然而在其他实施方案中,也可以使用其他类型的UPS。在其他实施方案中,UPS可以包含不同的拓扑结构。例如,一些拓扑结构可以包含备用或在线交互式UPS拓扑结构且其他拓扑结构可以包含双转换拓扑结构。示例UPS10包含输入电路断路器/滤波器12、整流器14、控制开关15、控制器16、电池18、逆变器20、隔离变压器22、DC/DC转换器28、用户接口(UI)30、数据储存器32和外部系统接口34。UPS也包含用于耦合到AC电源的输入24、和用于耦合到负载的输出口26。
UPS10按照如下描述运行。电路断路器/滤波器12通过输入24接收来自AC电源的输入AC电力,将AC电力进行滤波并将已滤波的AC电力提供给整流器14。整流器14对输入电压进行整流。DC/DC转换器28调整来自电池18的DC电力。控制开关15接收已整流的电力且也接收来自DC/DC转换器28的DC电力。控制器16确定整流器14提供的电力是否是处于预定义的容差内,并且如果是这样,则控制控制开关15以将来自整流器14的电力提供给逆变器20。如果来自整流器14的电力不处于预设的容差内,这可能是因为出现了“欠压”或“断电”情况,或是由于电力骤增,那么控制器16控制控制开关15以将来自DC/DC转换器28的DC电力提供给逆变器20。
在一个供选择的例子中,电池耦合到整流器电路,并且整流器用作增压转换器,基于如2008年7月22日提交的、编号为7,402,921、题为“用于提供不间断电力的方法和装置(MethodandApparatusForProvidingUninterruptiblePower)”的美国专利所述的在线运行模式和在电池运行模式,据此,该专利以整体引用的方式合并在本文中。
UPS10的逆变器20接收DC电力并将DC电力转换成AC电力并将AC电力调整到预定的规格。逆变器20将已调整的AC电力提供给隔离变压器22。隔离变压器22用于增加或减小来自逆变器20的AC电力电压并提供负载和UPS10之间的隔断功能。隔离变压器22为可选的设备,它的使用依赖于UPS输出电力规格。根据电池18的容量和负载的电力需求,UPS10在短暂的电源失效或为了应对扩大的电力故障而给负载提供电力。
使用相关储存器中存储的数据,控制器16执行一个或多个可能产生经操控的数据的指令,并且控制器16监测并控制UPS10的运行。在一些例子中,控制器16可以包含一个或多个处理器或其他类型的控制器。在一个例子中,控制器16为商业可用的、通用目的处理器。在另一个例子中,控制器16在通用目的处理器上执行本文公开的一部分功能且使用为执行特别的操作而定制的专用集成电路(ASIC)来执行另一部分功能。如这些例子所述,与本发明一致的若干例子可以使用许多硬件部件和软件部件的特定组合来执行本文所述的若干功能,并且本发明不受限于硬件和软件部件的任何特别的组合。
数据储存器32存储UPS10运行所需的计算机可读和可写的信息。这些信息可以包含受控制器16操控的数据和由控制器16执行以操控数据的指令,以及其他数据。数据储存器32可以是相对高性能、易失的、随机存取存储器,例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM),或者可以是非易失的存储介质,例如磁盘和闪存。在一个例子中,数据储存器32同时包含了易失储存器和非易失储存器。与本发明一致的各个例子可以将数据储存器32组织成特殊的和一些场景中的独特结构以执行本文所公开的方面和功能。此外,特定地,可以特别地配置这些数据结构以节约存储空间或提高数据交换性能。
在一个例子中,数据储存器32包含容纳一个或多个运行参数的数据结构。如下面深入讨论的,这些运行参数影响UPS10的运行。一些示例运行参数包含语言参数、显示模式参数、菜单类型参数、和用途规格、以及其他运行参数。根据一些实施方案,UPS10可以包含用于连接到计算机系统的USB接口。UPS10还可以进行架构以满足USBHID设备逻辑规范的需求。在一些实施方案中,按照USBHID规范定义了UPS上的集合和用途。用途表可以存储在设备上的数据储存器32中,用途表描述了UPS10可用的用途。一个用于控制无驱动操作的数据元件的示例描述如下:
在一些实施方案中,可以配置连接的计算机系统以请求触发对存储在UPS存储器中的描述符信息进行重新定义的用途。在一些例子中,可以重新配置UPS以将它自身重新描述为通用USBHID设备。在其他例子中,还可以配置UPS以识别USBHID规范中的类,包含例如,作为电力类设备的UPS的描述。在一些实施方案中,通过配置请求进行重新描述。
在一些例子中,数据储存器32保留配置请求。在这些例子中,配置请求指示:UPS10应该指导用户在某个将来时间配置UPS10。在一个例子中,配置UPS10以立刻响应挂起配置请求。在另一个例子中,可以配置UPS10在它下次上电期间响应挂起配置请求。
基于各种事件,在各个时间都可以产生配置请求。例如,可以在UPS10的生产过程期间产生配置请求,这样作为它的初始安装的一部分,将指导UPS10的用户配置UPS10。在另一个例子中,用户可以使用如下讨论的工厂默认屏幕354,其支持用户将UPS10的配置复原到制造商设置的默认配置。这种重新初始化可以产生配置请求。在另一个例子中,用户可以经由用户接口专门地创建配置请求。然而在一些例子中,通过将配置请求存储在数据储存器32中发起配置请求,本发明的若干例子不受限于上述方法。在其他的例子中,通过其他措施创建配置请求,例如按下复位按钮、切换拨码开关或经由外部系统接口34接收配置信息。
外部系统接口34与一个或多个外部设备交换数据。这些外部设备可以包含任何配置为使用UPS10支持的标准和协议进行通信的设备。外部系统接口34可以支持的特定的标准和协议的例子包括并行、串行、USB、和USBHID接口。这些支持的协议和标准的其他例子包括网络技术,例如UDP、TCP/IP和以太网技术。在至少一些例子中,外部系统接口包含网络管理卡(NMC)和USB接口。
用户接口30包含通过它们UPS10的用户可以监测、控制和配置UPS10的操作的显示屏和一组按键。图2描述了包含用户接口30的UPS10的外观图。用户接口30包含电源按钮、更换电池指示器、告警指示器、基于电池的电力指示器、在线电力指示器、接口显示屏、向上滚动按钮、向下滚动按钮、输入按钮和退出按钮。
用户接口30的运行如下。当按下电源按钮时,将使得UPS10在加电和断电状态中进行切换。根据一些例子,UPS10执行一系列附带的措施以更好的管理这些电源状态转移。
指示器的组合提供了关于UPS10的各种当前和先前状态的信息。例如,UPS10可以通过运行自测来确定是否需要替换电池18。在这个例子中,UPS10使更换电池指示器发光来传达这种需要。
在线电力指示器和基于电池的电力指示器将表示当前给负载提供电力的来源。有效的在线电力指示器表示UPS10正以正常运行方式给负载提供电力,即电力来源是通过输入24接收的AC。相反地,有效的基于电池的电力指示器表示给负载提供电力的来源是电池18。
在另一个例子中,UPS10可以出于多种原因来判定是否需要用户注意。这些原因包括对电池18是中断的或电池18被负载耗尽了的监测,以及其他原因。在这种场景下,UPS10通过使告警指示器有效而表达需要用户注意的需要。此外,UPS10可以在接口显示屏上提供告警原因的描述。
接口显示屏,可以通过多种包含液晶显示屏和发光二极管的硬件部件来构成,将许多种信息呈现给用户。这些信息可以包含监测信息,例如如上所述的状态告警。此外,这些信息可以包含配置信息和提示,通过它们UPS10收集来自用户的信息。接口显示屏和按钮一起使UPS10可以提供比使用传统的UPS技术可以得到的、与用户进行信息交换方面的更好的灵活性。
在一个例子中,UPS10包括通过使用接口显示屏和按钮用户可以操纵的接口结构,其可以配置为提供数据输入功能。在其他例子中,在线UPS不必包含用户接口30或相关结构。
另外的UPS设备的例子可以包含连接到计算机系统的离线UPS设备,其可以无驱动地进行操作。特别地,配置离线UPS向连接的计算机系统供应电力以响应主电源出现故障,而不是像在线UPS中一直供应电力。在一些例子中,离线UPS设备可以包含输入电路断路器/滤波器、整流器、控制开关、控制器、电池、逆变器、隔离变压器、DC/DC转换器、可选用户接口(UI)、数据储存器和外部系统接口,并且还包含用于耦合到AC电源的输入、和用于耦合到负载的输出口,这些部件可以如上所述地运行。另外的例子包括在线和离线UPS,包含用于启动和响应特殊用途的请求的USB接口、存储器和至少一个处理器。在一些实施方案中,配置UPS来与USBHID逻辑规范兼容。然而在其他实施方案中,UPS可以与USBHID电力设备类规范的说明兼容。任何UPS都可以配置有USB连接器且连接到例如计算机系统400的计算机系统。
在一些例子中,本文公开的部件可以读取影响部件执行的功能的参数。这些参数可以物理地存储在任何形式的适当的存储器中,包含易失存储器(例如RAM)或非易失存储器(例如磁盘驱动器)。此外,这些参数可以逻辑地存储在专有的数据结构中(例如用户模式应用定义的数据库或文件)中或普通共享数据结构(例如操作系统定义的应用程序注册表)中。此外,一些例子同时规定了系统和用户接口以支持外部实体修改参数并进而配置部件的行为。
本文公开的每个过程都包含一个特别的例子中的特别的动作序列。过程中包含的动作可以通过或使用一个或多个如本文所述的专门配置的、图4和图5中所述的计算机系统执行。一些动作是可选的,因此,可以按照一个或多个实施方案进行省略。此外,可以更改动作的顺序,或者可以增加其他动作,而不会超出本文所述的系统和方法的范围。此外,如上所述,在至少一个实施方案中,在一个特别的、专门配置的机器上实现了这些动作,该机器也就是根据本文公开的例子进行配置的计算机系统。
至此,已经描述了本发明的至少一个实施方案的几个方面,需要理解的是,各种变化、修改和改善对于本领域的技术人员来说将是很容易想到的。例如,可以在一个或多个PC和服务器系统上实现上面的无驱动的操作和控制部件。这些变化、修改和改善应该属于本公开内容的一部分,并且应该处于本文所述的这些例子的范围内。因此,前述的描述和附图仅仅是示例性的。
Claims (16)
1.一种对外围设备进行重新列举的系统,包括:
用于禁止操作系统和至少一个外围设备之间的现有连接的模块,其中所述现有连接是通过第一设备驱动建立的;
用于在所述现有连接被禁止期间使用已定义的通信信道建立与所述至少一个外围设备的通信的模块;
用于通过所述已定义的通信信道在所述至少一个外围设备上执行至少一个操作的模块;以及
用于触发所述至少一个外围设备的列举以恢复通过所述第一设备驱动的所述操作系统和所述至少一个外围设备之间的所述现有连接的模块。
2.根据权利要求1所述的系统,其中所述系统还包括用于通过所述现有连接重新定义所述外围设备的标识信息的模块。
3.根据权利要求2所述的系统,其中所述系统还包括用于将所述外围设备的标识信息恢复到原始配置的模块。
4.根据权利要求1所述的系统,其中所述至少一个外围设备通过USB接口可操作地连接到计算机系统。
5.根据权利要求4所述的系统,其中所述系统还包括用于确定所述至少一个外围设备支持重新列举的模块。
6.根据权利要求1所述的系统,其中所述系统还包括用于在所述现有连接被禁止期间,使用已定义的通信信道并使用固有的OS驱动来与所述至少一个外围设备建立通信的模块。
7.根据权利要求1所述的系统,其中所述已定义的通信信道包含用于所述至少一个外围设备的控制端点和中断端点。
8.根据权利要求1所述的系统,其中所述至少一个操作包含以下操作中的至少一个:升级所述外围设备的固件,启动所述外围设备上的附加功能,禁止所述外围设备上的功能,增加特征到所述外围设备,以及修改所述外围设备的至少一个运行参数。
9.一种对外围设备进行重新列举的计算机实现的方法,所述方法包括:
由计算机系统禁止运行在所述计算机系统上的操作系统和可操作地连接到所述计算机系统的至少一个外围设备之间的现有连接,其中所述现有连接是通过第一设备驱动建立的;
在所述现有连接被禁止期间,由所述计算机系统使用已定义的通信信道建立与所述至少一个外围设备的通信;
由所述计算机系统通过所述已定义的通信信道在所述至少一个外围设备上执行至少一个操作;以及
由所述计算机系统触发对所述外围设备的列举以恢复通过所述第一设备驱动建立的所述操作系统和所述外围设备之间的现有连接。
10.根据权利要求9所述的方法,其中禁止所述现有连接的动作包含通过所述现有连接重新定义所述外围设备的标识信息的动作。
11.根据权利要求10所述的方法,其中所述方法还包括将所述外围设备的标识信息恢复到原始状态的动作。
12.根据权利要求9所述的方法,其中所述至少一个外围设备通过USB接口可操作地连接到所述计算机系统。
13.根据权利要求12所述的方法,其中所述方法还包括确定所述至少一个外围设备支持重新列举。
14.根据权利要求9所述的方法,其中建立通信的动作包含使用固有的OS驱动来建立通信。
15.根据权利要求9所述的方法,其中所述已定义的通信信道包含用于所述至少一个外围设备的控制端点和中断端点。
16.根据权利要求9所述的方法,其中所述至少一个操作包含以下操作中的至少一个:升级所述外围设备的固件,启动所述外围设备上的附加功能,禁止所述外围设备的功能,增加特征到所述外围设备,以及修改所述外围设备的至少一个运行参数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/169,709 US8473666B2 (en) | 2011-06-27 | 2011-06-27 | Systems and methods for driverless operation of USB device |
US13/169,709 | 2011-06-27 | ||
PCT/US2012/043754 WO2013003227A1 (en) | 2011-06-27 | 2012-06-22 | System and methods for driverless operation of usb device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103748569A CN103748569A (zh) | 2014-04-23 |
CN103748569B true CN103748569B (zh) | 2016-01-20 |
Family
ID=47362934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280041333.8A Active CN103748569B (zh) | 2011-06-27 | 2012-06-22 | Usb设备的无驱动操作的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8473666B2 (zh) |
EP (1) | EP2724239A4 (zh) |
CN (1) | CN103748569B (zh) |
AU (1) | AU2012275705A1 (zh) |
IN (1) | IN2014CN00383A (zh) |
WO (1) | WO2013003227A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8994336B2 (en) * | 2007-02-26 | 2015-03-31 | Black & Decker Inc. | Portable alternating current inverter having reduced impedance losses |
US8190798B1 (en) * | 2011-03-09 | 2012-05-29 | Apple Inc. | Client device configuration based on information stored by host device |
KR101956574B1 (ko) * | 2012-02-24 | 2019-03-11 | 삼성전자주식회사 | 휴대용 단말기에서 호스트 디바이스의 운영 체제를 확인하기 위한 장치 및 방법 |
US20190317463A1 (en) | 2012-05-19 | 2019-10-17 | Growing Energy Labs, Inc. | Adaptive energy storage operating system for multiple economic services |
US9817376B1 (en) * | 2012-05-19 | 2017-11-14 | Growing Energy Labs, Inc. | Adaptive energy storage operating system for multiple economic services |
US9471811B2 (en) | 2012-08-31 | 2016-10-18 | Ncr Corporation | Learning a new peripheral using a security provisioning manifest |
US9344281B2 (en) * | 2012-08-31 | 2016-05-17 | Ncr Corporation | Detecting fraud using operational parameters for a peripheral |
CN104516842A (zh) * | 2013-09-29 | 2015-04-15 | 中兴通讯股份有限公司 | 一种usb设备快速适配操作系统的方法及usb设备 |
CN104660788B (zh) * | 2013-11-20 | 2018-11-13 | 中兴通讯股份有限公司 | 一种移动终端及自适应外接设备免驱或非免驱的方法 |
US9311504B2 (en) | 2014-06-23 | 2016-04-12 | Ivo Welch | Anti-identity-theft method and hardware database device |
US9514009B2 (en) | 2014-07-24 | 2016-12-06 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Reducing server power consumption to compensate for a power supply failure in a multiple power supply configuration |
CN104503786B (zh) | 2014-12-15 | 2020-10-16 | 小米科技有限责任公司 | 固件刷新方法及装置 |
CN104536932B (zh) * | 2015-01-23 | 2019-01-01 | 崔阳 | 专用低速usb设备的通用通讯方法 |
CN106372009B (zh) * | 2016-08-30 | 2018-11-30 | 飞天诚信科技股份有限公司 | 一种Mac系统中与USB设备通讯的方法及装置 |
US10078609B1 (en) * | 2017-03-16 | 2018-09-18 | Wyse Technology L.L.C. | Virtualizing a non-USB device as a USB device |
US10802993B2 (en) | 2018-03-23 | 2020-10-13 | Seagate Technology Llc | Driverless device configuration |
JP7095363B2 (ja) * | 2018-03-30 | 2022-07-05 | ブラザー工業株式会社 | インストーラ |
JP7087569B2 (ja) * | 2018-03-30 | 2022-06-21 | ブラザー工業株式会社 | 画像処理装置 |
CN109101252B (zh) * | 2018-07-17 | 2022-05-31 | 广州视源电子科技股份有限公司 | 固件烧录方法、装置、设备和系统 |
CN112330845B (zh) * | 2019-07-19 | 2023-01-24 | 珠海汇金科技股份有限公司 | 接入相同设备的处理方法、装置及设备 |
EP4004792A4 (en) * | 2019-07-24 | 2023-03-29 | Hewlett-Packard Development Company, L.P. | PERIPHERAL DEVICES ACCESS CONTROL |
TWI714220B (zh) * | 2019-08-16 | 2020-12-21 | 致伸科技股份有限公司 | 通用串列匯流排裝置及其韌體更新方法 |
CN112395225A (zh) * | 2019-08-19 | 2021-02-23 | 致伸科技股份有限公司 | 通用串行总线装置及其固件更新方法 |
US10608819B1 (en) | 2019-09-24 | 2020-03-31 | Apricorn | Portable storage device with internal secure controller that performs self-verification and self-generates encryption key(s) without using host or memory controller and that securely sends encryption key(s) via side channel |
US10656854B1 (en) | 2019-10-22 | 2020-05-19 | Apricorn | Method and portable storage device with internal controller that can self-verify the device and self-convert the device from current mode to renewed mode without communicating with host |
CN111752659B (zh) * | 2020-06-23 | 2024-07-19 | 杭州雾联科技有限公司 | 一种基于网络的usb设备异步共享方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493770B1 (en) * | 1997-07-02 | 2002-12-10 | Cypress Semiconductor Corp. | System for reconfiguring a peripheral device by downloading information from a host and electronically simulating a physical disconnection and reconnection to reconfigure the device |
CN2914498Y (zh) * | 2006-01-27 | 2007-06-20 | 北京飞天诚信科技有限公司 | 基于通用串行总线人机交互类设备的信息安全设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5280585A (en) | 1990-09-28 | 1994-01-18 | Hewlett-Packard Company | Device sharing system using PCL macros |
US5991546A (en) * | 1996-09-17 | 1999-11-23 | Cmd Technology, Inc. | System and method for interfacing manually controllable input devices to a universal computer bus system |
US6389495B1 (en) * | 1999-01-16 | 2002-05-14 | Cypress Semiconductor Corp. | Dedicated circuit and method for enumerating and operating a peripheral device on a universal serial bus |
US6813650B1 (en) * | 1999-10-26 | 2004-11-02 | International Business Machines Corporation | Multimode non-standard universal serial bus computer input device |
US6754725B1 (en) * | 2001-05-07 | 2004-06-22 | Cypress Semiconductor Corp. | USB peripheral containing its own device driver |
US7305714B2 (en) * | 2003-07-22 | 2007-12-04 | Matsushita Electric Works, Ltd. | Anti-theft device for computer apparatus and a method for protecting computer apparatus thereby |
US7562360B2 (en) * | 2003-12-01 | 2009-07-14 | Texas Instruments Incorporated | Method and system for firmware downloads |
GB2427530B (en) | 2005-11-11 | 2007-06-13 | Amulet Electronics Ltd | Computer switching device |
GB0600207D0 (en) | 2006-01-05 | 2006-02-15 | Bishop Durrell G B | Apparatus for direct automated access to a task or content |
US8135880B2 (en) * | 2006-03-31 | 2012-03-13 | Cypress Semiconductor Corporation | USB mass storage locking |
US7574534B2 (en) * | 2006-05-23 | 2009-08-11 | International Business Machines Corporation | Method for using device enumeration information to identify an operating system running on a computer system |
KR100873321B1 (ko) | 2006-12-13 | 2008-12-10 | 삼성전자주식회사 | 주변 상황을 인지하는 기기 및 방법 |
US20080189554A1 (en) | 2007-02-05 | 2008-08-07 | Asad Ali | Method and system for securing communication between a host computer and a secure portable device |
US20080276012A1 (en) * | 2007-05-04 | 2008-11-06 | Joe Mesa | Driver Loading via a PnP Device |
-
2011
- 2011-06-27 US US13/169,709 patent/US8473666B2/en active Active
-
2012
- 2012-06-22 AU AU2012275705A patent/AU2012275705A1/en not_active Abandoned
- 2012-06-22 EP EP12804409.6A patent/EP2724239A4/en not_active Ceased
- 2012-06-22 WO PCT/US2012/043754 patent/WO2013003227A1/en active Application Filing
- 2012-06-22 IN IN383CHN2014 patent/IN2014CN00383A/en unknown
- 2012-06-22 CN CN201280041333.8A patent/CN103748569B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493770B1 (en) * | 1997-07-02 | 2002-12-10 | Cypress Semiconductor Corp. | System for reconfiguring a peripheral device by downloading information from a host and electronically simulating a physical disconnection and reconnection to reconfigure the device |
CN2914498Y (zh) * | 2006-01-27 | 2007-06-20 | 北京飞天诚信科技有限公司 | 基于通用串行总线人机交互类设备的信息安全设备 |
Also Published As
Publication number | Publication date |
---|---|
US20120331202A1 (en) | 2012-12-27 |
WO2013003227A1 (en) | 2013-01-03 |
CN103748569A (zh) | 2014-04-23 |
WO2013003227A8 (en) | 2014-02-27 |
US8473666B2 (en) | 2013-06-25 |
EP2724239A4 (en) | 2014-11-12 |
AU2012275705A1 (en) | 2014-01-23 |
IN2014CN00383A (zh) | 2015-04-03 |
EP2724239A1 (en) | 2014-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103748569B (zh) | Usb设备的无驱动操作的系统和方法 | |
CN1407441B (zh) | 自动管理计算机服务和可编程器件的系统和方法 | |
CN103324495A (zh) | 数据中心服务器开机管理方法及系统 | |
CN101930411B (zh) | 信息处理设备及其控制方法 | |
EP2372491B1 (en) | Power lock-up setting method and electronic apparatus using the same | |
US7426592B2 (en) | Management function setting method for intelligent platform management interface | |
CN101675419A (zh) | 自动提供usb兼容外设的备选usb配置以呈现给主机计算机的方法、设备以及计算机程序产品 | |
CN104185836A (zh) | 用于在系统改变之后验证计算设备的适当操作的方法和系统 | |
WO2018095107A1 (zh) | 一种bios程序的异常处理方法及装置 | |
CN105468717A (zh) | 数据库操作方法和装置 | |
CN105095142B (zh) | 控制扩展卡的系统及方法 | |
CN107678997B (zh) | Pcie插卡的热插拔方法、系统、装置和可读存储介质 | |
CN102081568A (zh) | 多主机板服务器系统 | |
CN110119623A (zh) | 一种利用tpcm实现固件主动度量的可信主板实现方法 | |
CN103634388B (zh) | 处理存储服务器中控制器重启的方法和相关设备及通信系统 | |
CN113672306B (zh) | 服务器组件自检异常恢复方法、装置、系统及介质 | |
CN100531048C (zh) | 在智能平台管理接口动态设定管理功能的方法 | |
US20190163595A1 (en) | System and method for providing network access in the event of a computer system failure | |
CN103984616A (zh) | 一种服务器监控方法及服务器 | |
WO2024119787A1 (zh) | Amd服务器系统安装断电处理方法、装置、设备及介质 | |
CN103135728B (zh) | 电源开机控制方法及其系统 | |
CN106484442B (zh) | 服务器系统及更新开机映像档的方法 | |
CN111176958A (zh) | 信息监测方法、系统和存储介质 | |
CN110389643B (zh) | 服务器及其远端控制方法 | |
CN109032765A (zh) | 一种虚拟机双机热备部署方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |