Forum: Digitale Signalverarbeitung / DSP / Machine Learning Multichannel Audio I/O Lösung für DSP-Board


von Janos B. (janos)


Lesenswert?

Hallo zusammen,

in absehbarer Zeit werde ich mit meiner Bachelorarbeit beginnen, in 
welcher ich Multikanal Audioverarbeitung auf DSP und FPGA vergleichen 
möchte. Dafür steht mir von der Hochschule schon ein Critical Link 
MityDSP-L138F Development Board zur Verfügung, auf dem sollen die 
Algorithmen gerechnet werden. Und genau da soll auch die meiste Energie 
demnächst fließen.

Nun wäre es aber auch schön eine Multikanal-Audioschnittstelle (mind. 32 
Kanäle bidirektional, gerne auch bis zu 64) an dem Teil zu haben um - 
zuerst einmal vom PC aus - Audio rein und raus zu bekommen. Im besten 
Fall auf einem externen Board, welches mir auf der einen Seite eine 
Standardschnittstelle bietet und auf der anderen einen Pin Header mit 
einigen TDM Streams rein und raus. Dabei würde ich entweder gerne auf 
vorhandene Hardware (seien es nun Microcontroller oder FPGA) oder auf 
günstig erhältliche Entwicklungsboards zurückgreifen. Falls schon 
vorhandene Boards genutzt werden könnten, wären evtl. kostenpflichtige 
IP-Cores eine Überlegung.

Vorhanden wären diverse Altera Boards mit Cyclone 4 und 5, sehr gut käme 
ich an ein Terasic SocKit und ein Arrow BeMicro CV (was mir aber erst 
mal Null Schnittstellen gibt). Auch an diverse Xilinx-Boards liegen an 
der ein oder anderen Stelle in der Hochschule rum und könnten eventuell 
auf Anfrage genutzt werden.
Darüber hinaus komme ich an ein Logic PD Zoom™ OMAP-L138 Development 
Board und an einen haufen von TI Connected Launchpads - beides Boards 
mit einem Ethernet-Port.

Ich komme ursprünglich selbst aus der Audio-Praxis, hab also einen ganz 
guten Überblick, welche Schnittstellen gerade so in der Pro Audio Welt 
angesagt sind. Ich würde gerne schildern, welche Gedanken ich mir schon 
gemacht habe und welche Lösungen ich schon angedacht habe:

IP-Basierte Lösungen:
Die bieten sich natürlich aufgrund der einfachen Anbindung an einen PC 
an. Außerdem haben viele Boards schon einen Ethernet Port. Jedoch 
scheint es herausfordernd, "mal eben" ein TCP/IP Stack und ein 
Audioprotokoll mit wenig Erfahrung in dem Bereich zu implementieren. 
Eine im besten Fall auf der verfügbaren Hardware schon einmal 
erfolgreich implementiere Lösung  wäre also wünschenswert. Konkret habe 
ich folgende Optionen durchdacht:

- Dante:
Cooles Audionetzwerk, als End-User liebt man es einfach. Funktioniert 
nur in kombination mit Hardware von Audinate. Preise werden recht 
vertrauensvoll gehandhabt, ein Angebot für ein Product Development Kit 
hat auf jeden Fall gezeigt, dass sich das weit außerhalb des 
Finanzrahmens befindet und auch vielleicht etwas übers Ziel hinaus 
geschossen ist.

- Ravenna/AES67:
Im Gegensatz zu Dante halt offene Protokolle. Es scheint fertige 
IP-Cores für die Implementierung auf dem FPGA zu geben. Ich habe einen 
Anbieter dazu angefragt und bin gespannt auf die Antwort. Wird aber so 
oder so eine Ethernetschnittstelle am FPGA Board benötigen, bei SocKit 
hängt die leider aber am HPC und nicht am FPGA.

- AVB:
In der Pro Audio Szene irgendwie noch nicht so richtig angekommen, aber 
aktuell fast mein Favorit. Scheinbar hat XMOS da einiges für entwickelt. 
Mit deren Prozessoren habe ich zwar Null Erfahrung, aber es scheint ein 
vollständiges 32 Kanal AVB zu TDM Softwaredesign hier zu geben:
http://www.xmos.com/support/appnotes/an00203
Mit diesem Board http://www.xmos.com/support/boards?product=18230 müsste 
ich mir ja genau meinen "Adapter" von AVB auf TDM an Pin Header bauen 
können?
Ansonsten gibts ja noch OpenAVB, aber ich denke das implementiere ich 
trotzdem nicht eben schnell in einem ARM und habe da meine Audio Lösung 
fertig?
Zuletzt habe ich auch gesehen, dass Xilinx im TEMAC Logic Core 
irgendeinen Audio AVB-Endpoint anbietet. Jemand damit Erfahrungen?

- AES50:
Mir nur aus der Midas/Behringer Welt bekannt. Soundkarten dafür gäbs von 
Lynx. Auch ein offenes Protokoll (sofern man AES Mitglied ist), scheint 
auch aufgrund der Point-to-Point struktur viel simpler als alles oben 
genannte zu sein. Habe aber kaum Infos darüber gefunden. Hat da schon 
jemand mit gearbeitet?

Dann bleiben noch Lösungen wie MADI oder ADAT. Beides wurde schon 
mehrfach erfolgreich auf FPGAs umgesetzt, aber es erfordert den Bau von 
- relativ simpler - Hardware. Eigentlich würde ich das gerne vermeiden. 
Außer jemand hat einen Link zu einem so simpel zu implementierenden 
VHDL-Code für solch eine Schnittstelle, dass ich mir über diese Seite so 
wenig Gedanken machen müsste, dass ich mir die Zeit erlauben könnte, 
eine kleine Platine zu bauen. An ein entsprechendes Audiointerface wäre 
sicher zu kommen...

Wer hat schon Erfahrungen mit diesen Themen? Gibts noch ganz andere 
Ideen oder Argumente? Ich freue mich auf Input!

Grüße
Janos

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ich habe ein wenig Erfahrung mit AVB auf XMOS. Die AVB-Implementierung 
von XMOS erschien mir sehr ausgereift, die Entwicklungsumgebung und 
Hardware ebenso. Das AVB Endpoint Kit kann aus der Kiste heraus 8x I2S 
in & out. Das heißt du schließt das per Ethernet an einen Mac an, und 
kannst sofort 8 Kanäle I2S streamen. Mit ein paar #defines und 
Neukompilierung auch TDM. Ich vermute mal dass es bei dem von dir 
verlinkten Kit ähnlich einfach ist.

OpenAVB dagegen ist anscheinend noch weit von Plug & Play entfernt, und 
unterstützt m.W. nur Intel-Hardware. Sonstige IP-Cores und 
Software-Stacks sind für eine Bachelorarbeit vermutlich zu teuer und zu 
schwierig anzuwenden.

von Janos B. (janos)


Lesenswert?

Okay, schön - dann scheint das ja echt so einfach zu sein, wie die 
Website vermuten lässt. Aktuell sehe ich das auch immer mehr als 
favoritisierte Lösung an - zumal ich auch ein MacBook besitze.

von Holger B. (vilu)


Lesenswert?

OpenAVB ist unfertig, da bekommst du wahrscheinlich nichts zum Spielen.
Audinate setzt die Hürden bewusst hoch, weil sie keine Lust haben, jedem 
Bastler Support bieten zu müssen.
AES67-Stacks hab ich mir noch nicht angesehen, da bin ich gespannt was 
dein Kontakt sagt. Könnte aber aufs gleiche rauslaufen wie bei Audinate.
AES50 ist vergleichsweise simpel, wirst du in dem Rahmen aber auch nicht 
selbst machen wollen. Bevor Herr Ohringer alles zusammengekauft hat gabs 
IP von SonyOxford dafür, keine Ahnung, wie das heute ist.
Beim Xilinx-Stack waren nur die unteren Ebenen implementiert als ich mir 
das angeschaut habe, 1722/1722.1 fehlten komplett, da kriegst du so 
schnell kein Audio drüber.

MADI ist auf dem FPGA kein größeres Problem, aber trotzdem zu viel 
Aufwand zum Selbermachen, wenn der Focus der Arbeit auf etwas anderem 
liegt und du kein erfahrener HDL-Entwickler bist.

Wenn du es IP-basiert machen willst, dann ist die XMOS-Implementierung 
das einzige, was im Rahmen einer Bachelorarbeit eine Chance auf 
Realisierbarkeit hat, zumal der Focus ja nicht auf dem Interface sondern 
auf den Algorithmen liegt. Die Implementierung ist offen und 
funktioniert out-of-the-box, die Evalkits sind bezahlbar. Mit dem 
Endpoint-Kit kommst du allerdings bei deinen Kanalzahlen nicht weit.

Ob das mit dem Multichannel auf Mac-Seite wirklich so funktioniert 
solltest du vielleicht vorher noch mal verifizieren, da bin ich mir 
jetzt nicht sicher.

von PC-Freak (Gast)


Lesenswert?

Janos B. schrieb:

> Zuletzt habe ich auch gesehen, dass Xilinx im TEMAC Logic Core
> irgendeinen Audio AVB-Endpoint anbietet. Jemand damit Erfahrungen?

woher kommt diese Info?

von Janos B. (janos)


Lesenswert?

Danke für euren Input.

Aktueller Stand der Dinge ist der Folgende, ein freundlicher Hersteller 
aus der Pro Audio Ecke hat sich bereit erklärt eine passendes 
Entwicklungsboard aus seiner Entwicklungsabteilung auszuleihen. Dieses 
System wäre komplett vorkonfiguriert so dass es direkt eine Verbindung 
zwischen PC und TDM herstellen könnte und würde damit dann alles bieten 
was wir benötigen.

Mit der ein oder anderen genannten Option werde ich mich in Zukunft dann 
auf jeden Fall noch mal beschäftigen, AVB hat irgendwie mein Interesse 
geweckt, auch weil ich z.B. die AVB basierten Avid Produkte wie das S3L 
oder auch die neueren Motu Interfaces spannend finde. Aber natürlich 
wäre auch eine Integration einer AVB Schnittstelle direkt in einem FPGA 
am spannendsten, wofür man erst mal grundsätzlich noch tiefer ins Thema 
Ethernet einsteigen müsste - vielleicht ein gutes Feld zum Einarbeiten 
während des Masters :)

Holger B. schrieb:
> Ob das mit dem Multichannel auf Mac-Seite wirklich so funktioniert
> solltest du vielleicht vorher noch mal verifizieren, da bin ich mir
> jetzt nicht sicher.

Genau das funktioniert nach Berichten aus dem Web völlig einwandfrei.


PC-Freak schrieb:
> Janos B. schrieb:
>
>> Zuletzt habe ich auch gesehen, dass Xilinx im TEMAC Logic Core
>> irgendeinen Audio AVB-Endpoint anbietet. Jemand damit Erfahrungen?
>
> woher kommt diese Info?

Also erst einmal stieß ich durch googeln auf diesen Link: 
http://www.xilinx.com/products/intellectual-property/do-di-eavb-ept.html
Da dort gesagt wird, dass es mit dem TEMAC Core zusammengefügt wurde, 
hab ich sehr flüchtig dieses pdf überflogen 
http://www.xilinx.com/support/documentation/ip_documentation/tri_mode_ethernet_mac/v9_0/pg051-tri-mode-eth-mac.pdf 
und bin irgendwie darauf gekommen, dass dort ein Audio Endpoint mit drin 
ist. Nach erneutem Lesen fällt mir nun aber auch auf, dass das offenbar 
falsch war.

Holger B. schrieb:
> Beim Xilinx-Stack waren nur die unteren Ebenen implementiert als ich mir
> das angeschaut habe, 1722/1722.1 fehlten komplett, da kriegst du so
> schnell kein Audio drüber.

Das ist nämlich viel mehr Stand der Dinge ;)

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.