mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ethernetfähiges µC-Board und andere Herausforderungen


Autor: Florian K. (koppi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
erstmal der Hintergrund:
Eine von mir zu schreibende Software (Steuersoftware) auf einem 
Linux-System soll 500 mal pro Sekunde einen 16Bit-Wert (Drehwertgeber) 
einlesen, durch nen Algorithmus laufen lassen, und dann auf der Basis 
der Berechnungen ein Taktsignal für einen Schrittmotor mit maximal 2KHz 
erzeugen.
Das ganze hat harte Echtzeitanforderungen.
Die Latenzen müssen sehr gering bleiben. Ausserdem muss eine "heutige" 
Standardschnittstelle genutzt werden. Wäre dann USB oder Ethernet.
Mittels USB werd ich das wegen der Latenzen vergessen können.

Also der Plan: Per Ethernet (Punkt-zu-Punkt-Verbindung) wird ein µC 
angesprochen. Per UDP sollten da die Latenzen kein Problem sein. Oder?
Nun brauche ich ein Board, das Ethernet kann und mindesten 8 I/O Ports 
hat, mit denen ich den Schrittmotor ansteuern und den Drehwertgeber 
auslesen kann. Das Board liest den Wert ein, schickt's zum PC, bekommt 
einen neuen Wert für die Schrittmotorsteuerung... Das ganze bitte mit 
500Hz.

Jemand ne Idee welches Board dafür geeignet ist?
Hält jemand die Idee für undurchführbar?

MfG
Florian

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm eigentlich schreit das geradezu nach dem Parallelport am PC, zumal 
dieses externe Board im Prinzip keinerlei Leistung braucht (500x pro 
Sekunde IOs einlesen/ausgeben ist im Prinzip ein scherz, selbst für 
nicht ganz aktuelle µCs.)
Einzig die Schnittstellenvorgabe ist da etwas ungünstig. Du müsstest 
schauen, ob du das mit nem Softwareethernetstack schaffst (-> Webserver 
von Ulrich Radig vll als Vorlage?) UDP halte ich nicht wegen der Latenz 
für nötig sondern weil du den Echtzeitanspruch hast, dass du dir lieber 
nen Packetloss als ne retransmission erlauben kannst. Wobei ja 
theoretisch in der Direktverbindung keine Pakete verloren gehen :-)

Auch eine USB<->RS232 Wandlung und dann einfach die Daten über ne Uart 
empfangen/senden dürfte im Übrigen noch passen. Wieviel Latenz lässt du 
denn zu?

Oder warum nicht das Linuxprog komplett auf nen µC auslagern? Sind das 
so komplexe Berechnungen, dass das ein moderner PC machen muss? 500 
Pakete/Sekunde ist nicht gerade wenig und dort auf einem PC eine Latenz 
< 1ms einzuhalten dürfte nahezu unmöglich sein.

Per USB dürftest du übrigens wenn du geschickt arbeitest auch in die 
Richtung 2-5ms kommen.

Autor: 4421 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LinuxSystem ? Was soll das ? Ein Controller oder DSP ist da viel 
passender.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das µC Board genügend Power hat um 1000 UDP Telegramme pro
Sekunde zu verarbeiten, dürfte es auch schnell genug sein um
die Steuersoftware von dir direkt auszuführen.

Ansonsten gibt es noch die RS232....
Die benötigte Bandbreite von mindestens 1500 Bytes/s
schafft eine Verbindung mit 38400 Baud locker.
Latenz in dem Fall ca 1,7 msec (2x3 Byte).
Sehr viel besser dürfte die Ethernet Lösung auch nicht werden...

ps: Mist, zu langsam.

Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit USB sollte es auch gehen. Interrupt-Transfer kann man auf 1ms 
Abtastzeit stellen.

Autor: tzuz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat deine firma kein geld sich nen anständigen ing zu leisten

Autor: Florian K. (koppi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@tzuz:
Ne, ich versuche gerade ein anständiger Ing. zu werden ;-) Ist ein 
FH-Projekt.

@Matthias
Was Parallelport und RS232 angeht:
Sind keine "heutige" Schnittstellen. Das ganze soll auch auf nem 
Notebook laufen. Da sind USB, Firewire, Ethernet...

@Phil
Was meinst du genau mit USB? USB-RS232-Wandler
Die Latenz sollte 2ms nicht überschreiten. Und ich fürchte, dass das 
sowohl beim Wandeln ein Problem darstellt, wie auch bei der späteren 
Verarbeitung.
Aber morgen (heut ist zu spät für sowas :-) ) werd ich mir mal ansehen, 
was es mit der Interupt-Transfer-Rate auf sich hat.


Die Steuerung ist ne Fuzzy-Logic. Die ließe sich wohl auch ebensogut auf 
dem µC unterbringen. Jedoch wird die von einer Kamera mit Daten 
gefüttert.
Diese macht 250 Bilder/sek (500 wäre besser). Der PC wertet die Bilder 
aus (Binarisieren, Objektfindung), berechnet Koordinaten und gibt die an 
die Fuzzy-Logic weiter. Diese errechnet unter Berücksichtigung des 
aktuell gemessenen Winkels vom Drehwertgeber die neue Schrittfolge für 
den Schrittmotor und gibt die Daten an diesen weiter.
Die Bildberechnung wird nen starken Multicore-CPU brauchen, um alles in 
2-4ms zu schaffen. Das kann wohl nicht auf nen Controller ausgelagert 
werden.


Gar nicht mal so einfach, oder?
Was die Ethernetvorschläge angeht, weitere Hardwarevorschläge?
"Webserver von Ulrich Radig" schau ich mir noch an, aber jetzt will ich 
erstmal schlafen ;-)

Autor: Florian K. (koppi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So,
selbstbauvarianten wie der Webserver von Ulrich Radig kommen aufgrund 
von wenig Zeit nicht in Frage.
USB->RS232 ist vom Prof ausgeschlossen worden.
Nach einigen Recherchen schwanke ich zwischen:

- Ethernut 2 (das Board ist in der FH noch vorhanden) nur bin ich mir 
nicht sicher ob das schnell genug ist. Klar, testen kann ichs mal, aber 
wenn ihr sagt, ich kanns gleich vergessen, kann ich die Zeit dafür 
sparen
Erfahrungen?

- ICNOVA AP7000 bzw. Grasshopper-Board
Wo ist da eigentlich genau der Unterschied?

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.