www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Bitstream aufteilen - womit?


Autor: Weide (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Claus Krause (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Weide (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus Kaufmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Weide (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.