Bild 1: Asynchroner Modus.

Bild 1: Asynchroner Modus.Silicon Laboratories

USB ist eine vielseitige Schnittstelle, die viele Möglichkeiten für den Einsatz und die Steuerung von Digital-Audio bietet. Beim Transport von Audiodaten über USB muss die Industrie jedoch standardisierten Mechanismen folgen, um Interoperabilität zu gewährleisten – dem wichtigsten USB-Merkmal. Um dieser Anforderung zu genügen hat die USB-Organisation die Audio Devices Class entwickelt, die einen robusten standardisierten Mechanismus für den Audiodatentransport über USB definiert. Die USB-Audio-Class-Spezifikation steht über das USB Implementers Forum (www.usb.org) zur Verfügung.

Auf einen Blick

Die Übertragung von Audiodaten über einen USB-Port ist keine einfache Aufgabe. USB selbst ist ein komplexes Protokoll, das einiges an Know-how verlangt. Hinzu kommen andere audiobezogene Herausforderungen wie die Synchronisierung der Datenströme sowie die Konfiguration und Programmierung der Codecs und D/A-Wandler. Selbst für erfahrene Embedded- und Audio-Entwickler kann dies eine Herausforderung darstellen. USB-Bridge-ICs helfen dabei, die USB-Softwareentwicklung weniger komplex zu gestalten und bieten eine neue Standard-Audiokonfigurationsschnittstelle sowie Methoden zum Synchronisieren der Audio-Datenströme in einer preisgünstigen hochintegrierten Einchip-Lösung.

Ein wesentlicher Aspekt beim Audio-Streaming über USB ist die Synchronisierung der Datenströme vom Host (Quelle) zum Gerät (Senke). Dies wird über ein robustes Synchronisierungsschema mit isochronen Transfers erledigt, das in die USB-Spezifikation integriert ist. Die Audio-Device-Class-Definition hält sich an dieses Synchronisierungsschema und überträgt Audiodaten zuverlässig über den Bus. Die Umsetzung dieses Synchronisierungsmechanismus ist jedoch nicht einfach. Herkömmliche Implementierungen erfordern High-end-Embedded-Systeme mit komplexen Datenwandlern oder teuren PLLs, um die vom System geforderte Taktgenauigkeit einzuhalten.

In einem System mit einer Abtastrate von 48 kHz sendet der Host jede Millisekunde einen Datenblock mit 48 analogen Ausgangswerten. Die Senke muss die Audiodaten puffern, um jeweils eine Abtastung an den DAC senden zu können. Jede Taktabweichung zwischen Host und Device (selbst kleinste Abweichungen) führen zu einem Überlauf- oder Unterschreitungszustand. Die USB-Spezifikation definiert verschiedene Methoden, wie Host/Device-Taktabweichungen zu begegnen ist. USB definiert Modi, die den Betrieb von Quellen und Senken regeln. Bei Audio-out ist der Host die Quelle und das Device die Senke. Bei Audio-in ist das Device die Quelle und der Host die Senke.

Asynchroner Modus

Bei asynchronem Betrieb liefert die Senke genaues Feedback an die Quelle. Auf der Grundlage dieser Rückmeldungen passt die Quelle die Anzahl der Abtastungen an, die sie an die Senke sendet. Bild 1 beschreibt den asynchronen Modus mit einem analogen Ausgang.

Bild 2: Gepuffertes System zur Unterstützung des asynchronen Modus.

Bild 2: Gepuffertes System zur Unterstützung des asynchronen Modus.Silicon Laboratories

Die Rückkopplung passt eine Quellen/Senken-Taktabweichung an, ohne dass die Senke mit PLL-Hardware für die Synchronisation zum Host-Takt ausgestattet werden muss. Bild 2 zeigt ein gepuffertes System für eine Abtastrate von 48 kHz. Der Host beginnt mit dem Streaming von 48 Abtastungen bei jeder USB-Start-of-Frame-(SOF-) Operation, die jede Millisekunde stattfindet. Nähert sich der Device-Puffer aufgrund einer Taktabweichung jedoch dem vollen oder leeren Zustand, kann das Device den Host auffordern, mehr (49) oder weniger (47) Abtastungen zuzusenden, damit ein Puffer-Überlauf oder eine -Unterschreitung nicht auftreten. Diese Methode findet sich in Silicon Labs‘ USB-to-I2S Digital Audio Bridge CP2114. Die Audio Device Class wird durch den CP2114 unterstützt, ohne dafür zusätzlich Software entwickeln zu müssen.

Synchroner Modus

Bild 3: Synchroner Modus.

Bild 3: Synchroner Modus.Silicon Laboratories

Beim synchronen Betrieb verwenden die Quelle und die Senke eine implizite Rückkopplung, und die Takte sind fest an die USB SOF gebunden. Die Senke muss sich mit dem USB SOF synchronisieren (Bild 3).

Eine einfache und doch robuste Umsetzung des Synchronmodus lässt sich mit einem geschlossenen Regelkreis bewältigen, der jegliche Abweichung vom USB-SOF und dem internen Oszillator der Senke korrigiert (Bild 4). Der USB-SOF-Befehl, der jede Millisekunde vom Host gesendet wird, dient zur Kalibrierung des internen Oszillators. Damit dies richtig funktioniert, muss der Oszillator der Senke über ein Kalibrierungsregister justierbar sein, das die Oszillatorfrequenz in kleinen Schritten nach oben oder unten ändert. Der CP2114 ermöglicht dies durch die dynamische Trimmfunktion seines integrierten Oszillators. Er ermöglicht auch die Wahl zwischen synchronem und asynchronem Betrieb – je nach verfügbarer Hostfunktion. Alle gängigen Plattformen (Windows, Linux, MacOS und iOS für das Apple iPad) unterstützen heute den asynchronen Modus.

Bild 4: Geschlossener Regelkreis für den Synchronmodus mit integriertem Oszillator.

Bild 4: Geschlossener Regelkreis für den Synchronmodus mit integriertem Oszillator.Silicon Laboratories

Standard-Codec/DAC-Konfigurationsschnittstelle

Codec- und DAC-Anbieter bieten die Möglichkeit, die Funktionen ihrer Bausteine zu konfigurieren. Diese Vielseitigkeit macht jedoch die Softwareentwicklung komplexer, wenn mehrere Codec/DAC-Plattformen verschiedener Produktlinien unterstützt werden sollen.

Diese Herausforderung wird durch eine Standard-Codec/DAC-Konfigurationsschnittstelle gelöst, welche die gängigsten Funktionen zur Konfiguration eines Codecs oder DACs zusammenfasst. Die Schnittstelle ermöglicht einen reibungslosen Übergang zwischen Codecs und DACs und garantiert eine schnelle Evaluierung verschiedener Codec/DAC-Optionen. Eine solche Schnittstelle befindet sich auch im Audio-Bridge-IC CP2114, der zahlreiche Codecs/DACs über eine Standard-Konfigurationsschnittstelle unterstützt. Sie unterstützt die häufigsten Funktionen in Codecs und DACs, wie DAC-Registergrößen, Audioformate, Lautstärkeregelung und Audio-Taktverhältnis. Hinzu kommen offene Felder für kundenspezifische Programmierung, und eine Abstraktionsebene umfasst die gängigsten Konfigurationen in einem einfach verständlichen Format. Ist ein Entwickler erst einmal mit der Schnittstelle vertraut, wird der Wechsel zwischen Codec- und DAC-Bausteinen zu einer einfachen Aufgabe.

Der CP2114 bietet über USB Zugriff auf die Schnittstelle, um alle erforderlichen Werte zur Konfiguration von Codecs oder DACs festzulegen. Die Konfiguration wird einmal durchgeführt und verbleibt im EPROM. Dynamische Änderungen sind über den Host erlaubt und ermöglichen das Anpassen der Codec/DAC-Konfiguration.

Zusammenfassung

Die Beliebtheit von USB erstreckt sich nun auch auf die Anwendung und Regelung von Audio-Anwendungen. Streaming Audio über USB ist jedoch eine komplexe und zeitaufwändige Aufgabe. Design-Anforderungen wie die Synchronisierung der Audiodaten und die Konfiguration von Codecs/DACs können selbst Embedded-Experten und Audio-Entwickler herausfordern. Digitale Audio-Bridge-ICs wie der CP2114 verringern diese Komplexität, indem sie eine Plug-and-Play-Lösung bieten, die keinerlei Softwareentwicklung erfordert. Die nächste Generation digitaler Audio-Bridge-Lösungen unterstützt eine Vielzahl von Codecs und DACs über eine Standard-Konfigurationsschnittstelle, genauso wie asynchronen und synchronen Betrieb mit einer minimalen Anzahl externer Komponenten, und erübrigt externe Bauteile wie Quarzoszillatoren und EEPROMs.