Forum: Digitale Signalverarbeitung / DSP / Machine Learning Bitstream aufteilen - womit?


von Weide (Gast)


Lesenswert?

Hallo,

von einem DSP bekomme ich serielle (Audio-)Daten, und zwar pro Paket (=1 
Sample = 20us) 8 Kanäle á 32 Bit - was einer Taktfrequenz von 12,288Mhz 
entspricht. Diese Daten möchte ich auf vier (Stereo-)DA-Wandler 
verteilen. Ich benötige somit einen Baustein, der den 256-Bit-Datenstrom 
in vier Datenströme á 2x32Bit aufteilt. Ich frage mich, was es da für 
Möglichkeiten gibt. Ich wollte eigentlich keinen weiteren DSP einsetzen, 
der nur diese Aufgabe übernimmt. Geht so etwas vielleicht mit 
irgendeinem FPGA o.ä. ? Ich kenne mich da leider nur wenig aus und eine 
Internetrecherche ergab auch bisher nichts, da das Problem zu speziell 
ist. Vielleicht hat ja einer von Euch eine Idee.

Vielen Dank im Voraus

PS: Der DSP ist ein Sharc und es gibt natürlich von Analog-Devices 
DA-Wandler, die diesen Bitstream (nennt sich übrigens dort "TDM") 
verarbeiten, aber mir gefallen die Wandler nicht so recht, ich möchte 
flexibler sein.

von Claus Krause (Gast)


Lesenswert?

Hi,

würde da nicht ein Zähler reichen? Den Takt des Streams kannst Du doch 
sicher irgendwo abgreifen. Wenn er dann noch durch die Zahl der 
Teil-Streams geteilt wird hast Du ein schönes Signal für einen Zähler, 
welcher jeden Teil-Stream zeitlich separiert (eine einzige Leitung 
aktiviert). Mit den Ausgängen des Zählers verbindest Du dann eine simple 
Logik, welche den jeweils aktivierten Teil-Stream dann auf dem 
entsprechenden Zielkanal ausgibt.


Gruß,
Claus.

von Weide (Gast)


Lesenswert?

Hallo Claus,

hmm, vielleicht denke ich ja etwas verquer, aber ein Zähler plus etwas 
Logik würde meiner Meinung nach nicht reichen. Ich könnte damit zwar 
einen Teilstream separieren, aber es müßte doch zumindest erstmal einen 
komplettes 256-Bit-Paket gespeichert vorliegen. Das Komplettpaket und 
die Teilpakete sollen ja die gleiche Periodendauer haben. Vielleicht 
geht's irgendwie mit einem (256Bit)Schieberegister, welches dann nach 
Dateneingang mit anderer Taktfrequenz 32-Bitweise ausgelesen und auf die 
Ausgänge verteilt wird, während das nächst Datenpaket natürlich schon 
eingelesen werden muß. Ich frage mich, ob ein FPGA o.ä. so etwas 
bewerkstelligen kann.

Gruß Weide

von Markus Kaufmann (Gast)


Lesenswert?

Wie sind denn die 8 Datenkanäle auf ein Paket verteilt? Immer 
abwechselnd 1 Bit von jedem Kanal oder immer alle 32 Bit  von einem 
Kanal hintereinander und dann der nächste? Und wie brauchst Du das 
Ausgabeformat? 4 mal seriell oder 8 mal parallel oder wie?

Prinzipiell kann ein FPGA sowas, aber da Du Dich noch nicht damit 
auskennst wird es Dich auf jedenfall einige Zeit kosten Dich 
einzuarbeiten. Da wäre eine Lösung mit einzelnen Logikbausteinen 
sicherlich schneller realisiert.

bye
  Markus

von Weide (Gast)


Lesenswert?

Hallo Markus,

och, das wäre mal ein guter Einstieg in die Welt der FPGA's ;-). Es wäre 
aber schon nett zu erfahren, welcher Bausteintyp überhaupt in Frage 
kommt.

Die Daten sind einfach hintereinander gepackt, nicht irgendwie 
verschachtelt. Das Ausgabeformat ist ebenfalls seriell: Vier Kanäle mit 
jeweils 64Bit. Die Periodendauer des Eingangspaketes und der 
Ausgangspakete muß gleich lang sein (die Bits der Ausgangspakete sind 
damit sozusagen "länger"). Deshalb, und wegen der Nichtverschachtelung 
muß auf jeden Fall erstmal ein komplettes Datenpaket eingelesen werden, 
bevor es ans Verteilen gehen kann.

Gruß Weide

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.