U.S. patent application number 11/970052 was filed with the patent office on 2008-11-20 for method and system for universal serial bus (usb) over a/v bridging and a/v bridging extensions.
Invention is credited to Wael William Diab, Amit Oren.
Application Number | 20080288704 11/970052 |
Document ID | / |
Family ID | 40026962 |
Filed Date | 2008-11-20 |
United States Patent
Application |
20080288704 |
Kind Code |
A1 |
Diab; Wael William ; et
al. |
November 20, 2008 |
METHOD AND SYSTEM FOR UNIVERSAL SERIAL BUS (USB) OVER A/V BRIDGING
AND A/V BRIDGING EXTENSIONS
Abstract
Aspects of a system for universal serial bus (USB) over ANV
bridging and ANV bridging extensions may include a LAN subsystem
that enables reception of signals from a peripheral device coupled
to a computing device via a USB interface. The LAN subsystem may
enable the generation of payload data based on the received
signals. The LAN subsystem may enable transmission of the generated
payload data via a network based on a traffic class designation.
The generated payload data may be encapsulated within an outgoing
PDU, which may include an Ethernet frame and/or an IP packet. The
outgoing encapsulating PDU may contain the traffic class
designation. The LAN subsystem may also generate a time stamp for
the encapsulating PDU. The LAN subsystem may enable indication that
the outgoing encapsulating PDU encapsulates the generated payload
data based on one or more data type identifiers, which include an
EtherType and an EtherTypeSubType.
Inventors: |
Diab; Wael William; (San
Francisco, CA) ; Oren; Amit; (Los Altos Hills,
CA) |
Correspondence
Address: |
MCANDREWS HELD & MALLOY, LTD
500 WEST MADISON STREET, SUITE 3400
CHICAGO
IL
60661
US
|
Family ID: |
40026962 |
Appl. No.: |
11/970052 |
Filed: |
January 7, 2008 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60917870 |
May 14, 2007 |
|
|
|
Current U.S.
Class: |
710/305 |
Current CPC
Class: |
H04N 21/43632 20130101;
H04N 21/64322 20130101; Y02D 30/00 20180101; H04N 7/106 20130101;
H04N 19/61 20141101; H04L 12/2816 20130101; H04N 5/85 20130101;
G09G 2370/10 20130101; H04N 9/8042 20130101; H04L 2012/2849
20130101; Y02D 30/32 20180101; H04L 12/2805 20130101; G09G 5/006
20130101; H04N 19/176 20141101; H04N 21/6373 20130101; H04N
21/43615 20130101; H04N 19/172 20141101 |
Class at
Publication: |
710/305 |
International
Class: |
G06F 13/00 20060101
G06F013/00 |
Claims
1. A method for communicating data, the method comprising:
receiving signals from a peripheral device coupled to a computing
device via a universal serial bus interface; generating payload
data based on said received signals; and transmitting said
generated payload data via a network based on a traffic class
designation.
2. The method according to claim 1, comprising encapsulating said
generated payload data within an outgoing encapsulating protocol
data unit.
3. The method according to claim 2, wherein said outgoing
encapsulating protocol data unit comprises an Ethernet frame and/or
an Internet Protocol packet.
4. The method according to claim 2, wherein said outgoing
encapsulating protocol data unit comprises said traffic class
designation.
5. The method according to claim 2, comprising generating a time
stamp value for said outgoing encapsulating protocol data unit.
6. The method according to claim 2, comprising indicating that said
outgoing encapsulating protocol data unit encapsulates said
generated payload data based on at least one data type
identifier.
7. The method according to claim 6, wherein said at least one data
type identifier comprises an EtherType and an EtherTypeSubType.
8. The method according to claim 1, wherein said traffic class
designation enables transmission of said generated response data
via said network based on specified latency target values.
9. The method according to claim 1, wherein said signals are
received in response to a poll request.
10. The method according to claim 9, wherein said poll request is
generated based on received payload data contained within an
incoming encapsulating protocol data unit received via said
network.
11. A system for communicating data, the system comprising: one or
more circuits that enable reception of signals from a peripheral
device coupled to a computing device via a universal serial bus
interface; said one or more circuits enable generation of payload
data based on said received signals; and said one or more circuits
enable transmission of said generated payload data via a network
based on a traffic class designation.
12. The system according to claim 11, wherein said one or more
circuits enable encapsulation of said generated payload data within
an outgoing encapsulating protocol data unit.
13. The system according to claim 12, wherein said outgoing
encapsulating protocol data unit comprises an Ethernet frame and/or
an Internet Protocol packet.
14. The system according to claim 12, wherein said outgoing
encapsulating protocol data unit comprises said traffic class
designation.
15. The system according to claim 12, wherein said one or more
circuits enable generation of a time stamp value for said outgoing
encapsulating protocol data unit.
16. The system according to claim 12, wherein said one or more
circuits enable indication that said outgoing encapsulating
protocol data unit encapsulates said generated payload data based
on at least one data type identifier.
17. The system according to claim 16, wherein said at least one
data type identifier comprises an EtherType and an
EtherTypeSubType.
18. The system according to claim 11, wherein said traffic class
designation enables transmission of said generated response data
via said network based on specified latency target values.
19. The system according to claim 11, wherein said signals are
received in response to a poll request.
20. The system according to claim 19, wherein said poll request is
generated based on received payload data contained within an
incoming encapsulating protocol data unit received via said
network.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY
REFERENCE
[0001] This application makes reference to, claims priority to, and
claims the benefit of U.S. Provisional Application Ser. No.
60/917,870, filed on May 14, 2007.
[0002] The above referenced application is hereby incorporated
herein by reference in its entirety
FIELD OF THE INVENTION
[0003] Certain embodiments of the invention relate to communication
networks. More specifically, certain embodiments of the invention
relate to a method and system for universal serial bus (USB) over
A/V bridging and A/V bridging extensions.
BACKGROUND OF THE INVENTION
[0004] Universal serial bus (USB) is a hardware interface used for
attaching peripheral devices to computing devices. A USB system
comprises one or more host controller(s) and a plurality of
peripheral devices. USB ports, or connectors, enable
interconnection of host controllers and peripheral devices via USB
interface connectors. USB hubs typically comprise one or more USB
connectors. USB hubs may be utilized to increase the number of host
controllers and peripheral devices, which may be connected in a USB
system. An exemplary USB interface connector comprises a cable with
a terminator, or plug, at each end of the cable. Each plug may be
inserted into a compatible USB connector. A type A USB connector is
typically located at peripheral devices such as mouse devices,
keyboard devices and scanners, for example. A type B connector is
typically located at hubs. A hub may be collocated with a
peripheral device, such as a printer. In this regard, a printer
device may be coupled to a USB system via a type B connector. A hub
which is coupled to the host controller is typically referred to as
the root hub.
[0005] The host controller is typically located within a computing
device, such as a computer workstation. Exemplary peripheral
devices include keyboard devices, mouse devices, memory cards,
printers, scanners, digital audio players and digital cameras.
Within the USB system, the host controller polls each of the
peripheral devices detected within the USB system. Each of the
peripheral devices within the USB system is typically assigned a
bus address, which is utilized by the host controller to select
peripheral devices for polling, and by the peripheral devices to
determine when to respond to a poll. A peripheral device within the
USB system typically sends data when polled by the host controller.
Additional peripheral devices may be added or removed as desired.
When a peripheral device is added to the USB system, the device may
be detected by the host controller. The host controller may then
enumerate the additional peripheral device. During enumeration, the
host controller will typically assign a bus address or other
identifier to the peripheral device and load a device driver
routine, which the host controller may utilize for communicating
with the peripheral device.
[0006] Further limitations and disadvantages of conventional and
traditional approaches will become apparent to one of skill in the
art, through comparison of such systems with some aspects of the
present invention as set forth in the remainder of the present
application with reference to the drawings.
BRIEF SUMMARY OF THE INVENTION
[0007] A method and system for universal serial bus (USB) over A/V
bridging and A/V bridging extensions, substantially as shown in
and/or described in connection with at least one of the figures, as
set forth more completely in the claims.
[0008] These and other advantages, aspects and novel features of
the present invention, as well as details of an illustrated
embodiment thereof, will be more fully understood from the
following description and drawings.
BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS
[0009] FIG. 1 is a diagram illustrating an exemplary system for USB
over Ethernet, in accordance with an embodiment of the
invention.
[0010] FIG. 2 is a diagram illustrating an exemplary system for USB
to Ethernet protocol translation, in accordance with an embodiment
of the invention.
[0011] FIG. 3 is a diagram illustrating an exemplary system enabled
to transmit and/or receive USB data over Ethernet, in accordance
with an embodiment of the invention.
[0012] FIG. 4 is a block diagram of an exemplary system, which
supports USB over Ethernet protocol translation, in accordance with
an embodiment of the invention.
[0013] FIG. 5 is a flowchart illustrating exemplary steps for
transmitting a USB poll request via a network, in accordance with
an embodiment of the invention.
[0014] FIG. 6 is a flowchart illustrating exemplary steps for
processing USB data received via a network, in accordance with an
embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
[0015] Certain embodiments of the invention may be found in a
method and system for universal serial bus (USB) over A/V bridging
and A/V bridging extensions. Various embodiments of the invention
comprise a method and system, which may enable USB devices to be
connected across a network. In one aspect of the invention, a host
controller, coupled to a host computer, may poll a USB device,
coupled to a remote computer, by initiating a poll request, which
is transmitted across to a network by the host computer, and
received at the remote computer via the network utilizing AV
Bridging capabilities. The USB device may respond to the poll by
enabling the remote computer to transmit data from the USB device
via the network, which may be received at the host computer via the
network utilizing AV Bridging capabilities.
[0016] FIG. 1 is a diagram illustrating an exemplary system for USB
over Ethernet, in accordance with an embodiment of the invention.
Referring to FIG. 1, there is shown a host computer 102, a remote
computer 104 and a network 106. The host computer 102 may be
coupled to the network 106 via an Ethernet interface connector 132.
The remote computer 104 may be coupled to the network 106 via an
Ethernet connector 134. Coupled to the host computer 102 is a video
monitor 112 (coupled via a USB interface connector 142), a keyboard
device 114 (coupled via a USB interface connector 144) and a mouse
device 116 (coupled via a USB interface connector 146). Coupled to
the remote computer 104 is a digital camera 122 (coupled via a USB
interface connector 152) and a scanner 124 (coupled via a USB
interface connector 154).
[0017] In an exemplary mode of operation, the host computer 102 may
comprise a USB host controller. The host computer 102 may initiate
a USB poll request to retrieve data from the digital camera 122.
The data may comprise real time digital video data. The host
computer 102 may encapsulate the USB poll request within an
Ethernet frame. The Ethernet frame may also comprise a bus address,
which identifies the digital camera 122.
[0018] The Ethernet frame may contain an address (for example, in a
destination address field within the Ethernet frame), which
indicates that the Ethernet frame is to be transported across the
network 106, and delivered to the remote computer 104. The Ethernet
frame may comprise a designation (for example, in an EtherType
field within the Ethernet frame), which may provide an indication
that the Ethernet frame may be utilized to encapsulate USB data.
The Ethernet frame may also comprise a traffic class identifier,
which may enable the network to provide services in accordance with
AV Bridging specifications. These services may comprise prioritized
transport of the Ethernet frame across the network 106 to enable
the time duration for transport across the network 106 to meet
latency targets associated with the specified traffic class.
[0019] The host computer 102 may time stamp the Ethernet frame,
which encapsulates the USB data. The time stamping of the Ethernet
frame may enable the network 106 to transfer of the Ethernet frame
across the network 106 within specified latency target values. The
host computer 102 may transport the time stamped Ethernet frame via
the Ethernet interface connector 132 to the network 106. The
Ethernet frame may subsequently be transported from the network 106
to the remote computer 104 via the Ethernet interface connector
134. An exemplary Ethernet interface connector may be a category 5
cable. The transfer of USB data (encapsulated within an Ethernet
frame), based on a traffic class, from the host computer 102 to the
remote computer 104 via the network 106 may be referred to as a
method for USB over Ethernet with AV Bridging.
[0020] Upon receipt of the Ethernet frame, the remote computer 104
may determine (for example, based on an identifier in the EtherType
field of the received Ethernet frame) that the received Ethernet
frame contains USB data. The remote computer 104 may de-encapsulate
the USB data. The remote computer 104 may determine that the USB
data comprises a USB poll request. In response to the received USB
poll request, the remote computer 104 may enable the retrieval of
data from the digital camera 122. The digital camera 122 may
respond to the USB poll query by sending a USB poll response, which
comprises real time digital video data.
[0021] The remote computer 104 may encapsulate the USB poll
response in an Ethernet frame. The Ethernet frame may contain a
destination address, which indicates that the Ethernet frame is to
be transported across the network 106, and delivered to the host
computer 102. The Ethernet frame may comprise an EtherType
designation, which indicates that the Ethernet frame is being
utilized to encapsulate USB data. The Ethernet frame may also
comprise a traffic class identifier, which may enable the network
to provide services in accordance with AV Bridging
specifications.
[0022] The remote computer 104 may time stamp the Ethernet frame,
which encapsulates the USB poll response. The remote computer 104
may transport the time stamped Ethernet frame via the Ethernet
interface connector 134 to the network 106. The Ethernet frame may
subsequently be transported from the network 106 to the host
computer 102 via the Ethernet interface connector 132.
[0023] Upon receipt of the Ethernet frame, the host computer 102
may determine that the received Ethernet frame contains USB data.
The host computer 102 may de-encapsulate the USB data. The host
computer 102 may determine that the USB data comprises a USB poll
response. The host computer 102 may process the USB poll response.
For example, in an instance wherein the USB poll response comprises
real time digital video data, the host computer may render the real
time digital video data on the video monitor 112.
[0024] Various embodiments of the invention may not be limited to
the transfer of USB data across a LAN. For example, in various
embodiments of the invention, the USB data may be encapsulated
within any of a variety of protocol data units (PDU) associated
with higher layer protocols, for example a network layer protocol.
An exemplary network layer protocol may be defined as set forth in
a relevant protocol reference model (PRM), for example as specified
by a standards organization such as the International Organization
for Standardization (ISO).
[0025] In an exemplary embodiment of the invention, which utilizes
a network layer protocol, USB data may be encapsulated within IP
(Internet Protocol) packets. The IP packets may subsequently be
encapsulated within Ethernet frames. Encapsulation of the USB data
within IP packets may enable the transport of the encapsulated USB
data across a network, such as the Internet. The transport of
encapsulated USB data within IP packets may also utilize exemplary
protocols such as the Reservation Protocol (RSVP) as defined by the
Internet Engineering Task Force (IEFT), for example. The services
provided by RSVP may be coordinated with AV Bridging services to
support isochronous and/or real-time transmission of IP packets,
which contain encapsulated USB data.
[0026] Within the context of the ISO PRM, Ethernet functions
related to medium access control (MAC) may be associated with the
data link layer (DLL), while Ethernet functions related to line
coding of data and generation of signals for transmission of bits
via a physical medium may be associated with the physical layer
(PHY). IP related functions may be associated with the network
layer. At least a portion of a PDU for a given protocol layer may
be encapsulated as a service data unit (SDU) within the PDU for the
next lower protocol layer.
[0027] FIG. 2 is a diagram illustrating an exemplary system for USB
to Ethernet protocol translation, in accordance with an embodiment
of the invention. Referring to FIG. 1, there is shown the host
computer 102, the remote computer 104 and a network 202. The
network 202 may support AV Bridging. The host computer 102
comprises a USB over AVB protocol translator 214 and root hub 212.
The remote computer comprises a USB over AVB protocol translator
232. The host computer 102 is coupled to the network 106 via an
Ethernet interface connector 132. The remote computer 104 is
coupled to the network 106 via an Ethernet connector 134. Coupled
to the remote computer 104 is a USB device 222 (coupled via a USB
interface connector 252).
[0028] In an exemplary mode of operation, the USB device 222 may
communicate USB data to the remote computer 104 via the USB
interface connector 252. The USB over AVB protocol translator 232
may enable encapsulation of the USB data within Ethernet frames.
The USB over AVB protocol translator 232 may enable generation of
Ethernet frames, which may utilize AV Bridging services within the
network 202. The remote computer 104 may communicate the Ethernet
frames to the network 202 via the Ethernet connector 134. The
network 202 may deliver the Ethernet frames to the host computer
102 via the Ethernet interface connector 132. The USB over AVB
protocol translator 214 may enable de-encapsulation of the USB data
from within the received Ethernet frames. The USB data may be sent
to the root hub 212. The host computer 102 may subsequently process
the USB data.
[0029] FIG. 3 is a diagram illustrating an exemplary system enabled
to transmit and/or receive USB data over Ethernet, in accordance
with an embodiment of the invention. Referring to FIG. 3 the system
300 may comprise a CPU 302, a memory controller hub (MCH) 304, a
graphics processing unit (GPU) 306, a memory block 308, an
input/output controller hub (ICH) 310, a LAN subsystem 314, a USB
connector 316, an Ethernet connector 318 and memory 320.
[0030] The CPU 302 may comprise suitable logic, circuitry, and/or
code that may enable processing data and/or controlling operations
of the system 300. In this regard, the CPU 302 may be enabled to
provide control signals to the various other blocks comprising the
system 300. The CPU 302 may also enable execution of applications
programs and/or code. The applications programs and/or code may
enable generation and/or processing of USB data. The CPU 302 may
also enable the retrieval of stored data, which may be utilized for
the generation and/or processing of USB data. The CPU 302 may be
accessed via the MCH 304.
[0031] The CPU 302 may enable the generation of USB poll requests
to one or more peripheral devices. Exemplary peripheral devices may
include the video monitor 112, the keyboard device 114, the mouse
device 116, the digital camera 122 and the scanner 124. The
keyboard device 114 and the mouse device 116 may communicate with
the CPU 302 via the USB connector 316, the ICH 310 and/or MCH 304.
The video monitor 112 may communicate with the CPU 302 via the GPU
306 and/or MCH 304. The digital camera 122 and the scanner 124 may
communicate with the CPU 302 via the ICH 310, the MCH 304, the
Ethernet connector 318 and the network 106.
[0032] The MCH 304 may comprise suitable logic, circuitry, and/or
code that may enable the storage and/or retrieval of data at high
data transfer rates. For example, the MCH 304 may enable retrieval
and/or storage of digital video and/or graphics data for high
performance applications, such as high definition video, high
resolution 3-D graphics, &c. In various embodiments of the
invention, the MCH 304 may be referred to as a northbridge
(NB).
[0033] The GPU 306 may comprise suitable logic, circuitry, and/or
code for generating, rendering, and/or manipulating graphics data.
The GPU 306 may output digital video and/or graphics. The GPU 306
may also output encrypted digital video and/or graphics for
applications that utilize digital content protection, for
example.
[0034] The memory 308 may comprise suitable logic, circuitry,
and/or code that may enable the storage and/or retrieval of data.
For example, the memory 308 may enable the storage and/or retrieval
of USB data, video data and/or graphics data. The memory 308 may
also enable the storage and/or retrieval of encryption keys, which
may be utilized for encryption and/or decryption of data. The
memory 308 may additionally store data, for example, configuration
data and/or state variables utilized in controlling/configuring the
various blocks of the system 300. The memory 308 may utilize
various technologies, such as dynamic random access memory (DRAM),
which enable data to be stored and/or retrieved at sufficiently
high data rates to enable high performance multimedia applications,
for example.
[0035] The ICH 310 may comprise suitable logic, circuitry, and/or
code that may enable the storage and/or retrieval of data from
peripheral devices such as hard disk drives. The ICH 310 may also
enable the polling of peripheral devices, such as keyboard device
and mouse devices, and/or other peripheral devices including
various universal serial bus (USB) devices, for example. In various
embodiments of the invention, the ICH 310 may be referred to as a
southbridge(SB).
[0036] The LAN subsystem 314 may comprise suitable logic,
circuitry, and/or code to enable the transmission and/or reception
of Ethernet frames. The LAN subsystem 314 may comprise PHY layer
functions and MAC layer functions. The LAN subsystem 314 may enable
transmission and/or reception of Ethernet frames at various
transfer rates, such as 10 Mbps, 100 Mbps, 1,000 Mbps (or 1 Gbps)
and/or 10 Gbps, or other data rates (for example, higher rates).
The LAN subsystem 314 may also enable transmission and/or reception
of Ethernet frames via wireless LANs (WLAN).
[0037] The LAN subsystem 314 may enable the encapsulation of USB
poll requests and/or USB poll response data within one or more
Ethernet frames. The LAN subsystem may enable the generation of an
EtherType value and/or EtherTypeSubType value, which may be
inserted within the one or more Ethernet frames. The EtherType
value and/or EtherTypeSubType value may indicate that a USB poll
request and/or USB poll response data are encapsulated within the
one or more Ethernet frames. The LAN subsystem 314 may enable
generation of a time stamp value, which may be inserted within the
one or more Ethernet frames. The LAN subsystem 314 may enable the
generation of a traffic class designation, which may also be
inserted within the one or more Ethernet frames. The LAN subsystem
314 may enable the transmission of the Ethernet frames via a
network 106, which enables the transport the Ethernet frames across
the network utilizing AV Bridging capabilities.
[0038] The LAN subsystem 314 may enable the de-encapsulation of USB
poll requests and/or USB poll response data from Ethernet frames.
The LAN subsystem 314 may enable inspection of fields within the
Ethernet frames. For example, the LAN subsystem 314 may enable
inspection of an EtherType field and/or EtherTypeSubType field
within the Ethernet frames to determine whether the Ethernet frames
encapsulate USB poll requests and/or USB poll response data. Upon
determining that the Ethernet frames encapsulate USB poll requests
and/or USB poll response data, the LAN subsystem 314 may enable the
de-encapsulation of Ethernet payloads from the Ethernet frames,
which comprise USB poll requests and/or USB poll response data.
[0039] The PHY layer functions may enable transmission of Ethernet
frames via a communication medium. The PHY layer functions may also
enable reception of Ethernet frames via the communication medium.
The PHY layer functions may generate signals for transmission that
are suitable for the physical medium being utilized for
transmitting the signals. For example, for an optical communication
medium, the PHY layer may generate optical signals, such as light
pulses, or for a wired communication medium, the PHY layer may
generate electromagnetic signals.
[0040] The MAC layer functions may enable orderly communication
between systems that are communicatively coupled via a shared
communication medium. The MAC layer may comprise one or more
coordination functions (CF) that enable a system to determine when
it may attempt to access the shared communication medium. For
example, in a wired communication medium, for example Ethernet, a
CF may utilize a carrier sense multiple access with collision
detection (CSMA/CD) algorithm. The MAC layer functions may
implement mechanisms for scanning the communication medium to
determine when it is available for transmission of signals. The MAC
layer functions may comprise back off timer mechanisms, which may
be utilized by a system to determine how often to attempt to access
a communication medium, which is currently determined to be
unavailable.
[0041] The MAC layer functions may also enable AV Bridging
capabilities. In this regard, the MAC layer functions may determine
a traffic class which is associated with transmitted Ethernet
frames. Based on the determined traffic class, the MAC layer
functions may perform traffic shaping by determining a time instant
at which an Ethernet frame may be sent to the network via the
Ethernet interface. That time instant may be determined based on a
time instant at which one or more preceding Ethernet frames were
also transmitted via the Ethernet interface. The time instant may
also be determined based on stored "credits", which may indicate a
quantity of octets of Ethernet frame data that may be transmitted
at "line rate" before transmission of subsequent Ethernet frames is
suspended pending the accumulation of additional credits.
[0042] The MAC layer functions, which support AV Bridging, may also
enable the end-to-end transport of Ethernet frames based on
specified latency targets by initiating admission control
procedures. The latency targets, which may specify a maximum time
duration for the transport of Ethernet frame across the network,
may be determined based on a specified traffic class. A destination
Ethernet device may initiate admission control procedures by
initiating a registration request across the network to the source
Ethernet device. A successful registration may enable the network
to reserve resources for the transport of Ethernet frames between
the source Ethernet device and the destination Ethernet device, in
accordance with the specified latency targets.
[0043] The Ethernet MAC layer functions may also enable an exchange
of timing synchronization information between communicating
Ethernet devices. Individual Ethernet MAC layer functions
associated with each of a plurality of Ethernet devices within a
LAN may exchange timing synchronization with the Ethernet MAC layer
function associated with a specified Ethernet device associated
with the LAN, wherein the specified Ethernet device may provide
system timing for the plurality of Ethernet devices associated with
the LAN. The traffic shaping and/or timing synchronization
capabilities may enable AV Bridging services to support isochronous
and/or real time services, such as streaming media services.
[0044] In various embodiments of the invention, the MAC layer
functions within the LAN subsystem 314 may enable the reception of
USB data and encapsulation of the received USB data within Ethernet
frames. The Ethernet frames may utilize AV Bridging services when
being transmitted via the network 106. The MAC layer functions
within the LAN subsystem 314 may also enable the reception of
Ethernet frames and the de-encapsulation of USB data from Ethernet
frames, which are determined to contain encapsulated USB data.
[0045] In various embodiments of the invention, the LAN subsystem
314 may utilize code, such as firmware, and/or data stored within
the memory 320 to enable the operation of MAC layer functions
and/or PHY layer functions within an Ethernet LAN, for example. The
firmware may also enable encapsulation of USB data in Ethernet
frames within the LAN subsystem 314. In addition, the firmware may
enable de-encapsulation of USB data from Ethernet frames.
[0046] The USB connector 316 may enable physical connection of a
USB interface connector 142 to the system 300. The USB connector
316 may enable physical connection via a type A connector or a type
B connector, for example.
[0047] The Ethernet connector 318 may enable physical connection of
an Ethernet interface connector 132 to the system 300. The Ethernet
connector 318 may enable physical connection via an 8P8C connector
and/or via in RJ45 connector, for example.
[0048] In an exemplary embodiment of the invention, the system 300
may comprise a host computer 102. In operation, the CPU 302 may
initiate a poll request to the digital camera 122. The CPU 302 may
determine that the digital camera 122 is coupled to the remote
computer 104. The CPU 302 may determine an Ethernet address, which
is associated with the remote computer 104. The CPU 302 may
determine that the USB poll request may be encapsulated within an
Ethernet frame. The CPU 302 may determine an EtherType field value
and/or EtherTypeSubType value for the Ethernet frames, which
indicate that the Ethernet frames encapsulate a poll request. The
CPU 302 may determine that the Ethernet frame is to utilize AV
Bridging services when the Ethernet frame is being transported via
the network 106 to the remote computer 104. The CPU 302 may
determine a traffic class designation, which may enable AV Bridging
capabilities for transporting of the Ethernet frames within the
network 106. The CPU 302 may communicate the USB poll request, the
Ethernet address for the remote computer 104, the EtherType value,
EtherTypeSubType value and/or the traffic class designation to the
LAN subsystem 314 via the MCH 30 and the ICH 310.
[0049] The LAN subsystem 314 within the host computer 102 may
determine that the USB poll request may be encapsulated within an
Ethernet frame. The LAN subsystem 314 may enable the encapsulation
of the USB poll request within an Ethernet frame, which is address
to the remote computer 104. The Ethernet frame may comprise an
EtherType and/or EtherTypeSubType designation, which indicates that
the Ethernet frame encapsulates USB data. The Ethernet frame may
specify AV Bridging services, which may be requested from the
network 106 for the transport of the Ethernet frame to the remote
computer 104. The LAN subsystem 314 may time stamp the Ethernet
frame and transmit the frame via the Ethernet connector 318.
[0050] The system 300 may receive Ethernet frames via the Ethernet
connector 318. The LAN subsystem 314 within the host computer 102
may receive the Ethernet frames and determine that the received
Ethernet frames contain encapsulated USB data. The LAN subsystem
314 may de-encapsulate the USB data from within the received
Ethernet frames. The USB data may be sent to the ICH 310. The ICH
310 may send the USB data to the CPU 302 via the MCH 304.
[0051] The CPU 302 may determine whether the USB data comprises a
USB poll response, or a USB poll request. In the instance where the
USB data comprises a USB poll response, the CPU 302 may process the
USB data. If the CPU 302 determines that the data is to be output
to a USB peripheral device, which is coupled to the host computer
102, the CPU 302 may enable the data to be sent to the USB
peripheral device (for example, the video monitor 112) via the MCH
304, the ICH 310 and the USB connector 316.
[0052] In the instance where the USB data comprises a USB poll
request, the CPU 302 may enable polling of the addressed USB
peripheral. The addressed USB peripheral may send USB poll response
data via the USB connector 316 to the ICH 310. The USB poll
response data may also be received at the LAN subsystem 314 via the
ICH 310. The LAN subsystem 314 may generate one or more Ethernet
frames to encapsulate the received USB poll response data. The LAN
subsystem 314 may send the Ethernet frames to the remote computer
104 via the network 106 utilizing AV Bridging capabilities.
[0053] FIG. 4 is a block diagram of an exemplary system, which
supports USB over Ethernet protocol translation, in accordance with
an embodiment of the invention. Referring to FIG. 4, there is shown
a MAC client 422, time stamp shim 424, 1 G Ethernet MAC block 426,
USB to Ethernet block 434, 1 GBASE-T PHY layer block 436, ICH 310
(from FIG. 3) and an Ethernet connector 318 (from FIG. 3).
[0054] The ICH 310 may enable reception of data from the CPU 302
via the MCH 304. The ICH 310 may enable the reception of signals
and/or data from peripheral devices such as the digital camera 122,
scanner 124, keyboard device 114 and/or mouse device 116. The ICH
310 may enable generation of signals suitable for transport via a
USB interface connector.
[0055] The USB to Ethernet block 434 may enable the reception of
signals and/or data via the interface 450. The USB to Ethernet
block 434 may enable the generation of signal level indicators
based on received signals. The USB to Ethernet block 434 may enable
the generation of bits based on the generated signal indicators.
The received data and/or generated bits may correspond to USB
response data. The USB to Ethernet block 434 may enable assembly of
the generated bits and/or received data to construct one or more
Ethernet payloads, EP.
[0056] The MAC client 422 may receive Ethernet payloads, EP, and
encapsulate the Ethernet payloads in one or more Ethernet frames,
EF. For example, the Ethernet frames EF may comprise
EtherType=USBType (where USBType may represent a numerical value),
which indicates that the Ethernet frames EF may contain USB
data.
[0057] The time stamp shim 424 may receive Ethernet frames EF from
the MAC client 422. The time stamp shim 424 may append time
synchronization information, such as a time stamp, to the Ethernet
frames EF. The time stamp shim 424 may append a time stamp when the
EtherType field indicates that the Ethernet frame is to utilize AV
Bridging capabilities for transport across a network 106, for
example.
[0058] The 1 G Ethernet MAC block 426 may enable the transmission
of the Ethernet frames EF via the network 106. The 1 G Ethernet MAC
block 426 may enable generation of header information within the
Ethernet frames, which enable the utilization of AV Bridging
services within the network 106 for transport of the Ethernet
frames. The 1 G Ethernet MAC block 426 may also enable traffic
shaping of transmitted Ethernet frames by determining time instants
at which the Ethernet frames EF may be transmitted to the network
106. The 1 G Ethernet MAC block 426 may also enable generation of
header information within the Ethernet frames, which utilize
conventional Ethernet services within the network 106. The
conventional Ethernet services may not utilize traffic shaping
and/or AV Bridging services, for example.
[0059] The 1 GBASE-T PHY layer 436 may enable the reception of bits
from Ethernet frames. The 1 GBASET-PHY layer 436 may line encode
the received bits to enable transmission via an Ethernet connector
318.
[0060] The 1 GBASE-T PHY layer 436 may also receive line coded bits
via the Ethernet connector 318. The 1 GBASE-T PHY layer 436 may
decode the received line coded bits, which may be sent to the 1 G
Ethernet MAC block 426. The 1 G Ethernet MAC block 426 may assemble
the received decoded bits to construct one or more Ethernet frames
EFR. The 1 G Ethernet MAC block 426 may determine whether the
Ethernet payloads EPR within the constructed Ethernet frames EFR
contain USB data. The 1 G Ethernet MAC block 426 may make the
determination based on a designation within EtherType field within
the received Ethernet frames EFR. The 1 G Ethernet MAC block 426
may send the Ethernet frames EFR to the time stamp shim 424.
[0061] The time stamp shim 424 may send Ethernet frames, EFR, which
contain encapsulated USB data to the MAC client 422. The MAC client
422 may de-encapsulate the Ethernet payloads, EPR, from the
received Ethernet frames EFR. The Ethernet payloads EPR may
comprise USB data. The MAC client 422 may send the Ethernet
payloads EPR to the USB to Ethernet block 434. The USB to Ethernet
block 434 may convert the Ethernet payloads EPR to signals, which
may be sent to the ICH 310. The ICH 310 may convert the signals to
USB data, which may be sent to the CPU 302 via the MCH 304. The CPU
302 may process the USB data.
[0062] In an exemplary embodiment of the invention, the LAN
subsystem 314 may comprise the MAC client 422, the time stamp shim
424, the 1 G Ethernet MAC block 426 and the USB to Ethernet block
434. In another exemplary embodiment of the invention, the LAN
subsystem 314 may comprise the MAC client 422, the time stamp shim
424, the 1 G Ethernet MAC block 426, the USB to Ethernet block 434
and the 1 GBASE-T PHY layer block 436.
[0063] Various embodiments of the invention as shown in FIG. 4 may
be practiced in 10 G Ethernet networks, 10 BASE-T networks, 100
BASE-TX networks, 1000 BASE-T networks, 2.5G networks, 5 G
networks, 40 G networks, 100 G networks and/or 1000 G networks, for
example. Various embodiments of the invention may be practiced in
networks, which utilize copper-based interfaces as well as
optical-based interfaces. In various embodiments of the invention,
which utilize AV bridging services to enable the transport of USB
data via a network, the USB traffic has relatively low bandwidth
requirements compared to 1000 BASE-T or even 100 BASE-TX, for
example. Consequently polling and response may not be an issue.
Furthermore, network jitter and/or latency jitter may be controlled
within the network based on the AV bridging services.
[0064] FIG. 5 is a flowchart illustrating exemplary steps for
transmitting a USB poll request via a network, in accordance with
an embodiment of the invention. Referring to FIG. 5, in step 502,
the host computer 102 may poll a digital camera 122 coupled to a
remote computer 104. The host computer 102 may generate a USB poll
request, which is to be transmitted via the network 106 to the
remote computer 104. In step 504, the host computer 102 may select
an EtherType value, which enables indication of Ethernet frames,
which encapsulate USB data. In step 506, the host computer 102 may
encapsulate the USB poll request in an Ethernet frame. The Ethernet
frame may also comprise the selected EtherType value. In step 508,
the host computer may select a traffic class to enable request of
AV Bridging services from the network 106 for the transport of the
Ethernet frame across the network 106. In step 510, the host
computer 102 may transmit the Ethernet frame to the remote computer
104 via the network 106.
[0065] FIG. 6 is a flowchart illustrating exemplary steps for
processing USB data received via a network, in accordance with an
embodiment of the invention. Referring to FIG. 6, in step 602, the
remote computer 104 may receive an Ethernet frame from the host
computer 102 via the network 106. Step 604 may determine whether
the received Ethernet frame contains USB data. When step 604
determines that the received Ethernet frame does not contain USB
data, in step 606, the received Ethernet frame may be processed
utilizing Ethernet frame processing, which is suitable for the
received Ethernet frame. The suitable Ethernet frame processing may
be determined based on an EtherType value contained within the
received Ethernet frame, for example.
[0066] When step 604 determines that the received Ethernet frame
may contain USB data, in step 608, the LAN subsystem 314 within the
remote computer 104 may de-encapsulate the USB data. Step 610 may
determine whether the USB data comprises a USB poll request. When
step 610 determines that the USB data may not comprise a USB poll
request, in step 612, the remote computer 104 may process the USB
data.
[0067] When step 610 determines that the USB data may comprise a
USB poll request, in step 616, the CPU 302 within the remote
computer 104 may poll the peripheral device identified in the USB
poll request (for example, the digital camera 122). In step 618,
the LAN subsystem 314 may receive a poll response from the
requested peripheral device via the ICH 310. In step 620, the CPU
302 may prepare to encapsulate the response data by selecting an
EtherType value, which enables indication of Ethernet frames, which
encapsulate USB poll response data. In step 622, the LAN subsystem
314 within the remote computer 104 may encapsulate the USB poll
response data in an Ethernet frame. The Ethernet frame may also
comprise the selected EtherType value. In step 624, the LAN
subsystem 314 may also enable selection of a traffic class to
enable request of AV Bridging services from the network 106 for the
transport of the Ethernet frame across the network 106. In step
626, the LAN subsystem 314 within the remote computer 104 may
transmit the Ethernet frame to the host computer 102 via the
network 106.
[0068] Aspects of a system for universal serial bus (USB) over A/V
bridging and ANV bridging extensions may include a LAN subsystem
that enables reception of signals from a peripheral device coupled
to a computing device via a USB interface. The LAN subsystem may
enable the generation of payload data based on the received
signals. The LAN subsystem may enable transmission of the generated
payload data via a network based on a traffic class designation.
The generated payload data may be encapsulated within an outgoing
PDU, which may include an Ethernet frame and/or an IP packet. The
outgoing encapsulating PDU may contain the traffic class
designation. The LAN subsystem may also generate a time stamp for
the encapsulating PDU. The LAN subsystem may enable indication that
the outgoing encapsulating PDU encapsulates the generated payload
data based on one or more data type identifiers, which include an
EtherType and an EtherTypeSubType.
[0069] Another embodiment of the invention may provide a
machine-readable storage, having stored thereon, a computer program
having at least one code section executable by a machine, thereby
causing the machine to perform the steps as described herein for
universal serial bus (USB) over A/V bridging and A/V bridging
extensions.
[0070] Accordingly, the present invention may be realized in
hardware, software, or a combination of hardware and software. The
present invention may be realized in a centralized fashion in at
least one computer system, or in a distributed fashion where
different elements are spread across several interconnected
computer systems. Any kind of computer system or other apparatus
adapted for carrying out the methods described herein is suited. A
typical combination of hardware and software may be a
general-purpose computer system with a computer program that, when
being loaded and executed, controls the computer system such that
it carries out the methods described herein.
[0071] The present invention may also be embedded in a computer
program product, which comprises all the features enabling the
implementation of the methods described herein, and which when
loaded in a computer system is able to carry out these methods.
Computer program in the present context means any expression, in
any language, code or notation, of a set of instructions intended
to cause a system having an information processing capability to
perform a particular function either directly or after either or
both of the following: a) conversion to another language, code or
notation; b) reproduction in a different material form.
[0072] While the present invention has been described with
reference to certain embodiments, it will be understood by those
skilled in the art that various changes may be made and equivalents
may be substituted without departing from the scope of the present
invention. In addition, many modifications may be made to adapt a
particular situation or material to the teachings of the present
invention without departing from its scope. Therefore, it is
intended that the present invention not be limited to the
particular embodiment disclosed, but that the present invention
will include all embodiments falling within the scope of the
appended claims.
* * * * *