µC für Fast Data Decoding

Gast #7227945
Lesenswert?

Ich möchte gerne mehrere Sensor-Controller-Systeme über eine größere 
Distanz mit einander verbinden und dazu einen zentralen Prozessor 
verwenden. Die Sender sind kleine Module eines Drittanbieters, welche 
eine komplexe Datenerfassung betreiben und ihre fertig prozessierten 
Daten permanent als pseudoanaloges PDM selbständig absenden, um sie in 
analogen Erfassungsfeldern nutzen zu können, sie sind aber auch digital 
auswertbar. Die Module werden hart auf den 10 MHz Labortakt 
synchronisiert und arbeiten intern mit einer eigenen PLL, d.h. ich 
könnte die PDM-Rate einstellen.

Ich würde gerne abschätzen, wieviele solcher Sensoren ich an einen 
Controller anschließen kann und wieviele Kanäle ich benötige. 
Physikalisch sollen bis zu 16 Controller angeschlossen werden. Es ist 
aber immer nur einer wirklich wichtig, nämlich der, der dem "Meßobjekt" 
am Nächsten ist und die Daten mit der größten Amplitude liefert.

Ich möchte daher die 16 Ausgänge mit einigen Multiplexern auf einen 
Prozessor schalten und immer nur einige Kanäle gleichzeitig beobachten. 
Der Prozessor soll immer einen starken auswerten und erkennen, dass ein 
Sensor immer weniger liefert und dann durch Umschalten in der Nähe des 
starken Sensors die anderen testen, ob sie noch mehr liefern. Wegen 
Setup-Zeit ist immer einer tot und 2 werden mindestens zur Verfolgung 
benötigt. MATLAB-Simulation steht!

Ich hätte also einen Prozessor, der 4 PDM-Kanäle erfassen kann. Es 
dürfen gerne mehr sein.

Was wichtig ist: Mit welchen maximalen Raten kann ich da rechnen?
Hätte jemand einen Tipp?

Vielen Dank!
Gast #7227947
Lesenswert?

Nach eines:

Die Senderate der PDM soll möglichst hoch sein, denn sie begrenzt 
bekanntlich Auflösung und Frequenz, mit der der Prozessor den Sensor 
beobachten kann.  Der Prozessor soll die PDM auswerten und später noch 
filtern, wenn er weis, welches der stärkste Kanal ist. So 10-12 Bit bei 
100kHz sollten das am Ende schon sein.

Da wäre noch die Frage, wie hoch die PDM mindestens sein muss. Von den 
Multiplexern her sehe ich kein Problem, weil die statisch umschalten. 
Der PDM sollte es keinen Abbruch tun, wenn ein paar falsche Takte 
eingemischt werden.

Der Prozessor bräuchte jedenfalls eine Anzahl Zähler zur Auswertung und 
Mittelwertbildung, damit überhaupt erst einmal klar ist, welcher Kanal 
dominant ist. Die Daten dieses Kanals müssen dann genau gerechnet 
werden. Eventuell ist es auch sinnvoll mehrere Kanäle genau zu rechen, 
um den Entscheid zu verbessern.
#7228078
Lesenswert?

Ulrich G. schrieb:
> Ich hätte also einen Prozessor, der 4 PDM-Kanäle erfassen kann

Das macht man per Hardware, die Einrichtung heisst oft 'input capture 
mode'.

Für 4 Kanäle gleichzeitig tut es also nicht der kleinste uC.

Hier ist erklärt, wie es geht 
https://www.cae.tntech.edu/~mmahmoud/teaching_files/undergrad/ECE3120SP14/slides/Chapter_5.pdf

das ist der Prozessor 
http://www.mosaic-industries.com/embedded-systems/sbc-single-board-computers/freescale-hcs12-9s12-c-language/instrument-control/pwm-pulse-counter-frequency-meter

Natürlich gibt es auch anderen uC die das können. Je nach timer-Takt 
bestimmt sich die Auflösung (z.B. bei 16MHz sind das 62.5ns) und je nach 
PDM Grundfrequenz (z.B. 100kHz) damit die Bitanzahl (z.B. bis 160 also 
7.5 bit).

Wenn du 1MHz PDM Basisfrequenz hast und auf 1ns auflösen willst, 
brauchst du ein mit 1GHz (PLL) getaktetes FPGA und 10 bit Zähler (na 
gut, mit Tricks tun es weniger als 1GHz durch Gatterlaufzeiten und clock 
skewing).
#7228240
Lesenswert?

Lothar M. schrieb:
> Wie sieht da denn so ein "Datenpaket" aus? Wie ist die Information in
> das Signal eingeprägt?

Eben Pulsdichte. https://en.wikipedia.org/wiki/Pulse-density_modulation
Irre ineffizient weil man für 10 Bit Auflösung wirklich 1024 Takte 
braucht. Aber kann man schon machen ...
Die Daten bekommt man zurück indem man in einem Zeitfenster die Anzahl 
der Pulse zählt. Das kann man auch überlappend machen und man kann auch 
sehr einfach die Auflösung ändern.

Bisher ist mit PDM nur bei MEMS Mikrofonen untergekommen.
Gast #7231732
Lesenswert?

Michael B. schrieb:
> Für 4 Kanäle gleichzeitig tut es also nicht der kleinste uC.
Das hatte ich mir schon gedacht. Danke für den Link.

Michael B. schrieb:
> Natürlich gibt es auch anderen uC die das können.
Ich schau, ob ich fündig werde.

> Je nach timer-Takt bestimmt sich die Auflösung (z.B. bei 16MHz sind das
> 62.5ns) und je nach PDM Grundfrequenz (z.B. 100kHz) damit die
> Bitanzahl (z.B. bis 160 also 7.5 bit)
Die Idee ist eigentlich 1en zählen, den Rest als 0 annehmen und 
innerhalb einer definierten Zeit auf diese Weise eine Dezimation zu 
bekommen.

> Wenn du 1MHz PDM Basisfrequenz hast und auf 1ns auflösen willst
Es soll synchron sein, d.h. wirklich genau 1024 Impulse zählen. Genauer 
als 1/f brauche ich es also nicht. Wahrscheinlich brauche ich aber eine 
höhere Frequenz als 1MHz.

Lothar M. schrieb:
> Ulrich G. schrieb:
>> nämlich der, der dem "Meßobjekt" am Nächsten ist
> Wie schnell bewegt sich denn das "Messobjekt" zwischen den Sensoren?
> Muss da das gesamte System tatsächlich mit 10MHz abgetastet werden?
Die 10MHz sind nur für die Daten nötig(?). Es sind ja 1-Bit-Daten.

Gustl B. schrieb:
> Irre ineffizient weil man für 10 Bit Auflösung wirklich 1024 Takte
> braucht.
Die Module arbeiten eben so, da sie mit einem einfachen analogen Filter 
als  Analogpositionsgeber arbeiten.
Gast #7232648
Lesenswert?

Ulrich G. schrieb:

> Die Module werden hart auf den 10 MHz Labortakt
> synchronisiert und arbeiten intern mit einer eigenen PLL, d.h. ich
> könnte die PDM-Rate einstellen.

Auf was maximal? Das ist der eine Punkt.

> Der Prozessor soll die PDM auswerten und später noch
> filtern, wenn er weis, welches der stärkste Kanal ist. So 10-12 Bit bei
> 100kHz sollten das am Ende schon sein

Das bedeutet: die PDM-Abtastung (und natürlich auch: -Generierung) müßte 
mit ca. 100-400MHz Bittakt erfolgen (synchronisierter Aufbau mit 
Laufzeitkompensation vorausgesetzt).

Können das die Sensoren wirklich? Würde mich stark wundern. Falls ja, 
würde mich schon mal interessieren, was das denn für Feenstaub sein soll 
und warum deren Ingenieure ein derart ungeeignetes Signal gewählt 
haben...

Wenn sie es aber wirklich können und du das auch wirklich ausnutzen 
willst/musst, dann wirst du wohl die µC-Idee knicken können. Sowas ist 
dann ziemlich eindeutig ein FPGA-Job.

Der Gesamtaufbau dürfte einigermaßen tricky werden. Bis sowas 
vollständig korrekt läuft, können u.U. Monate in's Land gehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren