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.
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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.