Die neue USB-Schnittstelle Typ C bringt dem Anwender enorme Verbesserungen. Damit diese zum Tragen kommen können, müssen Entwicklungsingenieure allerdings das Stromversorgungsprotokoll Typ C (PD, Power Delivery) implementieren. Die Schnittstelle muss die Kabelorientierung erkennen, schnelle Signale schalten können und (wenn gewünscht) herstellerspezifisches Messaging unterstützen (VDM, Vendor Defined Messaging). Dieser Artikel zeigt, wie man mit einer Kombination von handelsüblicher USB-Hardware und einem preisgünstigen FPGA-Produkte entwickeln kann, die alle Vorteile der neuen Schnittstelle nutzen: ihre Geschwindigkeit, ihre hohe Stromversorgungsleistung und ihre Vielseitigkeit.
Herausforderungen bei der Implementierung
Will man derzeit in einem neuen Design eine USB-Schnittstelle Typ C vorsehen, so muss man Hardwarefunktionen ergänzen, weil die aktuell eingesetzten PHY-Chips, MCUs und Applikationsprozessoren (APs) einige wesentliche Funktionen von USB Typ C nicht abdecken, namentlich Kabelerkennung (Cable, Detect CD), SuperSpeed+-Switchsteuerung, die Aushandlung der Stromversorgungsleistung (Power Delivery, PD) und das herstellerdefinierte Messaging (Vendor Defined Messaging, VDM).
PHY-Funktionen bereitstellen
USB-Schnittstellen vom Typ C erfordern eine Reihe von Voraussetzungen auf der PHY-Schicht, die in den meisten Typ-C-Geräten implementiert sein müssen. Die meisten Typ-C-Geräte brauchen eine Kabelerkennungsfunktion (Cable Detection, CD). Sie müssen die Orientierung eines eingesteckten Kabels erkennen können und weiterhin, ob sie mit einem Upstream-Facing-Port (UFP) oder einem Downstream-Facing-Port (DFP) verbunden sind. Dieser Mechanismus funktioniert über Widerstände an den Pins CC1 und CC2, die mit Plus oder Masse verbunden sind, über die an diesen Pins also analoge Spannungen unterschiedlicher Höhe anliegen. Für die Kabelerkennungsfunktion muss ein Gerät daher analoge Spannungen messen können
Soll ein Gerät höhere Stromversorgungsleistungen liefern oder anfordern, die Funktion eines Ports ändern oder herstellerdefinierte Meldungen nutzen können, dann muss eine PD-PHY-Schicht implementiert werden. Die PD-Kommunikation läuft über eine der CC-Leitungen und ist in der USB-Stromversorgungsspezifikation definiert. Es handelt sich um ein Halbduplex-Verfahren mit 4b5b-codierten Daten und Zweiphasenmarkierungscode (Biphase Mark Code, BMC). Das erleichtert die Entwicklung des Empfängers. Man kann BMC als eine Form der Manchestercodierung ansehen. Zum Schutz gegen Übertragungsfehler werden Prüfsummen eingesetzt (CRC, Cyclic Redundancy Checking). Zwar kann man mit jedem gängigen Mikroprozessor eine PD-PHY-Schicht realisieren, wenn aber geringe Leistungsaufnahme wichtig ist, ist eine gatterbasierte Implementation günstiger.
Aushandlung der Versorgungsleistung
Wünscht ein Typ-C-Upstream-Port mehr Stromversorgungsleistung, schickt er dem Downstream-Port eine entsprechende Anforderung. Der Dowstream-Port bestätigt entweder die Anforderung oder unterbreitet ein Gegenangebot mit den Werten, die er liefern kann. Besteht Übereinkunft, gilt ein „Liefervertrag“ als abgeschlossen. In der Regel wird man den Hauptprozessor nicht mit dieser Aufgabe belasten wollen. Vielleicht verfügt ein smartes Netzgerät auch über keinen Systemprozessor oder man will ein Gerät mit leerem Akku möglichst schnell laden und hierzu eine Stromlieferung aushandeln. In einem dritten Fall mögen sich ein Laptop und ein Mobiltelephon eine Stromquelle teilen, und man möchte, dass der Hauptprozessor im Schlafmodus bleibt. Sicherlich gibt es verschiedene Methoden, diese Aushandelfunktion technisch umzusetzen, aber es ist am preisgünstigsten und kostet am wenigsten Bauvolumen, wenn man diese Fähigkeit in einen Chip einbaut, den man ohnehin braucht.
Unterstützung herstellerdefinierter Meldungen
Man kann – wie oben bereits erwähnt – strukturierte herstellerdefinierte Meldungen dazu einsetzen, eine Reihe von verschiedenen standardisierten alternativen Betriebsarten auszuhandeln, die die Funktion von USB Typ C erweitern. Die Entwickler müssen zum Aushandeln dieser Betriebsarten beide Mechanismen vorsehen, wie sie in der USB-PD-Spezifikation und zur Steuerung der schnellen Switches festgelegt sind, die man braucht, um die entsprechenden Signale in die Doppeladern im USB-Verbinder einzuspeisen. Mittels unstrukturierter herstellerdefinierter Meldungen kann ein Hersteller nicht standardisierte Funktionen implementieren. Das könnte etwa die kundenspezifische Nutzung von unbenutzten Signalkanälen sein (etwa für die Aggregation von I/O-Schnittstellen zwischen Dockingstation und einem andockbarem Gerät) oder vielleicht die Datenübertragung für spezielle Authentifizierungsmechanismen. In diesen Fällen müssen die Entwicklungsingenieure sowohl die Kommunikationsfunktionen als auch die zugehörigen Verarbeitungsprozeduren, Switchsteuerung und andere Hardware implementieren. Die Aushandel- und Steuerfunktionen, die mit herstellerdefinierten Meldungen verbunden sind, kann man auf verschiedene Weise umsetzen. Allerdings ist es immer wieder eine Herausforderung, diese Funktionen integriert und mit einem Minimum an Kosten und Platzverbrauch zu realisieren.
Mit FPGAs das Maximum herausholen
Man kann mit FPGAs von Lattice Semiconductor sofort USB-Typ-C-Schnittstellen implementieren, die die bestechenden Vorteile der neuen Norm umsetzen. Sie sind integriert (brauchen also wenig Platz), arbeiten gatterbasiert (brauchen dadurch extrem wenig Strom) und sind so flexibel, dass man bei Bedarf auch nachträglich Änderungen implementieren kann.
Protokoll für ein smartes Netzgerät
Wenn USB-Schnittstellen Typ C in Tablets, Smartphones und anderen Mobilgeräten auftauchen, braucht man Netzteile, die ihr Stromversorgungsprotokoll verstehen und entsprechend Ströme und Spannungen an diese Geräte liefern (oder zumindest eine Stromlieferung aushandeln, die am ehesten deren Anforderungen entspricht). Wenn der „Liefervertrag“ ausgehandelt ist, werden Strom- und Spannungsdaten an die Leistungssteuerung (PMIC, Power Management IC) im Netzgerät weitergegeben, das dann die vereinbarte Stromstärke und Spannung liefert. Das Netzgerät braucht auch eine Kabelerkennungslogik, damit es die richtigen CC-Leitungen für die Aushandlung der Stromlieferung verwendet. Die schnellen Datenverbindungen benötigt ein Lade- oder Netzgerät aber normalerweise nicht, also braucht man keine Switchsteuerung für die schnellen Signalkanäle vorzusehen. Man kann CD-, PD-PHY- und PD-Aushandelfunktionen in ein FPGA von Lattice integrieren und benötigt so für all diese Funktionen nur ein einziges IC in einem leicht verbaubaren QFN-Gehäuse. Die nötigen Analogfunktionen sind mittels flexibler I/O-Technik realisiert. Für Codierung, Decodierung und Prüfsummen gibt es jeweils eigene gatterbasierte Sektionen, die eine BMC-Kommunikation mit niedrigstem Stromverbrauch ermöglichen. Die Steuerfunktionen der Stromlieferung sind teils mittels Gatterlogik, teils mit einem eingebetteten Prozessor realisiert. Damit wird die optimale Kombination von Stromverbrauch und günstigen Kosten erzielt. Weiterhin können herstellerdefinierte Meldungen an den eingebetteten Prozessor weitergeleitet werden. So können bei Bedarf etwa Authentifizierungsfunktionen realisiert werden.
„CD/PD-light“ für Mobilgeräte
Smartphones, Tablets und andere Mobilgeräte werden eine Typ-C-Schnittstelle als primäre I/O- und Ladeverbindung nutzen. Die „CD/PD-light“-Lösung liefert CD- und PD-PHY-Funktionen in einem 2,5 mm x 2,5 mm kleinen Gehäuse zu einem Preis, der selbst bei größten Stückzahlen akzeptabel ist. In diesem Fall erledigt der Applikationsprozessor die Stromaushandelfunktionen, weil so die absolut niedrigsten Kosten zu erzielen sind. Mobilgeräte tauschen routinemäßig Daten über ihre USB-Ports aus, daher liefert in diesem Entwurf die CD-Funktion Steuersignale an den SS-Switch.
CD/PD für Mobilgeräte
Viele Geräte wollen (wie oben bereits erwähnt) PD- und VDM-Aushandelprozeduren ohne Beteiligung des Systemprozessors durchführen. Die CD/PD-Lösung ermöglicht das. Optional (so verfügbar) kann ein Prozessor den aktuellen Betriebszustand der Stromlieferfunktion abfragen und dann ihre Standardeinstellungswerte durch eigene Werte zu ersetzen.
CD/DP für Dockingstationen
USB Typ C wird vermutlich auch eine Reihe von Innovationen im Bereich der Dockingstationen nach sich ziehen. Statt komplizierter Verbinder wird man dann nur noch ein einfaches USB-Kabel Typ C nutzen. Man wird viele verschiedene Signaltypen über einen Typ-C-Verbinder leiten können, namentlich sind dies SATA, Ethernet, PCIe, Displayport, HDMI und VGA. Weiterhin muss man zwischen Dockingstation und angedocktem Gerät eine Reihe von einfachen I/O-Signalen übertragen, um Kontroll-LEDs anzusteuern und Schalter abzufragen.
Die Lösung baut auf den vorigen CD/PD-Vorschlägen auf. Bei dieser Lösung ist etwa 50 bis 60 Prozent mehr I/O vorgesehen, um viele Schalter abfragen zu können. Dazu gibt es eine GPIO-Signalaggregationsfunktion, mit der man Allzweck-I/O-Signale zwischen Dockingstation und dem zugehörigem Gerät übermitteln kann. Es gibt diese Lösung in einer Reihe von BGA-Gehäusen mit 0,4 mm Ballabstand für Tablets und Mobiltelefone und 0,8 mm Ballabstand für Dockingstationen und Laptops.