IP Library Granted Patent US 7,418,524
Granted Patent B2
US 7,418,524 · App. 11/294,563 · Granted Aug 26, 2008

Universal serial bus (USB) extension

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,418,524
App. No.
11/294,563
Granted
Aug 26, 2008
Kind
B2
Abstract

A universal serial bus (USB) extension allows for the transmission of data at high speeds over a much greater distance than typical USB operating range. USB devices may be connected to host computers at distances of 750 meters or more. USB tokens from a host computer are spoofed.

Claims (85)

1. A method of communicating with a universal serial bus (USB) device connected to a host computer, the method comprising:

sending USB packets via an upstream mechanism to the USB device from the host computer;

at said upstream mechanism, maintaining a list of sent USB packets;

sending at least some spoofed responses from the upstream mechanism to the host computer;

waiting for actual responses from the USB device, and, while waiting for said actual responses from the USB device, in response to said host computer attempting to send another USB packet to said USB device via said upstream mechanism, said upstream mechanism sending said another USB packet to said USB device only if said another USB packet is not on the list of sent USB packets, otherwise said upstream mechanism (a) discarding said another USB packet, and (b) sending at least one other spoofed response to said host computer; and

providing at least some of the actual responses to the host computer.

2. A method as in claim 1 further comprising:

removing said USB packets from the list of sent USB packets.

3. A method of communicating with a universal serial bus (USB) device connected to a host computer, the method comprising, by an upstream mechanism:

obtaining a USB token from the host computer;

sending the USB token downstream towards the USB device;

sending at least one spoofed response to the host computer;

adding said USB token to a list of sent USB tokens;

waiting for an actual response from the USB device, and, while waiting for said actual response from the USB device, responsive to said host computer attempting to send a second USB token to said USB device via said upstream mechanism, sending said second USB token to said USB device only if said second USB token is not on the list of sent USB tokens, otherwise (a) discarding said second USB token, and (b) sending at least one other spoofed response to said host computer; and

providing the actual response to the host computer.

4. A method as in claim 3 wherein the token is selected from the group of tokens consisting of: OUT token, IN token, SOF, token, SETUP token and DATA token.

5. A method as in claim 3 wherein the spoofed response is

selected from the group of tokens consisting of an ACK token and a NAK token and known bad data.

6. A method as in claim 3 wherein the actual response is selected from the group of handshake tokens consisting of: ACK token; NAK token;

STALL token, and NYET token.

7. A method as in claim 3 wherein the USB token is an IN token and the at least one spoofed response is a NAK token.

8. A method as in claim 7 further comprising:

upon receipt of the actual response from downstream, sending an acknowledgement token to a downstream mechanism.

9. A method as in claim 3 wherein the USB token is a SETUP token and the at least one spoofed response is an ACK token.

10. A method as in claim 3 wherein the USB token is an OUT token and the at least one spoofed response is selected from the group of responses consisting of: a NAK token and known bad data.

11. A method as in claim 10 wherein the known bad data comprise data with a bad cyclic redundancy check (CRC).

12. A method as in claim 3 further comprising:

upon receipt of the actual response from downstream, storing the actual response and associating the actual response with the USB token, wherein said providing comprises:

providing the stored actual response.

13. A method as in claim 3 further comprising, by a downstream mechanism:

receiving a USB token from an upstream mechanism;

providing the USB token to the USB device;

obtaining an actual response from the USB device;

sending the actual response upstream;

storing a copy of the actual response, and

sending an acknowledgement token to the USB device.

14. A method as in claim 13 further comprising:

in response to an acknowledgement token from upstream, deleting the stored copy of the actual response.

15. A method as in claim 3 further comprising:

while waiting for the actual response, sending at least one other spoofed response to the host computer.

16. A method as in claim 3 further comprising:

upon receipt of the actual response from downstream, removing said USB token from the list of sent USB tokens.

17. A method of communicating with a universal serial bus (USB) device connected to a host computer, the method comprising:

by an upstream mechanism,

obtaining a USB token from the host computer;

sending the USB downstream towards the USB device;

adding said USB token to a list of sent USB tokens;

sending at least one spoofed response to the host computer;

waiting for an actual response from the USB device, and, while waiting for said actual response from the USB device, responsive to said host computer attempting to send a second USB token to said USB device via said upstream mechanism, said upstream mechanism sending said second USB token to said USB device only if said second USB token is not on the list of sent USB tokens, otherwise (a) discarding said second USB token, and (b) sending at least one other spoofed response to said host computer; and

providing the actual response to the host computer; and

by a downstream mechanism:

receiving the USB token from the upstream mechanism;

providing the USB token to the USB device;

obtaining a response from the USB device; and

sending the response from the USB device upstream as the actual response.

18. A method of communicating with a universal serial bus (USB) device connected to a host computer, the method comprising, by an upstream mechanism:

obtaining a USB OUT token from the host computer;

sending the USB OUT token downstream;

adding said USB OUT token to a list of sent USB tokens;

sending a spoofed response to the host computer;

obtaining a USB DATA token from the host computer;

sending the USB DATA token downstream;

adding said USB DATA token to a list of sent USB tokens;

waiting for an actual response from the USB device, and, while waiting for said actual response from the USB device, responsive to said host computer attempting to resend said USB OUT token and said USB DATA token to said USB device via said upstream mechanism, said upstream mechanism sending said USB OUT token and said USB DATA token to said USB device only if said USB OUT token and said USB DATA token are not on the list of sent USB tokens, otherwise (a) discarding said USB OUT token and said USB DATA token, and (b) sending at least one other spoofed response to said host computer; and

providing the actual response to the host computer.

19. A universal serial bus (USB) connector system comprising:

(A) an upstream mechanism connectable to a USB port of a host computer;

(B) a downstream mechanism connectable to at least one USB device; and

(C) a connection link connecting the upstream and downstream mechanisms, wherein

the upstream mechanism is constructed and adapted to:

(a) obtain a USB token from a host computer connected to the upstream mechanism;

(b) send the USB downstream towards downstream mechanism and add said USB token to a list of sent USB tokens;

(c) send at least one spoofed response to the host computer;

(d) wait for an actual response from the USB device, and, while waiting for said actual response from the USB device, responsive to said host computer attempting to send a second USB token to said USB device via said upstream mechanism, to send said second USB token to said USB device only if said second USB token is not on the list of sent USB tokens, otherwise to (i) discard said second USB token, and (ii) send at least one other spoofed response to said host computer; and

(e) provide the actual response to the host computer.

20. A USB connector system as in claim 19 wherein the downstream mechanism is constructed and adapted to:

receive a USB token from an upstream mechanism;

provide the USB token to a USB device connected to the downstream mechanism;

obtain an actual response from the USB device;

send the actual response upstream; and

send an acknowledgement token to the USB device.

21. A USB connector system as in claim 19 wherein the connection link comprises a fiber cable connected to the upstream mechanism by an upstream transceiver and to the downstream mechanism by a downstream transceiver.

22. A USB connector system as in claim 19 wherein the cable is between 100 meters and 750 meters long.

23. A USB connector system as in claim 19 wherein the upstream mechanism the downstream mechanism and the connection link are packaged in a single cable.

24. A universal serial bus (USB) connector system as in claim 19 wherein the connection link comprises a cable exceeding 300 meters in length.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2024
From: VERTIV IT SYSTEMS, INC.
To: VERTIV CORPORATION
Reel/Frame 069695/0620 →
SECURITY INTEREST Recorded Oct 26, 2021
From: VERTIV CORPORATION; VERTIV IT SYSTEMS, INC.; ELECTRICAL RELIABILITY SERVICES, INC.; ENERGY LABS, INC.
To: UMB BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 057923/0782 →
SECURITY AGREEMENT Recorded Mar 3, 2020
From: ELECTRICAL RELIABILITY SERVICES, INC.; ENERGY LABS, INC.; VERTIV CORPORATION; VERTIV IT SYSTEMS, INC.
To: CITIBANK, N.A.
Reel/Frame 052076/0874 →
RELEASE OF SECURITY INTEREST Recorded Mar 2, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY N.A.
To: VERTIV CORPORATION; VERTIV IT SYSTEMS, INC.; ELECTRICAL RELIABILITY SERVICES, INC.
Reel/Frame 052071/0913 →
RELEASE OF SECURITY INTEREST Recorded Mar 2, 2020
From: JPMORGAN CHASE BANK, N.A.
To: VERTIV CORPORATION (F/K/A ALBER CORP.); VERTIV IT SYSTEMS, INC. (F/K/A AVOCENT CORPORATION); VERTIV IT SYSTEMS, INC. (F/K/A AVOCENT FREMONT, LLC); VERTIV IT SYSTEMS, INC. (F/K/A AVOCENT HUNTSVILLE, LLC); VERTIV IT SYSTEMS, INC. (F/K/A AVOCENT REDMOND CORP.); ELECTRICAL RELIABILITY SERVICES, INC.; VERTIV CORPORATION (F/K/A EMERSON NETWORK POWER, ENERGY SYSTEMS, NORTH AMERICA, INC.); VERTIV CORPORATION (F/K/A LIEBERT CORPORATION)
Reel/Frame 052065/0666 →
SECOND LIEN SECURITY AGREEMENT Recorded Jun 10, 2019
From: VERTIV IT SYSTEMS, INC.; VERTIV CORPORATION; VERTIV NORTH AMERICA, INC.; ELECTRICAL RELIABILITY SERVICES, INC.; VERTIV ENERGY SYSTEMS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049415/0262 →
CHANGE OF NAME Recorded Dec 11, 2018
From: AVOCENT CORPORATION
To: VERTIV IT SYSTEMS, INC.
Reel/Frame 047788/0620 →
SECURITY AGREEMENT Recorded Dec 2, 2016
From: ALBER CORP.; ASCO POWER TECHNOLOGIES, L.P.; AVOCENT CORPORATION; AVOCENT FREMONT, LLC; AVOCENT HUNTSVILLE, LLC; AVOCENT REDMOND CORP.; ELECTRICAL RELIABILITY SERVICES, INC.; EMERSON NETWORK POWER, ENERGY SYSTEMS, NORTH AMERICA, INC.; LIEBERT CORPORATION; LIEBERT NORTH AMERICA, INC.; NORTHERN TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 040797/0615 →
SECURITY AGREEMENT Recorded Dec 1, 2016
From: ALBER CORP.; ASCO POWER TECHNOLOGIES, L.P.; AVOCENT CORPORATION; AVOCENT FREMONT, LLC; AVOCENT HUNTSVILLE, LLC; AVOCENT REDMOND CORP.; ELECTRICAL RELIABILITY SERVICES, INC.; EMERSON NETWORK POWER, ENERGY SYSTEMS, NORTH AMERICA, INC.; LIEBERT CORPORATION; LIEBERT NORTH AMERICA, INC.; NORTHERN TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 040783/0148 →