• Home
  • Products
    • Matrix
    • Line Card
      • Akros
      • Ambarella
      • AudioCodes
      • Cavium
      • Gainspan
      • GEO Semi
      • GSI
      • IDT
      • Invensense
      • LSI/CSI
      • NXP (Jennic)
      • Pixim
      • Ricoh
      • SmartModular
      • Summit
      • XMOS
    • Sample Ordering
    • Produkt News
  • Support
    • Technical Live Chat
    • eTech-Support
    • Kontakt
  • About Scantec
    • Wir über uns
    • Service
    • Standorte
    • Firmengruppe
    • Messen
  • Knowledge Base
    • Technology Transfer
      • 2012-1
      • 2011-1
      • 2010-2
      • 2010-1
      • 2009-1
      • 2008-3
      • 2008-2
      • 2008-1
      • 2007-2
      • 2007-1
    • Hi-Q News
      • 2012
      • 2011
      • 2010
      • 2009
      • 2008
      • 2007
      • 2006
    • Tip of the Day
  • Store
Technology Transfer

Audio Video Bridging (AVB) Ethernet Implementierung mit XMOS

XMOS Ethernet AVB Implementierung mit XMOS-Controller

Trotz permanenter Erhöhung der Bandbreite und Erweiterung des Standards um Quality-of-Service hat Ethernet heute noch immer mit der Problematik fehlender Echtzeitfähigkeit zu kämpfen. Vor allem zur Übertragung multimedialer Inhalte mit der Notwendigkeit möglichst synchroner Paketzustellung macht sich dieser Mangel unangenehm bemerkbar. Dies könnte sich nun ändern, denn mit der Standard- Erweiterung „AVB“ entsteht eine Möglichkeit zur deterministischen Zustellung von Paketen in einem lokalen Netzwerk. Dies ist recht nützlich zur Distribution von hochwertigem Audio, aber unabdingbar, wenn Ton- und Bild lippensynchron transportiert werden sollen. 

Der Weg zum synchronen Ethernet - mit den 3 Erweiterungen des Media-ACCESS-Controllers entsteht Ethernet AV
Der Weg zum synchronen Ethernet - mit den 3 Erweiterungen des Media-ACCESS-Controllers entsteht Ethernet AV

Mit 802.1BA zum synchronen Ethernet

Der neue IEEE Standard 802.1BA oder Audio-Video Bridging (AVB), derzeit noch als Entwurf vorliegend, besteht im Wesentlichen aus 3 Erweiterungen, die Ethernet rückwärtskompatibel zur Echtzeitfähigkeit verhelfen. 802.1AS liefert die notwendigen präzisen Zeitinformationen, 802.1Qav beschreibt die Sicherstellung von QoS über Queuing- und Forwarding-Regeln und 802.1Qat definiert die Reservierung und Allokation von Übertragungsressourcen sowie Identifi zierung der Medienströme. All diese Standards stellen letztlich Erweiterungen des Media-Access-Verfahrens auf Ebene 2 des OSI-Schichtenmodells dar und folglich führen sie in der praktischen Umsetzung zu Änderungen des Media-Access-Controllers (MAC) eines NICs. Zudem ist für das Einrichten einer AVB-Domäne eine geringfügige Erweiterung des „Link Layer Discovery Protocols“ notwendig, ein Layer-2 Protokoll, das von Netzwerk-Geräten verwendet werden kann, um ihre jeweiligen technischen Eigenschaften und Identifizierung zu kommunizieren. AVB benutzt LLDP, um die Eignung eines Netzwerk-Devices festzustellen und somit die Mitglieder einer AVB-Wolke zu bestimmen. Dazu wurde ein neues Data-Unit Format (DU) mit spezifischen AVB-TLVs (Type Length Value) definiert.

Die AVB-Fähigkeit von Switches entscheidet im Wesentlichen über die Grenzen einer AVB-Wolke - dort, wo normale Ethernet-Switches eingesetzt werden, endet die Domäne
Die AVB-Fähigkeit von Switches entscheidet im Wesentlichen über die Grenzen einer AVB-Wolke - dort, wo normale Ethernet-Switches eingesetzt werden, endet die Domäne

Einrichtung der AVB-Wolke

Der in der Literatur häufig zu findende Begriff der “AVB Cloud” ist etwas irreführend, da er Assoziationen mit der Internet-Cloud weckt, die letztlich globale Ausdehnung besitzt und von Manchen als „prediction than a defi nition“ verstanden wird. Die AVB-Wolke lässt sich hingegen recht gut eingrenzen, denn sie bezeichnet jene Domäne, die durch das Precision- Time-Protocol (PTP) im gleichen Takt arbeitet. Da es auf Layer 2 keinen übergeordneten Server gibt, der das LAN nach AVB-geeigneten Devices „abklappern“ kann, sind es die Teilnehmer selbst, die mit dem LLDP und Austausch von Botschaften die Grenzen ihrer Domäne feststellen.

Nach dem Power-Up eines AVB-Devices oder dem Anbinden an ein Ethernet-LAN und der darauf folgenden Link- Negotiation (automatische Ermittlung der maximalen gemeinsamen Übertragungsgeschwindigkeit) steht schon einmal fest, ob das jeweilige Gegenüber voll duplexfähig ist, wie für AVB obligatorisch. Grundsätzlich unterstützt AVB keine “Shared Media”- Systeme wie z.B. x-Base-2 auf 50 Ohm Koaxkabel. Drahtlose Netzwerkgeräte mit 802.11 sollen aber zumindest in der endgültigen 802.1BA Fassung als AVB-Teilnehmer möglich sein.

Danach tauscht das Device mit seinem Partner LLDPU`s aus und stellt damit sicher, dass beide „AVB-capable“ sind, also über die notwendigen Erweiterungen des MACs verfügen. Nachdem dieser Prozess auf allen Ports eines lokalen Netzes abläuft, ergibt sich auch ohne zentrale „Intelligenz“ die Ausdehnung einer AVB-Domäne. So bilden z.B. AVB-Bridges, die nur einen Link-Partner mit AVB-Capabilities aufweisen, automatisch einen Grenzposten und bestimmen so die Grenzlinie. Ein Switch ohne AVB-Unterstützung in einem größeren AVB-Konglomerat reicht damit natürlich aus, um das Netz in 2 Domänen zu zerteilen.

Als dritter Schritt ist nun die Synchronisierung zu bewerkstelligen, indem über ein spezielles Auswahlverfahren ein „Clock Grandmaster“ definiert wird, der im Weiteren den zentralen Takt des Netzes vorgibt

Medientransport

Um in der existierenden AVB-Cloud möglichst flexibel multimediale Inhalte auszutauschen, ist eine Kapselung standardisierter Medienströme in den unterschiedlichsten Formaten vorzunehmen. So muss z.B. bei Audioströmen als begleitende Information die Sample-Rate, Anzahl der Kanäle und ggf. der verwendete Codec mitgegeben werden, bei Video sind Dinge wie Auflösung (SD, HD) oder Kompressionsverfahren zu definieren.

Übersicht des erweiterten 802.1 Protokollstacks - Precision Time Protokoll, Stream Reservation und Traffic Shaping sind die obligatorischen Zutaten, der TCP/IP Stack ist optional
Übersicht des erweiterten 802.1 Protokollstacks - Precision Time Protokoll, Stream Reservation und Traffic Shaping sind die obligatorischen Zutaten, der TCP/IP Stack ist optional

Dazu wurde der IEEE-Standard P1722 geschaffen (derzeit in Version Draft V1.7), der auf AVB aufsetzt und folgende Medienprotokolle behandelt:

  • 61883-2: SD-DVCR data transmission
  • 61883-4: MPEG2-TS data transmission
  • 61883-6: Audio and Music data transmission protocol
  • 61883-7: Transmission of ITU-R BO.1294 System B
  • 61883-8: Transmission of ITU-R BT.601 style Digital Video Data
  • IIDC: Instrumentation and Industrial Control Digital Camera

P1722 legt aber auch fest, wie die Medienströme mittels der sog. Presentation Time und der globalen 802.1AS-Zeit zu synchronisieren und wiederzugeben sind. Die AVBTP Presentation Time ist also nicht zu verwechseln mit dem globalen Zeitstempel eines 802.1AS-Pakets.

Presentation Time

Die Presentation Time repräsentiert den Zeitpunkt, zu dem ein Medien-Sample an den Talker gefüttert wurde zusätzlich zu einem Aufschlag, der Max Transit Time, um die ermittelte Latenzzeit der Netzwerkstrecke zu berücksichtigen. Die maximale Durchlaufverzögerung Max Transit Time beträgt 2 ms für den AVB Class-A-Verkehr und 50 ms für Class-B. Talker und Listener können aber auch eine geringere maximale Transit Time aushandeln, wenn dies beispielsweise bei 1000-Base-T Netzen möglich ist.

Implementierung im XMOS-Prozessor

Ethernet AVB mit seinen Substandards verlangt spezifische Erweiterungen der Media-Access-Controller aller Teilnehmer, dazu die Unterstützung digitaler Medienaufzeichnung- und Wiedergabe. Zur Implementierung eignen sich ganz generell Prozessoren aus dem Embedded-Bereich, doch müssen sie in hohem Maße determinierbar, also echtzeitfähig sein, um den Anforderungen des synchronen Ethernets gerecht zu werden.

Architekturen auf Basis von State- Machines auf der anderen Seite, implementierbar beispielsweise in FPGAs und CPLDs, erfüllen diese Forderung natürlich in idealer Weise, sind aber recht sperrig in der Formulierung der benötigten Funktionsblöcke als HDL-Code. Ideal also ist ein hoch deterministischer Prozessor mit der Möglichkeit zur Programmierung in gewohnter Hochsprache, wie er seit einiger Zeit von der Firma XMOS als „Event Driven Processor“ (EDP) mit der sog. XCore-Architektur angeboten wird.

Der XS1-G4 ist eine 4-Core Echtzeit-CPU mit 1600 MIPS Summenleistung
Der XS1-G4 ist eine 4-Core Echtzeit-CPU mit 1600 MIPS Summenleistung

Event-Driven-Processor

Die Idee ist im Grunde recht einfach: Defi niere so viele Funktionen wie möglich in Software, auch solche, die klassischerweise in Hardware realisiert sind und lasse dies auf einer Anordnung von Prozessorkernen ablaufen. Jeder Task belegt einen Thread und 8 davon laufen in exaktem Zyklus auf einem Core. Eine gegenseitige Beeinflussung ist ausgeschlossen und so lässt sich bei der Entwicklung exakt vorhersagen, wie lange eine bestimmte Aktion dauern wird.

Das hohe Maß an Determinismus ist die zentrale Schlüsseleigenschaft der Chips und versetzt Entwickler in die Lage, nicht nur Systemprozesse wie Protokollstacks, sondern auch Hardwareschnittstellen in einer gemeinsamen Umgebung zu definieren. Dieser integrierte Hardware/Software Development-Flow basiert auf einem modifizierten C-Compiler namens XMOS-C (XC), letztlich eine C-Erweiterung, die den Zugriff und die Steuerung des Multi- Threadings und der I/O-Ressourcen ermöglicht.

Die Presentation-Time Zeitstempel definieren den Zeitpunkt, an dem die Median-Samples am Listener ausgegeben werden sollen
Die Presentation-Time Zeitstempel definieren den Zeitpunkt, an dem die Median-Samples am Listener ausgegeben werden sollen
Der XS1-G4 verfügt über 4 XCores und einer Switch-Fabric namens XLink zur Intercommunication
Der XS1-G4 verfügt über 4 XCores und einer Switch-Fabric namens XLink zur Intercommunication

Hier die wesentlichen Eigenschaften der XMOS-Prozessoren:

  • Jeder XCore kann gleichzeitig bis zu 8 Threads mit einer Geschwindigkeit von 400 MIPS bearbeiten und jeder Thread verfügt dabei über einen eigenen Registersatz, wird damit quasi selbst zu einem logischen Core.
  • Die 8 Threads teilen sich 64 kByte Unifi ed Memory Defi nition der Unified Memory Architecure ohne Zugriffskollisionen.
  • Integer- und Festkommaoperationen zur effizienten Signalverarbeitung und kryptographischen Operationen sind möglich.
  • Es sind 64 GPI/O-Pins verfügbar, die durch Software programmiert werden können.
  • Die Ausführung der Threads ist absolut deterministisch und daher kann mit jedem Thread ein “harter” Real-Time- Task implementiert werden, unabhängig vom Verhalten der anderen Tasks.
  • I/O-Pins sind als logische Ports mit Breiten von 1, 4, 8, 16 und 32 Bit gruppiert. Jeder Port beinhaltet zudem einen SerDes, Synchronisationsmöglichkeiten mit externen Schnittstellen und ein präzises Timing.
  • Jeder XCore beinhaltet 8 Timer, die Zeiten relativ zu einem 100 MHz-Takt messen können.  

Mit dieser Ausstattung also empfiehlt sich der XMOS-Prozessor in ganz idealer Weise zur Implementierung von AVB. Hatte XMOS in seiner ersten Version noch lediglich Fast-Ethernet unterstützt, so ist es zwischenzeitlich mit der zweiten Generation der EDPs auch möglich, AVB-Teilnehmer mit Gigabit-Ethernet anzubinden.

Kommunikationskanäle

Die notwendige Datenkommunikation zwischen den Threads wird über sog. Channels (= Kanäle) bewerkstelligt, deren Endpunkte („Channel Ends“) sich sowohl auf einem CPU-Kern befi nden können als auch auf verschiedenen Kernen auf dem gleichen Chip oder sogar auf verschiedenen Chips über eine Verbindungsstruktur namens XLink. Für den Software-Entwickler macht es daher bei seiner Implementierung auch keinen grundlegenden Unterschied, aus welchen physikalischen Strecken die von ihm verwendeten Kanäle bestehen, er kann sie mit gleicher Notation verwenden, um Messages zu transportieren, die aus Daten- und Steuer-Token bestehen.

Die ausführbaren Dateien für einen XMOSProzessor entstehen aus C-Programmen mit den XMOSspezifischen Erweiterungen
Die ausführbaren Dateien für einen XMOSProzessor entstehen aus C-Programmen mit den XMOSspezifischen Erweiterungen

Design Flow

Die Entwicklungsumgebung, immerhin verfügbar für Windows-, Linux- und Mac- Betriebssysteme, ist gegen Registrierung kostenlos auf der Webseite von XMOS verfügbar. Nach XMOS-Angaben wird jedes funktionierende C-Programm in der XC-Umgebung und Einbindung der spezifischen XMOS Include-Bibliotheken problemlos übersetzt. Passt der Code auf den Footprint des Chips, läuft er dort ab und der Baustein verhält sich vergleichbar dedizierter Hardware. XC ist eine a u f Gleich - zeitigkeit und Echtzeit zielende Programmiersprache, die speziell für die XS1-G Architektur entwickelt wurde.

XC Programme sind einfach zu schreiben und debuggen – keine Deadlocks, keine Race Conditions, keine Speicherverletzungen.

XC benutzt die beschriebenen Channels, um eine schnelle, bidirektionale Kommunikation sowie Synchronisation zwischen den Endpunkten der Channels zu erzielen. Die Endpunkte können sich innerhalb eines Threads auf demselben Prozessor befinden, aber auch auf 2 Prozessoren des gleichen Chips oder sogar auf Prozessoren in 2 verschiedenen Chips.

Die XS1-Prozessorarchitektur implementiert Hardwarefunktionen als Software und daher sind Hardware- Lösungen aus dieser Perspektive nichts weiter als Software-Bibliotheken. Sie können compiliert und gelinkt werden wie normaler C-Code und die dabei entstehende Binärdatei wird auf den Prozessor geladen und dort ausgeführt.

Das AVB-Referenzdesign ist dementsprechend eine Bibliothek von Quelldateien, die in größere Anwendungen eingebunden werden können. Zur Entwicklungsunterstützung und –dokumentation sind im Referenzdesign natürlich auch Projekt-Templates und Beispielprogramme enthalten.

Die Kommunikation zwischen Threads geschieht über Channels, die im gleichen Kern als auch auf verschiedenen Kernen ablaufen können oder, verbunden über XLink, auf verschiedenen Prozessoren
Die Kommunikation zwischen Threads geschieht über Channels, die im gleichen Kern als auch auf verschiedenen Kernen ablaufen können oder, verbunden über XLink, auf verschiedenen Prozessoren

Entwicklungsplattformen

Wie schon erwähnt ist die gesamte SW-Entwicklungsumgebung kostenlos von der XMOS-Webseite zu beziehen. Einmal registriert, erhält man Zugang zu den Tools und Beispielprogrammen sowie zur Seite Xlinkers, der offiziellen XMOS Web-Community Darin eine große Zahl an Projekten, Programmen sowie Code-Snippets aber auch Blogs mit Besprechung von Problemen und Lösungen, die einem das Leben als Entwickler leichter machen.

Hardwareseitig bietet XMOS mehrere Evaluierungs-Boards auf Basis des XS1- G4 und dem neuen Single-Core-Device XS1-L1. Für die AVB-Implementierung nutzt XMOS das XS1-G, eine Break- Out-Box mit QVGA-LCD im schwarz glänzenden Gehäuse und Anmutung eines Modder-PCs, umfangreich ausgestattet mit LVDS-Schnittstellen, Audio-I/O und Ethernet, einen Slot für SD-Cards und die auf Pfostenleisten herausgeführten XIOPorts.

Im Auslieferungszustand sind bereits einige Beispielprogramme installiert, die Über ein On-Screen-Menü und der Tastatur gestartet werden können. Neben „Pong“ und „Mandelbrot“ gibt es auch einen Audio Frequenzanalyzer, der den Audio-Eingang des Evalsystems in Echtzeit analysiert und als Frequenzdarstellung auf den Bildschirm bringt.

Der XMOS Timing-Analyser braucht nur wenige Sekunden bis zur grafischen Darstellung des Programm-Timings
Der XMOS Timing-Analyser braucht nur wenige Sekunden bis zur grafischen Darstellung des Programm-Timings

Ethernet AVB

Zur Präsentation seiner Referenzanwendungen hat XMOS kurze Videos aufgezeichnet und auf seine Webseite eingestellt. Eines davon zeigt die Implementierung des Ethernet AVB-Standards sowie IEEE1722 und IEEE1588 als Ethernet AVB Demo. Die Referenz-Software ist als Source-Code ebenfalls frei auf der Webseite verfügbar und kann daher beliebig in eigenen Projekten verwendet werden.

Das Referenzdesign besteht im Wesentlichen aus diesen 3 Komponenten:

  • Ethernet-MAC und MII-Interface
  • Die Precise-Time-Protokollimplementierung (PTP, IEEE1588 oder 802.1AS)
  • Die Audio Streaming-Komponente (Talker und Listener)

Ethernet-MAC Komponente

Die MAC-Komponente, Schlüsselelement der AVB-Implementierung, packt Daten in Ethernet-Frames und liefert sie sendeseitig zur MII-Schnittstelle bzw. holt empfangene Frames von dort ab und zerlegt sie nach Inhalt und Header-Informationen. Die PHYs sind nicht im Prozessor integriert und müssen samt notwendiger galvanischer Trennung extern implementiert werden (XMOS verwendet dazu den LAN8700 PHY von SMSC). Die Komponente besteht aus 6 Threads, die auf dem gleichen Core laufen müssen und über Channels (Verbindungsstrecken) mit anderen Komponenten oder Threads kommunizieren. Mit Hilfe sog. Filter lassen sich die zu übertragenden Daten dieser Links steuern. Die Einrichtung und Konfiguration der Channels wird mittels einer Client C-API durchgeführt, Details dazu sind in den jeweiligen Header-Files dokumentiert. Die MAC-Komponente unterstützt neben den bekannten Funktionen 2 für AVB wesentliche Features:

  • Timestamping ermöglicht den Empfang und das Senden von Ethernet-Frames mit Zeitstempeln in Bezug auf ein Taktsignal, z.B. einen 100 MHz-Takt mit einer Auflösung von immerhin 10 ns.
  • Flow Control (Flußsteuerung) realisiert den 802.1Qav Standard zur individuellen Behandlung von Daten mit unterschiedlichen Prioritätsklassen und Beschränkungen bei der nutzbaren Bandbreite.
Das XS1-G ist ein Evalsystem auf Basis der 256 I/O XCore-Version mit LCD-Display, 5 Menütasten, zahlreichen LEDs und jeder Menge Schnittstellen. Es wird auch für das AVB-Referenzdesign verwendet
Das XS1-G ist ein Evalsystem auf Basis der 256 I/O XCore-Version mit LCD-Display, 5 Menütasten, zahlreichen LEDs und jeder Menge Schnittstellen. Es wird auch für das AVB-Referenzdesign verwendet

PTP-Komponente

Die Precise-Time-Protocol- Komponente (PTP) liefert die netzwerkweite Zeitinformation zur Synchronisierung aller Teilnehmer einer AVBWolke. XMOS hat in sein Referenzsystem sowohl eine Implementierung des Standards IEEE1588 (V2) als auch des neuen Standards 802.1AS gepackt, die wahlweise in die Applikation eingebunden werden können.

Die Komponente besteht lediglich aus 2 Threads, ist mit dem Ethernet-MAC verbunden und bietet sog. Channel Ends für Clients, um darüber Zeitinformationen abzufragen. Sie interpretiert die PTPPakete vom MAC und stellt die Verfügbarkeit der globalen Zeitinformation sicher. Sie kann während der Laufzeit, entsprechend 802.1AS und dem Best Master Clock Algorithm als Grandmaster oder Slave definiert werden. Als Grandmaster liefert sie globale Zeitinformation für alle Teilnehmer der AVB-Wolke und wird somit zum zentralen Taktgeber, als Slave bezieht sie die Zeitinformation von einem externen Grandmaster.

Die Beziehung zwischen der lokalen Zeitreferenz eines Clients und der globalen Zeit der AVB-Wolke wird über die Channels sichergestellt, womit der Client in der Lage ist, entweder sehr präzise Zeitstempel beim Versenden der Medienpakete zu setzen bzw. einen sehr genauen Sample-Clock beim Empfangen der Ströme zu erzeugen.

Audio-Stream Komponente

Die Audio-Stream-Komponente ist mit dem Software-MAC verbunden und funktioniert bidirektional zum Empfang und Senden von Audio-Samples. Als Audio-Talker übernimmt sie digitalisierte Audioströme über die I2S Schnittstelle, bündelt diese in IEEE1722-konforme Pakete und verschickt sie über Ethernet. Als Audio-Listener übernimmt sie einen Audiostrom vom Netzwerk, dröselt die Pakte auf und schickt die Audio-Samples über die I2S-Schnittstelle an einen Audio-DAC.

Der Talker

Die Talker-Komponente besteht im Kern aus 2 Threads, zum einen ist dies ein Buffer für die Audio-Samples von der I2S-Schnittstelle, zum anderen aus dem Packetizer, der entsprechend dem Standard IEEE1722 aus den einzelnen Samples den Payload, also die Nutzlast der Ethernet Pakete formt. Die Daten werden dann zur MAC-Komponente weitergereicht, die daraus vollständige Ethernet Frames generiert.

Beim Erzeugen der Ethernet-Pakete, „in statu nascendi“ sozusagen, generiert der Talker Zeitstempel aus der globalen Zeitangabe der PTP-Komponente zuzüglich eines Offsets zur Kompensation von Laufzeiten innerhalb der AVB-Wolke. Die Zeitstempel geben folglich die „Presentation Time“ an, also jene Zeitpunkte, an dem die Audio-Samples beim Listener wiedergegeben werden müssen.

Blockdiagramm des Ethernet-MACs in XMOS-Notation - Kreise symbolisieren einen Thread, Pfeile einen Channel (Link), über den Daten kommuniziert werden
Blockdiagramm des Ethernet-MACs in XMOS-Notation - Kreise symbolisieren einen Thread, Pfeile einen Channel (Link), über den Daten kommuniziert werden
Die PTP-Komponente besteht aus einem PTP-Server-Thread, der Zeitinformationen zur Verfügung stellt und einem PTP-Packet-Processor-Thread, der Zeitinformationen 802.1AS-gerecht packetiert bzw. analysiert
Die PTP-Komponente besteht aus einem PTP-Server-Thread, der Zeitinformationen zur Verfügung stellt und einem PTP-Packet-Processor-Thread, der Zeitinformationen 802.1AS-gerecht packetiert bzw. analysiert

Der Listener

Der Listener übernimmt die einlaufenden IEEEP1722 -Pakete vom MAC und wandelt sie in einen Stream von Media-Samples um, die wiederum in einen Buffer-Thread gespeist werden. Da der Audio-Stream auf einem anderen System erzeugt wurde, mithin also auf Basis eines anderen Taktgenerators mit abweichender Frequenz, muss eine Anpassung der Wiedergabe-Taktfrequenz vorgenommen werden.

Dazu gibt es einen Audio Clock Recovery Thread, der einerseits durch unterschiedliche Verfahren den korrekten Takt ermittelt, zum anderen einen internen oder externen Generator entsprechend steuert. Das XMOS Referenzsystem bietet 3 Varianten zur Synchronisation, standardkonform ist natürlich die Methode mit IEEE1722 Zeitstempeln. Dazu bestimmt der Thread aus der Differenz aufeinander folgender Zeitstempel sowie der Anzahl der Audio-Datenworte je Paket den richtigen Takt und gibt Steuerinformationen an den gewählten Generator weiter. Alternativ kann der Wiedergabetakt auf ein externes Signal synchronisiert werden oder lässt sich aus der globalen PTP-Zeit und einigen Zusatzinformationen ableiten. Sobald die Abtastrate angepasst wurde, kann der Listener dann auch die Größe seines Ausgangsbuffers korrekt bestimmen, um damit sicherzustellen, dass der Medienstrom exakt zur Presentation-Time wiedergegeben wird und synchron zu anderen AVBTeilnehmern arbeitet.

Thread-Diagramm des Audio-Talkers. Beteiligte Blöcke sind I2S, Packetizer nach 1722, PTP-Engine und schließlich der MAC. Mit der FFT-Kompnente werden die Audiosignale als Frequenzdarstellung auf dem TFT-Display angezeigt
Thread-Diagramm des Audio-Talkers. Beteiligte Blöcke sind I2S, Packetizer nach 1722, PTP-Engine und schließlich der MAC. Mit der FFT-Kompnente werden die Audiosignale als Frequenzdarstellung auf dem TFT-Display angezeigt

Systemdesign

Die Komponenten MAC, PTP und Audio-Interface benötigen in Summe 13 Threads und knapp 80 kByte Speicher. Mit einem Vorrat von 32 Threads und 256 kByte Speicher des XS1-G4-Prozessors bleiben also für Anwendungen mehr als 60% der Chip-Ressourcen, z.B. für Protokollimplementierungen zur Netzwerkkonfiguration, Anwenderschnittstellen oder Audioverarbeitungsroutinen oder einfach für zusätzliche Audio-Stream-Instantierungen.

Die Aufteilung der Komponenten auf die 4 Kerne des Prozessors gibt Abbildung 16 wieder. Einige zeitkritische Threads müssen auf einem gemeinsamen Core laufen, da die hier die kürzesten Link- Verzögerungen existieren.

Der Audio-Listener übernimmt die Ethernet-Pakete, entnimmt daraus den Payload und gibt die Samples zur vorgegebenen Presentation time an die I2S Schnittstelle zur Ausgabe
Der Audio-Listener übernimmt die Ethernet-Pakete, entnimmt daraus den Payload und gibt die Samples zur vorgegebenen Presentation time an die I2S Schnittstelle zur Ausgabe

Demosystem

Mit der Ausstattung des AVB-Referenzsystems von XMOS lässt ich eine AVB-Wolke mit 4 Teilnehmern aufbauen, wobei jede der Boxen als Talker oder Listener fungieren kann. Die notwendige Software ist auf einer SD-Karte in jeder Box enthalten und lässt sich über ein Menü auswählen, zur Auswahl stehen die Programme „AVB_T.XB“ für den Einsatz als Talker und „AVB_L.XB“ für den Listener. Audiosignale werden über die Line-In Klinkenbuchsen in die Boxen eingespeist bzw. können über Line-Out an aktive Boxen ausgegeben werden.

Am zentralen Ethernet Switch lässt sich über einen Repeating-Port der Datenverkehr auf der Ethernet-Ebene verfolgen, z.B. mit einem Packet-Sniffer wie dem bekannten Wireshark.

Die Boxen zeigen im Betrieb eine Frequenzdarstellung des eingespeisten bzw. übertragenen Audiosignals, im Thread-Diagramm als FFT & Buffer Komponente zu finden. Auch damit lässt sich sehr eindrucksvoll zeigen, dass sich Threads auf diesem Prozessor nicht gegenseitig beeinflussen und ihre Echtzeitfähigkeit auch unter Last beibehalten.

Aufbau des Referenzsystems mit 4 AVBTeilnehmern an einer Bridge
Aufbau des Referenzsystems mit 4 AVBTeilnehmern an einer Bridge
Aufteilung der Komponenten auf die 4 Cores eines XS1-G4 Prozessors. Es bleiben mehr als 60% Ressourcen für zusätzliche Anwendungen oder Unterstützung mehrerer Streams übrig
Aufteilung der Komponenten auf die 4 Cores eines XS1-G4 Prozessors. Es bleiben mehr als 60% Ressourcen für zusätzliche Anwendungen oder Unterstützung mehrerer Streams übrig

Technology Transfer 2010 Heft 1

Audio Video Bridging (AVB) Ethernet Implementierung mit XMOS
XMOS Ethernet AVB Implementierung mit XMOS-Controller
Green Edge für DC/DC-Wandler
Akros Green Edge - Integrierte Isolationsstrecke vereinfacht DC/DC-Wandler-Design
PCIe 2.1 von IDT
PCIe 2.1 Switches von IDT eröffnen neue Anwendungsfelder
Jennic - Mit 15mA auf Sendung
Jennics neuer „Wireless Microcontroller“ JN5148
IDT Rapid Packets - PCIe und RapidIO
IDT - Rapid Packets - sRIO Switches von IDT
IDT - HQV Solution Vida
Single-Chip Hollywood- Quality-Video (HQV) Solution „Vida“ von IDT

Verwandte Themen:

  • Drahtloses Internet der Dinge - GS1011 Wifi SoCs
  • Internet der Dinge mit Gainspan
  • Multicore Prozessoren von XMOS
  • Jennic - Mit 15mA auf Sendung
  • IDT
  • Signal-Integrity Repeater und Retimer
  • JN5139 ZigBee Low-Cost Modul von Jennic
  • Power Over Ethernet von Akros Silikon
  • BLDC Motor Steuerung von XMOS
  • XMOS USB Audio Class 2.0 Referenzdesign
  • Drahtlose Logistik mit Sleeping Beacon-Technologie von Jennic (NXP)
  • EMV-Ausputzer
  • 6LoWPAN
  • Super-Plus
  • Motoren effizient steuern
  • Ethernet AV-Bridging
  • Wireless Sensor Networks für die Logistik
  • XMOS
  • GSI
  • NXP (Jennic)
  • Akros

AGBs | Impressum | Disclaimer | Hot News | RSS-Feeds | Qualität | Sitemap | Stellenangebot | Kontakt | LineCard Download |    | Seite Drucken