Multi-gigabit wireless tunneling system

A disclosed wireless tunneling system tunnels communications between two processing apparatuses through a wireless link, while maintaining compliance of the communications between the two processing apparatuses with a wired communication protocol. In one embodiment, the wireless tunneling system includes two wireless tunneling apparatuses that communicate with each other through the wireless link. A local wireless tunneling apparatus is coupled to a local processing apparatus through a wired connection and a remote wireless tunneling apparatus is coupled to the remote processing apparatus through another wired connection. In one aspect, the local wireless tunneling apparatus predicts a state of the remote processing apparatus, and mirrors the predicted state of the remote processing apparatus. Mirroring the state based on the prediction enables high speed data rate tunneling between the two processing apparatuses through the wireless link without a delay associated with the wireless tunneling apparatuses affecting the high speed data rate tunneling.

BACKGROUND

1. Field of the Disclosure

Embodiments of the present disclosure generally relate to the field of wireless communication and, more particularly, to wireless tunneling of a wired communication protocol.

2. Description of the Related Art

In a wireless tunneling system, data that is traditionally communicated over a wired communication link is instead tunneled through a wireless channel. Conventionally, wireless communications are substantially slower than communications over wired links. Accordingly, conventional wireless systems are incapable of tunneling high speed protocol, for example, Universal Serial Bus (USB), High-Definition Media Interface (HDMI), and DisplayPort (DP) having multi-Gigabit data rates.

SUMMARY

A disclosed wireless tunneling system tunnels communications between two processing apparatuses through a wireless link, while maintaining compliance of the communications between the two processing apparatuses.

In one embodiment, the wireless tunneling system includes two wireless tunneling apparatuses that communicate with each other through the wireless link. A local wireless tunneling apparatus is coupled to a local processing apparatus through a wired connection and a remote wireless tunneling apparatus is coupled to the remote processing apparatus through another wired connection. The two processing apparatuses may communicate with each other through the low-latency wireless link using the two wireless tunneling apparatuses as if the two processing apparatuses were connected through wired connections.

In one embodiment, the local wireless tunneling apparatus includes a wireless receiver, a processing component state machine, and an interface circuit. The wireless receiver is configured to receive a wireless receive signal from the remote wireless tunneling apparatus, and downconvert the wireless receive signal to generate a baseband signal from the wireless receive signal. The processing component state machine is configured to predict a remote processing state of the remote processing apparatus based on the baseband signal. The interface circuit is coupled to the local processing apparatus and configured to (i) generate an output signal conforming to the wired communication protocol based on the predicted remote processing state and the baseband signal and (ii) provide the output signal to the local processing apparatus through the wired communication protocol.

In one or more embodiments, the local wireless tunneling apparatus further includes a wireless transmitter configured to (i) receive an input signal from the local processing apparatus to generate another baseband signal, (ii) upconvert said another baseband signal to generate a wireless transmit signal and (iii) transmit the wireless transmit signal. The processing component state machine may control a power state of the receiver or the transmitter based on one or more of: (a) current state of the processing component state machine, (b) inputs received from the local processing apparatus, and (c) the predicted remote processing state. The processing component state machine may be further configured to map one or more local processing states of the local processing apparatus to a single state of the processing component state machine, and generate a state signal indicative of a local processing state of the local processing apparatus based on the single state. The transmitter may be further configured to encode the baseband signal with the state signal indicative of the local processing state of the local processing apparatus.

In one or more embodiments, the local wireless tunneling apparatus further includes a wireless component state machine configured to determine a wireless component state of the wireless receiver based on its own current state and the predicted remote processing state of the remote processing apparatus. The wireless component state machine may control an operation mode of the wireless receiver according to the wireless component state determined based on its own current state and the predicted remote processing state of the remote processing apparatus.

In one or more embodiments, the baseband signal is encoded with a state signal indicative of a prior state of the remote processing apparatus. The processing component state machine may be configured to predict the remote processing state of the remote processing apparatus based on the state signal of the baseband signal.

In one or more embodiments, the processing component state machine is configured to predict the remote processing state of the remote processing apparatus based on a portion of the baseband signal corresponding to the wireless receive signal.

In one or more embodiments, the processing component state machine is configured to predict the remote processing state of the remote processing apparatus based on one or more local processing states of the local processing apparatus.

In one or more embodiments, a method of wirelessly tunneling communications between a local processing apparatus and a remote processing apparatus while maintaining compliance of the communications between the local processing apparatus and the remote processing apparatus with a wired communication protocol is disclosed. The method includes: receiving, by a wireless receiver, a wireless receive signal from a remote wireless tunneling apparatus; downconverting, by the wireless receiver, the wireless receive signal to generate a baseband signal from the wireless receive signal; predicting, by a processing component state machine, a remote processing state of the remote processing apparatus based on the baseband signal; generating, by an interface circuit coupled to the local processing apparatus, an output signal conforming to the wired communication protocol based on the predicted remote processing state and the baseband signal; and providing, by the interface circuit, the output signal to the local processing apparatus through the wired communication protocol.

DETAILED DESCRIPTION

System Overview

Embodiments herein are primarily described in the context of a tunneling system that can be plugged into an arbitrary node in a connected topology, comprising hosts, devices, and hubs. In some embodiments, the tunneling system may operate in the context of a USB 3.0 system. However, the embodiments herein may also be used to communicate using other communication protocols such as different versions of the USB standard or entirely different protocols such as HDMI, DisplayPort, or other serial communication protocols.

FIG. 1illustrates an embodiment of a wireless tunneling system100. The wireless tunneling system100comprises a first computing system150A communicating with a second computing system150B via a wireless link130.

In one embodiment, the wireless link130comprises a 60 GHz wireless link. The wireless link130may be limited to short range communications where the wireless tunneling apparatuses120are in very close proximity to each other (e.g., within a few millimeters). Data transmissions over the wireless link130may have a data rate of, for example, 6 Gigabits per second or higher. In other embodiments, the wireless link may be suitable for a long range communications and/or implemented for other frequency bands.

The first computing system150A includes a processing apparatus110A coupled to a wireless tunneling apparatus120A through a wired connection116A, and the second computing system150B includes a processing apparatus110B coupled to a wireless tunneling apparatus120B through a wired connection116B. The wireless tunneling apparatuses120A and120B (herein also referred to as “wireless tunneling apparatuses120” or “transceivers120”) communicate with each other through the wireless link130, and tunnel communications between the processing apparatuses110A and110B (herein also referred to as “processing apparatuses110” or “source apparatuses110”). A processing apparatus can include an electronic apparatus able to exchange data (unidirectional or bidirectional) compliant with a wired communication protocol with another electronic apparatus. Examples of a processing apparatus include a source device, a sink device, an intermediate device between the source device and the sink device, USB host/device, a storage device, etc. In one embodiment, the wireless tunneling apparatus120is embodied as a removable dongle that can couple to a port or cable of the processing apparatus110(e.g., a USB port or cable, a HDMI port or cable, or a DisplayPort port or cable). In other embodiments, the wireless tunneling apparatus120is internally coupled to the processing apparatus110(e.g., via traces on a printed circuit board) or may be fully integrated with the processing apparatus110(e.g., in an integrated circuit).

The computing system150(and the components thereof) may be implemented using analog circuit components, digital logic, software, or a combination thereof. In one embodiment, one or more components of the computing system150may be implemented as a processor and a non-transitory computer-readable storage medium storing instructions that when executed by the processor cause the processor to carry out the functions attributed to the components. Alternatively, or in addition, digital components may be implemented as an application specific integrated circuit (ASIC), field-programmable gate array (FGPA), or using a combination of implementations.

In one embodiment, the wireless tunneling system100provides a replacement for conventional wired communications such as USB, HDMI, DisplayPort, or other serial communication protocols. For example, rather than the processing apparatuses110A,110B communicating directly to each other via a traditional cable, the processing apparatuses110A,110B instead communicate with their respective wireless tunneling apparatuses120A,120B, which then tunnel the data over a high-speed point-to-point serial wireless link130at speeds exceeding those that can be achieved using traditional wired communications.

From the perspective of the processing apparatuses110A,110B, the communications may be implemented in the same way as if the processing apparatuses110A,110B were directly connected in a conventional configuration. Thus, no modification to a conventional processing apparatus110A,110B is necessarily required (e.g., no software modification is necessary). In other words, the wireless tunneling apparatuses120A,120B and the wireless link130between them may operate as a direct replacement for a conventional cable. For example, each wireless tunneling apparatus120A,120B includes an interface that enables it to plug directly into a conventional cable interface of its respective processing apparatus110A,110B and the wireless tunneling apparatuses120A,120B facilitate communication such that it appears to the processing apparatuses110A,110B that they are directly connected. In alternative embodiments, the wireless tunneling apparatuses120A,120B may be integrated with their′ respective processing apparatuses110A,110B.

Taking USB as an example, traditional wireless apparatuses with USB interfaces terminate the USB protocol in the wireless apparatus and re-encode data into a different wireless protocol for transmission. The traditional wireless apparatuses are visible as nodes (USB hubs, USB devices or USB repeaters) in the USB tree topology. In contrast, a wireless tunneling apparatus allows for USB link-layer data traffic to be transmitted without modifications at very low latency and without terminating the USB protocol layers. Such wireless tunneling apparatuses are not visible in the USB topology.

In one embodiment, each wireless tunneling apparatus120communicates with its connected processing apparatus110to mirror the states and operations of a counterpart of the processing apparatus110to which the wireless tunneling apparatus120is coupled. Thus, for example, the wireless tunneling apparatus120A mirrors the states of the processing apparatus110B as indicated by an arrow118, and the wireless tunneling apparatus120B mirrors the processing apparatus110A as indicated by an arrow128. Accordingly, the data communicated from the wireless tunneling apparatus120A to the processing apparatus110A mirror communications from the processing apparatus110B to the wireless tunneling apparatus120B, and data communicated from the wireless tunneling apparatus120B to the processing apparatus110B mirror communications from the processing apparatus110A to the wireless tunneling apparatus120A.

Specifically, each of the wireless tunneling apparatuses120predicts an operating state (e.g., a power state or other operational state) of its remote (i.e., counter-part) processing apparatus110, and interfaces with its local processing apparatus110A according to the predicted state through a wired connection116. For example, the processing apparatus110B operates in one of multiple processing states according to a wired communication protocol (e.g., USB) depending on a speed of data or power management state. The wireless tunneling apparatus120A predicts the operating state of the processing apparatus110B, and mirrors the predicted state of the processing apparatus110B to interface with the processing apparatus110A through the wired connection116A. The mirrored state may be identical or substantially similar to the operating state of the processing apparatus110B. In one aspect, a set of processing states of the processing apparatus110can be mapped or collapsed into a single state or a fewer number of states of the wireless tunneling apparatus120, as described in further details with respect to Table 4.

The wireless tunneling apparatus120comprises a transmitter122, a receiver124, and a state machine126. The transmitter122receives data from the processing apparatus110and transmits the data over the wireless link130to a receiver124of a different computing system150. The receiver124receives data over the wireless link130from a transmitter122of another computing system150and provides the received data to the processing apparatus110. The state machine126controls the power state of the wireless tunneling apparatus120by switching the wireless tunneling apparatus120between a high power state for transmitting high frequency data and one or more low power states as will be described in further detail below. The wireless tunneling apparatuses120furthermore mimic low-power states signaled within the tunneled protocol. In an embodiment, the wireless tunneling apparatus120is capable of full-duplex communication so that it may transmit and receive data over the wireless link130simultaneously.

For example, in the illustrated embodiment, the processing apparatus110A is configured as an upstream apparatus and operates according to the state machine126A as a “host,” where the processing apparatus110B is configured as a downstream apparatus and operates according to the state machine126B as a “device.” The processing apparatus110A functioning as the “host” controls operations of or communication with the processing apparatus110B functioning as the “device.” The upstream wireless tunneling apparatus120A interfaces the upstream processing apparatus110A (or “host”) through the wired connection116A, and similarly the downstream wireless tunneling apparatus120B interfaces the downstream processing apparatus110B (“device”) through the wired connection116B. The wireless tunneling apparatuses120A and120B exchange data including status, states, or control information of respective processing apparatuses110over the wireless link130.

In one embodiment, the wireless tunneling apparatuses120A,120B are substantially identical apparatuses. Alternatively, the wireless tunneling apparatuses120A,120B are different complementary apparatus types that have similar high level architectures, but differ in certain architectural or operational characteristics as described herein. For example, in one embodiment, the first wireless tunneling apparatus120A comprises a first apparatus type configured to operate with a processing apparatus110A embodied as a docking station, while the second wireless tunneling apparatus120B comprises a second apparatus type configured to operate with a processing apparatus110B embodied as a mobile apparatus. In one embodiment, in order to implement full-duplex communication, complementary wireless tunneling apparatuses120of different types have different antenna polarization so that two different transmitter/receiver antenna pairs can simultaneously operate in both directions. For example, the wireless tunneling apparatus120A may have a type X transmit antenna and a type Y receive antenna, while the wireless tunneling apparatus120B has a complementary type Y transmit antenna and a type X receive antenna. Furthermore, wireless tunneling apparatuses120of different types may operate according to different control schemes in order to optimize the power efficiency of one of the wireless tunneling apparatuses120in the pair. For example, when the first wireless tunneling apparatus120A is configured for operating with a docking station and the second wireless tunneling apparatus120B is configured for operating with a mobile apparatus, the wireless tunneling apparatuses120A,120B may operate asymmetrically in order to lower the power consumption of the wireless tunneling apparatus120A hosted by the mobile apparatus at the expense of the wireless tunneling apparatus120B hosted by the docking station. This tradeoff may be desirable because a docking station is typically connected to a continuous power source, while a mobile apparatus depends on a battery with limited power.

In one embodiment, the apparatus type associated with a wireless tunneling apparatus120(and the operation associated therewith) may be permanently designed into the wireless tunneling apparatus120. Alternatively, a wireless tunneling apparatus120may be configurable between two or more apparatus types based on a switch, a control pin (i.e., control input of a chip) or register setting. Architectural and/or operational differences between the different configurations of the wireless tunneling apparatuses120A,120B in a complementary pair are described in further detail below.

FIG. 2illustrates an example process of a local wireless tunneling apparatus120A tunneling communication from a remote processing apparatus110B to a local processing apparatus110A, according to one embodiment.

The local wireless tunneling apparatus120A receives210a wireless receive signal from the remote wireless tunneling apparatus120B through the wireless link130. The wireless receive signal is received at a first frequency (e.g., ˜60 GHz). The wireless receive signal is generated by the wireless tunneling apparatus120B according to a remote data signal from the remote processing apparatus110B. The remote data signal contains content information to be transmitted to the local processing apparatus110A, and conforms to a wired communication protocol (e.g., USB protocol).

Responsive to receiving the wireless receive signal, the local wireless tunneling apparatus obtains a baseband signal based on the wireless receive signal. Specifically, the local wireless tunneling apparatus120A downconverts220the wireless receive signal to a second frequency (e.g., a few Gbps) lower than the first frequency. The downconverted wireless receive signal is a baseband signal.

In one aspect, the local wireless tunneling apparatus120A predicts230a state of the remote processing apparatus110B based on the baseband signal. The baseband signal may be encoded with a state signal indicative of a prior state of the remote processing apparatus110B. The local wireless tunneling apparatus120A can decode the baseband signal to obtain the state signal of the remote processing apparatus110B, and predict a state of the remote processing apparatus110B based on the prior state of the remote processing apparatus110B. In another aspect, the local wireless tunneling apparatus120A predicts the remote processing state of the remote processing apparatus based on a portion of the baseband signal corresponding to the wireless receive signal. For example, in the context of USB, the local wireless tunneling apparatus120A may predict the remote processing state by analyzing the received USB data packets. Yet in another aspect, the local wireless tunneling apparatus120A predicts the remote processing state of the remote processing apparatus based on local event (e.g., current or one or more prior local processing states of the local processing apparatus such as timeout events).

The local wireless tunneling apparatus120A mirrors240the state of the remote processing apparatus110B. Specifically, the local wireless tunneling apparatus120A interfacing the local processing apparatus110A mirrors the predicted state of the remote processing apparatus110B, and generates250a mirrored remote data signal based on the mirrored state and the baseband signal. The mirrored remote data signal is identical or substantially similar to the remote data signal generated at the remote processing apparatus110B. For example, the local wireless tunneling apparatus120A provides the mirrored remote data signal to the local processing apparatus110A according to the predicted state. Accordingly, tunneling of communication from the remote processing apparatus110B to the local processing apparatus110A can be achieved.

FIG. 3illustrates an example process of a local wireless tunneling apparatus120A tunneling communication from the local processing apparatus110A to the remote processing apparatus110B, according to one embodiment.

The local wireless tunneling apparatus120A receives310a local data signal from the local processing apparatus110A. The local data signal contains information to be transmitted to the remote processing apparatus110B, and conforms to a wired communication protocol (e.g., USB protocol).

In one aspect, the local wireless tunneling apparatus120A obtains one or more states of the local processing apparatus110A, and maps320the one or more states of the local processing apparatus110A to one or more corresponding states. The local wireless tunneling apparatus120A receives a signal indicating a current operating state of the local processing apparatus110A from the local processing apparatus110A. Alternatively, the local wireless tunneling apparatus120A determines the operating state of the local processing apparatus110A, according to the local data signal received (e.g., values thereof) and/or prior operating states of the local processing apparatus110A.

The local wireless tunneling apparatus120A generates330a baseband signal at the second frequency (e.g., a few Gbps) based on the local data signal and the mapped state. In one aspect, the local wireless tunneling apparatus120A encodes the baseband signal according to the mapped state. For example, the local wireless tunneling apparatus120A encodes the baseband signal with a state signal indicating a mapped state of the local wireless tunneling apparatus120A.

The local wireless tunneling apparatus120A upconverts340the baseband signal at the second frequency (e.g., a few Gbps) to generate a wireless transmit signal at the first frequency (e.g., 60 GHz), then transmits350the wireless transmit signal to the remote wireless tunneling apparatus120B through the wireless link130.

Advantageously, the wireless tunneling apparatus120predicts an operating state of a remote processing apparatus110, and mirrors the operation of the remote processing apparatus110. Hence, any delays for converting data in a wired communication protocol to another protocol (e.g., wireless communication protocol) or transitioning between different states of the wireless tunneling apparatus may be reduced. Thus, seamless tunneling of communication between the two processing apparatuses110A,110B with a high speed data rate (e.g., multi-Gbps) through the wireless link130can be achieved.

Detailed Wireless Tunneling Apparatus Architecture

FIG. 4shows a detailed architecture of a wireless tunneling apparatus120, according to one embodiment. While the diagram inFIG. 4may correspond to the wireless tunneling apparatuses120illustrated inFIG. 1, it illustrates an example in further detail in order to better explain operation of the apparatuses120in accordance with one embodiment. In one embodiment, the wireless tunneling apparatus120includes a full-duplex high speed data-path capable of tunneling at USB 3.0 speeds. In one implementation, the wireless tunneling apparatus120includes a USB PHY402, USB digital404, an encoder416, a transmitter420, a wireless component state machine480, a decoder454, and a receiver440. Additional components may be implemented for a proper communication conforming to USB protocol. Together, these components operate to tunnel communications between two processing apparatuses110.

The USB PHY402is a mixed-signal interface circuit that is in one embodiment fully compliant with USB 3.0 electrical specification and supports all four different USB speeds: super-speed (5 Gbps), high-speed (480 Mbps), full-speed (12 Mbps), and low-speed (1.5 Mbps). It supports the full range of USB 3.0 host and peripheral applications. The USB PHY402provides digital interfaces compliant with PIPE3.0 (for SS) and UTMI+ (for HS/FS/LS). The UTMI+ provides two interfaces for FS/LS: standard 8-bit/16-bit interface or bit-serial interface. An embodiment of the tunneling architecture described herein uses the bit-serial interface in order to minimize end-to-end latency across the two wireless tunneling apparatuses120. The bit-serial interface saves time to serialize and de-serialize bit data, and thereby reducing latency.

The USB PHY402implements reduced power consumptions for all low power states defined in USB 3.0 specification: U0/U1/U2/U3 for super-speed and suspend-resume for HS/FS/LS. It also supports the transmission and reception of Low Frequency Periodic Signaling (LFPS), as defined in the specification, for exiting from low power states.

The USB digital404is a circuit component that interfaces between the USB PHY402and wireless components (e.g., transmitter420and receiver440). The USB digital404determines operating states of the USB PHY402and the wireless components. The USB digital404is functional both when tunneling communication from the local processing apparatus110A to the remote processing apparatus110B, and when tunneling communication from the remote processing apparatus110B to the local processing apparatus110A.

For tunneling communication from the local processing apparatus110A to the remote processing apparatus110B, the USB digital404receives a local data signal from the local processing apparatus110A through the USB PHY402, and provides the local data signal to the encoder416. In one aspect, the USB digital404generates a state signal of the local processing apparatus110A indicating a local processing state of the local processing apparatus110A. The state signal of the local processing apparatus110A enables a USB digital404of a counterpart wireless tunneling apparatus120B to predict an operating state of the local processing apparatus110A. The USB digital404can identify a state of the local processing apparatus110A based on the local data signal. Furthermore, the USB digital404generates the state signal according to the mapped state, and provides the local data signal and the state signal of the local processing apparatus110A to the encoder416.

The encoder416encodes the local data signal with the state signal of the local processing apparatus110A, and provides the encoded signal to the transmitter420. In one aspect, the local data signal may be scrambled to remove undesirable properties such as non-zero DC bias (number of 0's and 1's are not same) before or after encoding by the encoder or a scrambler (not shown for simplicity). USB super-speed data over a USB cable has a raw speed of 5 Gbps, out of which 20% is contributed by 8b/10b coding. This is prescribed in the USB standard to protect against cable related bit errors. This overhead is removed for wireless transmission and super-speed data bandwidth is reduced to 4 Gbps. Instead error correction codes are added for wireless transmission, so that wireless related bit errors can be detected and corrected. According to the encoding, the receiver side could possibly correct bit errors introduced by wireless transmission. The FEC used in one implementation is a (232, 216) Bose-Chaudhuri-Hocquenghem code (BCH code), which is a cyclic error-correcting code in which each output code-word has 232 bits for a given 216-bit sequence. BCH code beneficially has error correction capability and low encoding and decoding latency. The code may be systematic, which implies that the first 216 bit output is just copied from the input sequence. The last 16 bits can be encoded using a BCH code generator matrix.

The transmitter420receives the encoded signal from the encoder416, upconverts the encoded signal and transmits the upconverted signal wirelessly. In one aspect, the transmitter420includes a high frequency transmitting circuit422and a low frequency transmitting circuit424. The high frequency transmitting circuit422is used for upconverting a high data rate (e.g., 6 Gbps) digital baseband signal to an RF frequency (e.g., 60 GHz) and transmitting the upconverted signal. For example, the high frequency transmitting circuit422is suitable for upconverting a high data rate signal conforming to USB protocol, an HDMI protocol, a DisplayPort protocol, or other communication protocol, and transmitting the upconverted signal through the wireless link130. The low frequency transmitting circuit424is used for upconverting a low data rate (e.g., ˜100 kbps) digital baseband signal to an RF frequency (e.g., 60 GHz) and transmitting the upconverted signal. For example, the low frequency transmitting circuit424is suitable for upconverting a low data rate signal including control information for operating in or transitioning between different states of the wireless component state machine480, or power state of wireless components. While the high frequency transmitting circuit422is capable of transmitting a higher data rate signal than the low frequency transmitting circuit424, the high frequency transmitting circuit422may include more circuit components than the low frequency transmitting circuit424, and may consume more power than the low frequency transmitting circuit. In one aspect, one of the high frequency transmitting circuit422and the low frequency transmitting circuit424is selected according to the wireless component state machine480, for transmission of a suitable data rate signal.

For tunneling communication from the remote processing apparatus110B to the local processing apparatus110A, the receiver440receives a wireless receive signal from a transmitter of another wireless tunneling apparatus120, and downconverts the wireless receive signal to obtain a baseband signal. In one aspect, the receiver440includes a high frequency receiving circuit442and a low frequency receiving circuit446. The high frequency receiving circuit442is used for downconverting an RF frequency (e.g., 60 GHz) to a high data rate (e.g., 6 Gbps) digital baseband signal. The low frequency receiving circuit446is used for downconverting an RF frequency (e.g., 60 GHz) to a low data rate (e.g., ˜100 kbps) digital baseband signal. While the high frequency receiving circuit442is capable of downconverting a signal with data rate higher than the low frequency receiving circuit446, the high frequency receiving circuit442may include more circuit components than the low frequency receiving circuit446, and may consume more power than the low frequency receiving circuit446. In one aspect, one of the high frequency receiving circuit442and the low frequency receiving circuit446is selected according to the wireless component state machine480for receiving a suitable data rate signal.

The decoder454receives the downconverted signal from the receiver440, and decodes the recovered signal. In one approach, the downconverted signal may be descrambled before or after decoding by the decoder454(the descrambler is not shown for simplicity). The decoder454can decode the downconverted signal to obtain a remote data signal and a state signal of the remote processing apparatus110B indicating a prior state of the remote processing apparatus110B. In one embodiment, a hard-decision based BCH decoder is implemented. The decoder454may detect and correct any bit error in the downconverted signal. The (232,216) BCH code can correct up to two bit errors in a 232-bit code-word. This coding scheme improves bit errors that are independent and random. The decoder454provides the remote data signal and the state signal of the remote processing apparatus110B to the USB digital404.

Referring back to the USB digital404, the USB digital404receives a remote data signal and a state signal of the remote processing apparatus110B from the decoder454. The USB digital404can predict the operating state of the remote processing apparatus110B, based on the state signal of the remote processing apparatus110B. Based on the state signal of the remote processing apparatus110B, the USB digital predicts an operating state of the remote processing apparatus110B, for example, by considering the communication delay between the remote processing apparatus110B and the local processing apparatus110A, prior operating states of the remote processing apparatus110B or the local processing apparatus110A, remote data signal or a combination of both. The USB digital404configures the USB PHY402according to the predicted state of the remote processing apparatus110B, and provides the remote data signal to the local processing apparatus110A through the USB PHY402in a manner that any delay of the wireless tunneling apparatuses120A and120B can be eschewed.

In one embodiment, the USB digital404includes a processing component state machine408for mirroring an operating state of the remote processing apparatus110B. The processing component state machine408can comprise an adapted implementation of Link Training and System Status Machine (LTSSM) from USB 3.0 specification. The Link Training and Status State Machine (LTSSM) in USB 3.0 specification is a state machine defined for link connectivity and link power management. Additionally, the processing component state machine408may include a Reset Protocol State Machine (RPSM) from USB 2.0 specification. The processing component state-machine408is designed to track the LTSSM state or RPSM state of the USB host/device/hub on the opposite side of the wireless link, as shown inFIG. 1. The processing component state machine408predicts an operating state of the remote processing apparatus110B, and mirrors the state of the remote processing apparatus110A.

In one aspect, the processing component state machine408maps one or more states of itself to one or more corresponding states of the wireless component state machine480, and configures the state of the wireless component state machine480. The wireless component state machine480controls the power state of the wireless components of the transmitter420and the receiver440in order to improve power efficiency of the wireless components. For example, because the power consumption of the high frequency transmitting circuit422is relatively high compared to the low frequency transmitting circuit424, the wireless component state machine480can control the high frequency transmitting circuit422to operate in a low power state or turn off the high frequency transmitting circuit422during a low frequency transmission when the high frequency transmitting circuit422is not being used. During high frequency transmissions, the low frequency transmitting circuit424may be powered down. Similarly, because the power consumption of the high frequency receiving circuit442is relatively high compared to the low frequency receiving circuit446, the wireless component state machine480can control the high frequency receiving circuit442to operate in a low power state or turn off the high frequency receiving circuit442during a low frequency reception when the high frequency receiving circuit442is not being used. During high frequency reception, low frequency receiving circuit446may be powered down.

Additionally, the wireless component state-machine480controls numerous system functions including, for example:(1) detect detachment and attachment of USB host/device(2) control power state of wireless blocks & USB PHY based on USB power state(3) ensure synchronicity of USB host and device by reproducing the link response across the wireless link.

FIG. 5illustrates an example state transition diagram for a wireless tunneling system capable of tunneling USB data, according to one embodiment. Each state of the wireless component state machine480may be mapped to a corresponding state of the processing component state machine408as shown in Table 2 below. In this embodiment, five possible power states are available: a W0 state502, a W2 state506, a W3 state508, a proximity detect state510, and a sleep state504. In one aspect, the wireless component state machine480operates in one of the power states shown inFIG. 5.

The W0 state502represents the high power state in which the high frequency transmitting circuit422, high frequency receiving circuit442, and associated components are enabled, and the wireless tunneling apparatus120is actively transmitting, or is available and ready to transmit, high frequency serial data (e.g., USB data). In the W0 state, the high frequency transmitting circuit422and the high frequency receiving circuit442are turned on and the wireless tunneling apparatus120may actively tunnel USB data. If proximity to the other apparatus is lost, the wireless tunneling apparatus120transitions to the proximity detect state. In the proximity detect state510, the high frequency transmitting circuit422and high frequency receiving circuit442are turned off. The low frequency transmitting circuit424and low frequency receiving circuit446are turned on to periodically check for proximity to another apparatus and are turned off when not being used. A wireless tunneling apparatuses120A and120B may enter the sleep state504from the W0 state if proximity detection is successful but the processing apparatus110is determined to be not attached. This determination is made in the W0 state502. In the sleep state504, only “always-on” blocks are running and other components are turned off for power efficiency. The wireless tunneling apparatus remains in the sleep state504for a pre-defined time, and then goes back to the proximity detect state510to make sure that wireless proximity is maintained. If a nearby apparatus is detected, the wireless tunneling apparatus120transitions back to the W0 state502in which attachment of the processing apparatus is checked. The W2 and W3 states506,508are entered when a wireless tunneling apparatus pair120A/120B is in wireless proximity, the processing apparatuses110A/110B are in attached state, but the processing apparatuses110are in a low power state or are not actively communicating data. For example, the W2 state506is entered when the processing apparatus110is in a “U2” low-power state of USB 3.0 Superspeed, and the W3 state508is entered when the processing apparatus110is either in “U3” state of USB 3.0 Superspeed or in “Suspend” state of USB 2.0 Highspeed.

Each arc inFIG. 5represents a possible transition between states. The conditions for transitioning between the states are summarized in the Table 1 and described in more detail below.

Transitions out of the W0 state502(e.g., via arcs a, b1, c1, and g1) depend both on the state of the local wireless tunneling apparatus as well as the state of the remote wireless tunneling apparatus in proximity to the local wireless tunneling apparatus. In order to communicate the state of the local apparatus to the remote apparatus, and vice versa, a signal proposed_link_state is periodically transmitted between the apparatuses when in the W0 state502indicating the transition to a new state dictated by the local apparatus conditions. For example, in one embodiment, the signal proposed_link_state is a 2-bit signal encoding a state advertised by the local apparatus based on its conditions (e.g., ‘0’ represents W0, ‘1’ represents W2, ‘2’ represents W3, and ‘3’ represents Sleep). The signal proposed_link_state is periodically updated and exchanged over the wireless link when in the W0 state502.

An apparatus advertises a transition to the sleep state504(arc a) when it detects that the processing apparatus110is disabled or disconnected. The apparatus advertises a transition to the W2 state506(arc b1) when it detects that USB 2.0 has disconnected or suspended and USB 3.0 has gone into U2 low-power state. The apparatus advertises a transition to the W3 state508(arc c1) when it detects that USB 2.0 has disconnected or suspended and USB 3.0 has gone into U3 state. The apparatus advertises a transition to the proximity detect state510when the HF wireless link (i.e., a wireless link130using high frequency transmit and receive data paths) is lost.

The state change out of W0 occurs only after both sides of the wireless link130advertise the same low power state (e.g., SLEEP, W2, or W3). Otherwise, both apparatuses remain in the W0 state502. In the W0 state502the value of proposed_link_state is transmitted periodically. After both local and remote apparatuses advertise the same low power state, the apparatuses transition to that state.

Exiting from the W2 state506to the W0 state502(arc b2) is triggered by an upstream or downstream processing apparatus sending an exit event. For example, in USB 3.0, the exit event may comprise a U2 exit LFPS (Low Frequency Periodic Signaling) to a wireless tunneling apparatus120. In order for the W2 exit to occur, the wireless tunneling apparatus120transmits back a handshake LFPS with low enough latency to meet the requirements of the underlying serial protocol (e.g., 2 ms for USB 3.0 links). In one implementation, the fast W2 exit is facilitated by keeping all phase-locked loops (PLLs) powered when operating in the W2 state506.

In one example, states of the processing component state machine408are mapped to states of the wireless component state machine480, as shown below in Table 2.

TABLE 2Mapping between USB3.0 LTSSM states and wireless power statesLTSSM States(from USB3.0 Specification)Wireless Power StatesU1W0U2W2U3W3SS.Disabled, SS.Inactive, Rx.DetectLoop between W0/SleepU0 and all other active statesW0
Wireless Tunneling Apparatus Architecture for USB3.0

FIG. 6shows architecture of the wireless tunneling apparatus conforming to the USB3.0 protocol, according to one embodiment. The USB3.0 standard prescribes support for four different transfer speeds: super-speed (herein also referred to as “SS”), high-speed (herein also referred to as “HS”), full-speed (herein also referred to as “FS”), and low-speed (herein also referred to as “LS”).FIG. 6shows dataflow for all four USB speeds through the USB PHY402and USB Digital404.

On one side of the USB PHY402is the cable interface with the processing apparatus110. On the other side of the USB PHY402is the digital data interface to the USB Digital404, operating at a frequency lower than that of the cable interface. The USB PHY402provides support for all aspects of super-speed USB601functionality and interfaces with the USB Digital404via the industry standard PIPE interface611. This bi-directional interface comprises two buses—one each for data going in and out of the USB PHY402. The bus width in PIPE interface611is 16 or 32 bits. In one embodiment, the 16-bit bus width is employed to reduce latency. Likewise the high-speed data602from cable interface is interfaced with the USB Digital404using industry-standard UTMI interface. In most conventional USB PHY implementations, the full-speed and low-speed data603are provided both on UTMI interface612and serial interface613. In one aspect, UTMI interface612is employed for designing digital design pipelines. However, the UTMI interface comprises 8 or 16-bit wide buses, and may suffer from large latencies due to cycles for serialization or deserialization of FS/LS data bits, thereby making it unsuitable for low-latency tunneling design. To overcome this large latency, in one embodiment the serial interface613is employed to interface FS/LS data603with USB digital404.

The USB digital404comprises components for SS, HS, FS, and LS. The super-speed subsystem620comprises SS receive data-path block622and SS transmit data-path block623, and a USB3.0 super-speed state machine621that controls the operation of the data-path blocks, as will be described later. Likewise the HS/FS/LS subsystem630comprises HS receive data-path block632, HS transmit data-path block633, serial receive data-path634, serial transmit data-path block635, and USB2.0 state machine631. The USB2.0 state machine631controls operation of these data path blocks in the HS/FS/LS subsystem630, as will be described later. In any given session, the tunneling system operates in one of HS, FS, or LS modes, depending on the detection state between the processing apparatus110and the wireless tunneling apparatus120. In certain USB connection topologies, SS and one of HS/FS/LS can be active simultaneously, for example, when a pair of wireless tunneling apparatuses resides between a processing apparatus that is a USB3.0 host and a processing apparatus that is USB3.0 hub.

The USB digital404provides data to the encoder416for wireless transmission using two interfaces that are operational in parallel: one for super-speed651, and another for HS/FS/LS652. The encoder416packs the data from both these interfaces as per a fixed frame structure, and provides a single data stream to transmitter420for wireless transmission. Likewise, the interface of USB digital404with decoder454comprises an interface for super-speed653data and another, for HS/FS/LS654data. The decoder454receives a data stream from the wireless receiver440, unpacks the data stream as per a fixed frame structure, and provides data simultaneously on both interfaces for super-speed653data and HS/FS/LS654data.

Example State Machine Implementation for USB Protocol

USB 3.0 Super-Speed State Machine

The Link Training and Status State Machine (LTSSM) in USB 3.0 specification is a state machine defined for link connectivity and link power management. The specification defines 12 states with 24 sub-states for specific functionalities, as summarized in Table 3.

TABLE 3LTSSM states and sub-states from USB 3.0 SpecificationLTSSM Sub-states (24)LTSSM States (12)FunctionalityU0U0State in which SS packet transfers inprogressU1U1Low power state with short exit latencyU2U2Low power state with exit latency morethan U1U3U3Low power state with most exit latencySS.Inactive.Disconnect.DetectSS.InactiveLink error state where a link is in aSS.Inactive.Quietnon-operable state and system/software intervention is necessaryRx.Detect.ResetRx.DetectState in which USB port isRx.Detect.Activeattempting to determine if SS linkRx.Detect.Quietpartner is present and upon detectingpresence the link training is startedSS.Disabled.DefaultSS.DisabledSuperspeed connectivity is disabledSS.Disabled.Errorand the link may operate under USB2.0 modeCompliance ModeCompliance ModeState to allow for transmitter compliancetestLoopback.ActiveLoopbackState to allow for bit error testLoopback.ExitRecovery.ActiveRecoveryState for retraining link after exitingRecovery.Configurationlow power state, or detecting thatRecovery.Idlelink is not operating in U0 properly, or alink partner decides to change mode oflink operationHot Reset.ActiveHot ResetState defined to allow a downstreamHot Reset.Exitport to reset its upstream portPolling.LFPSPollingState defined for two link partnersPolling.RxEQto have their SS transmitters andPolling.Activereceivers trained, synchronized, andPolling.Configurationready for packet transferPolling.Idle

The 25-state USB3.0 super-speed state machine631inside USB digital404is implemented by optimizing the 24-state LTSSM and adapting for wireless tunneling according to one embodiment. It is shown in Table 4. The USB3.0 super-speed state machine631is derived from LTSSM by either one of: collapsing multiple sub-states into one, splitting a single sub-state into multiple states, or adding a new state. That derivation is shown in Table 4.

The USB3.0 super-speed state machine is designed to track the LTTSM state of the USB host/device/hub on the opposite side of the wireless link, as shown inFIG. 1. The state transitions are therefore made based on one of three types of inputs:

(1) Signaling information received over wireless from USB3.0 super-speed state machine of the remote wireless tunneling apparatus (e.g., remote.RX_SIG_POWEROFF from Table 7),

(2) USB packet data received over wireless from the remote wireless tunneling apparatus (denoted as remote.data), and

Table 5 summarizes the list of all super-speed signaling information used. Table 6 shows the packet structure for transmitting signaling information over wireless. Super-speed signaling information is encoded and communicated as in-band payload over wireless. The signaling information may be sent over wireless whenever there is no super-speed packet data to be transmitted.

In Table 6, Dxx.x is the encoded signaling symbol—one of the encoded values from Table 5. Replicating Dxx.x four times is employed to improve resilience against wireless errors, in one embodiment.

Table 7 summarizes next states and transition conditions for the 25-state USB 3.0 super-speed state machine631, It is designed to support USB3.0 super-speed link connectivity and link power management functionalities, according to one embodiment. Towards the bottom of the table are two global conditions that apply to multiple states and enable transition to two fixed states: POWER_OFF and SS.Disabled.Default.

At the bottom of Table 7, the terms used to describe the condition use names and symbols borrowed from the USB 3.0 specification and the PIPE interface specification. Also used in these equations is signaling information from Table 5. For example, remote.RX_DETECT_SUCCESS used in Row 7 of Table 7 is the “Receive Detection Pass” signaling received over wireless link from the remote wireless apparatus.

Implementing low power states for wireless tunneling apparatus saves power consumption in many usage scenarios, for example, entering low power state while waiting for USB device plugin (Sleep/W0 loop) or entering low power state while waiting for W2 exit or W3 exit. Note that in both these scenarios the low power state could last a long time, since the transitions in and out of these states are usually triggered at human timescale. It is therefore beneficial to design the wireless tunneling apparatus to support low power states for these scenarios.

In order to wake-up the apparatuses in low-power state, a separate low-frequency (LF) and low-power wireless data-path is implemented. The LF TX circuit424is used to transmit asynchronous signals across the wireless link. The USB digital logic asynchronously drives the signal SSUWakeup (or alternately HSUWakeup for USB 2.0) high whenever the USB PHY detects LFPS (low frequency periodic signaling) on the cable interface while the apparatuses are in U2 or U3 low power state. This asynchronous signal is transmitted using LF TX circuit424and under the control of the wireless component state-machine480.

Likewise the signal SSWWakeup is driven by the LF RX circuit446whenever wakeup signal is detected over wireless link. This is used by the wireless component state machine480and USB Digital404to transition the apparatuses into an operational state U0.

Tables 8 and 9 describe the exemplary W2 entry/exit sequence and Sleep entry/exit sequence, respectively, according to one embodiment. The Initiator column in the tables use the following notations:

“Host”: USB host or upstream USB hub (e.g., processing apparatus110A)

“Device”: USB peripheral or downstream USB hub (e.g., processing apparatus110B)

“US-W”: Wireless blocks on upstream side (e.g., wireless tunneling apparatus120A)

“DS-W”: Wireless blocks on downstream side (e.g., wireless tunneling apparatus120B).

In W2/W3 states, the digital clocks are stopped and mixed-signal/radio blocks are put in low-power state. However in Sleep mode the entire USB digital404(including state machines) and most of wireless blocks lose power. In an embodiment, there is a small always-ON digital state-machine that retains power even during Sleep.

USB 2.0 State Machine

The USB2.0 state machine631for HS/FS/LS data is adapted and optimized starting from the Reset Protocol State Machine (RPSM) described in the USB 2.0 specification. It handles high-speed, full-speed, and low-speed operations using the D+/D−lines.

Table 10 shows signaling information generated by the USB 2.0 state-machine. The encoding of the bytes for wireless communication uses the same scheme as super-speed (described in Table 6).

TABLE 10USB 2.0 signaling informationEncoded ValueSignaling(8 bit - binary)Comment1LINE_STATE_SE00000_0000Change of line state to SE0 at remote SlingshotUTMI2LINE_STATE_00000_0010Change of line state to differential “0” at remoteSlingshot UTMI3LINE_STATE_10000_0001Change of line state to differential “1” at remoteSlingshot UTMI4LINE_STATE_SE10000_0011Change of line state to SE1 at remote SlingshotUTMI5HostDisconnect0001_0001HostDisconnect 0->1 change at remote SlingshotUTMI. Valid for DS only6HostConnect0001_0000HostDisconnect 1->0 change at remote SlingshotUTMI. Valid for DS only7VBUS_ON0010_0001PowerPresent 0->1 transition at remote Slingshot8VBUS_OFF0010_0000PowerPresent 1->0 transition at remote Slingshot

Table 11 summarizes the next state and transition condition for the 17-state USB 2.0 state machine631. This state-machine is simpler than the one for super-speed, since super-speed operation implements a more sophisticated power management. The USB 2.0 state machine631on the other hand needs different states for supporting HS, FS, and LS—as evident from a few states replicated three times in the Table below. Towards the bottom of the table there are three global conditions that apply to multiple current states. They enable transition to three fixed states: Poweroff, Disconnected, and Reset_SE0.

At the bottom of Table 11, the terms used in Condition use names and symbols borrowed from the USB 2.0 specification and the UTMI interface specification. Also used in these equations is USB 2.0 signaling information from Table 10.

Table 12 and 13 describe W3 entry/exit and Sleep entry/exit sequences for high-speed, full-speed, and low-speed operations. In these tables the “xx_” prefix denotes either one of HS, FS, and LS.

As described earlier, the wireless design supports the power states: W0, W2, W3, and Sleep. The states W0, W2, and W3 get mapped to USB3.0 super-speed states U0, U2, and U3. In one embodiment, the apparatus does not power down wireless blocks in U1 state since the exit latency requirement for U1 is very short. The “suspend” power state in USB 2.0 is mapped to W3. This is because the “suspend-resume” exit latency requirement is comparable to that of super-speed U3.

In one embodiment, the wireless tunneling apparatus can be used on upstream side of a USB 3.0 hub, thereby utilizing both USB3.0 super-speed and USB 2.0 data transfers simultaneously. Therefore, in this embodiment, the power state W3 is entered only after checking both the USB 2.0 state machine631and the USB3.0 super-speed state machine621. For example, W3 is entered only if the USB 3.0 super-speed link is in U3 or Disabled state and the USB 2.0 link is in Suspend state. Likewise the Sleep state is entered only if USB3.0 super-speed link is in Disabled state and USB 2.0 link is in Disconnected state.