WO2001031459A9 - Wireless universal serial bus system - Google Patents
Wireless universal serial bus systemInfo
- Publication number
- WO2001031459A9 WO2001031459A9 PCT/US2000/029292 US0029292W WO0131459A9 WO 2001031459 A9 WO2001031459 A9 WO 2001031459A9 US 0029292 W US0029292 W US 0029292W WO 0131459 A9 WO0131459 A9 WO 0131459A9
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data signal
- transmitting
- hub
- usb
- upstream
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W74/00—Wireless channel access
- H04W74/08—Non-scheduled access, e.g. ALOHA
- H04W74/0808—Non-scheduled access, e.g. ALOHA using carrier sensing, e.g. carrier sense multiple access [CSMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/18—Service support devices; Network management devices
- H04W88/182—Network node acting on behalf of an other network entity, e.g. proxy
Definitions
- the present invention relates generally to a wireless universal serial bus (USB) system and more particularly to a USB system including a proxy device that transmits communications over a wireless communication path between a USB host controller and a peripheral USB device in a manner that is transparent to both the USB host controller and the USB peripheral device.
- USB universal serial bus
- USB Universal Serial Bus
- Typical USB peripheral devices include printers, scanners, mice, joysticks, speakers and storage devices.
- USB peripheral devices are "hot" connectable and disconnectable, meaning that a USB device can be connected to and/or disconnected from the computer without having to restart the computer.
- the operating system automatically detects and enumerates the device. By enumerating the device, the host controller associated with the operating system assigns the device an address and determines what type of data transfer the device will perform. Data transfer types include interrupt transfers, control transfers; bulk transfers and isochronous transfers.
- Interrupt transfers are performed by a device such as a mouse or keyboard which sends small amounts of data to the host controller; control transfer are used to send control signals between devices; bulk transfers are performed by, for example, a printer which receives data in one large packet; and isochronous transfers are performed by streaming devices such as speakers, in which data streams between the device and the host controller in real time with no error correction.
- the host controller Based on the transfer type and address assigned to each device, the host controller is able to more effectively communicate with the peripheral device than in non-USB systems.
- the length of the cable that connects the peripheral device to the computer is limited, thus requiring that all of the peripheral devices connected to the computer be located within a fixed range of the computer.
- the cables associated with a large number of peripheral USB devices can cause safety hazards and can be difficult to manage and route between the devices.
- the present invention is directed to a USB system which includes an upstream hub which is connected to the host controller and a downstream hub which is connected to one or more USB peripheral devices. Communication between the upstream and downstream hubs is carried out over a wireless communication path, such as a radio frequency (RF) or infrared (IR) path.
- RF radio frequency
- IR infrared
- a system for communicating data signals between a computer processor and a peripheral device includes a controller device associated with the computer processor; a proxy device coupled to the controller device; and a peripheral device coupled to the proxy device.
- the proxy device is adapted for:
- the proxy device may include an upstream device coupled to the controller device and a downstream device coupled to the peripheral device, the upstream and downstream devices being couplable to each other by a communication path for transmitting the first and second data signals between the controller device and the peripheral device.
- the communication path may be a wireless path which may be one of a radio frequency path and an infrared path.
- the controller device may be a universal serial bus controller and the peripheral device may be a universal serial bus peripheral device.
- a method of communicating data signals between a computer processor and a peripheral device includes:
- Step B may include transmitting the control data signal from an upstream element of the proxy device to a downstream element of the proxy device and then transmitting the first data signal from the downstream element to the peripheral device.
- Step C may be performed by the upstream element.
- Step F may include transmitting the second data signal from the downstream element of the proxy device to the upstream element of the proxy device and then transmitting the second data signal from the upstream element to the controller device.
- the first data signal and the second data signal may be transmitted between the upstream element and the downstream element over a wireless communication path, which may be one of a radio frequency path and an infrared path.
- a universal serial bus communication system includes a first hub device having a first port adapted for receiving and transmitting data signals in a USB format from and to an upstream device, a second port adapted for transmitting and receiving data signals in a wireless format, and a data signal conversion device adapted for converting the data signals in the USB format to the data signals in the wireless format and for converting the data signals in the wireless format to the data signals in the USB format; and a second hub device having a first port adapted for receiving and transmitting data signals in the wireless format from and to the second port of the first hub device, a second port adapted for receiving and transmitting data signals in the USB format from and to a downstream device, and a data signal conversion device adapted for converting the data signals in the USB format to the data signals in the wireless format and for converting the data signals in the wireless format to the data signals in the USB format.
- Fig. 1 is a schematic diagram of the wireless USB system of the present invention
- Fig. 2 is a flow diagram showing the method of transmitting data signals downstream in accordance with the present invention
- Fig. 3 is a flow diagram showing the method of transmitting data signals upstream in accordance with the present invention.
- Fig. 4 is a more detailed schematic diagram of the wireless USB system in accordance with the present invention.
- Fig. 5 is a more detailed schematic diagram of an alternative embodiment of the wireless USB system in accordance with the present invention.
- Fig. 6 is a detailed block diagram of the upstream hub of the present invention
- Fig. 7 is a detailed block diagram of the downstream hub of the present invention.
- System 10 includes a personal computer (PC) 12 which includes a USB host controller 14, a USB proxy hub 16 which includes an upstream hub 18 and a downstream hub 20 and a USB peripheral device 22.
- PC personal computer
- USB proxy hub 16 which includes an upstream hub 18 and a downstream hub 20 and a USB peripheral device 22.
- host controller 14 is connected to the upstream hub 18 with a conventional USB cable 24
- downstream hub 20 is connected to the USB peripheral device with a conventional USB cable 26.
- upstream hub 18 is connected to downstream hub 20 via a wireless connection path 28, which preferably is an RF communication path, but may be IR or any other compatible wireless technology. Communication over the wireless path 28 may be in the USB protocol, or in any suitable communication protocol.
- Host controller 14 provides and manages access to the USB system. It performs several functions, such as managing the states of attached USB peripheral devices, converting protocol and data between native format and USB standard protocol, generating frames according to the protocol, processing data transmission requests and handling transmission errors.
- the USB protocol requires, among other things, that a round-trip response time delay for transmission between the host controller and the peripheral device be within a specified time. This allows the USB system to maintain its high data rate and to support devices with real-time requirements. As a result of this, if the host controller does not receive an expected response within the specified time, it will invalidate the transaction. Since, due to the increased processing time of wireless transmission, the wireless transmission of the data signals in the present invention can violate the maximum round-trip transmission time requirement, a retransmission scheme is implemented in order to prevent the invalidation of valid transactions.
- the proxy hub 16 transfers data signals between the host controller 14 and the peripheral device 22 in a transparent manner such that the host controller 14 and the peripheral device 22 "think" that they are communicating directly with each other. This is carried out by the use of so-called "NAK" packets which are transmitted to the host controller 14 and the peripheral device 22 by the upstream hub 18 and the downstream hub 20, respectively.
- NAK so-called "NAK” packets which are transmitted to the host controller 14 and the peripheral device 22 by the upstream hub 18 and the downstream hub 20, respectively.
- a first device requesting a response from a second device must receive the response within a predefined time frame. If the response is not received within the predefined time frame, the first device assumes that the second device is disabled or otherwise unavailable.
- the second device can send a NAK packet to the first device to instruct the first device to resend the request thereby giving the second device more time to respond.
- These NAK packets are transmitted by the upstream hub 18 and to the host controller 14 in order to obtain more time to transmit the request to the downstream hub and then to the peripheral device, and then for the peripheral device to transmit its response through the downstream hub and the upstream hub to the host controller. Since the transmission of the request from the upstream hub through the downstream hub to the peripheral device and the subsequent transmission of the response from the peripheral device through the downstream hub to the upstream hub typically takes longer than the convention USB protocol timeout, NAK packets are transmitted from the upstream hub to the host controller during the transmission so that the host controller does not conclude that the peripheral device is unavailable. Likewise, the downstream hub transmits NAK packets to the peripheral device during an upstream transmission.
- Fig. 2 is a flow diagram that shows the method of transmitting a control data signal from the host controller to the peripheral device and transmitting a response data signal from the peripheral device to the host controller.
- host controller 14 transmits a control data signal to the peripheral device 22.
- This control data signal can be transmitted by the host controller for a number of reasons, such as to check the status of the peripheral device or to instruct the peripheral device that the host controller will be sending data to the peripheral device.
- the host controller is not aware that the proxy hub is connected between it and the peripheral device.
- the upstream hub receives the control data signal from host controller 14 on connection 24 and transmits the control data signal to the downstream hub 20 over the wireless connection path 28, step 34.
- upstream hub 18 transmits a NAK packet to the host controller 14 over connection 24, step 36.
- This NAK packet will instruct the host controller to resend the control data signal.
- the NAK packet was received from the peripheral device, which is typical in the USB protocol.
- the transmission of the original control data signal to the peripheral device and the transmission of a response data signal from the peripheral device to the upstream device is carried out.
- the downstream hub 20 transmits the control data signal to the peripheral device which, in response to the control data signal, transmits a response data signal , step 40.
- the downstream hub 20 receives the response data signal from the peripheral device 22 over connection 26 and transmits the response data signal to the upstream hub 18 over the wireless connection path 28, step 42.
- the upstream hub 14 attaches a time tag to the response data signal in order to keep track of the order of received response data signals, step 46.
- the upstream hub 18 stores the response data signal in memory until it receives the control data signal retransmitted from the host controller in response to the NAK packet, step 48.
- the upstream device Upon receiving the retransmitted control data signal from the host controller 14, the upstream device searches its memory for the most recent response data signal that was transmitted from the peripheral device 22 in response to the control data signal transmitted thereto by the host controller 14, step 50. The upstream hub 18 then transmits the appropriate response data signal to the host controller 14 over connection 24, step 52.
- the proxy hub 16 is effectively transparent to both the host controller 14 and the peripheral device 22. If, due to the distance between the upstream hub 18 and the peripheral device 22, the transmission of the original control data signal from the upstream hub 18 to the peripheral device 22 takes longer than the typical USB protocol timeout, in which case the host controller would assume that the peripheral device was unavailable, the upstream device 18 continues to transmit NAK packets to the host controller 14 until the upstream hub 18 receives the response data signal from the peripheral device 22 through the downstream hub 20. This causes the host controller to continue retransmitting the control data signal to what it thinks is the peripheral device 22. This NAK packet retransmission scheme forces the host controller 14 to wait for the response data signal to be received without timing out. As set forth above, from the point of view of the host controller, the NAK packets are being sent directly from the peripheral device 22.
- Fig. 3 is a flow chart which shows the method of transmitting a configuration data signal from the peripheral device 22 to the host controller 14 and transmitting a response data signal from the host controller 14 to the peripheral device 22.
- peripheral device 22 transmits a configuration data signal to the host controller 14.
- This configuration data signal can be transmitted from the peripheral device 22 to the host controller for a number of functions, such as to inform the host controller 14 of the configuration specifications of the peripheral device or to instruct the host controller that the peripheral device will be transmitting data to the host controller.
- the downstream hub 20 receives the configuration data signal over connection 26 and transmits the configuration data signal to the upstream hub 18 over the wireless communication path 28, step 58.
- downstream hub 20 transmits a NAK packet to the peripheral device 22, step 60, which instructs the peripheral device 22 to retransmit the configuration data signal.
- the NAK packet is received from the host controller 14, which is typical in the USB protocol.
- the transmission of the original configuration data signal to the host controller and the transmission of a response data signal from the host controller to the downstream device is carried out.
- the upstream hub 18 transmits the configuration data signal to the host controller which, in response to the configuration data signal, transmits a response data signal to the upstream hub over connection 24, step 64.
- the host controller 14 From the point of view of the host controller 14, it is transmitting the response data signal directly to the peripheral device, which is typical in the USB protocol.
- the upstream hub 18 transmits the response data signal to the downstream hub 20 over the wireless connection path 28, step 66.
- the downstream hub 20 After the downstream hub 20 receives the response data signal, step 68, it stores the response data signal in memory.
- the downstream hub 20 Upon receiving the configuration data signal retransmitted from the peripheral device 22, step 70, the downstream hub 20 transmits the appropriate response data signal stored in its memory to the peripheral device 22, step 72.
- the proxy hub 16 is effectively transparent to both the host controller 14 and the peripheral device 22. If, due to the distance between the downstream hub 20 and the host controller 14, the transmission of the original configuration data signal from the downstream hub 20 to the host controller 14 takes longer than the typical USB protocol timeout, in which case the peripheral device would assume that the host controller was unavailable, the downstream device 20 continues to transmit NAK packets to the peripheral device 22 until the downstream hub 20 receives the response data signal from the host controller 14 through the upstream hub 18. This causes the peripheral device 22 to continue retransmitting the configuration data signal to what it thinks is the host controller 14. This NAK packet retransmission scheme forces the peripheral device 22 to wait for the response data signal to be received without timing out. As set forth above, from the point of view of the peripheral device 22, the NAK packets are being sent directly from the host controller 14.
- Fig. 4 is a more detailed block diagram of the wireless USB system 10 of Fig. 1.
- the personal computer 12 includes, in addition to host controller 14, a computer processor 80 and bus architecture 82.
- Proxy hub 16 includes multiple upstream hubs 18 which are connected to multiple downstream hubs 20, each being connected to a peripheral device 22.
- Each upstream hub 18 is a cascadable hub, in which further upstream hubs may be connected to the downstream side of the preceding upstream hub, as shown in the figure. This enables the system 10 to support up to 127 peripheral devices 22 which are connected to the upstream hubs 18 through respective downstream hubs 20.
- the upstream hubs 18 are connected to the downstream hubs 20 by a wireless connection, it will be understood that they can also be connected by a wired connection while still utilizing the method of communicating therebetween, as described above.
- the system 10 could include a PC 12 having an upstream hub 18a located within the PC 12 and an antenna 84 which is connected to the upstream hub 18a.
- Antenna 84 receives downstream data signals from the upstream hub 18a and transmits them to a further upstream hub 18b, as well as downstream hubs 20, which transmit the data signals to the respective peripheral devices 22.
- antenna 84 receives upstream data signals from downstream hubs 20 and upstream hub 18b and transmits them to upstream hub 18a.
- Fig. 6 is a block diagram showing the components that make up the upstream hub 18.
- Upstream hub 18 includes a USB protocol engine 100, which includes a serial interface engine (SIE) 102, device/endpoint control logic 104, RAM access arbiter 106, Packet MMU logic device 108 and USB transceiver 110 for transmitting and receiving USB signals to the host controller 14 over connection 24.
- An antenna device 1 12 is connected to a transceiver 114 for transmitting and receiving data signals to and from the downstream hub.
- a base band processor 116 processes the outgoing USB signals into a form that is capable of being transmitted in an RF format and converts the RF signals received back into the USB format.
- Media access control interface 116 is used for identifying the origin of the signals processed by the upstream hub and control processor 120 controls the operation of the upstream hub 18.
- General purpose RAM 122 is used for storing device descriptors for the USB system
- FLASH ROM 124 is used for storing operating code for the upstream hub 18
- FIFO RAM 126 is a buffer memory for storing transmission and reception address data for each transaction.
- Device/endpoint logic device 128 is used in conjunction with the RAM access arbiter for processing address data associated with the USB transactions.
- Upstream hub 18 also includes an IrD A/serial interface 130 which is used for configuring downstream components into the system, as is described in greater detail below.
- USB protocol engine 100 handles arbitrary USB device addresses, endpoints and directions.
- the basic scheme uses a 4096 byte lookup table in dual-ported RAM that can be written to and read from by both the PC 12 and the protocol engine 100.
- Lookup table values are accessed using a 12-bit index (A0 through Al 1) comprised of the following fields taken from the USB transaction:
- this lookup table is initially filled with a value that denotes "invalid/unconfigured", such as a value having an invalid FIFO field. Then, as the peripheral devices are configured, the appropriate lookup table entries are filled in with the FIFO number to which data is written or from which data is read.
- the hardware design uses a FIFO address for each endpoint to be supported. Such a design, for example, allocates 8 input FIFOs and 8 output FIFOs to be shared across all device addresses. PC 12 manages the allocation of input and output FIFOs.
- the DIR bit sense is zero for an input to the host controller and a one for an output from the host controller.
- Extra bits in each lookup table entry contain additional information such as whether the transaction requires handshakes/retries or not. Conventionally, isochronous transfers do not require handshakes.
- an example entry in the lookup table looks like the following, where the ISOC bit indicates that handshakes and retries should not be performed on these transactions:
- protocol engine 100 uses the lookup table as follows. When a token is issued by the host controller 14 where the data direction, PID is 0x01 (OUT), OxOd(SETUP) or 0x09(IN), the protocol engine 100 generates an index into the lookup table based upon the data direction, the USB address and endpoint number. The protocol engine 100 then fetches the corresponding value from the lookup table RAM. If the fetched value indicates that the address/endpoint/direction is not configured, then the appropriate USB protocol action can be taken.
- the protocol engine determines from the state of the DIR bit whether it should be setting up to write to an output FIFO or to read from an input FIFO.
- the ISOC bit tells the protocol engine whether handshaking is required for transactions involving this address/endpoint/direction.
- the empty status of the specified FIFO is used to determine whether or not to generate a NAK response to the host controller 14. This empty status is also able to be used to cause an interrupt to inform the PC 12 that data is needed for that particular address/endpoint/direction.
- NAK indications are posted to a status FIFO before generating an interrupt so that the PC 12 can handle multiple N AKs per interrupt.
- Fig. 7 is a block diagram showing the components that make up the downstream hub 20.
- Downstream hub 20 includes an antenna 140 which is connected to transceiver 142 for transmitting and receiving data signal to and from the upstream hub 18. Similar to upstream hub 18, downstream hub 20 includes a base band processor 144 for converting data signals from USB format to RF format and vice versa, a MAC interface 146 and a control processor 148 for controlling the operation of the downstream hub 20.
- a host controller 150 is included, which may be any type of embedded host controller such as OHCI or UHCI, and RAM 152 is used for storing device descriptors for the USB system and FLASH ROM 154 is used for storing operating code for the downstream hub 20.
- Hub logic device 156 controls the transmission and reception of USB data signals from peripheral device over connection 26.
- Downstream hub 20 includes a serial interface 158 which is used in conjunction with the IrD A/serial interface 130 of upstream device 18 for configuring the downstream hub 20 into the system 10, as is discussed in greater detail below.
- upstream hub 18 and downstream hub 20 into the system 10 is as follows. After the upstream hub 18 is connected to host controller 14 by connection 24, host controller 14 detects that a full speed USB device has been attached. The host controller 14 then issues a USB reset signal to the upstream hub, which causes the upstream hub 18 to clear its internal configuration tables of all USB information. Upstream hub 18 creates a single hub object to manage all communicating downstream hubs and programs its USB device address to the default address (0). Host controller 14 issues a GET_DESCRIPTOR command to USB address 0 (the default address), endpoint 0.
- Upstream hub 18 responds by identifying itself as a standard USB hub class device, and provides the necessary USB information to the host controller, such as vendor identification and maximum packet size for endpoint 0 of the upstream hub 18.
- Host controller 14 issues a SET_ADDRESS command to address 0, endpoint 0.
- This data packet contains the USB address "X" assigned to the upstream hub 18.
- Upstream hub 18 receives the SET_ADDRESS data packet and reprograms its protocol engine 100 to recognize the device address specified in the SET_ADDRESS command.
- Host controller 18 then sends a device request to upstream hub address "X" and the upstream hub 18 responds with "canned" information about itself.
- Host controller 14 sends a configuration request to upstream hub address "X" to retrieve the single configuration supported by the upstream hub 18.
- Upstream hub 18 responds with canned information about the configuration that it supports, including a configuration descriptor, an interface descriptor and an endpoint descriptor. The endpoint descriptor that is returned is a status change endpoint descriptor.
- Host controller 18 then sends a SET CONFIGURATION command to address "X" to select a particular configuration to use.
- Upstream hub 18 then configures its protocol engine 100 to use the requested configuration. At this point, host controller 14 considers upstream hub 18 functional and can start issuing port control commands and start polling the upstream hub 18 for hub port status changes.
- the downstream hub 20 can be configured into the system 10. This is done by placing the IrDA interface 130 of upstream device 18 within approximately one meter of the serial interface 158 of downstream hub 20. Power is applied to downstream device 20 and a configuration process is initiated between the IrDA interface of the upstream hub 18 and the serial interface 158 of the downstream hub 20. In order to configure peripheral devices 22 with the downstream hub 20, the hub is powered up and initialized. All downstream USB ports of the downstream hub 20 are set to a disabled state. When a peripheral device 22 is plugged into a USB port of the downstream hub 20. At this point, when OHCI host controller 150 detects the attached peripheral device 22, the new status is recorded in one of two port status registers in the OHCI host controller 150.
- the presence of an attached peripheral device 22 is detected via a polling process carried out by the downstream hub 20.
- downstream hub 20 sends a status change message to the upstream hub 18.
- This status change message includes the downstream hub unit number, the USB port number and status change information included in Table 1 below.
- USB port status change message When the USB port status change message is received by upstream hub 18, it is decoded and used to update port status tables. Any change in status is flagged and the new status is incorporated into the status tables.
- Host controller 14 periodically polls upstream hub 18 for its status using an INT transaction that is responded to by upstream hub 18 with a data packet if a status change has occurred or a NAK if no change has occurred. The data packet contains bit fields identifying the port that has changed.
- Host controller 14 then sends a GET_STATUS command to the upstream hub 18 address "X" asking for the complete status for the port that changed.
- Upstream hub 18 responds to the host controller 14 with information in its hub status tables that is in the form of two 16 bit words. The first word is the port status and the second word is a port change mask. The port change mask indicates which bit positions in the port status word have changed.
- the bit assignments for the port status word are shown in Table 1.
- Upstream hub 18 posts the two 16-bit words of response data to its protocol engine 100 endpoint 0 buffer so that they are available to the host controller 14 as the response to the GET STATUS command.
- the host controller 14 interprets the port status word and the port change mask word, it recognizes that a peripheral device 22 has been added to the system. From this information, it also determines whether the peripheral device is a full speed or low speed USB device.
- Host controller 14 then resets and enables the USB port ofthe downsfream hub 20 that has changed. This is done by means of a SET FEATURE command to the upstream hub 18 address "X" on the default endpoint (0).
- the format of the SET_FEATURE command is as follows:
- upstream hub 18 When upstream hub 18 receives this command, it sends an acknowledge signal to the host controller 14. The command is then decoded by the protocol engine 100 and, when it is recognized as a hub control command, it is sent to the downstream hub 20 that includes the changed port. When the downstream hub 18 receives the command, it generates a request to its OHCI host controller 156 to reset the indicated port. Once the reset is complete, the port is enabled.
- the downstream hub recognizes the change in the USB port status for the port that has been enabled.
- Table 2 shows the UHCI controller port status/control register.
- downstream hub 20 When downstream hub 20 sees that bit 3 has gone high (1), it recognizes the status change of the port. Downstream hub 20 sends a status change message to upstream hub 18 which includes an identification number of the downstream hub 20, an identification number of the USB port that has had a status change and all of the status change information shown in Table 1, above. Upstream hub 18 decodes the USB port status message and updates its port status tables. Any change in status of the ports is flagged and the new status is incorporated into its status tables. When host controller 14 next polls upstream hub 18 for status, upstream hub 18 reports the change in status. Host controller 14 then begins the enumeration process on the newly attached peripheral device 22 by issuing a GETJDESCRIPTOR command to upstream hub 18.
- the command is a SETUP- DAT A0 transfer from the host controller 14 followed by an IN-DATA1 transfer, in which the addressed peripheral device is expected to send the DATA1 packet back to host controller 14.
- the SETUP- DAT A0 packet is acknowledged.
- the protocol engine 100 has no data queued to send on endpoint 0 for peripheral device address 0, the IN data stage transfer is N AKed.
- Upstream hub 18 checks its emulated hub state and confirms that the system is configured and therefore no longer responds to address 0. It then checks to see which of its hub ports was last reset and identifies on which downstream hub 20 that port resides. Upstream hub 18 then sends the GET_DESCRIPTOR command from host controller 14 to the appropriate downstream hub 20.
- a peripheral device can be connected to a downstream hub 20 using its standard USB connection 26, taking advantage of the "hot connect" feature of the standard USB protocol.
- Communication between the peripheral device 22 and downstream hub 20 is standard USB communication.
- Downstream hub 20 communicates with peripheral device 22 in such a way that it convinces peripheral device 22 that it is the host controller 14. This enables it to receive specific data regarding the communication requirements of the peripheral device 22.
- Downstream device 20 stores a table in its memory of the communication requirements of the device.
- Downstream hub 20 is then able to emulate the peripheral device 22 when communicating with the upstream hub 18 and to emulate the upstream device 18 when communicating with the peripheral device 22.
- Downstream hub 20 then establishes communication with upstream hub 18 over the wireless communication path 28 and conveys its information regarding the communication specifics of the peripheral device.
- Upstream hub 18 sets up a proxy task dedicated to the downstream hub 20 and a table likewise listing the communication specifics of the peripheral device 22. In this way, as described above, the upstream hub 18 and the downstream hub 20 form a proxy which acts as the peripheral device when communicating to the host controller 14.
- the upstream hub 18 communicates the presence of the peripheral device 22 to the host controller 14 over connection 24, in a way that convinces the host controller 14 that it is the peripheral device 22.
- Host controller 14 acknowledges the peripheral device by sending an acknowledgement (ACK) signal to upstream hub 18.
- ACK acknowledgement
- Upstream hub 18 assigns the ACK to the appropriate proxy task and transmits the ACK to the downstream hub 20 over the wireless communication path 28.
- Downstream hub 20 receives the ACK and commences its regular communication, packet by packet, with the peripheral device 22, which "thinks" that it is communicating directly with host controller 14.
- Downstream hub 20 is then capable of carrying out proxy communications with its assigned proxy task on upstream hub 18, while using NAKs to buy time with the peripheral device 22 as necessary.
- Upstream hub 18 is then capable of carrying out proxy communications between the proxy task and the host controller 14, also using NAKs to buy time with the host controller 14 as necessary.
- the present invention incorporates several security features.
- the downstream hub in the configuration stage of a downstream hub into the system, the downstream hub must be brought into close proximity with the upstream hub in order to carry out the configuration of the downstream hub via the serial interfaces 130 and 156 of the upstream hub 18 and the downstream hub 20, respectively.
- This instantiation security insures that, during the configuration process, an unintended downstream hub is not unknowingly configured into the system.
- the wireless communication_path 28 can be made secure by means of spread spectrum or any other technology designed to hide the communications in ambient atmospheric noise. Data encryption may also be used to encrypt the wireless communication packets, including public key encryption.
- the present invention includes a wireless USB system that enables USB peripheral devices to communicate with a USB host controller of a personal computer without the use of a hard-line connection and from any reasonable distance away from the personal computer.
- the system meets Microsoft's compatibility requirements and therefore is purely "plug and play".
- the system includes a proxy hub which coordinates the communication between the host controller and the peripheral device and carries out the wireless transmission of the communication. While the invention can be used in conjunction with any type of USB peripheral device, it is especially advantageous when used in conjunction with video surveillance cameras, stereo speakers and telephones, in which the wireless transmission of signals eases installation constraints and enhances the portability of the devices.
- the proxy scheme of the present invention can also be implemented into a system having a wired communication path, including ethernet, power line, telephone line and general wired media.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU22480/01A AU2248001A (en) | 1999-10-22 | 2000-10-23 | Wireless universal serial bus system |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16096499P | 1999-10-22 | 1999-10-22 | |
US16096599P | 1999-10-22 | 1999-10-22 | |
US60/160,964 | 1999-10-22 | ||
US60/160,965 | 1999-10-22 |
Publications (3)
Publication Number | Publication Date |
---|---|
WO2001031459A1 WO2001031459A1 (en) | 2001-05-03 |
WO2001031459B1 WO2001031459B1 (en) | 2001-09-07 |
WO2001031459A9 true WO2001031459A9 (en) | 2002-07-04 |
Family
ID=26857385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/029292 WO2001031459A1 (en) | 1999-10-22 | 2000-10-23 | Wireless universal serial bus system |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU2248001A (en) |
WO (1) | WO2001031459A1 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7469343B2 (en) * | 2003-05-02 | 2008-12-23 | Microsoft Corporation | Dynamic substitution of USB data for on-the-fly encryption/decryption |
KR100943742B1 (en) * | 2003-06-03 | 2010-02-23 | 삼성전자주식회사 | Apparatus and method for transmitting a USS transaction on a wireless PAN |
ZA200700458B (en) * | 2004-06-15 | 2009-03-25 | Trek 2000 Int Ltd | Solid-state storage device with wireless host interface |
KR100679023B1 (en) * | 2004-11-03 | 2007-02-05 | 삼성전자주식회사 | Method and apparatus for supporting multiple wireless universal serial bus hosts in coordinator-based wireless network |
KR100703787B1 (en) | 2005-08-09 | 2007-04-06 | 삼성전자주식회사 | Flow control method in wireless USS communication and wireless USS device and wireless USS host using same |
JP2010020408A (en) | 2008-07-08 | 2010-01-28 | Ricoh Co Ltd | Wireless usb device |
EP2997484B1 (en) * | 2013-05-16 | 2021-10-27 | Intel Corporation | Apparatus, system and method of protocol adaptation layer (pal) communication to indicate transitioning a device to a default state |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870080A (en) * | 1996-03-14 | 1999-02-09 | Gateway 2000, Inc. | Electro-magnetic transceiver combined with a pointing device |
US5890015A (en) * | 1996-12-20 | 1999-03-30 | Intel Corporation | Method and apparatus for implementing a wireless universal serial bus host controller by interfacing a universal serial bus hub as a universal serial bus device |
-
2000
- 2000-10-23 WO PCT/US2000/029292 patent/WO2001031459A1/en active Application Filing
- 2000-10-23 AU AU22480/01A patent/AU2248001A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2001031459B1 (en) | 2001-09-07 |
WO2001031459A1 (en) | 2001-05-03 |
AU2248001A (en) | 2001-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7644211B2 (en) | Method and system for controlling transmission of USB messages over a data network between a USB device and a plurality of host computers | |
US8504707B2 (en) | Method and system for sending and receiving USB messages over a data network | |
US8225020B2 (en) | Method and system for hardware based implementation of USB 1.1 over a high speed link | |
US5890015A (en) | Method and apparatus for implementing a wireless universal serial bus host controller by interfacing a universal serial bus hub as a universal serial bus device | |
TWI320142B (en) | Bus connection system | |
EP1730645B1 (en) | Operating a remote usb host controller | |
AU2006222461A1 (en) | Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays | |
CN101282224A (en) | Communication adapter and data transmission method of communication adapter | |
CA2298001A1 (en) | Data processing system and method for permitting a server to remotely access a powered-off client computer system's asset information | |
US7383372B2 (en) | Bus system, station for use in a bus system, and bus interface | |
TWI233553B (en) | Bus system and bus interface for connection to a bus | |
WO2001031459A9 (en) | Wireless universal serial bus system | |
US7043589B2 (en) | Bus system and bus interface | |
EP1730928A1 (en) | Device and method for electronic data conversion | |
US20050102431A1 (en) | Composite adapter for multiple peripheral functionality in portable computing system environments | |
JP4495860B2 (en) | Interface and method for communication | |
CN1703686B (en) | Detection of direct memory access (DMA) | |
JPH11296315A (en) | Information processing apparatus and data communication method | |
JP2002542528A5 (en) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
AK | Designated states |
Kind code of ref document: B1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: B1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
B | Later publication of amended claims | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
AK | Designated states |
Kind code of ref document: C2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: C2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
COP | Corrected version of pamphlet |
Free format text: PAGES 1/7-7/7, DRAWINGS, REPLACED BY NEW PAGES 1/7-7/7; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase in: |
Ref country code: JP |