USB 3.0 is a replacement, and not an extension of USB 2.0

This post was written by eli on December 11, 2015
Posted Under: USB

USB 3.0 is slowly becoming increasingly common, and it’s a quiet revolution. These innocent-looking blue connectors don’t tell the little secret: They carry 4 new data pins (SSTX+, SSTX-, SSRX+, SSRX-), which will replace the existing D+/D- communication pins one day. Simply put, USB 3.0 is completely standalone; it doesn’t really need those D+/D- to establish a connection. Today’s devices and cables carry both USB 2.0 and USB 3.0 in parallel, but that’s probably a temporary situation.

This means that USB 3.0 is the line where backward compatibility will be cut away. Unlike many other hardware standards (the Intel PC in particular), which drag along legacy compatibility forever, USB will probably leave USB 2.0 behind, sooner or later.

It took me quite some effort to nail this down, but the USB 3.0 specification makes it quite clear on section 3.2.6.2 (“Hubs”):

In order to support the dual-bus architecture of USB 3.0, a USB 3.0 hub is the logical combination of two hubs: a USB 2.0 hub and a SuperSpeed hub. (…) The USB 2.0 hub unit is connected to the USB 2.0 data lines and the SuperSpeed hub is connected to the SuperSpeed data lines. A USB 3.0 hub connects upstream as two devices; a SuperSpeed hub on the SuperSpeed bus and a USB 2.0 hub on the USB 2.0 bus.

In short: a USB 3.0 hub is two hubs: One for 3.0 and one for 2.0. They are unrelated. The buses are unrelated. This is demonstrated well in the following block diagram shown in Cypress’ HX3 USB 3.0 Hub Datasheet (click to enlarge).

Cypress USB 3.0 hub block diagram

Even though any device is required to support both USB 2.0 and USB 3.0 in order to receive a USB 3.0 certifications (USB 1.1 isn’t required, even though it’s allowed and common), USB 3.0 is self-contained. The hotplug detection is done by sensing a load on the SuperSpeed wires, and all other PHY functionality as well.

An important conclusion is that a USB 3.0 hub won’t help those trying to connect several bandwidth-demanding USB 2.0 devices to a single hub, hoping that the 5 Gb/s link with the computer will carry the aggregation of 480 Mbit/s bandwidth from each device. There will still be one single 480 Mb/s link to carry all USB 2.0 devices’ data.

Having said all the above, there is a chance that the host may expect to talk with a physical device through both 2.0 and 3.0. For example, it may have some functionality connected to USB 2.0 only, and some to 3.0, through an internal hub. This doesn’t contradict the independence of the buses, but it may cause problems if SuperSpeed-only connections are made, as offered by Cypress’ Shared Link (TM) feature.

But the spec doesn’t encourage those USB 2.0/3.0 mixes, to say the least. Section 11.3 (“USB 3.0 Device Support for USB 2.0″) says:

For any given USB 3.0 peripheral device within a single physical package, only one USB connection mode, either SuperSpeed or a USB 2.0 speed but not both, shall be established for operation with the host.

And there’s also the less clear-cut sentence in section 11.1 (“USB 3.0 Host Support for USB 2.0″):

When a USB 3.0 hub is connected to a host’s USB 3.0-capable port, both USB 3.0 SuperSpeed and USB 2.0 high-speed bus connections shall be allowed to connect and operate in parallel. There is no requirement for a USB 3.0-capable host to support multiple parallel connections to peripheral devices.

The same is said about hubs on section 11.2 (“USB 3.0 Hub Support for USB 2.0″), and yet, it’s not exactly clear to me what they mean by saying that the parallel connections should be allowed, but not multiple parallel connections. Probably a distinction between allowing the physical layers to set up their links (mandatory) and actually using both links by the drivers (not required).

So one day, it won’t be possible to connect a USB 3.0 device to an old USB 2.0 plug. Maybe that day is already here.

USB 3.0 over fiber?

These SuperSpeed wires are in fact plain gigabit transceivers (MGT, GTX), based upon the same PHY as Gigabit Ethernet, PCIe, SATA and several others (requiring equalization on the receiver side, by the way). So one could think about connecting these four wires to an SFP+ optical transceiver and obtain a fiber link carrying USB? Sounds easy, and maybe it is, but at least these issues need to be considered:

  • The USB 3.0 spec uses low-frequency signaling (10-50 MHz) to initiate a link with the other side. SFP+ transceivers usually don’t cover this range, at least not in their datasheets (it’s more like 300-2500 MHz or so). So this vital signal may not reach the other side properly, and hence the link establishment may fail.
  • The transmitter is required to detect if there’s a receiver’s load on the other side, by generating a common-mode voltage pulse, and measure the current. SFP+ transceivers may not be detected as loads this way, as they typically have only a differential load between the wires. This is quite easily fixed by adding a compatible signal repeater between the USB transmitter and the SFP+ signal input pair.
  • The transmitter will detect a load even if the other side isn’t ready (e.g. there’s nothing connected to the SFP+ transceiver, or the hardware on the other side is off). I haven’t dug into the spec and checked if this is problematic, but in the worst case, the other side’s readiness can be signaled by turning the laser on from the other side. Or actually, not turning it off. SFP+ transceivers have a “Disable Tx laser” input pin, as well as a “Receive signal loss” for this.
  • Without investigating this too much, it seems like this fiber connection will not be able to carry traffic for USB 2.0 devices by simple means. It’s not clear if a USB 2.0 to USB 3.0 converter is possible to implement in the same way that USB 1.1 traffic is carried over USB 2.0 by a multi-speed hub: As mentioned above, USB 2.0 is expected to be routed through separate USB 2.0 hubs. Odds are however that once computers with USB 3.0-only ports start to appear, so will dedicated USB bridges for people with old hardware, based upon some kind of tunneling technique.

Reader Comments

Thank you for helpful information, I have a question in this regard, You said by using a USB3 hub that is connected, let’s say to 4 USB2, it does not mean that the host is working on 5Gb/s while the ports are working on 500kb/s? right? If 4xUSB2 devices are connected to the USB3 hub (by leaving SSRX and SSTX float) you mean that the USB3 host plug works at USB2 speed?

#1 
Written By Bob on December 10th, 2018 @ 06:55

Indeed: If you connect only USB 2.0 devices to a USB 3.0 hub, it will perform exactly the same as a USB 2.0 hub. The USB 3.0 lanes will be detected by the host, but will carry no traffic.

#2 
Written By eli on December 10th, 2018 @ 07:38

I was thinking about a project I am working on and right now I have a USB 2.0 (even though its a USB 3.0 port) connected to a switch and then connected to a USB 3.0 Micro B connector (even though I am only getting the USB 2.0 connection). The switch only has 4 positions and this is why I didn’t use the USB 3.0. This connection is between a router and a hard drive and the switch is used to alternate between loading data to the drive in one position and the other position is for direct connection between the router and the drive. So after reading this I am thinking I can eliminate the switch. I can have the USB 2.0 to a port for loading data to the drive and the USB 3.0 between the router and the drive for normal operation. Does this make sense? I can send a wiring diagram to you. Does the USB 3.0 need power along with the SSTX pair, SSRC pair, and ground?

#3 
Written By Troy on April 23rd, 2020 @ 19:29

Hello,

The USB 3.0 spec is explicit about that all wiring, both USB 2.0 and USB 3.0 wires are connected between each device and host / hub, so you will definitely be violating the spec by letting only the SSTX / SSRX wires through for one of the devices.

Having said that, I can tell from personal experience that if you connect only the SSTX / SSRX wires, it works perfectly well. You should also have the GND connected to prevent excessive DC voltages.

However since you’re breaking the rules, and is not in control of the device, I can see a possibility that the device refuses to play ball with the 3.0-only wiring. Not very expected, but yet possible.

If it’s very specific hardware involved, I would get myself a USB 3.0 extension cable, and cut off the non-3.0 wires, and see what happens when the device is behind it. Just be sure to test that it connects as USB 3.0 before doing the cuts. Some extension cables are junk.

#4 
Written By eli on April 24th, 2020 @ 11:27

I can 100% confirm that you can run unmodified USB 3 signals straight into SFP+ transceivers. I can say this because I have a working device on my desk right now.

SFP+ optical transceivers are data-agnostic and they’re actually very simple devices, the only function they perform is optical to electrical conversion. As long as your signal is a CML-like differential signal and has the correct swing level, SFP+ modules will happily transmit it – even if low-frequency operation is not specified, in practice it works. I heard some people have even successfully used it for 10 MHz clock distribution.

Speaking of receiver detection, the solution is also simple. The quick and dirty solution is simply connecting two AC-coupling capacitors and 50-ohm resistors to the SSRX pair. This hack is surprisingly effective, it simultaneously serves two purposes at once: First each line has a common-mode termination of 50 ohms so it can be detected by the transmitter. Second, it also level shifts the USB signal. USB 3.0′s signal swing is up to 1200 mVpp, but many SFP+ modules only accept 600-850 mVpp. With an 50-ohm resistor it’s now 50/25 voltage divider, reducing the swing by 0.66x, to 800 mVpp. Third, one may ask: doesn’t the resistor destroy the impedance control of the transmission line? A quick simulation tells you that the return loss from a 90-ohm differential transmitter (USB 3 PHY) to a 100-ohm differential receiver (SFP+) with two 50-ohm resistors to ground is still better than 10 dB, which is good enough.

Of course, unconditionally connecting the resistor basically fools the transmitter into thinking that a receiver is always there regardless of the readiness of the far end, it will attempt to establish the link over and over again via LFPS. It still works in real life! Nevertheless, if you want to be a good citizen and follow the specs, I think you can simply put a high-speed RF switch in the data line or in the termination, and only close the switch when the far-end is ready, using the TX_DISABLE and RX_LOS for side-band coordination.

Finally, there are two limitations.

1. Loss budget. USB 3 allows up to 20 dB loss from the host to the device. If the device is not plugged directly into the USB port via USB-A (you can do this, but I’m really not a fan of a huge device hanging on the USB port), but through a long cable, like USB-C, I think SFP+ modules may have difficulty transmitting a clear signal. Fortunately, you can use a USB Hub as a repeater to decouple the SFP+ and the cable.

2. The USB 2 is indeed a problem, no ideal solution exists, and it’s not possible to solve the problem without violating the USB spec. But a good enough workaround is acceptable, the solution would be the VL670/VL671 ASIC by VIA Labs, Inc. It basically transparently upgrade an existing USB 2 device to USB 3 by emulation.

I’m currently developing a prototype reference design to do exactly what I said. It’ll be published as a free and open source hardware design. Watch my blog for update ;-)

#5 
Written By Tom Li on September 6th, 2021 @ 19:18

Add a Comment

required, use real name
required, will not be published
optional, your blog address