Modern computing systems can include a variety of communication devices that send and receive data. Examples of communication devices include parallel interface devices and serial interface devices such as the universal serial bus (USB). USB is an industry protocol designed to standardize the interfaces between computer devices for communication and supplying electrical power. The USB protocol has enjoyed widespread adoption in nearly every computing device, and has received tremendous support in terms of technology development with well-established intellectual property (IP) portfolios and standardized software infrastructure.
The standard USB2 specification uses 3.3 Volt analog signaling for communications between the two USB2 ports. The 3.3 Volt signal strength tends to introduce integration challenges because some advanced semiconductor processes are moving towards a very low geometry leading to the gate oxide of a CMOS transistor no longer able to tolerate higher voltages, such as 3.3 Volt. In addition, the standard USB2 specification results in relatively high levels of power consumption at both idle and active states. As a result, USB2 may not be suitable for devices that place stringent specifications on I/O power consumption, such as mobile platforms.
The following detailed description may be better understood by referencing the accompanying drawings, which contain specific examples of numerous objects and features of the disclosed subject matter.
eUSB2 is a newly proposed input/output (IO) solution that aims to reduce the voltage cost and power consumption of USB 2.0 interfaces, eUSB2 uses 1.0 Volt (V) digital signaling instead of the 3.3 Volt analog signal in USB 2.0 Low-Speed (LS) and Full-Speed (FS) operations. Additionally, eUSB2 uses 0.2 V differential signaling instead of the 0.4 V differential signaling for USB 2 High-Speed (HS) interfaces. Due to the differences in the signal strength of USB2 and eUSB2, an eUSB2 repeater may be used as an electrical bridging solution to ensure that these two IO implementations may communicate with each other.
A clock-less half-duplex eUSB2 repeater can be used to bridge communications between a USB2 interface and a low-voltage signaling interface such as eUSB2. A clock-less half-duplex eUSB2 repeater, also referred to herein as an eUSB2 repeater, is a device that can communicate data between a standard USB2 interface and a low-voltage signaling interface without a clock source, such as a phase locked loop (PLL), as an input. A clock-less half duplex eUSB2 repeater cannot implement clock data recovery to decode and retime a data packet. The traffic flow control in a clock-less half duplex repeater can be implemented by detecting the raw electrical signaling level. A low voltage, as referred to herein, includes any voltage used to transmit data by an eUSB2 protocol. For example, an eUSB2 interface is a low-voltage signaling interface that may send and receive data at 0.2 V for high-speed data transmission, while a standard USB2 interface may send and receive data at a higher voltage of 0.4 V for high-speed data transmission. A high voltage, as referred to herein, includes any voltage used to transmit data by a standard USB2 protocol.
In accordance with embodiments, a repeater is configured to detect device disconnect between interfaces of different communication physical layers, such as USB2 and eUSB2. The repeater can employ a simple filtering mechanism to recognize an instruction to detect downstream device disconnect without the repeater having the capability to decode data packets.
Reference in the specification to “one embodiment” or “an embodiment” of the disclosed subject matter means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosed subject matter. Thus, the phrase “in one embodiment” may appear in various places throughout the specification, but the phrase may not necessarily refer to the same embodiment.
In embodiments, the repeater 102 can detect and forward data that is received from either the USB2 device 106 or eUSB2 SOC 104. For example, the repeater 102 may detect a sequence of electrical signals that represent data to transmit from the eUSB2 SOC 104 to the USB2 device 106 at a high speed. In embodiments, the repeater 102 can detect and execute commands.
If the USB2 device 106 becomes disconnected, the repeater 102 can signal to the eUSB2 SOC 104 that device disconnect has occurred. In embodiments, a special data packet can be transmitted from the eUSB2 SOC 104 to confirm that the disconnect event is legitimate.
The repeater eUSB2 port 112 may include an eUSB2 unsquelch circuit 208 configured for detecting line activity. In embodiments, the eUSB2 unsquelch circuit 208 can be repurposed to also receive a start-of-frame indication. The eUSB2 unsquelch circuit 208 can receive data packets received from the low voltage signals 202. The eUSB2 unsquelch circuit 206 can measure the differential voltage of the packet, which can help determine whether or not a packet is a start-of-frame (SOF) packet. The repeater USB2 port 116 may also include a disconnect envelope detector circuit 212 configured to receive a disconnect indication. The disconnect envelope detector circuit 212 can check the voltage of signals transmitted between the repeater USB2 port 116 and a device USB2 port 106. If the voltage exceeds a certain threshold, the disconnect envelope detector circuit 212 can send an output to the repeater state machine 206 indicating that a possible disconnect event has been detected. The repeater can be configured such that the output can be sent to the repeater state machine 206 only if either the eUSB2 unsquelch circuit 208 detects an SOF packet.
In
Reflections due to impedance discontinuities in the wire can also cause the voltage swing to momentarily exceed the threshold while the differential transmitter 302 and the device receiver 304 are still connected. In order to prevent a false declaration of device disconnect due to wire reflection, the repeater can require that a special data packet, which has sufficiently long static bits to allow the reflection to subside, be transmitted. A USB2 start-of-frame (SOF) packet can be used for this purpose. A mechanism can be defined for a clockless repeater to identify the SOF packet without having to decode a Packet Identifier (PID) through a clock data recovery circuit. The mechanism, which can involve the unsquelch circuit and other filtering circuits, is described hereafter.
The SOF packet 400 can be transmitted from an eUSB2 SOC and be detected by an unsquelch detector in the repeater. The SOF packet 400 can be used by the repeater to determine whether or not to accept and read an output from a disconnect envelope detector (from the USB2 port), thus reducing the chance of reading a false disconnect event. The SOF packet 400 can include a SYNC pattern 402, a Packet Identifier (PID) 404, a frame number 406, a cyclic redundancy check (CRC) 408, and an end-of-packet (EOP) 410. The EOP 410 is not only used as an indicator of the packet's end, but also to identify the packet as an SOF packet. The EOP segment 410 can be a set number of consecutive bits held at differential “1” or “0” that is substantially longer than the EOP segment of a standard packet. In some embodiments, the repeater is configured to identify a packet as an SOF packet if the number of consecutive static bits in the EOP segment 410 is equal to or larger than a defined SOF threshold. The SOF threshold can be a number that is larger than the number of consecutive static bits in the EOP segment 410 of a standard packet, but no larger than the number of consecutive static bits in the EOP segment 410 of the SOF packet 400. In some embodiments the EOP segment 410 of the SOF packet 500 includes 40 consecutive static bits.
The standard packet 500 can be transmitted from an SOC port to a peripheral device port, or from a peripheral device port to an SOC port. The standard packet 500 can also be forwarded from an eUSB2 SOC to a USB2 device, or from a USB2 device to an eUSB2 SOC, through a repeater. The standard packet 500 can include a SYNC pattern 502, a Packet Identifier (PID) 504, a data payload 506, a cyclic redundancy check (CRC) 508, and an end-of-packet (EOP) 510. The data payload 506 can include data or instructions from the SOC or device encoded as static bits of differential “1” or “0”. The number of consecutive static bits at either “1” or “0” cannot exceed a data payload threshold. In some embodiments, the data payload threshold is 7 bits due to data encoding implementation in USB2. The EOP 510 is an indicator of the packet's end. The EOP 510 can be a set number of consecutive bits held at “1” or “0” that exceed the data payload threshold. In some embodiments, the EOP segment 510 includes 8 consecutive static bits.
At block 602, the SOF detection circuit 600 reads the differential voltage, of a data packet received by the repeater eUSB2 port 112. In embodiments, the differential voltage of the data packet may be detected by the eUSB2 unsquelch circuit 208. The SOF detection circuit 600 measures the voltage difference between the repeater's data wires, which can be eD+ and eD−, for each bit in the data packet. If the voltage difference between the positive and negative data wires exceeds an unsquelch threshold, then the SOF detection circuit 600 proceeds onto the next block.
At block 604, the SOF detection circuit 600 converts the data packet from differential signaling to single-ended signaling. Each bit in the data packet is converted into a static bit identified as differential “1” or differential “0”. If the voltage of the positive wire (eD+ or D+) is greater than the voltage of the negative wire (eD− or D−), the static bit may be identified as differential “1”. If the voltage of the negative wire (eD− or D−) is greater than the voltage of the positive wire (eD+ or D+), then the static bit may be identified as differential “0”.
At block 606, SOF detection circuit 600 examines the data packet to determine whether or not the data packet is an SOF packet. The SOF detection circuit 600 searches for an EOP segment belonging to an SOF packet. In embodiments, the EOP segment contains 40 consecutive static bits of the same data value. The SOF detection circuit 600 checks for whether or not a threshold for number of consecutive static bits is met. The threshold for number of consecutive static bits can be larger than the number of consecutive static bits found in the EOP segment of a standard packet, but no larger than the number of consecutive static bits found in the EOP segment of an SOF packet. If the data packet is indeed an SOF packet, the SOF detection circuit 600 notifies the disconnect output qualifier circuit 608 that an SOF packet has been detected. The implementation used to perform this step can be analog or digital.
At block 902, a repeater eUSB2 port unsquelch circuit looks for valid signaling. The valid signaling can be a data packet that includes a data payload segment and an end-of-packet (EOP) segment. The EOP segment can contain a number of consecutive static bits of differential-J (or “1”) or differential-K (or “0”). The number of consecutive static bits can identify whether or not the data packet is a start-of-frame (SOF) packet that is used to indicate device disconnect.
At block 904, the repeater determines whether to set an SOF_detect flag on. The repeater can inspect the data packet and check for the number of consecutive static bits contained in the EOP segment. If the number of consecutive differential-J or differential-K is more than a pre-determined filtering threshold, then the SOF_detect flag is set to ON. Setting the SOF_detect flag to ON indicates that an SOF packet has been detected.
At block 906, the repeater will have received an output from a repeater USB2 disconnect circuit (or disconnect envelope detector), indicating that a voltage swing that meets or exceeds a voltage threshold has been detected in the wires connecting the repeater's communication port to the USB2 peripheral device's communication port. If the SOF_detect flag is ON, the repeater USB2 disconnect circuit output will be unmasked and sent to the repeater state machine.
At block 908, the repeater communicates with the SOC eUSB2 port. The repeater state machine can signal the SOC eUSB2 port that a USB2 disconnect event has been detected.
Although some embodiments have been described in reference to particular implementations, other implementations are possible according to some embodiments. Additionally, the arrangement and order of circuit elements or other features illustrated in the drawings or described herein need not be arranged in the particular way illustrated and described. Many other arrangements are possible according to some embodiments.
In each system shown in a figure, the elements in some cases may each have a same reference number or a different reference number to suggest that the elements represented could be different or similar. However, an element may be flexible enough to have different implementations and work with some or all of the systems shown or described herein. The various elements shown in the figures may be the same or different. Which one is referred to as a first element and which is called a second element is arbitrary.
In the description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. Rather, in particular embodiments, “connected” may be used to indicate that two or more elements are in direct physical or electrical contact with each other. “Coupled” may mean that two or more elements are in direct physical or electrical contact. However, “coupled” may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
An embodiment is an implementation or example of the inventions. Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments, of the inventions. The various appearances “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments.
Not all components, features, structures, characteristics, etc. described and illustrated herein need be included in a particular embodiment or embodiments. If the specification states a component, feature, structure, or characteristic “may”, “might”, “can” or “could” be included, for example, that particular component, feature, structure, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, that does not mean there is only one of the element. If the specification or claims refer to “an additional” element, that does not preclude there being more than one of the additional element.
Although flow diagrams and state diagrams may have been used herein to describe embodiments, the inventions are not limited to those diagrams or to corresponding descriptions herein. For example, flow need not move through each illustrated box or state or in exactly the same order as illustrated and described herein.
The inventions are not restricted to the particular details listed herein. Indeed, those skilled in the art having the benefit of this disclosure will appreciate that many other variations from the foregoing description and drawings may be made within the scope of the present inventions. Accordingly, it is the following claims including any amendments thereto that define the scope of the inventions.