Forum: Mikrocontroller und Digitale Elektronik Schnelle Serielle Datenübertragung MC an PC


von Martin J. (bluematrix) Benutzerseite


Lesenswert?

Hallo,
wie realisiert ihr die Datenübertragung, wenn ihr den Controller als 
eine Art externe Messkarte verwenden wollt? Als Beispiel würde ich einen 
Xmega mit DMA und der Auflösung eines Messwertes von 12 Bit verwenden.

Es geht mir eher um das Prinzip, wie man so etwas löst, so dass die 
Daten schnell an den PC geschaufelt werden.

Weiterhin interessiert es mich, welchen Aufbau ich benötige wenn ich 
sehr kurz aber dafür schnell messen möchten. In welche Art von Baustein 
verwende ich da um die Daten extern Zwischen zu speichern um sie dann 
langsam an den Rechner zu senden.

Das ganze ist nicht für ein direktes Projekt, sondern es geht mir eher 
um das Prinzip, wobei direkte Beispiele auch nicht uninteressant sind.

Randbedingung sind eben atmega bzw. ein xmega als controller.

Grüße martin

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Martin J. schrieb:
> so dass die Daten

wieviele?

> schnell an den PC geschaufelt werden.

wie schnell?

von fast (Gast)


Lesenswert?

USB

von Michael (Gast)


Lesenswert?

Martin J. schrieb:
> ... welchen Aufbau ich benötige wenn ich sehr kurz aber dafür schnell
> messen möchten

Das kommt drauf an, was für dich "sehr kurz" und "schnell" ist - 
außerdem natürlich wie genau und mit welcher Auflösung du messen 
möchtest.

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

Auflösung 12 Bit.
Es geht nicht um genaue Zahlen.
Wie bekommt man das maximale an Übertragungsgeschwindigkeit heraus, was 
möglich ist?

von Coder (Gast)


Lesenswert?

Stichwort:  Ins Datenblatt schauen. Da kommt noch vermutlich Overhead 
vom Übertragungs-Protokoll hinzu....

PS: Deine Frage ist so allgemein, das man eine Glaskugel braucht.

von MWS (Gast)


Lesenswert?

Was erwartest Du, 'ne Anleitung mit ausführlichem Bauchkraulen? Wird Dir 
kaum jemand machen.

Du solltest 'ne gewisse Eigenleistung erbringen, die könnte z.B. daraus 
bestehen das DB des XMega anzuschauen, wie schnell denn die AD-Wandler 
bei der geforderten Auflösung überhaupt wandeln und in den internen 
Speicher schreiben können.

Aber auch da fehlen bereits Angaben zur Datenmenge, so dass beurteilbar 
wäre, ob der Speicher überhaupt reicht.

Wenn Du erwartest, dass Dir gegeben wird, solltest Du auch was bringen 
können. Und wenn's nur eine genaue Beschreibung des Einsatzzwecks wäre.

von Chloro (Gast)


Lesenswert?

Am oberen Geschwindigkeitsende, bei 100+ MSample steuert man den ADC mit 
einem FPGA, das entweder hinreichend internes RAM hat oder externes RAM 
ansteuert.

von 44luftballons (Gast)


Lesenswert?

> Am oberen Geschwindigkeitsende, bei 100+ MSample

Da kommt aber der PC schon ins Schleudern

von am fastesten (Gast)


Lesenswert?

Höchstwahrscheinlich die Fortsetzung davon: 
Beitrag "Erfahrungswerte Abtastrate ATMega?"

Diese Schnurrer gehen auf den Sack, besonders dann, wenn absolut unklar 
ist, worum es geht.

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

Leute warum müsst ihr alle immer jeden "runter machen".

In allen Threads findet man keine Lösung außer das mein ein schlankes 
Protokoll braucht und son zeug was sich jeder selber denken kann. Ja es 
geht auch in die Richtung wie in dem Beitrag 
Beitrag "Erfahrungswerte Abtastrate ATMega?"
Wobei es in dem Artikel eher über sinnvolle Abtastraten bezüglich Layout 
und co geht und weniger um die Datenübertragung.

Aber da gibt es auch keine richtige Lösung bzw. Empfehlung.
Ich hab schon relativ viel mit Controllern gemacht und bisher hat auch 
die Geschwindigkeit immer gereicht. Vieles davon findet man ja hier 
http://www.jtronics.de/avr-projekte/xmega-tutorial.html

Aber in Richtung hohe Datenübertragungsrate hab ich eben heute mal paar 
Fragen. Weil was bringt mir ein schneller ADC wenn ich die Daten damit 
nur auf ne SD Karte per SPI oder in den internen Speicher schieben kann.
Ich könnte noch auf dem Controller die Daten mittels Mittelwertfilter 
reduzieren.
Oder ich kann auch die Daten Reduzieren, indem ich nur die Deltas zum 
letzten Messwert versende, aber das können doch nicht nur die einzigen 
Mittel sein?

: Bearbeitet durch User
von Rolf Magnus (Gast)


Lesenswert?

44luftballons schrieb:
>> Am oberen Geschwindigkeitsende, bei 100+ MSample
>
> Da kommt aber der PC schon ins Schleudern

Warum sollte er? Zur Erinnerung: Es geht darum, "sehr kurz aber dafür 
schnell" zu messen und dann "die Daten extern Zwischen zu speichern um 
sie dann langsam an den Rechner zu senden". Da ist es dem PC ziemlich 
egal, mit welcher Rate die Daten aufgenommen wurden.

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

Rolf Magnus schrieb:
> schnell" zu messen und dann "die Daten extern Zwischen zu speichern um
> sie dann langsam an den Rechner zu senden".

Was empfiehlst du hier als Zwischenspeicher, Im Fall man hat viele Daten 
die man aufnehmen möchte?

von c-hater (Gast)


Lesenswert?

Martin J. schrieb:

> Es geht mir eher um das Prinzip, wie man so etwas löst, so dass die
> Daten schnell an den PC geschaufelt werden.

Das ist eigentlich nur eine Frage der am PC verfügbaren Schnittstellen. 
Das Problem ist, daß die Tendenz in der PC-Technik seit Jahren immer 
mehr zu schnellen seriellen Schnittstellen mit diffentieller 
Datenübertragung ging, es genau in diesem Bereich bei µC aber meist 
klemmt.
Bestenfalls gibt's Fullspeed-USB und dessen Nettorate von ca. 8MBit/s 
stellt dann halt die Grenze dar.

Schneller geht's nur mit ALTER PC-Technik. Oder halt zusätzlichen 
Hardware-Bridges.

> Weiterhin interessiert es mich, welchen Aufbau ich benötige wenn ich
> sehr kurz aber dafür schnell messen möchten.

Nur genug RAM. Und einen µC, der diesen RAM ansteuern kann. Oder wieder 
zusätzliche Hardware, diesmal als RAM-Controller.

> Randbedingung sind eben atmega bzw. ein xmega als controller.

Schöne Teile, aber zur schnellen Kommunikation mit modernen PCs einfach 
die falsche Wahl.

von Michael (Gast)


Lesenswert?

Martin J. schrieb:
> Was empfiehlst du hier als Zwischenspeicher, Im Fall man hat viele Daten
> die man aufnehmen möchte?

Nun sag endlich, was du mit "viele Daten" und "schnell" und "sehr kurz" 
meinst. Ist die Übertragung der Engpaß oder der verdammte µC?
Deine Allgemeinplätze nerven allmählich.

Martin J. schrieb:
> Randbedingung sind eben atmega bzw. ein xmega als controller.

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.