METHOD AND SYSTEM FOR UNIVERSAL SERIAL BUS (USB) OVER A/V BRIDGING AND A/V BRIDGING EXTENSIONS

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.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE

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.

The above referenced application is hereby incorporated herein by reference in its entirety

FIELD OF THE INVENTION

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

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.

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.

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

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.

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

FIG. 1 is a diagram illustrating an exemplary system for USB over Ethernet, in accordance with an embodiment of the invention.

FIG. 2 is a diagram illustrating an exemplary system for USB to Ethernet protocol translation, in accordance with an embodiment of the invention.

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.

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.

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.

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

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.

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).

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.

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.

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.

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.

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.

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.

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.

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).

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.

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.

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).

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.

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.

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.

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.

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).

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.

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.

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).

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).

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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).

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Patent History
Publication number: 20080288704
Type: Application
Filed: Jan 7, 2008
Publication Date: Nov 20, 2008
Inventors: Wael William Diab (San Francisco, CA), Amit Oren (Los Altos Hills, CA)
Application Number: 11/970,052
Classifications
Current U.S. Class: Bus Interface Architecture (710/305)
International Classification: G06F 13/00 (20060101);