Method and apparatus for extending the range of the universal serial bus protocol
First Claim
1. An enhanced high-speed method for transmitting a data stream between a host controller and a peripheral device over an extended distance, on a signal distribution system, in accordance with the USB-Extended Range Protocol (USB-ERP) wherein said method additionally comprises modifications to allow for compliance with Revision 2.0 of the USB specification.
3 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a method and apparatus to be used to extend the range of standard USB devices, and in particular, USB devices operating in accordance with Revision 2.0 of the USB Specification. An extended range hub is provided which comprises a Local Expander (LEX) and a Remote Expander (REX) which can be separated by up to, for example 100 meters. The LEX and REX operate in accordance with an enhanced high-speed USB Extended Range Protocol (USB-ERP) which permits USB devices to be more conveniently located and used, and is in compliance with Revision 2.0 of the USB Specification.
68 Citations
51 Claims
-
1. An enhanced high-speed method for transmitting a data stream between a host controller and a peripheral device over an extended distance, on a signal distribution system, in accordance with the USB-Extended Range Protocol (USB-ERP) wherein said method additionally comprises modifications to allow for compliance with Revision 2.0 of the USB specification.
- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
2. An enhanced high-speed method of transmitting a data stream as claimed in claim 1 wherein said enhanced high-speed USB-ERP comprises:
-
a. feeding a first original, outgoing digital signal from a host controller to a local expander unit;
b. optionally converting said outgoing digital signals into a converted outgoing signal having a format suitable for transmission over extended distances;
c. transmitting either said outgoing digital signal or said converted outgoing signal, as a outgoing transmission signal, over a signal distribution system;
d. receiving said outgoing transmission signal at a remote expander unit;
e. optionally converting said outgoing transmission signal to said first original outgoing digital signal;
f. delivering said first original outgoing digital signal from said remote expander to at least one peripheral device;
g. receiving, at said remote expander, a reply digital signal from said peripheral device;
h. optionally converting said reply digital signal into a converted reply signal having a format suitable for transmission over extended distances;
i. transmitting said reply digital signal or said converted reply signal as a reply transmission signal over said signal distribution system;
j. receiving said reply transmission signal at said local expander;
k. optionally converting said reply transmission signal to said original reply digital signal;
l. storing said reply digital signal as a stored reply digital signal until the receipt of a subsequent original, outgoing digital signal from said host controller, which subsequent signal is the same as, or similar to, said first original outgoing digital signal; and
m. forwarding said stored reply digital signal to said host controller in response to said subsequent original outgoing digital signal.
-
-
3. A method as claimed in claim 2 wherein said data stream is a time relevant data stream.
-
4. A method as in claim 2 wherein said digital signals conform to the USB Specification and represent isochronous data.
-
5. A method as claimed in claim 4 wherein said method provides a method for transmission of isochronous data according to the USB Specification wherein isochronous data is transmitted from a peripheral device and is received by a host controller, said method comprising:
-
a. transmitting a request for isochronous data from a host controller to a local expander, b. forwarding said request for isochronous data from said local expander to a remote expander over a signal distribution system;
c. delivering said forwarded request for isochronous data to at least one peripheral device;
d. transmitting the requested isochronous data from said peripheral device to said remote expander;
e. forwarding said requested isochronous data from said remote expander to said local expander over said signal distribution system;
f. storing said requested isochronous data in a packet buffer at said local expander, g. transmitting a subsequent request for isochronous data from said host controller to said local expander;
h. receiving said subsequent request for isochronous data at said local expander; and
I. retrieving the stored isochronous data from said local expander;
II. delivering said stored isochronous data to said host controller;
III. forwarding said subsequent request for isochronous data from said local expander to said remote expander over said signal distribution system; and
IV. repeating steps (c) through (h) for said subsequent request and any further subsequent requests for isochronous data.
-
-
6. A method as claimed in claim 4 wherein said method provides a method for transmission of isochronous data according to the USB Specification wherein isochronous data is transmitted from a host controller and is received by a peripheral device, said method comprising:
-
a) receiving, at a local expander, an original notification of isochronous data from a host controller;
b) forwarding said original notification of isochronous data from said local expander to a remote expander over a signal distribution system;
c) receiving, at a remote expander, said forwarded original notification of isochronous data;
d) delivering said forwarded notification of isochronous data to at least one peripheral device;
e) receiving, at a local expander, an original isochronous data packet from a host controller;
f) forwarding said original isochronous data packet from said local expander to a remote expander over a signal distribution system;
g) receiving, at a remote expander, said forwarded original isochronous data packet; and
h) delivering said forwarded original isochronous data packet to at least one peripheral device.
-
-
7. A method as claimed in claim 5 additionally comprising the following steps after step (b) of claim 5 namely:
-
i. Determining whether said local expander already possesses said requested isochronous data;
ii. Generating a synthetic data packet if no such requested isochronous data is present; and
iii. Delivering said synthetic isochronous data to said host controller.
-
-
8. A method as claimed in claim 5 additionally comprising the following steps after step (b) of claim 5, uniquely for data transfers conforming to the USB Specification wherein data is transmitted from a high-speed host and is received by a full-speed device, namely:
-
i) Determining whether said local expander already possesses said requested isochronous data;
ii) Generating a synthetic not-yet packet if no such requested isochronous data is present; and
iii) Delivering said not-yet packet to said host controller.
-
-
9. A method as claimed in claim 5 additionally comprising the following step after step (c) of claim 5, namely:
i) Storing the address of the requested peripheral device at said remote expander unit;
a) Retrieving the address of said requested peripheral device at said remote expander unit; and
b) Adding said retrieved address to said requested isochronous data.
-
10. A method as claimed in claim 5 wherein vestigial packets are removed from system, said method comprising:
-
i) Detecting when a new frame has begun;
ii) Examining the properties of each packet buffer;
iii) Determining whether the data packet contained in said examined packet buffer has been stored for at least one complete frame period;
iv) Discarding said contained data packet if said contained data packet has been stored for at least one complete frame period; and
v) Repeating steps (i) through (iv) for each packet buffer in the system.
-
-
11. An enhanced high-speed method as claimed in claim 2 wherein said data stream is non-time-relevant data stream.
-
12. A method as in claim 2 wherein said digital signals conform to USB Specification and represent asynchronous data.
-
13. A method as claimed in claim 12 wherein said method provides a method for transmission of asynchronous data according to the USB Specification wherein asynchronous data is transmitted from a peripheral device and is received by a host controller, said method comprising:
-
a) receiving, at a local expander, an original request for asynchronous data from a host controller;
b) forwarding said original request for asynchronous data from said local expander to a remote expander over a signal distribution system;
c) receiving, at a remote expander, said forwarded original request for asynchronous data;
d) delivering said forwarded original request for asynchronous data from said peripheral device;
e) receiving, at said remote expander, the requested asynchronous data to at least one peripheral device;
f) forwarding said requested asynchronous data from said remote expander to said local expander over said signal distribution system;
g) storing, in a packet buffer at said local expander, said requested asynchronous data;
h) receiving, at said local expander, a subsequent request for asynchronous data from said host controller; and
i) retrieving the stored asynchronous data from said packet buffer;
ii) delivering said retrieved asynchronous data to said host controller;
i) receiving, at said local expander, an outgoing acknowledgment signal from said host controller;
j) absorbing, at said local expander, said outgoing acknowledgement signal.
-
-
14. A method as claimed in claim 13 additionally comprising the following steps after step (b) of claim 13, namely:
-
i) Determining whether said local expander already possesses said requested asynchronous data;
ii) Generating a negative acknowledgement packet if no such requested asynchronous data is present; and
iii) Delivering said negative acknowledgement packet to said host controller.
-
-
15. A method as claimed in claim 13 additionally comprising the following steps after step (b) of claim 13, generally for high bandwidth data transfers conforming to the USB Specifications wherein data is transmitted from a high-speed host and is received by a high-speed device, namely:
-
a. Determining whether said local expander already possesses said requested asynchronous data;
b. Generating a synthetic data packet if no such requested asynchronous data is present; and
c. Delivering said synthetic data packet to said host controller.
-
-
16. A method as claimed in claim 13 additionally comprising following steps after step (b) of claim 13, uniquely for data transfers conforming to the USB Specifications wherein data is transmitted from a high-speed host and is received by a low-speed or full-speed device, namely:
-
a. Determining whether said local expander already possesses said requested asynchronous data;
b. Generating a synthetic not-yet packet if no such requested asynchronous data is present; and
c. Delivering said synthetic not-yet packet to said host controller.
-
-
17. A method as claimed in claim 13 additionally comprising the following steps after step (e) of claim 13, namely:
-
i) generating an acknowledgement packet at said remote expander; and
ii) delivering said acknowledgement packet to said peripheral device.
-
-
18. A method as claimed in claim 13 additionally comprising the following steps after step (h) of claim 13, uniquely for interrupt data transfers conforming to the USB Specifications wherein asynchronous data is transmitted from a peripheral device and is received by a host controller, namely:
-
a. Forwarding said subsequent request for asynchronous data from said local expander to a remote expander over a signal distribution system;
b. Delivering said forwarded subsequent request for asynchronous data to said peripheral device; and
c. Receiving, at said remote expander, the requested asynchronous data from said peripheral device.
-
-
19. A method as claimed in claim 13 additionally comprising the following step after step (h) of claim 13, uniquely for control and bulk data transfers conforming to the USB Specifications wherein asynchronous data Is transmitted from a peripheral device and is received by a host controller, namely:
a. Absorbing at said local expander said subsequent request for asynchronous data.
-
20. A method as claimed in claim 13 wherein, additionally, a guard time is imposed after a data packet is transmitted from a remote expander to a USB device, which guard time is set to a value that is dependent upon the transfer type of said transmitted data packet, said method comprising:
-
a) Receiving, at a remote expander, an outbound data packet, b) Determining, at a remote expander, the transfer type of said outbound data packet, c) Forwarding said outbound data from said remote expander to a USB device, d) Setting the value of a transmission guard timer to a value that is dependent upon said determined transfer type; and
e) Inhibiting further outbound transmissions until said guard timer has expired.
-
-
21. A method as claimed in claim 12 wherein said method provides a method for transmission of asynchronous data according to the USB Specification wherein asynchronous data is transmitted from a host controller and is received by a peripheral device, said method comprising:
-
a) receiving, at a local expander, an original notification of asynchronous data from a host controller;
b) forwarding said original notification of asynchronous data from said local expander to a remote expander over a signal distribution system;
c) receiving, at a remote expander, said forwarded original notification of asynchronous data;
d) delivering said forwarded notification of asynchronous data to at least one peripheral device;
e) receiving, at a local expander, an original asynchronous data packet from a host controller;
f) forwarding said original asynchronous data packet from said local expander to a remote expander over a signal distribution system;
g) receiving, at a remote expander, said forwarded original asynchronous data packet;
h) delivering said forwarded original asynchronous data packet to at least one peripheral device;
i) receiving, at said remote expander, an inbound acknowledgement packet from said peripheral device;
j) forwarding said inbound acknowledgment packet from said remote expander to said local expander over said signal distribution system;
k) storing, In a packet buffer at said local expander, said inbound acknowledgement packet;
l) receiving, at said local expander, a subsequent notification of asynchronous data from said host controller;
m) receiving, at said local expander, a subsequent asynchronous data packet from said host controller; and
i) retrieving said stored inbound acknowledgement packet from said packet buffer; and
ii) delivering said retrieved inbound acknowledgement packet to said host controller.
-
-
22. A method as claimed in claim 21 additionally comprising the following steps after step (e) of claim 21, namely:
-
i) Determining whether said local expander already possesses said inbound acknowledgement packet;
ii) Generating a negative acknowledgment packet if no such inbound acknowledgement packet is present; and
iii) Delivering said negative acknowledgement packet to said host controller.
-
-
23. A method as claimed in claim 21 additionally comprising the following steps after step (e) of claim 21, generally for interrupt data transfers conforming to the USB Specifications wherein asynchronous data is transmitted from a high-speed host and is received by a high-speed device, namely:
-
a. Generating a synthetic acknowledgement packet at said local expander; and
b. Delivering said acknowledgment packet to said host controller
-
-
24. A method as claimed in claim 21 additionally comprising the following steps after step (e) of claim 21, uniquely for interrupt data transfers conforming to the USB Specifications wherein asynchronous data is transmitted from a high-speed host and is received by a low-speed or full-speed device, namely:
-
i) Determining whether said local expander already possesses said inbound acknowledgment packet;
ii) Generating a not-yet packet if no such inbound acknowledgement packet is present; and
iii) Delivering said not-yet packet to said host controller.
-
-
25. A method as claimed in claim 21 additionally comprising the following steps after steps (l) and (m) of claim 21, uniquely for interrupt data transfers conforming to the USB Specifications wherein asynchronous data is transmitted from a host controller and is received by a peripheral device, namely:
-
i. Forwarding said subsequent notification of asynchronous data and asynchronous data packet from said local expander to a remote expander a signal distribution system;
ii. Delivering said forwarded subsequent notification of asynchronous data and asynchronous data packet to said peripheral device;
iii. Receiving, at said remote expander, the inbound acknowledgement packet from said peripheral device;
iv. Repeating steps (l) through (m) for said subsequent notification and data packet and any further subsequent notifications of asynchronous data and asynchronous data packets.
-
-
26. A method as claimed in claim 21 additionally comprising the following step after steps (l) and (m) of claim 21, uniquely for control and bulk data transfers conforming to the USB Specifications wherein asynchronous data is transmitted from a host controller and is received by a peripheral device, namely:
i. Absorbing at said local expander said subsequent notification of asynchronous data and said subsequent asynchronous data packet
-
27. A method as claimed in claim 21 wherein said method provides a method for handling the PING flow control protocol, uniquely for control and bulk data transfers wherein asynchronous data is transmitted from a high-speed host to a high-speed device, said method comprising:
-
a) receiving, at a local expander, a PING flow control probe from a host controller;
b) forwarding said flow control probe from said local expander to a remote expander over a signal distribution system;
c) receiving, at a remote expander, said forwarded flow control probe;
d) delivering said forwarded flow control probe to at least one high-speed peripheral device;
e) receiving, at said remote expander, the requested reply from said peripheral device;
f) receiving, at said local expander, said requested reply;
g) storing, in a packet buffer at said local expander, said requested reply;
h) receiving, at said local expander, a subsequent PING flow control probe from said host controller, and i. retrieving said stored, requested reply from said packet buffer;
ii. delivering said retrieved reply to host controller. i) absorbing, at said local expander, said subsequent flow control probe.
-
-
28. A method as claimed in claim 27 additionally comprising the following step after step (b) of claim 27, namely:
-
i) Determining whether said local expander already possesses said requested reply;
ii) Generating a negative acknowledgement packet if no such requested reply is present;
iii) Delivering said negative acknowledgement packet to said host controller.
-
-
29. A method as claimed in claim 21 wherein, additionally, a guard time is imposed after a data packet is transmitted from a remote expander to a USB device, which guard time is set to a value that is dependent upon the transfer type of said transmitted data packet, said method comprising:
-
(a) Receiving, at a remote expander, an outbound data packet, (b) Determining, at a remote expander, the transfer type of said outbound data packet, (c) Forwarding said outbound data packet from said remote expander to a USB device, (d) Setting the value of a transmission guard timer to a value that is dependent upon said determined transfer type; and
(e) Inhibiting further outbound transmissions until said guard timer has expired.
-
-
30. An enhanced high-speed method as claimed in claim 1 wherein said host controller is a PC, and said peripheral device is a camera, a mouse, a keyboard, a monitor or a speaker or speakers.
-
31. An enhanced high-speed method as in claim 1 wherein said extended distance exceeds 5 meters.
-
32. A method as claimed in claim 1 wherein said extended distance exceeds 30 meters.
-
33. A method as claimed in claim 1 wherein said extended distance is equal to or exceeds 100 meters.
-
34. An enhanced high-speed method as in claim 1 wherein said signal distribution system utilizes fibre optic cabling.
-
35. An enhanced high-speed method as in claim 1 wherein said signal distribution system utilizes unshielded twisted pair (UTP) wiring.
-
36. An enhanced high-speed method as in claim 1 wherein said signal distribution system utilizes wireless transmission.
-
2. An enhanced high-speed method of transmitting a data stream as claimed in claim 1 wherein said enhanced high-speed USB-ERP comprises:
-
37. An apparatus for transmission of a digital signal over an extended distance, on a signal distribution system, between a host controller and a peripheral device, in accordance with an enhanced high-speed USB-Extended Range Protocol (USB-ERP) wherein said apparatus comprises an enhanced high speed USB_ERP device comprising means for modification of the transmission signal to allow for compliance with Revision 2.0 of the USB specification.
- View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
-
38. An apparatus as claimed in claim 37 wherein said enhanced high-speed USB-ERP device comprises:
-
a local expander comprising means for receiving a request for a data signal from a host controller which host controller is connected to said local expander, means in said local expander for generating an outgoing transmission signal;
means in said local expander for sending said outgoing transmission signal to a remote expander, which signal is sent over a signal distribution system;
a remote expander comprising means for receiving said outgoing transmission signal;
means in said remote expander for generating a digital signal from said outgoing transmission signal;
means in said remote expander for forwarding said digital signal to at least one peripheral device, which peripheral device is connected to said remote expander;
means in said remote expander for receiving inbound digital signals from said peripheral devices;
means in said remote expander for converting said inbound digital signals to an inbound transmission signal;
means in said remote expander for sending said inbound transmission signal to said local expander, which signals are sent over said signal distribution system;
means in said local expander for receiving said inbound transmission signal;
means in said local expander for generating a digital signal from said inbound transmission; and
means in said remote expander for forwarding said digital signal to said host controller.
-
-
39. An apparatus as claimed in claim 38 wherein said data signal is a time relevant data signal.
-
40. An apparatus as claimed in claim 39 wherein said time relevant signal is a digital signal which conforms to the USB Specification;
- and said time relevant signal represent isochronous data.
-
41. An apparatus as claimed in claim 40 where in said local expander additionally comprises:
-
means for storing said inbound signal as a stored inbound signal;
means for analyzing said digital signal from said host controller to recognize a subsequent request for transmission of said time relevant digital signal; and
means for sending said stored inbound signal to said host controller in response to said subsequent request.
-
-
42. An apparatus as claimed in claim 38 wherein said digital signal is a non time-relevant signal which conforms to the USB Specification;
- and said non time-relevant signal represents asynchronous data.
-
43. An apparatus as claimed in claim 42 for transmission of digital signal over an extended distance comprising:
-
a) a local expander comprising means for receiving a request for a non time-relevant data signal, wherein said non time-relevant data signal is a digital signal which conforms to the USB Specification, from a host controller connected to said local expander;
b) means in said local expander for generating an outgoing transmission signal;
c) means in said local expander for sending said outgoing transmission signal to a remote expander, which signals are sent over a signal distribution system;
d) a remote expander comprising means for receiving said outgoing transmission signal;
e) means in said remote expander for generating a digital signal from said outgoing transmission signal;
f) means in said remote expander for forwarding said digital to at least one peripheral device, which peripheral device is connected to said remote expander;
g) means in said remote expander for receiving inbound digital signals from said peripheral devices;
h) means in said remote expander for converting said inbound digital signals to an inbound transmission signal;
i) means in said remote expander for sending said inbound transmission signal to said local expander, which signals are sent over said signal distribution system;
j) means in said local expander for receiving said inbound transmission signal;
k) means in said local expander for generating a digital signal from said inbound transmission; and
l) means in said local expander for forwarding said digital signal to said host controller.
-
-
44. An apparatus as claimed in claim 43 wherein said local expander additionally comprises:
-
a) means for storing said inbound signal as a stored inbound signal;
b) means for analyzing said digital signal from said host controller to recognize a subsequent request for transmission of said non time-relevant digital signal; and
c) means for sending said stored inbound signal to said host controller in response to said subsequent request
-
-
45. An apparatus as claimed in claim 37 wherein said extended distance exceeds 5 meters.
-
46. An apparatus as claimed in claim 37 wherein said extended distance exceeds 30 meters.
-
47. An apparatus as claimed in claim 37 wherein said extended distance is equal to or exceeds 100 meters.
-
48. An apparatus as claimed in claim 37 wherein said signal distribution system utilizes fibre optic cabling.
-
49. An apparatus as claimed in claim 37 wherein said signal distribution system utilizes unshielded twisted pair (UTP) wiring.
-
50. An apparatus as claimed in claim 37 wherein said signal distribution system utilizes wireless transmission.
-
51. An apparatus as claimed in claim 37 wherein said host controller is a PC, and said peripheral device is a camera, a mouse, a keyboard, a monitor or a speaker or speakers.
-
38. An apparatus as claimed in claim 37 wherein said enhanced high-speed USB-ERP device comprises:
Specification
- Resources
-
Current AssigneeIcron Technologies Corp. (Analog Devices, Inc.)
-
Original AssigneeIcron Technologies Corp. (Analog Devices, Inc.)
-
InventorsMcLeod, John Alexander
-
Granted Patent
-
Time in Patent OfficeDays
-
Field of Search
-
US Class Current710/300
-
CPC Class CodesG06F 13/4045 where the bus bridge perfor...G06F 13/426 using an embedded synchroni...