JP2012515400A - System, apparatus and method for fast startup of USB devices - Google Patents

System, apparatus and method for fast startup of USB devices Download PDF

Info

Publication number
JP2012515400A
JP2012515400A JP2011546316A JP2011546316A JP2012515400A JP 2012515400 A JP2012515400 A JP 2012515400A JP 2011546316 A JP2011546316 A JP 2011546316A JP 2011546316 A JP2011546316 A JP 2011546316A JP 2012515400 A JP2012515400 A JP 2012515400A
Authority
JP
Japan
Prior art keywords
usb
firmware
usb device
memory
downloading
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.)
Pending
Application number
JP2011546316A
Other languages
Japanese (ja)
Inventor
ハリス、スティーブン・エフ.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2012515400A publication Critical patent/JP2012515400A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Stored Programmes (AREA)

Abstract

例示的実施形態は、USBデバイスおよびUSBホストを含むUSBシステムにおけるデバイスの高速の数え上げ(エヌメレーション)に向けられている。前記USBデバイスは、2つのデバイス記述子と、前記USBデバイスの操作のためのファームウェアを保有するメモリと、前記ファームウェアを実行するコントローラとを含んでいる。第1のデバイス記述子は、ファームウェア・ロード・モードにおいて前記USBデバイスを数え上げるためのものであって、また第2のデバイス記述子は、操作モードにおいて前記USBデバイスを数え上げるためのものである。前記USBホストは、前記第1のデバイス記述子を使用して、前記USBデバイスの1回目の数え上げをコントロールする。前記1回目の数え上げの後、前記USBホストは、前記USBデバイスから、2回目の数え上げであることを示す表示子を受信し、前記第2のデバイス記述子を使用して、前記USBデバイスの2回目の数え上げをコントロールする。
【選択図】図3
The exemplary embodiment is directed to fast enumeration of devices in a USB system that includes a USB device and a USB host. The USB device includes two device descriptors, a memory that holds firmware for operating the USB device, and a controller that executes the firmware. The first device descriptor is for enumerating the USB devices in the firmware load mode, and the second device descriptor is for enumerating the USB devices in the operation mode. The USB host uses the first device descriptor to control the first enumeration of the USB device. After the first enumeration, the USB host receives an indicator from the USB device indicating the second enumeration and uses the second device descriptor to determine 2 of the USB device. Control the counting of the second time.
[Selection] Figure 3

Description

USB(Universal Serial Bus)は、種々様々な周辺機器にコンピュータを取り付けるための周辺機器インターフェース標準である。これらの周辺機器は、一般にファンクション(function)と呼ばれており、キーボード、マウス、カメラ、モニタ、モデム、およびその他の周辺機器のようなハブおよびデバイスを含んでもよい。   USB (Universal Serial Bus) is a peripheral interface standard for attaching a computer to various peripheral devices. These peripherals are commonly referred to as functions and may include hubs and devices such as keyboards, mice, cameras, monitors, modems, and other peripherals.

USBシステムの諸デバイスは、各デバイスが1つまたは複数のハブを通じてUSBホストに接続される「層状星形トポロジー」(a tiered star topology)でUSBホストに接続されている。USBシステムは、ポーリングされるバス(a polled bus)であって、ここにおいては、ホストコンピュータが1つのUSBコントローラを含んでおり、このUSBコントローラがバス上のすべての通信を管理し、デバイスの取り付けまたは取り外しによる変化がないかバス・トポロジーをモニタする。   The devices of the USB system are connected to the USB host in a “tiered star topology” where each device is connected to the USB host through one or more hubs. A USB system is a polled bus, where the host computer contains a single USB controller that manages all communication on the bus and attaches devices. Or monitor the bus topology for changes due to removal.

ほとんどのバス・トランザクションは、3つのパケットを含んでいる。ホストコントローラは、トランザクションのタイプおよび方向と、デバイスのアドレスと、エンドポイントの番号とを記述しているトークンパケットを送信する。アドレス付けされているUSBデバイスは、そのトークンパケットから自分のアドレスを認識する。トークンパケットの中で特定されている方向に基づいて、ホストからアドレス先デバイスへ、またはアドレス先デバイスからホストへのいずれかへ、データが転送される。たいていの場合、データの到達先は、転送データについての受信ステータスを示すハンドシェイクパケットを用いて応答をする。   Most bus transactions include three packets. The host controller sends a token packet describing the transaction type and direction, the device address, and the endpoint number. The addressed USB device recognizes its address from the token packet. Based on the direction specified in the token packet, data is transferred either from the host to the addressed device or from the addressed device to the host. In most cases, the data destination responds with a handshake packet indicating the reception status of the transfer data.

USBシステムが多数のバス接続周辺機器をサポートするのに対し、USBプロトコルは、ポイント・ツー・ポイントのプロトコルである。言いかえれば、単一のホストが一度にデータを送れるのは、一義的にアドレス付けされている単一のデバイスに対してである。かくして、様々なデバイスへのデータは、時分割多重化されていて、そのことによって、各デバイスは、そのタイムスロットの間に、データを受信または送信することができるようになっている。   The USB protocol is a point-to-point protocol, while the USB system supports a large number of bus-connected peripherals. In other words, a single host can send data at a time to a single device that is uniquely addressed. Thus, the data to the various devices is time-division multiplexed so that each device can receive or transmit data during that time slot.

USBシステムは、一般に長さが1ミリ秒のフレームを定義し、そのフレーム中で、バス上の多くのデバイスまたはすべてのデバイスに異なるタイムスロットを割り当てることができる。各デバイスは、固有アドレスを持っており、そのことによって、各デバイスは、送信データが自分宛てのものであるかどうかわかる。あるいは、各デバイスは、送信データといっしょに当該固有アドレスをホストに供給し、そのことによって、ホストは、どのデバイスからそのデータが受信されているかわかる。   USB systems typically define a 1 millisecond frame in which many devices on the bus or all devices can be assigned different time slots. Each device has a unique address, so that each device knows whether the transmitted data is for itself. Alternatively, each device supplies the unique address to the host along with the transmitted data, so that the host knows from which device the data is being received.

USBデバイスが最初プラグインされるとき、USBデバイスは、初期化、数え上げ(enumeration)および設定のプロセスを実行し、USBホストとその上のクライアントソフトウェアとによる使用のためにUSBデバイスを起動する。この起動プロセスは、大量のファームウェアまたは他の起動要求を備えた複雑なUSBデバイスの場合にあっては、時間的に相当長いものになる可能性がある。しかしながら、多くのオペレーティングシステムは、USBデバイスがオペレーティングシステムにとって利用可能となるまでの起動プロセスの実行に要する時間について認証要件を課している。   When a USB device is first plugged in, it performs an initialization, enumeration and configuration process, and boots the USB device for use by the USB host and client software on it. This boot process can be quite long in time for complex USB devices with large amounts of firmware or other boot requests. However, many operating systems impose authentication requirements on how long it takes to perform the boot process before a USB device is available to the operating system.

ここに、USBデバイスの複雑な構成をなお許容しながら、オペレーティングシステムの要求を充足するように高速起動プロセスを実行するシステム、装置および方法に対するニーズがある。   There is a need for a system, apparatus, and method that performs a fast boot process to satisfy operating system requirements while still allowing complex configurations of USB devices.

図1は、USBシステムについてのトポロジー図を示している。FIG. 1 shows a topology diagram for a USB system. 図2は、本発明の例示的実施形態における論理的通信パイプの単純化されたブロック図を示している。FIG. 2 shows a simplified block diagram of a logical communication pipe in an exemplary embodiment of the invention. 図3は、本発明の例示的実施形態の単純化されたブロック図を示している。FIG. 3 shows a simplified block diagram of an exemplary embodiment of the present invention. 図4は、本発明の実施形態に準拠している初期化プロセスの状態ブロック図を示している。FIG. 4 shows a state block diagram of an initialization process in accordance with an embodiment of the present invention. 図5は、本発明の実施形態に準拠している数え上げプロセスの単純化されたフローチャートである。FIG. 5 is a simplified flowchart of a counting process in accordance with an embodiment of the present invention. 図6Aは、1回目の数え上げプロセスの後にオペレーティングシステムによって表示される例示的コントロールパネルを示している。FIG. 6A shows an exemplary control panel displayed by the operating system after the first counting process. 図6Bは、2回目の数え上げプロセスの後にオペレーティングシステムによって表示される例示的コントロールパネルを示している。FIG. 6B shows an exemplary control panel displayed by the operating system after the second counting process.

発明の詳細な説明Detailed Description of the Invention

本件明細書において、「例示的」という語は「例、事例または実例として役立つ」ということを意味するために使用されている。本件明細書において説明されているいかなる実施形態も、必ずしも他の実施形態に比べて好ましいまたは有利であるとして解釈されるべきではない。   In this specification, the word "exemplary" is used to mean "serving as an example, instance, or illustration." Any embodiment described herein is not necessarily to be construed as preferred or advantageous over other embodiments.

添付の図面に関連して以下において述べられる発明の詳細な説明は、本発明の例示的実施形態の説明として意図されているものであって、本発明が実行され得るただ一つの実施形態を表わすように意図されているものではない。本件明細書を通じて使用されている「例示的」という語は、「例、事例または実例として役立つ」ということを意味しているのであって、必ずしも他の例示的実施形態に比べて好ましいまたは有利であるとして解釈されるべきではない。発明の詳細な説明は、発明の例示的実施形態についての完全な理解を提供する目的で特定の詳細を含んでいる。これらの特定の詳細がなくても発明の例示的実施形態が実行可能であることは当業者にとって明白であろう。いくつかの事例においては、よく知られている構成やデバイスは、本件明細書提示の例示的実施形態の新規性をあいまいにしてしまうことを避けるために、ブロック図の形式で示されている。   The detailed description of the invention set forth below in connection with the appended drawings is intended as a description of exemplary embodiments of the invention and represents only one embodiment in which the invention may be practiced. Not intended to be. As used throughout this specification, the word “exemplary” means “serving as an example, instance, or illustration” and is not necessarily preferred or advantageous over other exemplary embodiments. Should not be interpreted as being. The detailed description includes specific details for the purpose of providing a thorough understanding of the exemplary embodiments of the invention. It will be apparent to those skilled in the art that the exemplary embodiments of the invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the novelty of the exemplary embodiments presented herein.

本発明の例示的実施形態は、高速USB起動プロセスを実行することに向けられている。そのプロセスは、USBデバイスのための比較的長い設定プロセスをなお許容しつつ、USBデバイスの初期化、数え上げおよび設定を含んでもよい。   Exemplary embodiments of the present invention are directed to performing a fast USB boot process. The process may include initialization, enumeration and configuration of the USB device while still allowing a relatively long configuration process for the USB device.

図1は、従来のUSBシステムのためのトポロジー図100を示している。USBホスト110は、多数の接続ポイントを備えているルートハブを含んでいる。図1において、第1のファンクション150Aは、1つの接続ポイントにおいて接続され、第1のハブ120Aは、第2の接続ポイントに接続されている。第1のハブ120Aは、多数の接続ポイントを含んでいる。第2のファンクション150B、第2のハブ120Bおよび第3のハブ120Cは、第1のハブ120Aに接続されている。第2のハブ120Bは、多数の接続ポイントを含んでいてもよい。第3のファンクション150Cは、第2のハブ120Bに接続されている。第3のハブ120Cは、多数の接続ポイントを含んでいる。第4のファンクション150Dおよび第5のファンクション150Eは、第3のハブ120Cに接続されている。   FIG. 1 shows a topology diagram 100 for a conventional USB system. The USB host 110 includes a root hub with a number of connection points. In FIG. 1, the first function 150A is connected at one connection point, and the first hub 120A is connected to the second connection point. The first hub 120A includes a number of connection points. The second function 150B, the second hub 120B, and the third hub 120C are connected to the first hub 120A. The second hub 120B may include multiple connection points. The third function 150C is connected to the second hub 120B. The third hub 120C includes a number of connection points. The fourth function 150D and the fifth function 150E are connected to the third hub 120C.

ハブは、アップストリームポート上の受信データを各々のダウンストリームポートに送信すること、およびダウンストリームポートの1つからアップストリームポートへ情報を送信することにより中継器として機能する。与えられた任意の時間において、ただ1つのファンクションまたはホストのみがバス上に情報を置いているはずである。かくして、例えば、ホストは、第5のファンクション150E宛ての情報を送ることができる。情報は、第5のファンクション150Eへの途上、第1のハブ120Aおよび第3のハブ120Cを通って流れる。   The hub functions as a relay by sending received data on the upstream port to each downstream port and sending information from one of the downstream ports to the upstream port. At any given time, only one function or host should have information on the bus. Thus, for example, the host can send information destined for the fifth function 150E. Information flows through the first hub 120A and the third hub 120C on the way to the fifth function 150E.

USBファンクションとは、一般に、ある能力をデバイスに与えるUSBデバイスである。例えば、USBファンクションは、USBデバイス、USBハブ、USBホストコントローラ、USBトランシーバ等であってよい。   A USB function is generally a USB device that gives a device certain capabilities. For example, the USB function may be a USB device, a USB hub, a USB host controller, a USB transceiver, or the like.

USBハブは、ポート上でのUSBデバイスの取り付けおよび取り外しを報告するためのステータスビットを含んでいる。USBホストは、トポロジー中のすべてのデバイスについての接続ステータスを決定するために、およびすべての接続されているUSBデバイスのマップを維持するために、USBハブに質問をすることができる。USBデバイスがポートから取り外されるとき、USBハブは、ポートを無効(disable)にし、ステータスビットによって取り外しを報告する。取り外されたデバイスがUSBハブである場合、ホストコントローラソフトウェアは、取り外されたUSBハブに接続されていたすべてのUSBデバイスが今は未接続状態にあるということを示すためにマップを更新する。   The USB hub includes a status bit for reporting the attachment and removal of USB devices on the port. The USB host can query the USB hub to determine connection status for all devices in the topology and to maintain a map of all connected USB devices. When a USB device is removed from the port, the USB hub disables the port and reports removal by a status bit. If the removed device is a USB hub, the host controller software updates the map to indicate that all USB devices connected to the removed USB hub are now unconnected.

ホストコンピュータとUSBデバイス上の特定のエンドポイントとの間でUSBデータ転送が起きる。ホストとエンドポイントとの間の関係は、一般にパイプと呼ばれる。一般に、ある1つのパイプ中のデータ移動は、他のパイプ中のデータ移動と独立である。かくして、与えられたUSBデバイスは、多数のパイプを含んでもよく、またUSBシステム全体の中に多数のパイプがあってもよい。   USB data transfer occurs between the host computer and a specific endpoint on the USB device. The relationship between a host and an endpoint is commonly called a pipe. In general, data movement in one pipe is independent of data movement in the other pipe. Thus, a given USB device may include multiple pipes, and there may be multiple pipes in the entire USB system.

USBプロトコルは、4つの基本的タイプのデータ転送をサポートする;すなわち、コントロール転送、バルクデータ転送、インタラプトデータ転送および等時性データ転送の4つである。コントロール転送は、デバイスが取り付けられるときにデバイスを設定するために、および他のデバイス固有タスク(例えば、デバイス上の他のエンドポイントをコントロールすること)を管理するために使用される。   The USB protocol supports four basic types of data transfer; four are control transfer, bulk data transfer, interrupt data transfer, and isochronous data transfer. Control transfers are used to set up the device when it is attached and to manage other device specific tasks (eg, controlling other endpoints on the device).

バルクデータ転送は、一般にバースト的なデータであってバンド幅要件またはレイテンシ要求に特に制約のないデータに対して使用される。   Bulk data transfer is typically used for data that is bursty and has no particular constraints on bandwidth requirements or latency requirements.

インタラプトデータ転送は、人間が感知可能なデータのような低いレイテンシ要求を有するデータに対して使用される。   Interrupt data transfer is used for data with low latency requirements, such as human sensitive data.

等時性(アイソクロナス)データ転送は、実質的に一定のバンド幅および低いレイテンシを要求するデバイスに対して、USBバンド幅の事前にネゴシエートされた部分を使用する。そのようなデータの例は、ビデオおよびオーディオのストリーミングデータである。   Isochronous data transfer uses a pre-negotiated portion of the USB bandwidth for devices that require substantially constant bandwidth and low latency. Examples of such data are video and audio streaming data.

図2は、本発明の例示的実施形態における論理的通信パイプの単純化されたブロック図を示している。USBホスト110は、多数のパイプ190のためにデータを供給または受信する多数のバッファ170を含んでいてもよい。各パイプは、USBデバイス200の内部の異なるエンドポイント(210と220)に接続されてもよい。ホスト内のクライアントソフトウェア160は、様々なバッファ170から情報を受信する、または様々なバッファ170に情報を送信する。エンドポイント0 210は、以下において説明されるように、コントロール転送のためのものである。USBデバイス200は、その他の情報を受信および送信するために、またはその他のファンクションをコントロールするために、他のエンドポイント220を含んでいてもよい。   FIG. 2 shows a simplified block diagram of a logical communication pipe in an exemplary embodiment of the invention. The USB host 110 may include a number of buffers 170 that supply or receive data for a number of pipes 190. Each pipe may be connected to a different endpoint (210 and 220) within the USB device 200. Client software 160 in the host receives information from or sends information to various buffers 170. Endpoint 0 210 is for control transfer, as described below. The USB device 200 may include other endpoints 220 for receiving and transmitting other information or for controlling other functions.

USBパイプ190は、USBデバイス200上のエンドポイント(210と220)へのメモリバッファ170を介して、USBホスト110上のソフトウェアとソフトウェアとの間でデータを移す能力を表わす論理的構成物である。パイプ通信モードには2つのタイプがある。パイプを通って移動するストリームデータは、USB定義の構造を有していない。パイプを通って移動するメッセージデータは、USBアーキテクチャーによって定義されたあるタイプの構造を含んでいる。   USB pipe 190 is a logical construct that represents the ability to transfer data between software on USB host 110 via memory buffer 170 to endpoints (210 and 220) on USB device 200. . There are two types of pipe communication modes. Stream data moving through the pipe does not have a USB-defined structure. Message data traveling through the pipe contains a type of structure defined by the USB architecture.

図3は、本発明の例示的実施形態の単純化されたブロック図を示している。図3は、より機能的な表現によってUSBシステムを例示しているのに対し、図2は、データフロー的表現としてUSBシステムを例示している。   FIG. 3 shows a simplified block diagram of an exemplary embodiment of the present invention. FIG. 3 illustrates the USB system with a more functional representation, while FIG. 2 illustrates the USB system as a data flow representation.

図3において、USBホスト110は、本発明の実施形態にしたがって、USBバス205を通ってUSBデバイス200に接続されているものとして示されている。もちろん、図1のUSBトポロジー100について、上で説明されたような様々なレベルにおいて接続されている多数のUSBデバイス200があってもよい。USBデバイス200は、アドレスレジスタ230およびエンドポイント0(Ep0)210(本件明細書ではデフォルトコントロールエンドポイント210とも呼ばれる)を含んでいる。USBデバイス200はまた、他のエンドポイント220を含んでいてもよい。   In FIG. 3, USB host 110 is shown as being connected to USB device 200 through USB bus 205 in accordance with an embodiment of the present invention. Of course, for the USB topology 100 of FIG. 1, there may be multiple USB devices 200 connected at various levels as described above. USB device 200 includes an address register 230 and an endpoint 0 (Ep0) 210 (also referred to herein as a default control endpoint 210). USB device 200 may also include other endpoints 220.

エンドポイント(210と220)は、USBデバイス200の一義的に識別可能な部分である。各USBデバイス200は、独立したエンドポイントの集合を含んでいる。各USBデバイス200は、システムによって割り当てられ、アドレスレジスタ230に含まれる一義的アドレスを含んでいる。さらに、USBデバイス200の内の各エンドポイントには、固有のアドレスが与えられる。さらに、各エンドポイントは、ホスト方向のデータフローまたはエンドポイント方向のデータフローを備えた一方向性のものである。かくして、ホストは、与えられたエンドポイントをデバイスアドレスとエンドポイントアドレスとフロー方向との組み合わせとして認識する。デフォルトコントロールエンドポイント210は、エンドポイントアドレス0が割り当てられており、コントロール転送をサポートする。   The endpoints (210 and 220) are uniquely identifiable parts of the USB device 200. Each USB device 200 includes a collection of independent endpoints. Each USB device 200 includes a unique address that is assigned by the system and contained in the address register 230. Further, each endpoint in the USB device 200 is given a unique address. Further, each endpoint is unidirectional with a host-oriented data flow or an endpoint-oriented data flow. Thus, the host recognizes a given endpoint as a combination of device address, endpoint address and flow direction. The default control endpoint 210 is assigned endpoint address 0 and supports control transfer.

USBデバイス200はすべて、入力および出力の双方のためのデフォルトコントロールエンドポイント210を含む必要がある。USBシステムソフトウェアは、USBデバイス200を初期化し、数え上げ、設定するためにデフォルトコントロールエンドポイント210を使用する。例えば、コントローラ280は、初期化、数え上げおよび設定のプロセスを実行する際にUSBホスト110と協力をしてもよい。さらに、コントローラ280は、USBデバイス200が行うように設計されている当該タスクを行なうために、操作モードにおいて他の多くのファンクションを実行することも可能である。   All USB devices 200 need to include a default control endpoint 210 for both input and output. The USB system software uses the default control endpoint 210 to initialize, enumerate and configure the USB device 200. For example, the controller 280 may cooperate with the USB host 110 in performing the initialization, counting and setting process. In addition, the controller 280 can perform many other functions in the operating mode to perform the tasks that are designed to be performed by the USB device 200.

非制限的一例として、USBデバイスは、広域ネットワーク(WAN)デバイスとして構成され、当該技術分野において知られているように、ワイヤレス信号295による通信のためのアンテナを備えたRFモジュール290を含んでいてもよい。   As a non-limiting example, a USB device is configured as a wide area network (WAN) device and includes an RF module 290 with an antenna for communication via wireless signals 295, as is known in the art. Also good.

USBデバイス200は、メモリ260を含んでいてもよい。非制限的な例として、メモリは、コントローラによる実行のためのソフトウェアと、数え上げおよび設定に関係する情報と、USBデバイス200の操作モードと関係する情報とを含んでいてもよい。   The USB device 200 may include a memory 260. As a non-limiting example, the memory may include software for execution by the controller, information related to counting and setting, and information related to the operation mode of the USB device 200.

USBデバイス200は、例えばフラッシュメモリおよびEEPROM(Electrically Erasable Programmable ROM)メモリのような、不揮発性メモリ270をさらに含んでいてもよい。非制限的な例として、不揮発性メモリ270は、コントローラによる実行のためのソフトウェアと、数え上げおよび設定と関係する情報と、USBデバイス200の操作モードに関係する情報とを含んでいてもよい。   The USB device 200 may further include a non-volatile memory 270 such as a flash memory and an EEPROM (Electrically Erasable Programmable ROM) memory. As a non-limiting example, the non-volatile memory 270 may include software for execution by the controller, information related to counting and setting, and information related to the operation mode of the USB device 200.

本発明の例示的実施形態は、第1のデバイス記述子240および第2のデバイス記述子250を含んでいる。第1のデバイス記述子240は、第1のベンダー識別子242および第1の製品識別子244を含んでいる。第2のデバイス記述子250は、第2のベンダー識別子252および第2の製品識別子254を含んでいる。各デバイス記述子(240と250)について、ベンダー識別子および製品識別子は、いかなるタイプのデバイスがUSBバス205に接続されているか判断するために、USBホスト110が質問をすることができるように、固有の組み合わせを形成する。もちろん、第1および第2のベンダー識別子(252と254)は、第1のデバイス記述子240と第2のデバイス記述子250との間でベンダー識別子/製品識別子の組み合わせが異なっている限り、同じものであって差支えない。   The exemplary embodiment of the present invention includes a first device descriptor 240 and a second device descriptor 250. The first device descriptor 240 includes a first vendor identifier 242 and a first product identifier 244. The second device descriptor 250 includes a second vendor identifier 252 and a second product identifier 254. For each device descriptor (240 and 250), the vendor identifier and product identifier are unique so that the USB host 110 can interrogate to determine what type of device is connected to the USB bus 205. Form a combination. Of course, the first and second vendor identifiers (252 and 254) are the same as long as the vendor / product identifier combination is different between the first device descriptor 240 and the second device descriptor 250. It can be a thing.

オペレーティングシステムは、デバイスが素早く電力アップすることを必要とする。例えば、ウィンドウのビスタ(登録商標)の場合、すべてのデバイスは、ACPI (Advanced Configuration and Power Interface)のS3状態から2秒以内にシステム再開を行わなければならない。複雑なUSBデバイス200の場合、この要求を満たすことは、難しいかもしれない。   The operating system requires the device to power up quickly. For example, in the case of Windows Vista (registered trademark), all devices must perform system restart within 2 seconds from the S3 state of ACPI (Advanced Configuration and Power Interface). In the case of a complex USB device 200, meeting this requirement may be difficult.

多くのデバイスは、この問題を解決するために、デバイスに高速ハードウェアを付加したり、高速起動のためにソフトウェアイメージを制限もしくは最小化したり、または高速数え上げの達成のためにデバイス上の機能性を制限したりしている。かくして、ほとんどのUSBデバイス200は、ベンダー識別子および製品識別子を備えた単一のデバイス記述子をただ含んでいる。   Many devices solve this problem by adding high-speed hardware to the device, limiting or minimizing the software image for fast boot, or functionality on the device to achieve fast enumeration. Or restrict. Thus, most USB devices 200 only contain a single device descriptor with a vendor identifier and a product identifier.

本発明の実施形態は、2回方式の数え上げプロセスを使用する。2回方式の数え上げが利用されると、デバイスは、素早く電力アップすることができる。というのは、1回目の数え上げは、短い時間(例えば、500ミリ秒以下)で最小限の初期化が行われるように設計されることができるからである。このことは、高速起動というOSの要求を充足し、システム再開の完了を可能にする。1回目の数え上げの後、デバイスは、第1のモードで完全に機能的になり、次に2回目の数え上げプロセスを開始し、第2のモードで完全に機能的になる。   Embodiments of the present invention use a two-time counting process. If a two-time counting is used, the device can quickly power up. This is because the first enumeration can be designed to perform minimal initialization in a short time (eg, 500 milliseconds or less). This satisfies the OS requirement for fast startup and allows the system to be resumed. After the first enumeration, the device is fully functional in the first mode, then starts the second enumeration process and is fully functional in the second mode.

かくして、本発明の実施形態は、2つのデバイス記述子(240と250)を含んでおり、そのことによって、USBデバイス200は、2つの異なるモードにおいて数え上げと設定を行うことができる。これら2つの異なるモードは、ファームウェア・ロード・モードおよび操作モードである。このことについては、図4-7Bを参照して以下においてさらに十分に説明される。結果として、USBホスト110は、2つのモードの各々について、別々のクライアントソフトウェア160モジュールを含んでいてもよい。かくして、USBホスト110は、ファームウェア・ロード・モードをコントロールするためのローダドライバ162と、操作モードをコントロールするための操作ドライバ164を含んでいてもよい。   Thus, embodiments of the present invention include two device descriptors (240 and 250) that allow USB device 200 to enumerate and configure in two different modes. These two different modes are the firmware load mode and the operation mode. This is explained more fully below with reference to FIGS. 4-7B. As a result, USB host 110 may include separate client software 160 modules for each of the two modes. Thus, the USB host 110 may include a loader driver 162 for controlling the firmware load mode and an operation driver 164 for controlling the operation mode.

図3は、デバイス記述子(240と250)を別々のブロックとして例示している。しかしながら、当業者は、デバイス記述子(240と250)が様々な形式で実装可能であることを認識するであろう。非制限的な例として、デバイス記述子(240と250)は、USBデバイス200の内部の設定可能スイッチとして、不揮発性メモリ270に格納される値として、またはコントローラ280内の不揮発性メモリに格納される値として具体化されることができる。   FIG. 3 illustrates the device descriptors (240 and 250) as separate blocks. However, those skilled in the art will recognize that the device descriptors (240 and 250) can be implemented in various forms. As non-limiting examples, device descriptors (240 and 250) are stored as configurable switches inside USB device 200, as values stored in non-volatile memory 270, or in non-volatile memory within controller 280. Can be embodied as a value.

図4は、本発明の実施形態に準拠している初期化および数え上げのプロセスの状態図を示している。初期化および数え上げのプロセスは、図3および図4の両方を参照して説明される。USBデバイス200は、プラグインされると、使用される前にこの初期化および数え上げのプロセスを通過しなければならない。USBデバイス200は、取り付けが行なわれると、「取り付け」状態510からスタートする。USBデバイス200が取り付けられているハブが適切に設定されると、USBデバイス200は、USBデバイス200に電力が適用される「電力投入」状態520に移行する。USBホスト110は、USBデバイス200のリセットを開始し、当該デバイスは、「デフォルト」状態530へ移行する。   FIG. 4 shows a state diagram of an initialization and enumeration process in accordance with an embodiment of the present invention. The initialization and counting process is described with reference to both FIG. 3 and FIG. Once plugged in, the USB device 200 must go through this initialization and enumeration process before it can be used. The USB device 200 starts from an “attached” state 510 when attached. When the hub to which the USB device 200 is attached is appropriately set, the USB device 200 transitions to a “power on” state 520 in which power is applied to the USB device 200. The USB host 110 starts resetting the USB device 200, and the device transitions to a “default” state 530.

デフォルト状態530において、USBデバイス200は、デフォルトアドレス(一般に0)に応答をする。かくして、デフォルトコントロールエンドポイント210は、デフォルトアドレスにおいてアクセス可能であり、そのことによって、デバイス記述子の読解が可能となっており、かつ、USBデバイス200の一般的起動を行なうことができるようになっている。次に、USBホスト110は、USBデバイス200に固有アドレスを割り当てる。固有アドレスが割り当てられると、USBデバイス200は、アドレス状態540に移行する。すべての設定が完了すると、USBデバイス200は、それが本来行うように設計されているところの操作を行なう準備ができているという「設定ずみ」状態560に移行する。   In the default state 530, the USB device 200 responds to a default address (generally 0). Thus, the default control endpoint 210 is accessible at the default address, which allows reading of the device descriptor and general activation of the USB device 200. ing. Next, the USB host 110 assigns a unique address to the USB device 200. When the unique address is assigned, the USB device 200 moves to the address state 540. When all the settings are complete, the USB device 200 transitions to a “configured” state 560 that is ready to perform an operation that it was originally designed to do.

本発明の例示的実施形態は、2つの初期化および数え上げのプロセスを通過する。かくして、USBデバイス200は、USBデバイス200のメモリ260の中にファームウェアをロードするために構成されている比較的単純なUSBデバイス200として、最初に初期化および数え上げが行われる。結果として、USBデバイス200は、最初に「設定ずみ」状態560に入るとき、ファームウェア・ロード・モードになる。ローダが完全に設定されると、USBデバイス200は、2回目の数え上げであることを示す表示子に基づいてデフォルト状態に移行し、ロードされたファームウェアに基づいて操作モードにおいて作動する比較的複雑なUSBデバイス200として再び初期化され数え上げられることになる。先に説明したように、USBデバイス200は、デフォルト状態530、アドレス状態、および再び設定ずみ状態(ただし、今回はファームウェア・ロード・モードではなく操作モードのためであることを別として)に移行する。   The exemplary embodiment of the present invention goes through two initialization and counting processes. Thus, the USB device 200 is initially initialized and enumerated as a relatively simple USB device 200 that is configured to load firmware into the memory 260 of the USB device 200. As a result, when the USB device 200 first enters the “configured” state 560, it enters the firmware load mode. Once the loader is fully configured, the USB device 200 transitions to a default state based on an indicator that indicates a second enumeration and operates in an operating mode based on the loaded firmware. The USB device 200 is initialized again and counted. As described above, the USB device 200 shifts to the default state 530, the address state, and the preset state again (except that this time is for the operation mode, not the firmware load mode). .

操作モードの数え上げを始めるための、ファームウェア・ロード・モードの終わりにおける設定ずみ状態560から2回目の数え上げであることを示す表示子に基づくデフォルト状態530へのこの移行は、多くの方法で実行可能である。非制限的一例として、USBデバイス200がデフォルト状態530に再入するにもかかわらず、それがファームウェア・ロード・モードにおいて以前に設定されたということ覚えておくように、USBデバイス200が部分的にリセットされるという方法でもよい。他の非制限的一例として、ファームウェア・ロード・モードにある間に、USBデバイス200が、USBホスト110を操作モードにおいて再設定せよというリクエストを送るという方法もある。   This transition from the pre-set state 560 at the end of the firmware load mode to the default state 530 based on the indicator indicating the second enumeration to begin counting the operating mode can be performed in a number of ways. It is. As a non-limiting example, the USB device 200 may be partially configured to remember that despite the USB device 200 re-entering the default state 530, it was previously set in firmware load mode. A method of resetting may be used. Another non-limiting example is a method in which the USB device 200 sends a request to reconfigure the USB host 110 in the operating mode while in firmware load mode.

USBデバイス200は、電力が中断されることがある。設定ずみ状態560、アドレス状態540およびデフォルト状態530のうちのいずれかから電力の中断が生じると、USBデバイス200は、電力投入状態520に再移行し、リセットされてファームウェア・ロード・モードにおいて再設定されることになる。   The USB device 200 may be interrupted in power. When a power interruption occurs from any of the pre-set state 560, address state 540, and default state 530, the USB device 200 re-enters the power-on state 520 and is reset and reconfigured in firmware load mode. Will be.

USBデバイス200は、USBホスト110からリセットを受信することがあるかもしれない。電力投入状態520、設定ずみ状態560およびアドレス状態540のうちのいずれかからリセットが生じると、USBデバイス200は、デフォルト状態530へ再移行し、再設定されることになる。   The USB device 200 may receive a reset from the USB host 110. When a reset occurs from any one of the power-on state 520, the pre-set state 560, and the address state 540, the USB device 200 transitions back to the default state 530 and is reset.

図5は、本発明の実施形態に準拠している2回方式の数え上げプロセス600の単純化された流れ図である。このプロセスの部分は、WANデバイスの設定を基準として記述されることもできる。しかしながら、当業者は、上記プロセスが他の多くのUSBデバイスを用いて行なわれることも可能であることと、WANデバイスに特有の当該部分を他のUSBデバイスに適合させることも容易に可能であることを認識するであろう。さらに、当業者にとって明白であるように、図5において説明されているプロセスのうちの多くのものは、図4の状態図の中に対応するもの(counterparts)を有している。2回方式の数え上げプロセス600の実行は、USBホスト110とUSBデバイス200の間の共同作業である。結果として、USBデバイス200によって実行される操作もあれば、USBホスト110によって実行されるものもある。このことは当業者にとって明白であろう。   FIG. 5 is a simplified flow diagram of a two-time enumeration process 600 in accordance with an embodiment of the present invention. This part of the process can also be described with reference to WAN device configuration. However, those skilled in the art can easily carry out the above process using many other USB devices and adapt that part specific to WAN devices to other USB devices. You will recognize that. Further, as will be apparent to those skilled in the art, many of the processes described in FIG. 5 have counterparts in the state diagram of FIG. The execution of the two-time counting process 600 is a collaborative work between the USB host 110 and the USB device 200. As a result, some operations are performed by the USB device 200 while others are performed by the USB host 110. This will be apparent to those skilled in the art.

図3および図5は、2回方式の数え上げプロセス600について説明する際に参照される。同プロセス600は、操作ブロック602において始まり、有効化(enabling)信号の状態をテストすることになる。WANデバイスにおいて、ワイヤレス通信を無効にするためにW_DISABLE_Nが使用されてもよく、アプリケーションがデバイスをリセットしてもよく、またはデバイスが接続されているシステムがデバイスへの電力を遮断してもよい。結果として、数え上げプロセスが進行する前に通信のためにデバイスが準備されていることを確かめるためにテストが行なわれる。もしUSBデバイス200が通信のために準備されているとすると、操作ブロック604は、USBデバイス200に電力を供給する。   3 and 5 will be referred to when describing the two-time counting process 600. FIG. The process 600 begins at operation block 602 and tests the state of the enabling signal. In a WAN device, W_DISABLE_N may be used to disable wireless communication, the application may reset the device, or the system to which the device is connected may cut off power to the device. As a result, a test is performed to ensure that the device is ready for communication before the enumeration process proceeds. If the USB device 200 is prepared for communication, the operation block 604 supplies power to the USB device 200.

操作ブロック606において、USBデバイス200は、ブートイメージ(本件明細書においてはファームウェア・ロード・モードのための第1のファームウェアおよびソフトウェアとも呼ばれる)を用いて初期化をする。このブートイメージは、不揮発性メモリ270か、コントローラ280上の不揮発性メモリか、またはUSBデバイス200上の他の不揮発性メモリの一部であってもよい。さらに、ブートイメージの部分は、ホスト上のハードドライブ上に常駐するものであって、設定プロセスの一部としてUSBデバイス200に転送されるものであってもよい。実施形態に依存して、ブートイメージは、不揮発性メモリ270からコントローラ280によって実行されてもよく、または実行のためにメモリ260に移されてもよい。   In operational block 606, the USB device 200 initializes with a boot image (also referred to herein as first firmware and software for firmware load mode). This boot image may be part of non-volatile memory 270, non-volatile memory on controller 280, or other non-volatile memory on USB device 200. Furthermore, the boot image portion may reside on a hard drive on the host and be transferred to the USB device 200 as part of the configuration process. Depending on the embodiment, the boot image may be executed by the controller 280 from the non-volatile memory 270 or may be moved to the memory 260 for execution.

決定ブロック608は、W_DISABLE_Nが1秒以上の間アクティブであるかどうか確かめるためにテストをする。言いかえれば、当該デバイスが無効化されてしまっているので、数え上げプロセスを終了させる必要がない。USBデバイス200が無効化されると、操作ブロック610は、USBデバイス200の電力を落とし、コントロールは、操作ブロック602に再移行し、USBデバイス200が有効化されるのを待つことになる。操作ブロック608および610は、操作ブロック606の後に生じるものとして示されている。しかしながら、当業者は、無効化は、中断によって駆動されるイベントであってよく、それゆえ、プロセス中のほとんどの場所から生じ得るものであることを認識するであろう。   Decision block 608 tests to see if W_DISABLE_N is active for more than one second. In other words, it is not necessary to end the counting process because the device has been disabled. When the USB device 200 is disabled, the operation block 610 powers down the USB device 200 and control re-enters the operation block 602 and waits for the USB device 200 to be enabled. Operation blocks 608 and 610 are shown as occurring after operation block 606. However, those skilled in the art will recognize that invalidation may be an event driven by interruption and therefore may occur from most places in the process.

操作ブロック612は、とりわけ、第1のデバイス記述子240をホストに送ることによって、1回目の数え上げプロセスを継続する。   Operation block 612 continues with the first counting process, among other things, by sending the first device descriptor 240 to the host.

ファームウェア・ロード・モードにおいてデバイスが成功裡に数え上げられると、操作ブロック614は、ファームウェア(本件明細書においては第2のファームウェアまたは操作ファームウェアとも呼ばれる)をメモリ260に移す操作を実行する。操作ファームウェアは、ホスト上のハードドライブ上に常駐するものであって、かつメモリ260に転送されるものであってもよく、または、USBデバイス200の不揮発性メモリ270上にあって、かつメモリ260に転送されるものであってよい。複雑なデバイスの場合、操作ファームウェアは、大きなものになるかもしれず、前記転送プロセスは、長いものになるかもしれない。しかしながら、USBデバイス200は、ファームウェア・ロード・モードにおいてすでに数え上げられており、こうしていくつかのオペレーティングシステムの高速数え上げ要求をすでに満たしている。   When the device is successfully enumerated in firmware load mode, operational block 614 performs an operation to transfer the firmware (also referred to herein as second firmware or operational firmware) to memory 260. The operational firmware may be resident on a hard drive on the host and transferred to the memory 260 or may be on the non-volatile memory 270 of the USB device 200 and the memory 260. May be transferred. For complex devices, the operational firmware may be large and the transfer process may be long. However, the USB device 200 has already been enumerated in the firmware load mode, thus already meeting the high speed enumeration requirements of some operating systems.

操作ファームウェアがダウンロードされると、決定ブロック616は、操作ファームウェアがダウンロードを成功裏に行なったこと、および認証プロセスを通過したことを確認するためにテストをする。テストの結果そうでないことがわかると、コントロールは、操作ブロック614に戻って、再び操作ファームウェアをダウンロードすることになる。   Once the operational firmware has been downloaded, decision block 616 tests to confirm that the operational firmware has successfully downloaded and passed the authentication process. If the test indicates that it is not, control will return to operation block 614 to download the operation firmware again.

認証が成功すると、操作ブロック618は、操作ファームウェアおよび第2のデバイス記述子250を使用して、2回目の数え上げプロセスを実行する。この2回目の数え上げプロセスにおいて、1回目の数え上げのためのUSBスタックが取り壊され、操作モードにおいて2回目の数え上げの一部として新しいUSBスタックが構築される。   If authentication is successful, operational block 618 uses the operational firmware and second device descriptor 250 to perform a second enumeration process. In this second counting process, the USB stack for the first counting is torn down and a new USB stack is built as part of the second counting in the operating mode.

2回目の数え上げが成功したかどうか確かめるために、判定ブロック620がテストを行なう。テストの結果そうでないことがわかると、コントロールは、操作ブロック606に再移行し、ここで1回目の数え上げが再び開始される。2回目の数え上げが成功すると、操作ブロック622は、USBデバイス200がその操作モードにおいて機能的であることと、かつ2回方式の数え上げプロセス600が完了していることとを表示する。   Decision block 620 tests to see if the second count is successful. If the test shows that it is not, control re-transfers to operation block 606 where the first enumeration is started again. If the second enumeration is successful, the operation block 622 displays that the USB device 200 is functional in its operation mode and that the two-time enumeration process 600 is complete.

図6Aは、1回目の数え上げプロセスの後にオペレーティングシステムによって表示される例示的コントロールパネルを示している。同様に、図6Bは、2回目の数え上げプロセスの後にオペレーティングシステムによって表示される例示的コントロールパネルを示している。非制限的一例として、数え上げが完了するとき、ウィンドウ(登録商標)は、コントロールパネル中のデバイスマネージャのディスプレイに新しいデバイスを追加する。デバイスがバスから取り除かれるとき、ウィンドウ(登録商標)は、デバイスマネージャからデバイスを取り除く。   FIG. 6A shows an exemplary control panel displayed by the operating system after the first counting process. Similarly, FIG. 6B shows an exemplary control panel displayed by the operating system after the second counting process. As a non-limiting example, when the enumeration is complete, Window® adds a new device to the device manager display in the control panel. When the device is removed from the bus, Windows removes the device from the device manager.

かくして、図6Aは、1回目の数え上げプロセスの後にウィンドウ(登録商標)によって表示される例示的コントロールパネルを示している。ローダ710のポートは、ローダドライバ162(図3)がオペレーティングシステムおよび他のクライアントソフトウェアにとって利用可能であることを例示するものとして示されている。正常なユーザ空間アプリケーションおよび操作ドライバ164(図3)は、ローダ710と異なるデバイスをさがしている。かくして、USBデバイス200がファームウェア・ロード・モードにおいて数え上げられている間に、クライアントソフトウェアとの通信の目的のために、USBデバイス200を認識したのは、ローダドライバ162のみである。   Thus, FIG. 6A shows an exemplary control panel displayed by the window after the first counting process. The loader 710 port is shown as an illustration that the loader driver 162 (FIG. 3) is available to the operating system and other client software. The normal user space application and operation driver 164 (FIG. 3) looks for a different device than the loader 710. Thus, only the loader driver 162 recognized the USB device 200 for purposes of communication with the client software while the USB device 200 was enumerated in the firmware load mode.

図6Bは、2回目の数え上げプロセスの後にウィンドウ(登録商標)によって表示される例示的コントロールパネルであって、多数のデバイスを備えている複合的数え上げを示している。今度は、診断ポート750およびNMEA(National Marine Electronics Association:全米海洋電子機器協会規格)ポート740は、クライアントソフトウェアとして示されている。   FIG. 6B is an exemplary control panel displayed by a window after the second enumeration process, showing a composite enumeration with multiple devices. This time, diagnostic port 750 and NMEA (National Marine Electronics Association) port 740 are shown as client software.

さらに、コントロールパネルは、USBモデム720およびUSBネットワークアダプタ730を示している。さらに、図6Aに示されているローダ710ポートは、今は図6Bのコントロールパネルから去っている。もちろん、当業者は、ポート、アダプタおよびその他のファンクションが、本発明の例示的実施形態を使用するUSBデバイス200のタイプに応じて異なったものであってもよいということを認識するであろう。   Further, the control panel shows a USB modem 720 and a USB network adapter 730. Further, the loader 710 port shown in FIG. 6A has now left the control panel of FIG. 6B. Of course, those skilled in the art will recognize that ports, adapters and other functions may vary depending on the type of USB device 200 using the exemplary embodiment of the present invention.

当業者であれば、情報と信号は、様々な異なる技術および技法のうちの何らかのものを使用して表わされることができることを理解するであろう。例えば、上記説明全体を通じて参照されることができるデータ、命令、コマンド、情報、信号、ビット、シンボルおよびチップは、電圧、電流、電磁波、磁場または磁粒子、光波動場または光粒子、またはこれらのものの任意の組み合わせによって表わされることができる。   Those skilled in the art will understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols and chips that can be referred to throughout the above description are voltages, currents, electromagnetic waves, magnetic fields or magnetic particles, light wave fields or light particles, or these It can be represented by any combination of things.

当業者であれば、本件明細書における開示に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子的ハードウェア、コンピュータソフトウェアまたは両者の組み合わせとして実装されることができることをさらに認識するであろう。ハードウェアとソフトウェアの間のこの相互置換可能性を明白に例示するために、様々な例示的なコンポーネント、ブロック、モジュール、回路およびステップは、上記においてそれらの機能性の観点から一般的に説明されてきた。そのような機能性がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定のアプリケーション、およびシステム全体に課される設計上の制約に依存するところである。当業者は、各々の特定のアプリケーションに応じて、様々な方法で、説明された機能性を実装することができる。しかし、そのような実装の決定が、本件発明の例示的実施形態の範囲からの逸脱を引き起こすものとして解釈されてはならない。   Those skilled in the art will implement the various exemplary logic blocks, modules, circuits, and algorithms described in connection with the disclosure herein as electronic hardware, computer software, or a combination of both. You will further recognize that you can. To clearly illustrate this interchangeability between hardware and software, various illustrative components, blocks, modules, circuits, and steps are generally described above in terms of their functionality. I came. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Those skilled in the art can implement the described functionality in various ways depending on each particular application. However, such implementation decisions should not be construed as causing deviations from the scope of the exemplary embodiments of the invention.

本件明細書における開示に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用目的プロセッサ、ディジタル信号プロセッサ(DSP)、特定用途向けのIC(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、離散的ゲートまたはトランジスタ論理、離散的ハードウェアコンポーネント、またはこれらのものの任意の組み合わせであって、本件明細書記載の機能を実現するように設計されたものによって実装または実行されることができる。汎用目的プロセッサは、マイクロプロセッサであってもよいが、代替的に、任意の通常のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサは、計算装置の組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと結合した1つまたは複数のマイクロプロセッサ、または他の任意の同様の機器構成として、実装されることもできる。   The various exemplary logic blocks, modules, and circuits described in connection with the disclosure herein are general purpose processors, digital signal processors (DSPs), application specific ICs (ASICs), field programmable gate arrays. (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof, designed to implement the functionality described herein Can be implemented or implemented. A general purpose processor may be a microprocessor, but in the alternative, it may be any conventional processor, controller, microcontroller, or state machine. The processor may be implemented as a combination of computing devices, eg, a combination of DSP and microprocessor, multiple microprocessors, one or more microprocessors combined with a DSP core, or any other similar equipment configuration. You can also.

本件明細書に開示されている実施形態に関連して説明された方法またはアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはその2つの組み合わせにおいて直接具体化されることができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROMまたは本件技術分野において既知の他の任意の形式の記憶媒体の中に常駐することができる。一例としての記憶媒体は、プロセッサが記憶媒体から情報を読み取る、または記憶媒体に情報を書き込むことができるように、プロセッサと結合されている。代替的に、記憶媒体がプロセッサと一体化されていてもよい。その場合、プロセッサおよび記憶媒体がASICの中に常駐し、そのASICがユーザ端末中に常駐することができる。代替的に、プロセッサおよび記憶媒体は、ユーザ端末中の離散的コンポーネントとして常駐することもできる。   The method or algorithm steps described in connection with the embodiments disclosed herein may be directly embodied in hardware, software modules executed by a processor, or a combination of the two. Software modules reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disks, removable disks, CD-ROMs or any other form of storage medium known in the art Can do. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. In that case, the processor and the storage medium may reside in an ASIC, and the ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.

1つまたは複数の例示的実施形態において、説明された機能は、ハードウェア、ソフトウェア、ファームウェアまたはこれらのものの任意の組み合わせにおいて実装されることができる。ソフトウェアにおいて実装される場合、当該機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶またはその上で伝送されることができる。コンピュータ可読媒体とは、コンピュータ記憶媒体のみならず、コンピュータプログラムをある場所から他の場所へ転送することを支援する任意の媒体を含む通信媒体も含むものである。記憶媒体は、コンピュータによってアクセス可能な任意の利用可能な媒体であってよい。実例として、かつ非制限的なものとして、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、または、任意の他の媒体であって、命令もしくはデータ構造の形式において所望のプログラムコードを伝達または記憶するために使用可能でかつコンピュータによってアクセス可能な媒体を含むことができる。また、どのような接続もコンピュータ可読媒体と適切に名づけられる。例えば、もしソフトウェアがウェブサイト、サーバ、または他の離れた情報源から、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、ディジタル加入者線(DSL)またはワイヤレス技術(例えば、赤外線、無線およびマイクロ波など)を使用して送信されるのであれば、そうした同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、DSLまたはワイヤレス技術(例えば、赤外線、無線およびマイクロ波など)もまた、媒体の定義に含まれる。本件明細書において使用されているようなディスク(disk and disc)は、コンパクトディスク(CD)、ディジタルバーサタイルディスク(DVD)、フレキシブルディスクおよびブルーレイ(登録商標)ディスクを含んでいる。なお、diskは、通常、データを磁気的に再生するものをいい、discは、レーザを用いてデータを光学的に再生するものをいう。上記のものの組み合わせもまた、コンピュータ可読媒体の範囲に含まれるべきである。   In one or more exemplary embodiments, the functions described can be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the functions can be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes not only computer storage media but also communication media including any medium that assists in transferring a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of illustration and not limitation, such computer readable media may be RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage device, or any other Media can include any media that can be used to convey or store the desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly named a computer readable medium. For example, if the software is from a website, server, or other remote source, coaxial cable, fiber optic cable, twisted pair cable, digital subscriber line (DSL) or wireless technology (eg, infrared, wireless and microwave) Such coaxial cables, fiber optic cables, twisted pair cables, DSL or wireless technologies (eg, infrared, radio and microwave) are also included in the definition of the medium. Disks and discs as used herein include compact discs (CDs), digital versatile discs (DVDs), flexible discs and Blu-ray® discs. Disk generally refers to data that magnetically reproduces data, and disc refers to data that optically reproduces data using a laser. Combinations of the above should also be included within the scope of computer-readable media.

開示されている実施形態に関する上記説明は、いかなる当業者であっても、本件発明を製造または使用することができるように提供されている。これらの例示的実施形態に対する様々な修正は、当業者にとって直ちに明白であろう。また、本件明細書において定義されている一般原理は、発明の要旨または範囲から逸脱することなく、他の実施形態に対して適用可能である。かくして、本件発明は、本件明細書中に示されている実施形態に限定されるよう意図されているものではなく、本件明細書に開示されている原理および新規な特徴と一致する最も広い範囲が与えられるべきものである。   The above description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these exemplary embodiments will be readily apparent to those skilled in the art. Also, the general principles defined in this specification can be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein, but has the widest scope consistent with the principles and novel features disclosed herein. It should be given.

Claims (32)

USBデバイスであって、
前記USBデバイスの操作のためのファームウェアを保有するためのメモリと、
前記ファームウェアを実行するためのコントローラと
ファームウェア・ロード・モードにおいて前記USBデバイスを数え上げるための第1のデバイス記述子と、および;
操作モードにおいて前記USBデバイスを数え上げるための第2のデバイス記述子と
を具備するデバイスであって、
ここにおいて、前記ファームウェアは、
前記ファームウェア・ロード・モードをコントロールするための第1のファームウェアと、および
前記操作モードをコントロールするための第2のファームウェアと
具備する、USBデバイス。
A USB device,
A memory for holding firmware for operating the USB device;
A controller for executing the firmware; a first device descriptor for enumerating the USB devices in firmware load mode; and
A device comprising a second device descriptor for enumerating the USB devices in an operation mode,
Here, the firmware is
A USB device comprising: a first firmware for controlling the firmware load mode; and a second firmware for controlling the operation mode.
前記第1のファームウェアは、USBホスト上にあって、前記ファームウェア・ロード・モードの間に前記メモリにダウンロードを行うためのものである、請求項1のUSBデバイス。   The USB device of claim 1, wherein the first firmware is on a USB host and is for downloading to the memory during the firmware load mode. 不揮発性メモリをさらに具備する請求項1のUSBデバイスであって、前記第1のファームウェアは、前記ファームウェア・ロード・モードの間に前記メモリに移動すること、または前記ファームウェア・ロード・モードの間に前記不揮発性メモリから前記コントローラによって実行することからなるグループから選択されるモードのためである、請求項1のUSBデバイス。   The USB device of claim 1, further comprising a non-volatile memory, wherein the first firmware is moved to the memory during the firmware load mode, or during the firmware load mode. The USB device of claim 1 for a mode selected from the group consisting of executing by the controller from the non-volatile memory. 前記第2のファームウェアは、USBホスト上にあって、前記ファームウェア・ロード・モードの間に前記メモリにダウンロードを行うためのものである、請求項1のUSBデバイス。   The USB device of claim 1, wherein the second firmware is on a USB host and is for downloading to the memory during the firmware load mode. 不揮発性メモリをさらに具備する請求項1のUSBデバイスであって、前記第2のファームウェアは、前記ファームウェア・ロード・モードの間に前記メモリに移動すること、または前記操作モードの間に前記不揮発性メモリから前記コントローラによって実行をすることからなるグループから選択されるモードのためである、請求項1のUSBデバイス。   The USB device of claim 1, further comprising a non-volatile memory, wherein the second firmware moves to the memory during the firmware load mode or the non-volatile during the operation mode. 2. The USB device of claim 1 for a mode selected from the group consisting of executing by the controller from memory. 前記第1のデバイス記述子は、第1のベンダー識別子および第1の製品識別子を具備する、請求項1のUSBデバイス。   The USB device of claim 1, wherein the first device descriptor comprises a first vendor identifier and a first product identifier. 前記第2のデバイス記述子は、第2のベンダー識別子および第2の製品識別子を具備する、請求項6のUSBデバイス。   The USB device of claim 6, wherein the second device descriptor comprises a second vendor identifier and a second product identifier. 前記第1のベンダー識別子および前記第2のベンダー識別子は、同じものである、請求項7のUSBデバイス。   The USB device of claim 7, wherein the first vendor identifier and the second vendor identifier are the same. 前記USBデバイスは、アンテナをさらに含み、かつ、前記USBデバイスは、広域ネットワークデバイスとしてワイヤレス操作のためのものである、請求項1のUSBデバイス。   The USB device of claim 1, wherein the USB device further comprises an antenna, and the USB device is for wireless operation as a wide area network device. USBデバイスとの操作可能な連結のためのUSBホストであって、以下のことをコンピュータによって実行するためのコンピュータ命令を具備するUSBホスト:
前記USBデバイスからの第1のデバイス記述子を使用して、前記USBデバイスの1回目の数え上げを実行することと、
前記USBデバイスから、2回目の数え上げであることを示す表示子を受信することと、および
前記USBデバイスからの第2のデバイス記述子を使用して、前記USBデバイスの2回目の数え上げを実行すること。
A USB host for operative connection with a USB device, comprising computer instructions for performing the following by a computer:
Performing a first enumeration of the USB device using a first device descriptor from the USB device;
Receiving a second indicator from the USB device, and performing a second enumeration of the USB device using a second device descriptor from the USB device; thing.
前記コンピュータによる実行のための前記コンピュータ命令は、前記1回目の数え上げの間に前記USBデバイス上の操作をコントロールするための第1のファームウェアを、前記1回目の数え上げの間に前記USBホストから前記USBデバイス上のメモリに移すための命令をさらに含む、請求項10のUSBホスト。   The computer instructions for execution by the computer include first firmware for controlling operations on the USB device during the first enumeration from the USB host during the first enumeration. The USB host of claim 10, further comprising instructions for transferring to memory on the USB device. 前記コンピュータによる実行のための前記コンピュータ命令は、第2のファームウェアを、前記1回目の数え上げの間に前記USBホストから前記USBデバイス上のメモリに移すための命令をさらに含み、前記第2のファームウェアは、前記2回目の数え上げ後の操作モードの間に前記USBデバイス上の操作をコントロールするためのものである、請求項10のUSBホスト。   The computer instructions for execution by the computer further include instructions for transferring second firmware from the USB host to memory on the USB device during the first enumeration, the second firmware 11. The USB host according to claim 10, which is for controlling an operation on the USB device during the operation mode after the second counting. USBデバイスであって、
前記USBデバイスの操作のためのファームウェアを保有するためのメモリと、
前記ファームウェアを実行するためのコントローラと、
ファームウェア・ロード・モードにおいて前記USBデバイスを数え上げるための第1のデバイス記述子と、および
操作モードにおいて前記USBデバイスを数え上げるための第2のデバイス記述子と
を具備するUSBデバイスと、および
前記USBデバイスに操作可能的に連結されているUSBホストであって、以下のことによって前記USBデバイスをコントロールするためのUSBホストと
を具備するシステム:
前記第1のデバイス記述子を使用して、前記USBデバイスの1回目の数え上げをコントロールすることと、および
前記1回目の数え上げの後に、
前記USBデバイスから2回目の数え上げであることを示す表示子を受信し、および
前記第2のデバイス記述子を使用して、前記USBデバイスの2回目の数え上げをコントロールすること。
A USB device,
A memory for holding firmware for operating the USB device;
A controller for executing the firmware;
A USB device comprising: a first device descriptor for enumerating the USB device in a firmware load mode; and a second device descriptor for enumerating the USB device in an operation mode; and the USB device A USB host operably coupled to the USB host for controlling the USB device by:
Controlling the first enumeration of the USB device using the first device descriptor, and after the first enumeration,
Receiving an indicator from the USB device indicating a second enumeration, and controlling the second enumeration of the USB device using the second device descriptor;
第1のファームウェアは、前記USBホスト上にあって、前記ファームウェア・ロード・モードの間に前記メモリにダウンロードを行うためのものである、請求項13のシステム。   The system of claim 13, wherein a first firmware is on the USB host for downloading to the memory during the firmware load mode. 前記USBデバイスは、不揮発性メモリをさらに具備し、前記不揮発性メモリ内の第1のファームウェアは、前記ファームウェア・ロード・モードの間に前記メモリに移動すること、または前記ファームウェア・ロード・モードの間に前記不揮発性メモリから前記コントローラによって実行をすることからなるグループから選択されるモードのためのものである、請求項13のシステム。   The USB device further comprises a non-volatile memory, and the first firmware in the non-volatile memory is moved to the memory during the firmware load mode, or during the firmware load mode 14. The system of claim 13, wherein the system is for a mode selected from the group consisting of executing by the controller from the non-volatile memory. 前記操作モードをコントロールするための第2のファームウェアは、前記USBホスト上にあって、前記ファームウェア・ロード・モードの間に前記メモリにダウンロードを行うためのものである、請求項13のシステム。   14. The system of claim 13, wherein the second firmware for controlling the operation mode is on the USB host for downloading to the memory during the firmware load mode. USBトポロジー上のUSBデバイスを検出することと、
第1のファームウェアおよび第1のデバイス記述子を用いて前記USBデバイスを数え上げることと、
ファームウェア・ロード・モードにおいて第1のクライアントソフトウェアによるアクセスのために前記USBデバイスを有効にすることと、
前記USBデバイスのメモリに第2のファームウェアをダウンロードすることと、
第2のデバイス記述子を用いて前記USBデバイスを数え上げることと、および
前記第2のファームウェアを使用して、操作モードにおいて第2のクライアントソフトウェアによるアクセスのために前記USBデバイスを有効にすることと
を具備する方法。
Detecting USB devices on the USB topology;
Enumerating the USB device using a first firmware and a first device descriptor;
Enabling the USB device for access by the first client software in firmware load mode;
Downloading second firmware to the memory of the USB device;
Enumerating the USB device with a second device descriptor, and using the second firmware to enable the USB device for access by second client software in an operating mode; A method comprising:
広域ネットワークデバイスにおいてワイヤレス通信を用いて前記USBデバイスを操作することをさらに具備する請求項17の方法。   The method of claim 17, further comprising operating the USB device using wireless communication in a wide area network device. 前記第2のファームウェアをダウンロードすることは、USBホストから前記メモリにダウンロードを行うことと、前記USBデバイス上の不揮発性メモリから前記メモリにダウンロードを行うこととからなるグループから選択される行為を具備する、請求項17の方法。   Downloading the second firmware comprises an action selected from the group consisting of downloading from the USB host to the memory and downloading from the nonvolatile memory on the USB device to the memory. The method of claim 17, wherein: 前記第1のファームウェアを用いて前記USBデバイスを数え上げることは、前記メモリに前記第1のファームウェアをダウンロードすることをさらに具備する、請求項17の方法。   The method of claim 17, wherein enumerating the USB device with the first firmware further comprises downloading the first firmware to the memory. 前記第1のファームウェアをダウンロードすることは、USBホストから前記メモリにダウンロードを行うことと、前記USBデバイス上の不揮発性メモリから前記メモリにダウンロードを行うこととからなるグループから選択される行為を具備する、請求項20の方法。   Downloading the first firmware comprises an act selected from the group consisting of downloading from a USB host to the memory and downloading from a non-volatile memory on the USB device to the memory. 21. The method of claim 20, wherein: 前記第1のデバイス記述子は、第1のベンダー識別子および第1の製品識別子を具備する、請求項17の方法。   The method of claim 17, wherein the first device descriptor comprises a first vendor identifier and a first product identifier. 前記第2のデバイス記述子は、第2のベンダー識別子および第2の製品識別子を具備する、請求項22の方法。   23. The method of claim 22, wherein the second device descriptor comprises a second vendor identifier and a second product identifier. 前記第1のベンダー識別子および前記第2のベンダー識別子は、同じものである、請求項23の方法。   24. The method of claim 23, wherein the first vendor identifier and the second vendor identifier are the same. USBトポロジー上のUSBデバイスを検出するための手段と、
第1のファームウェアおよび第1のデバイス記述子を用いて前記USBデバイスを数え上げるための手段と、
ファームウェア・ロード・モードにおいて第1のクライアントソフトウェアによるアクセスのために前記USBデバイスを有効にするための手段と、
前記USBデバイスのメモリに第2のファームウェアをダウンロードするための手段と、
第2のデバイス記述子を用いて前記USBデバイスを数え上げるための手段と、および
前記第2のファームウェアを使用して、操作モードにおいて第2のクライアントソフトウェアによるアクセスのために前記USBデバイスを有効にするための手段と
を具備するシステム。
Means for detecting USB devices on the USB topology;
Means for enumerating the USB device using a first firmware and a first device descriptor;
Means for enabling the USB device for access by the first client software in firmware load mode;
Means for downloading second firmware to the memory of the USB device;
Means for enumerating the USB device using a second device descriptor, and enabling the USB device for access by second client software in an operating mode using the second firmware And a system.
広域ネットワークデバイス中のワイヤレス通信を用いて前記USBデバイスを操作するための手段をさらに具備する請求項25のシステム。   26. The system of claim 25, further comprising means for operating the USB device using wireless communication in a wide area network device. 前記第2のファームウェアをダウンロードするための前記手段は、USBホストから前記メモリにダウンロードを行う手段と、および前記USBデバイス上の不揮発性メモリから前記メモリにダウンロードを行うための手段とからなるグループから選択される手段を具備する、請求項25のシステム。   The means for downloading the second firmware is from a group consisting of means for downloading from a USB host to the memory and means for downloading from a non-volatile memory on the USB device to the memory. 26. The system of claim 25, comprising means for selection. 前記第1のファームウェアを用いて前記USBデバイスを数え上げるための前記手段は、前記第1のファームウェアを前記メモリにダウンロードするための手段をさらに具備する、請求項25のシステム。   26. The system of claim 25, wherein the means for enumerating the USB device using the first firmware further comprises means for downloading the first firmware to the memory. 前記第1のファームウェアをダウンロードするための前記手段は、USBホストから前記メモリにダウンロードを行うための手段と、および前記USBデバイス上の不揮発性メモリから前記メモリにダウンロードを行うための手段とからなるグループから選択される手段を具備する、請求項28のシステム。   The means for downloading the first firmware comprises means for downloading from a USB host to the memory and means for downloading from a non-volatile memory on the USB device to the memory. 30. The system of claim 28, comprising means selected from a group. 前記第1のデバイス記述子は、第1のベンダー識別子および第1の製品識別子を具備する、請求項25のシステム。   26. The system of claim 25, wherein the first device descriptor comprises a first vendor identifier and a first product identifier. 前記第2のデバイス記述子は、第2のベンダー識別子および第2の製品識別子を具備する、請求項30のシステム。   32. The system of claim 30, wherein the second device descriptor comprises a second vendor identifier and a second product identifier. 前記第1のベンダー識別子および前記第2のベンダー識別子は、同じものである、請求項31のシステム。   32. The system of claim 31, wherein the first vendor identifier and the second vendor identifier are the same.
JP2011546316A 2009-01-13 2010-01-13 System, apparatus and method for fast startup of USB devices Pending JP2012515400A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/353,214 2009-01-13
US12/353,214 US8713209B2 (en) 2009-01-13 2009-01-13 System, apparatus, and method for fast startup of USB devices
PCT/US2010/020949 WO2010083257A2 (en) 2009-01-13 2010-01-13 System, apparatus, and method for fast startup of usb devices

Publications (1)

Publication Number Publication Date
JP2012515400A true JP2012515400A (en) 2012-07-05

Family

ID=41682387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011546316A Pending JP2012515400A (en) 2009-01-13 2010-01-13 System, apparatus and method for fast startup of USB devices

Country Status (7)

Country Link
US (1) US8713209B2 (en)
EP (1) EP2387749A2 (en)
JP (1) JP2012515400A (en)
KR (1) KR20110098974A (en)
CN (1) CN102272723A (en)
TW (1) TW201042460A (en)
WO (1) WO2010083257A2 (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321655B2 (en) * 2009-06-13 2012-11-27 Phoenix Technologies Ltd. Execution parallelism in extensible firmware interface compliant systems
CN101615165A (en) * 2009-08-06 2009-12-30 北京中星微电子有限公司 A kind of method and device that obtains the sequence number of USB device
US20120070019A1 (en) * 2010-09-21 2012-03-22 Barry Corlett Methods for addressing equipment in tree networks
WO2012098516A2 (en) * 2011-01-19 2012-07-26 Valens Semiconductor Ltd. Usb network having multiple hosts
US8706955B2 (en) 2011-07-01 2014-04-22 Apple Inc. Booting a memory device from a host
US8996747B2 (en) 2011-09-29 2015-03-31 Cypress Semiconductor Corporation Methods and physical computer-readable storage media for initiating re-enumeration of USB 3.0 compatible devices
US8843664B2 (en) 2011-09-29 2014-09-23 Cypress Semiconductor Corporation Re-enumeration of USB 3.0 compatible devices
KR20130087747A (en) * 2012-01-30 2013-08-07 삼성전자주식회사 Display apparatus, upgrade apparatus, display system including the same and the control method thereof
US8909818B2 (en) 2012-09-27 2014-12-09 Qualcomm Incorporated Method for shortening enumeration of tightly coupled USB device
CN104823174B (en) * 2012-09-30 2019-09-06 赛普拉斯半导体公司 The method and system of USB3.0 compatible equipment enumerated again
US20140208134A1 (en) * 2013-01-21 2014-07-24 Texas Instruments Incorporated Host controller interface for universal serial bus (usb) power delivery
US10165130B2 (en) 2014-02-13 2018-12-25 Emerge Print Management, Llc System and method for the passive monitoring and reporting of printer-related data on USB cables
US9307317B2 (en) 2014-08-29 2016-04-05 Coban Technologies, Inc. Wireless programmable microphone apparatus and system for integrated surveillance system devices
US9225527B1 (en) 2014-08-29 2015-12-29 Coban Technologies, Inc. Hidden plug-in storage drive for data integrity
CN105515811A (en) * 2014-10-14 2016-04-20 中兴通讯股份有限公司 USB wireless network card configuration method, host, USB wireless network card and communication system
US10165171B2 (en) 2016-01-22 2018-12-25 Coban Technologies, Inc. Systems, apparatuses, and methods for controlling audiovisual apparatuses
US10152858B2 (en) 2016-05-09 2018-12-11 Coban Technologies, Inc. Systems, apparatuses and methods for triggering actions based on data capture and characterization
US10370102B2 (en) 2016-05-09 2019-08-06 Coban Technologies, Inc. Systems, apparatuses and methods for unmanned aerial vehicle
US10789840B2 (en) 2016-05-09 2020-09-29 Coban Technologies, Inc. Systems, apparatuses and methods for detecting driving behavior and triggering actions based on detected driving behavior
US10585674B2 (en) * 2016-08-22 2020-03-10 Hewlett-Packard Development Company, L.P. Connected devices information
US10635345B2 (en) * 2018-08-31 2020-04-28 Micron Technology, Inc. Live firmware activation in a memory system
TWI745997B (en) * 2020-06-09 2021-11-11 慧榮科技股份有限公司 Method and apparatus and computer program product for producing solid state disk devices
CN113778915B (en) 2020-06-09 2023-10-10 慧荣科技股份有限公司 Method for producing solid state disk and computer readable storage medium and device

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265706A (en) * 2000-03-09 2001-09-28 Internatl Business Mach Corp <Ibm> Data transfer system, data transfer terminal, controller and interface method
US20030046447A1 (en) * 2001-07-31 2003-03-06 Konstantin Kouperchliak Device-related software installation
WO2004008313A1 (en) * 2002-07-15 2004-01-22 Axalto Sa Usb device
US20040189809A1 (en) * 2003-03-27 2004-09-30 Choi Juang-Hwan Digital imaging apparatus and method for selecting data transfer mode of the same
US20050120343A1 (en) * 2003-12-01 2005-06-02 Horng-Ming Tai Method and system for firmware downloads
JP2006185012A (en) * 2004-12-27 2006-07-13 Kyocera Mita Corp Interface device and interface program
US20070228139A1 (en) * 2006-03-03 2007-10-04 Dejun Wang Usb device that provides wireless data access, digital tv access, radio, and storage capability
US20080005370A1 (en) * 2006-05-23 2008-01-03 International Business Machines Corporation Method and System for Identifying an Operating System Running on a Computer System
US20110016280A1 (en) * 2002-12-12 2011-01-20 Flexiworld Technologies, Inc. Copy protection of software and/or data
US7890664B1 (en) * 2008-03-31 2011-02-15 Emc Corporation Methods and apparatus for non-disruptive upgrade by redirecting I/O operations

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658489B1 (en) * 2000-03-29 2003-12-02 International Business Machines Corporation Method for replacing a device driver during system operation
US6687774B2 (en) * 2000-12-19 2004-02-03 Semtech New York Corporation Wireless host with improved roustness and boot capabilities
US7209971B1 (en) * 2001-12-11 2007-04-24 Microsoft Corporation Architecture and run-time environment for network filter drivers
US20090222907A1 (en) * 2005-06-14 2009-09-03 Patrice Guichard Data and a computer system protecting method and device
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
US8626931B2 (en) * 2007-02-05 2014-01-07 Broadcom Corporation Media transport protocol extensions for system information exchange, and applications thereof
JP2009009211A (en) * 2007-06-26 2009-01-15 Sony Corp Communication system, communication apparatus, its control method and computer program

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265706A (en) * 2000-03-09 2001-09-28 Internatl Business Mach Corp <Ibm> Data transfer system, data transfer terminal, controller and interface method
US20030046447A1 (en) * 2001-07-31 2003-03-06 Konstantin Kouperchliak Device-related software installation
WO2004008313A1 (en) * 2002-07-15 2004-01-22 Axalto Sa Usb device
US20110016280A1 (en) * 2002-12-12 2011-01-20 Flexiworld Technologies, Inc. Copy protection of software and/or data
US20040189809A1 (en) * 2003-03-27 2004-09-30 Choi Juang-Hwan Digital imaging apparatus and method for selecting data transfer mode of the same
US20050120343A1 (en) * 2003-12-01 2005-06-02 Horng-Ming Tai Method and system for firmware downloads
JP2006185012A (en) * 2004-12-27 2006-07-13 Kyocera Mita Corp Interface device and interface program
US20070228139A1 (en) * 2006-03-03 2007-10-04 Dejun Wang Usb device that provides wireless data access, digital tv access, radio, and storage capability
US20080005370A1 (en) * 2006-05-23 2008-01-03 International Business Machines Corporation Method and System for Identifying an Operating System Running on a Computer System
US7890664B1 (en) * 2008-03-31 2011-02-15 Emc Corporation Methods and apparatus for non-disruptive upgrade by redirecting I/O operations

Also Published As

Publication number Publication date
CN102272723A (en) 2011-12-07
EP2387749A2 (en) 2011-11-23
WO2010083257A3 (en) 2010-09-23
KR20110098974A (en) 2011-09-02
TW201042460A (en) 2010-12-01
US8713209B2 (en) 2014-04-29
US20100180051A1 (en) 2010-07-15
WO2010083257A2 (en) 2010-07-22

Similar Documents

Publication Publication Date Title
JP2012515400A (en) System, apparatus and method for fast startup of USB devices
EP3242218B1 (en) Dynamic pcie switch reconfiguration mechanism
US9606955B2 (en) Embedded universal serial bus solutions
US7444455B2 (en) Integrated gigabit ethernet PCI-X controller
EP3529705B1 (en) Configuring docks
US6131131A (en) Computer system including an enhanced communication interface for an ACPI-compliant controller
US7653773B2 (en) Dynamically balancing bus bandwidth
JP5878606B2 (en) Enumerate virtual USB composite devices
US7131035B2 (en) Serial bus host controller diagnosis
US20210055777A1 (en) System power management in multi-port i/o hybrid systems
US20070156942A1 (en) Method and apparatus for independently managing a chipset-integrated bus controller
US11061837B2 (en) UBM implementation inside BMC
JPH11175201A (en) Device and method inside network interface for generating power management start signal
WO2017113879A1 (en) Method and device for controlling smart interface card
US10181975B2 (en) Override subsystems for rapid recovery from serial-link errors
JP6387581B2 (en) Server data port to learn with data switch
TW201411369A (en) Configuring a remote M-PHY
JP3599048B2 (en) Data transfer control system, electronic device, program, and data transfer control method
EP3304328B1 (en) Providing multiple roots in a semiconductor device
US20210051217A1 (en) System and Method to Provide Heterogeneous Protocols on Network Interface Devices
US20220012202A1 (en) Dynamic functional input/output (io) device interface selection through power state transitions
US11520729B2 (en) I2C bus architecture using shared clock and dedicated data lines
JP2009037474A (en) Data transfer control device and electronic device
Buchanan et al. USB and Firewire

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130709