mikrocontroller.net

Forum: PC Hard- und Software WinCe Board - CAN/USB - Motoransteuerung


Autor: René (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich arbeite gerade an der Steuerung für unser Maturaprojekt einen 
Tripod. (Bild)

Nun habe ich, dass Problem dass ich mit möglichst echtzeitfähiger 
Kommunikation die drei Motoren ansteuern soll.
Die Koordinatentransformation ist bereits erledigt und ich habe jetzt 
auch schon ein WinCe Board von Keith & Koep, auf dem Windows CE 4.0 
installiert ist.
Dazu haben wir drei Antriebsregler von miControl besorgt die einen 
USB-CAN Umsetzer dabei haben.
Kann man mit diesem USB-CAN Umsetzer überhaupt in echtzeit übertragen?

Unser WinCe Board hat auch einen CAN-BUS integriert, aber ich leider 
habe noch nicht die größte Erfahrung in CAN-Protokoll Programmierung...

Was meint Ihr, wie würdet ihr es lösen?
Sollte ich die Motoren über ein anderes WinCe Board, der ein USB-Target 
hat, mit dem USB-CAN Umsetzter ansteuern ODER mit dem bereits 
vorhandenen Board über den CAN-BUS?
Oder gibt es andere bessere Möglichkeiten ? (Linux...)

Danke für eure Hilfe!!!

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
René schrieb:
> möglichst echtzeitfähiger

Definiere doch deine Echtzeitanforderung. Dann kann man auch abschätzen 
ob es Reicht.

- Windows CE 4.0 ist, glaube ich, nicht Echtzeitfähig.

- Eingebaute Schnittstellen weisen immer geringere Latenszeiten auf, als
  externe.

- Linux ist nicht Echtzeitfähig. Es sei den du nimmst ein spezielles
  Echtzeitkernal.

- Auch ist der CANbus nicht Echtzeitfähig. Ausnahme: TTCAN.

Echtzeit heisst: Eine bestimmte Reaktion in einer definierten Zeit. Die 
"definierten Zeit" kann auch eine Stunde sein.

Du musst kein Echtzeitsystem haben. Meistens reicht es, wenn es 
ausreichend Schnell ist.

Welche Reaktionszeiten benötigt euer Projekt den?

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laut Berechnung wäre 1ms ideal, aber wahrscheinlich würden konstante 
10ms Taktzeiten pro gesendeten Wert (8Byte Nachrichten) reichen, aber 
ich weiß nicht um wie viel sich die Linearität der Gerade ändert bei 
10ms...

Wichtig ist, dass der Timer möglichst genau 1ms (10ms) schafft und nicht 
von anderen Programmen abgelenkt werden kann...

Die müssten halt immer konstant sein, was beim normalen Win7 leider 
nicht gewährleistet ist...
WinCe ab 4.0 ist echtzeitfähig...

Autor: Löwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

1ms Latenz ohne Jitter wirst du über USB nicht hinbekommen...
Dein größter Feind werden dabei die Schwankungen in der Latenz sein.

Hast du dir mal ein paar Linux-Alternativen angeschaut?

Z.B. hier:
http://www.linuxcnc.org/

Ich weiß nicht ob sich deine Anforderung damit 1:1 umsetzen lässt.

Zumindest bietet die Software einen Hardware Abstraction Layer, mit dem 
sich die Geometrie deiner Maschine nachbilden lässt. Schnittstellen 
werden auch genügen unterstützt.

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure bisherigen schnellen Rückmeldungen!!!

Ja, das Problem ist, ich habe bereits ein C#-Programm geschrieben, das 
wird wahrscheinlich nicht auf einen Linux-System laufen...

Autor: bluppdidupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
managed Anwendungen sind oft auch nicht echtzeitfähig (Der Garbage 
Collector haut einem willkürlich rein)

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... Eine bestimmte Reaktion in einer definierten Zeit. ...

Nach dieser Definition ist der CAN-Bus echtzeitfähig.

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin schrieb:
> Nach dieser Definition ist der CAN-Bus echtzeitfähig.

Nein.  Du kannst nicht hervorsagen wie viele Messages mit höherer 
Priorität sich "vordrängeln" werden. Nur TTCAN ist echtzeitfähig.
http://de.wikipedia.org/wiki/TTCAN#TTCAN

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.