Mehrkanal-AoE-Hardware

Zunächst einmal habe ich hier bereits eine Fülle von Informationen gefunden, also danke! Ich hoffe auf ein allgemeines Feedback zu einem Projekt, an dem ich arbeiten möchte. Hier ist eine Gliederung.

Ich möchte in der Lage sein, 8 Kanäle mit 24-Bit-48-kHz-Audio über Ethernet an eine Sammlung von 6 bis 8 Empfängern zu übertragen, die alle über einen Switch verbunden sind. Hier ist mein Denkprozess.

  1. Netzwerkgeschwindigkeit - 8 Kanäle * 24 Bit = 24 Byte. Das liegt unter dem Minimum von 46 Bytes (nicht 802.1Q), also arbeiten wir nur mit diesem Minimum. Unsere minimale Rahmengröße beträgt dann 84 Bytes. Bei 48 KHz würde dies einen durchschnittlichen Durchsatz von ~32,3 Mbit/s im Netzwerk bedeuten. Angesichts dieses Ergebnisses scheint ein schnelles Ethernet-Netzwerk mit entsprechenden Switches in Ordnung zu sein. Scheint diese Analyse richtig zu sein?

    Beachten Sie, dass ich nicht allzu sehr auf eine perfekte Wiedergabe bedacht bin, daher ist ein gelegentlich verlorenes Paket keine große Sache. Angesichts dessen glaube ich nicht, dass ich mich mit der Konvertierung der Abtastrate für die Netzwerkübertragung befassen möchte.

    Nebenbemerkung: Ursprünglich wollte ich an einem 10Base-T-Netzwerk arbeiten, weil viele MCUs 10Base-T MAC/PHY integriert hatten. Angesichts der minimalen Framegröße von 84 Byte ... würde dies die Abtastraten auf etwas weniger als 15 kHz beschränken, igitt!

    Nur um sicherzugehen, dass ich richtig darüber nachdenke, kann ich das 84-Byte-Frame-Minimum nicht verletzen, wenn ich in der Lage sein möchte, kommerzielle Switches richtig zu verwenden?

  2. Empfängerhardware

    A. Ethernet-Controller - Ich möchte einen 100Base-T-Ethernet-Controller mit eingebautem MAC/PHY. Das Problem ist jedoch, dass es in der Lage sein muss, schnell genug mit der MCU zu kommunizieren, um alle Audiodaten durchzuschieben. 8 Kanäle * 24 Bit * 48 KHz = 9,22 Mbit/s. Ich denke, das wird für SPI zu schnell sein. Der ENC424J600 verfügt zusätzlich zu SPI über eine parallele Schnittstelle, die für höhere Geschwindigkeiten nützlich zu sein scheint. Seite 53 gibt einige theoretische Leistungszahlen.

    http://ww1.microchip.com/downloads/en/DeviceDoc/39935c.pdf

    B. MCU - Welche auch immer ich wähle, muss stark genug sein, um alle 8 Kanäle mit Audiodaten vom Ethernet-Controller einzulesen, dann einige sehr einfache DSPs auszuführen (Kanalmischung) und die Daten an einen 24-Bit-Stereo-DAC zu senden bei 48 KHz. Darüber hinaus muss es auch einige grundlegende Schnittstellen mit Panel-I/O herstellen. Irgendwelche Vorschläge zu einer geeigneten MCU?

    Beachten Sie, dass ich diesen DAC verwenden möchte.

    http://www.cirrus.com/en/products/cs4341.html

Alle Kommentare oder Gedanken von euch, die für dieses Projekt nützlich sein könnten, würden wir sehr schätzen!

Danke, Jordan

Da Sie bereits eine MCU haben, was ist mit der Datenkomprimierung? Ein verlustbehafteter Codec reduziert Ihre Bandbreite erheblich. Selbst ein verlustfreier Codec führt zu einer Nettoreduzierung der Bandbreite.
Haben Sie eine Latenzanforderung? Wenn nicht, verstehe ich nicht, warum die minimale Paketgröße relevant ist, Sie können und sollten mehr als einen Satz von Samples pro Frame haben. 33 Mbit Daten über 100 Mbit sind gerade noch erreichbar, solange es streng in eine Richtung geht. Sie werden wahrscheinlich einen ARM oder ähnliches als Prozessor wollen.
Sie haben erwähnt, dass 33 MBit über 100 MBit "gerade noch erreichbar" sind. Bezieht sich das auf einen erreichbaren Dauerdurchsatz? Wenn ja, könnten Sie weitere Informationen zu dieser Berechnung geben?

Antworten (2)

  1. Sie möchten nicht für jede Probe ein einzelnes Paket senden. Das liegt daran, dass das Paket auch Header hat, und das bedeutet Ineffizienz bei der Übertragung. Wenn Sie mehrere Proben in ein einziges Paket packen, wird dies sowohl die Effizienz steigern als auch Ihre minimale Paketgröße überschreiten. Die Obergrenze für die Anzahl der Samples ist die maximale Latenz, die Sie tolerieren können. Bei 48 kHz würde das Hinzufügen eines weiteren Samples zu Ihren Paketen die Latenz um ~21 erhöhen μ S. Sie sollten auch die Latenz berechnen, die durch das gesamte System von Ende zu Ende eingeführt wird. 8–16 Proben pro Paket zu haben, würde Ihre Effizienz auf über 70–80 % steigern.

  2. Ich würde mich für einen Mikrocontroller mit eingebautem Ethernet-MAC entscheiden. Auch ein eingebautes PHY wäre ein nettes Plus, aber diese zusätzliche Einschränkung würde Ihre Auswahl erheblich einschränken. Es gibt viele, viele Mikrocontroller mit einem eingebauten 100-Mbit/s-MAC, aber nur wenige mit einem eingebauten PHY.

Ich habe nie daran gedacht, mehrere Samples in einen einzigen Frame zu packen, das macht sehr viel Sinn. Ich werde etwas recherchieren und meine Latenzbeschränkungen besser definieren. Danke für die Antwort!

Der Elefant im Raum mit Audio over IP im professionellen Kontext ist Taktverteilung und Taktrückgewinnung...

Sie können problemlos 64 Kanäle mit 24-Bit-48K-Audio über eine 100-Mbit / s-Verbindung anpassen. Bei Ihren mehreren Empfängern denke ich möglicherweise an Multicast oder ähnliches.

AES67 könnte interessant sein, und schauen Sie sich auch Ravenna und Dante an, um Ideen zu bekommen (auch AVB, aber es ist übertrieben für nur Audio).

Es gibt viele kleine Mikros mit eingebautem MAC, die nur eine PHY-Hinzufügung benötigen, um so etwas zu tun, aber Sie werden wahrscheinlich die Audio-Clock an die eingehende Bildrate binden wollen, was normalerweise eine Art Hardware-PLL benötigt (The Alternative ist ein SRC und eine Verzögerungsregelschleife).

8 Kanäle = ~1,2 MB/s = passt also nicht ganz über eine 10-MB-Verbindung, ist aber über eine 100-MB/s-Verbindung trivial.

Verwenden Sie einen 8-Kanal-DAC, der den DSP-Modus unterstützt, und Sie können die Ausgabe oft über einen der SPI-Ports verfeinern.

Grüße, Dan.