In one embodiment, a transceiver comprises transmitter circuitry, receiver circuitry, short-circuit detection circuitry, and short-circuit protection circuitry. The transmitter circuitry transmits at least one outgoing signal to a cable connected to the transceiver, and the receiver circuitry receives the at least one outgoing signal. The short-circuit detection circuitry analyzes the at least one outgoing signal to detect a short circuit in the at least one outgoing signal, and the short-circuit protection circuitry protects the transmitter circuitry upon detection of the short circuit.
Embodiments of the disclosure will become more fully apparent from the following detailed description, the appended claims, and the accompanying drawings in which like reference numerals identify similar or identical elements.
Reference herein to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiments. The same applies to the term “implementation.”
The Universal Serial Bus (USB) engineering change notice titled 5V Short Circuit Withstand Requirement Change 5V (22 Dec. 2008) amended Universal Serial Bus Specification Revision 2.0 (27 Apr. 2000) (“the USB 2.0 specification”), both of which are incorporated herein by reference, to state that “A USB transceiver is required to withstand a continuous short circuit of D+ and/or D− to GND, other data line, or the cable shield at the connector, for a minimum of 24 hours without degradation,” where D+ and D− respectively refer to true and complement data signals. To meet this requirement, devices and resistors in the physical layer can be increased in size. However, such increase in size can drastically increase the silicone area and power required for a USB 2.0 device. Rather than, or in addition to, increasing the sizes of devices and resistors to withstand short circuits, USB transceivers can be implemented with logic to detect short circuits and disable the devices and resistors that are susceptible to damage from a short circuit, thereby reducing the amount of time that the circuitry must tolerate a shorted condition.
When transceiver 100 is in a normal low-speed (LS) or full-speed (FS) transmit mode, transceiver 100 transmits a differential pair of analog data signals comprising a true data signal Data+ and a complement data signal Data− to a remote USB transceiver (not shown) over USB cable 122. However, when one or both of the signal paths carrying the analog data signals Data+ and Data− is shorted to ground, the shorted path (or paths) experiences relatively high currents flowing through LS/FS driver 114 and pull-up resistor 116 that destroys the differential nature of the pair of analog signals Data+ and Data−.
To detect a short circuit to ground, a true-signal single-ended receiver 102 and a complement-signal single-ended receiver 104 of transceiver 100 converts the analog signals Data+ and Data−, respectively, to true and complement digital signals SE_Data+_Receiver_Output and SE_Data−_Receiver_Output, respectively. Note that the pins (not shown) connecting transceiver 100 to USB cable 122 are bi-directional input-output pins that allow single-ended receivers 102 and 104 to receive the analog data signals Data+ and Data−, respectively, transmitted by LS/FS driver 114.
The true and complement digital signals SE_Data+_Receiver_Output and SE_Data−_Receiver_Output are provided to short-circuit detection circuit 106, which detects a short circuit in one or both of the signal paths carrying the true and complement data signals Data+ and Data−. In general, short-circuit detection circuit 106, which is discussed in further detail below, detects whether or not a short circuit is present based on characteristic changes in the states of one or both of digital signals SE_Data+_Receiver_Output and SE_Data−_Receiver_Output while transceiver 100 is transmitting a packet. If the differential nature of signals Data+ and Data− has been destroyed, then a short circuit is detected, and short-circuit detection circuit 106 drives a disable signal Disable high.
The disable signal Disable is inverted by inverter 108 and provided to AND gate 110 along with an LS/FS driver enable signal LS/FS_Driver_Output_Enable, which is equivalent to LS/FS driver enable signal LS/FS_Driver_Output_Enable in the USB 2.0 specification. The LS/FS driver enable signal LS/FS_Driver_Output_Enable is driven high to turn on LS/FS driver 114 whenever transceiver 100 is in the transmit mode and driven low to turn off LS/FS driver 114 whenever transceiver 100 is not in the transmit mode. Whenever Disable is driven high, indicating the detection of a short circuit, AND gate 110 overrides the LS/FS driver enable signal LS/FS_Driver_Output_Enable by driving an adjusted enable signal Adj_Driver_Output_Enable low. As a result, the adjusted enable signal Adj_Driver_Output_Enable disables LS/FS driver 114, thereby protecting LS/FS driver 114 from processing excessively high currents.
The inverted disable signal Inv_Disable is also provided by inverter 108 to AND gate 112 along with a pull-up resistor (Rpu) enable signal Rpu_Enable, which is equivalent to Rpu enable signal Rpu_Enable in the USB 2.0 specification. Rpu enable signal Rpu_Enable is driven (i) high in low-speed and full-speed transmissions and during the Chirp sequence of the high-speed detection handshake to close switches 118 and 120, thereby coupling pull-up resistor 116 to the true and complement data signals Data+ and Data−, and (ii) low in high-speed transmissions to open switches 118 and 120, thereby de-coupling pull-up resistor 116. Whenever Disable is driven high, indicating the detection of a short circuit, AND gate 112 overrides the Rpu enable signal Rpu_Enable by driving an adjusted enable signal Adj_Rpu_Enable signal low. As a result, the adjusted enable signal Adj_Rpu_Enable opens switches 118 and 120, thereby de-coupling pull-up resistor 116 such that pull-up resistor 116 is protected from damage.
In one implementation, digital signals SE_Data+_Receiver_Output and SE_Data−_Receiver_Output received by short-circuit detection circuit 106 are each non-return-to-zero inverted (NRZI) encoded signals. The NRZI encoding is performed by the remote transceiver that generates the analog true and complement data signals Data+ and Data−. In NRZI encoding, a bit value of one is represented by no change in state and a bit value of zero is represented by a change in state (i.e., from high to low or low to high). Thus, when a string of consecutive zeros is NRZI-encoded, the NRZI-encoded signal toggles between high and low states. However, when a string of consecutive ones is NRZI-encoded, the NRZI-encoded signal does not toggle resulting in periods where there are no transitions in the data signal.
In USB systems, the receiver relies on transitions in the data signal to obtain data and clock lock. Thus, in order to ensure adequate signal transitions, the USB 2.0 specification employs bit stuffing, wherein a zero is inserted after every six consecutive ones in the data stream before the data is NRZI encoded. The zero is a non-information bit that is added for the purpose of ensuring that a data transition occurs at least once every seven bit periods.
When the true data signal Data+ or the complement data signal Data− is shorted to ground, the NRZI-encoding of that signal is lost. As a result, the corresponding digital signal SE_Data+_Receiver_Output or SE_Data−_Receiver_Output does not toggle and comprises only zeros. Short-circuit detection circuit 106 exploits the fact that the NRZI encoding of USB should transition from state to state in order to detect whether or not a short circuit is present. If either or both of signals SE_Data+_Receiver_Output and SE_Data−_Receiver_Output do not transition for a specified number of bit periods (e.g., eight or more), then short-circuit detection circuit 106 detects a short circuit.
On the upper path 202, digital signal SE_Data+_Receiver_Output is buffered by buffer 206 and the state of true digital signal SE_Data+_Receiver_Output during each bit period is stored by flip-flop 208. Similarly, on the lower path 204, digital signal SE_Data−_Receiver_Output is buffered by buffer 218 and the state of complement digital signal SE_Data+_Receiver_Output during each bit period is stored by flip-flop 220. Typically, the states of digital signals SE_Data+_Receiver_Output and SE_Data−_Receiver_Output themselves do not represent bit values. Rather, as described above, a bit value of zero is represented by a change in the state of digital signals SE_Data+_Receiver_Output and SE_Data−_Receiver_Output and a bit value of one is represented by no change in the state of digital signals SE_Data+_Receiver_Output and SE_Data−_Receiver_Output.
To detect short circuits in true data signal Data+, AND gate 210 of upper path 202 performs logical conjunction on each state of digital signal SE_Data+_Receiver_Output and the inverse of each corresponding state of digital signal SE_Data−_Receiver_Output (as indicated by the small circle at the lower input of AND gate 210) to generate a value DiffOne. Since Data+ and Data− are differential signals, the value of SE_Data+_Receiver_Output and the inverse of SE_Data+_Receiver_Output should always be the same. AND gate 210 sets the DiffOne value equal to zero each time that (i) the values of SE_Data+_Receiver_Output and the inverse of SE_Data−_Receiver_Output are not the same, indicating that the differential signaling is lost, or (ii) the value of digital signal SE_Data+_Receiver_Output is zero, indicating that the NRZI-encoding of SE_Data+_Receiver_Output could possibly be lost. Each time that the DiffOne value is equal to zero, inverter 212 provides an inverted DiffOne value equal to one to DiffOne counter 214, which increments a DiffOne_Counter value by one. Each time that the DiffOne value is equal to one, DiffOne counter 214 resets the DiffOne_Counter value to zero.
Each bit period, the DiffOne_Counter value generated by DiffOne counter 214 is compared by comparator 216 to a specified threshold value sptimer, where sptimer is greater than seven (e.g., eight or more) and may be determined empirically. If the DiffOne_Counter value is less than the threshold value sptimer, then upper path 202 does not detect a short circuit, and comparator 216 drives a true detection signal detect+ low. If the DiffOne_Counter value reaches the threshold value sptimer, then upper path 202 detects a short circuit, and comparator 216 drives the true detection signal detect+ high. Once a short circuit is detected, the true detection signal detect+remains in a high state until DiffOne counter 214 resets the DiffOne_Counter value.
Lower path 204 comprises components 218-228, which operate in a manner analogous and complementary to components 206-216 of upper path 202 to detect short circuits on the signal path carrying complement data signal Data−and generate complement detection signal detect−.
If either or both of the detection signals detect+ and detect− are in a high state, then OR gate 230 drives a combined detection signal detect+/− high. The combined detection signal is provided to AND gate 232 along with the inverse of an IgnoreBitStuffError signal. Typically, the IgnoreBitStuffError signal is driven low during transmissions where bit stuffing is performed without error. However, whenever there is a bit-stuffing error that might prevent digital signal SE_Data+_Receiver_Output and/or digital signal SE_Data−_Receiver_Output from toggling, the IgnoreBitStuffError signal is driven high. The bit-stuffing error can be the result of, for example, the USB transmitter 100 receiving insufficient user data when transmitting a packet to USB cable 122. Applying both the combined detection signal detect+/− and the IgnoreBitStuffError signal to AND gate 232 prevents short-circuit detection circuit 200 from inadvertently detecting a bit-stuffing error as a short circuit, and consequently, prevents LS/FS driver 114 and pull-up resistor 116 of transceiver 100 from being disabled.
AND gate 232 provides short-circuit detection signal Short_Circuit_Detect to flip-flop 234. When short-circuit detection signal Short_Circuit_Detect is driven high, flip flop 234 drives the disable signal Disable high. The disable signal Disable remains high until a power-on-reset signal POR is driven high. The power-on-reset signal POR is the master reset to the chip on which transceiver 100 resides and is usually driven high once power is applied to the chip. To further understand the operation of short-circuit detection circuit 200, consider
On lower path 204, AND gate 222 outputs DiffZero values that toggle between zero and one. As a result, DiffZero counter 226 resets the DiffZero_Counter value every time a DiffZero value of one is received, such that the DiffZero_Counter value is not permitted to increase to the threshold value sptimer, and complement detection signal detect− remains low. At bit period n, OR gate 230 drives the combined detection signal detect+/− high due to true detection signal detect+ being driven high. The combined detection signal remains high as long as the DiffOne_Counter value does not reset and continues to increase above the threshold value sptimer.
On lower path 204, AND gate 222 outputs DiffZero values that are all zero, and DiffZero counter 226 increments the DiffZero_Counter value by one each bit period. At bit period n, comparator 228 determines that the DiffZero_Counter value is equal to threshold value sptimer, and as a result, complement detection signal detect− is driven high, and OR gate 230 drives the combined detection signal detect+/− high. Complement detection signal detect− and combined detection signal detect+/− remain high as long as the DiffZero_Counter value is not reset and continues to increase above the threshold value sptimer.
In operation, short-circuit detection circuit 600 operates in a manner similar to that of short-circuit detection circuit 200. In particular, DiffOne counter 214 increments the DiffOne_Counter value each time the state of SE_Data+_Receiver_Output is low and resets when the state is high. Similarly, DiffZero counter 226 increments the DiffZero_Counter value when the state of SE_Data−_Receiver_Output is low and resets when the state is high.
Although some embodiments of the disclosure were described as detecting a short circuit in a USB 2.0 system, embodiments of the disclosure are not so limited. Alternative embodiments of the disclosure may be implemented in other USB systems and in non-USB systems that employ a differential pair of digital signals.
Further, although some embodiments of the disclosure were described relative to their use with NRZI encoding, embodiments of the disclosure are not so limited. Alternative embodiments of the disclosure may be implemented in systems that use encoding other than NRZI encoding such as non-return-to-zero (NRZ) encoding and non-return-to-zero-space encoding.
According to various alternative embodiments, short-circuit detection circuits of the disclosure can be implemented to detect a short circuit in as few as one data signal and or in more than two data signals. In embodiments that detect a short circuit in only one data signal, such embodiments may be implemented with only one detection path such as upper path 202 or lower path 204 and without an OR gate such as OR gate 230. In embodiments that detect a short circuit in more than two data signals, such embodiments may be implemented with one detection path per data signal and appropriate logic to combine the outputs from those different detection paths.
Although
Further, although
Note that, as used herein, the term “transceiver” refers to the combination of a transmitter and a receiver implemented at a single network node.
Although certain embodiments of the disclosure were described as detecting short circuits to ground, embodiments of the disclosure are not so limited. Various embodiments of the disclosure may be implemented to detect short circuits to high voltages. For example, some such embodiments may be implemented by counting the number of times that SE_Data+_Receiver_Output and/or SE_Data−_Receiver_Output are high.
Embodiments of the disclosure may be implemented as circuit-based processes, including possible implementation as a single integrated circuit (such as an ASIC or an FPGA), a multi-chip module, a single card, or a multi-card circuit pack. As would be apparent to one skilled in the art, various functions of circuit elements may also be implemented as processing blocks in a software program. Such software may be employed in, for example, a digital signal processor, micro-controller, or general-purpose computer.
Embodiments of the disclosure can be manifest in the form of methods and apparatuses for practicing those methods. Embodiments of the disclosure can also be embodied in the form of program code embodied in tangible media, such as magnetic recording media, optical recording media, solid state memory, floppy diskettes, CD-ROMs, hard drives, or any other non-transitory machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the embodiment. Embodiments of the disclosure can also be embodied in the form of program code, for example, stored in a non-transitory machine-readable storage medium including being loaded into and/or executed by a machine, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the embodiment. When implemented on a general-purpose processor, the program code segments combine with the processor to provide a unique device that operates analogously to specific logic circuits.
Unless explicitly stated otherwise, each numerical value and range should be interpreted as being approximate as if the word “about” or “approximately” preceded the value of the value or range.
It will be further understood that various changes in the details, materials, and arrangements of the parts which have been described and illustrated in order to explain the nature of this invention may be made by those skilled in the art without departing from the scope of the invention as expressed in the following claims.
The use of figure numbers and/or figure reference labels in the claims is intended to identify one or more possible embodiments of the claimed subject matter in order to facilitate the interpretation of the claims. Such use is not to be construed as necessarily limiting the scope of those claims to the embodiments shown in the corresponding figures.
It should be understood that the steps of the exemplary methods set forth herein are not necessarily required to be performed in the order described, and the order of the steps of such methods should be understood to be merely exemplary. Likewise, additional steps may be included in such methods, and certain steps may be omitted or combined, in methods consistent with various embodiments of the invention.
Although the elements in the following method claims, if any, are recited in a particular sequence with corresponding labeling, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those elements, those elements are not necessarily intended to be limited to being implemented in that particular sequence.
The embodiments covered by the claims in this application are limited to embodiments that (1) are enabled by this specification and (2) correspond to statutory subject matter. Non-enabled embodiments and embodiments that correspond to non-statutory subject matter are explicitly disclaimed even if they fall within the scope of the claims.