Product How-to: Digital isolators offer easy-to-use isolated USB option
Universal serial bus (USB) is a popular method for personal computers (PC) to communicate with peripherals via cables. In some applications, it’s desirable to isolate the USB communication to achieve safety requirements, or break ground loops. Unfortunately the isolation task is not trivial because of the bi-directional data flow on the USB cable. This article discusses this and other challenges in achieving easy-to-use isolated USB implementations, and compares solutions. A ‘transparent’ ideal minimizes impact of adding isolation to the system, and such solutions are now available. The discussion focuses on USB 2.0 which supports three data rates, 1.5Mbps (low), 12 Mbps (full), and 480 Mbps (high). For simplicity the 12 Mbps case is discussed most fully, but many principles in that example also apply to the other speeds.
One reason for USB’s popularity is its simple 4-wire interface that provides power to a peripheral and a serial data link between peripheral and a PC. Figure 1 shows a standard USB connection. The VBUS and GND wires provide 5V power and ground, while D+ and D- carry data. The signaling is bi-directional half-duplex, meaning that data can flow in either direction along the cable, but at any particular time, at most one transmitter actively drives the cable. During communication, the USB transmitters drive differential or single-ended states onto D+ and D-. Data is organized into packets, with special signal sequences indicating start-of-packet and end-of-packet. Sometimes the bus is idle, meaning that neither transmitter is active, and at these times, resistors attached to the ends of the cable establish ‘idle’ bus states at D+ and D-. The idle states help initialize the bus between one packet and the next. They also indicate to the host when the peripheral connects or disconnects, and the peripheral’s desired communication speed (1.5Mbps, 12Mbps, 480Mbps).
Figure 1: Full-speed (12 Mbps) USB connection (non-isolated)
Methods of isolating a USB host and peripheral
Now imagine electrically isolating the host and peripheral. As noted in , there are several options for placement of the isolation barrier. In all cases, multiple signals must be isolated, and the signals may run at fast speeds or bi-directionally, depending on where the isolation is located. This complicates implementations that are built from discrete components. The complete bill of materials can become long, and it may be difficult to find discretes that fully conform to signaling requirements.
One isolation possibility is shown in figure 2a, where the dashed line shows isolation that conceptually splits the USB cable. Information about the state of D+ and D- can cross the barrier, but current does not. GND1 (the upstream side’s ground reference) is now a separate node from GND2 (the downstream side’s ground reference). Unfortunately, the isolation prevents the host from ‘seeing’ the downstream pullup resistor, and the peripheral can’t ‘see’ the upstream pulldown resistors. Therefore some extra resistors are needed as shown in figure 2b, to mimic the connection of their counterparts across the isolation. In this ‘transparent’ concept, communication between host and peripheral works very similarly to the non-isolated connection of figure 1. The transparent USB isolator component is simply inserted between one of the transceivers and the USB cable, along with an isolated power supply. Hosts and peripherals originally designed for non-isolated applications easily connect to the USB isolator, and exchange standard USB signals without needing significant modification.
Figure 2a: Isolation splitting the cable (concept)
Figure 2b: Isolation splitting the cable, showing extra resistors
This approach is very appealing provided the concept can really be implemented, but there are a number of challenges to overcome. For example, standalone optocouplers or digital isolators generally don’t provide USB-compatible drive characteristics, or support bidirectional half-duplex communication. Many optocouplers cannot run at 12 Mbps or above, and have long propagation delays and timing errors that don’t meet USB 2.0 timing requirements. There are other issues described later.
For now, let’s shift focus and consider non-transparent alternatives like those discussed in . Instead of bisecting the USB cable with isolation, these solutions place isolation inside the hardware of either the host or peripheral. It can go between the USB transceiver and Serial Interface Engine (SIE), or between SIE and USB controller. This enables unidirectional digital logic signals to be isolated with standalone, general-purpose isolators. However, there are several significant disadvantages. First, the USB transceiver or controller hardware must be customized to insert the isolation components. Extra micro-controller code or modification of the USB driver software may also be required. This creates extra work for the system designer, and can significantly increase required board space as these solutions are complex and require multiple components.
Another disadvantage is that overall data throughput may be reduced, since data is now being sent through a series combination of USB transceivers and the separate isolation scheme. The isolation scheme may add delays related to encoding and decoding into another serial format such as SPI, or delays related to slow speed or imprecise timing of the isolation components.
Despite these shortcomings, such solutions were the only viable options when it was too difficult to overcome the challenges of implementing the transparent USB isolator. But now transparent solutions are available, and the remainder of this article describes how an example fully meets the requirements.