Hi, ich habe gehört, PC sind nicht so geeignet für Echtzeit-Applikationen wie Mikroprozessoren. Ich meine UART beispielsweise. Ist diese Aussage korrekt? Kann jemand solche Artikel empfehlen? MfG Blanc
Hängt vom Zeitrahmen deiner "Echtzeit" ab, und vom Betriebssystem. Reaktionszeiten im Mikrosekundenbereich sind nicht so die Stärke von PC-Anwendungsprogrammen unter ausgewachsenen Betriebssystemen, das ist mit Microcontrollern oder antikem MSDOS einfacher. Was du mit UART in diesem Zusammenhang meinst ist mir jedoch unklar. Immerhin ist (war) das PC-Standardtechnik und ist massenhaft im Einsatz.
Das ist richtig. Realtime heisst nicht Schnelligkeit, sondern die Faehigkeit, etwas jeweils innerhalb einer gewissen Zeit zu verarbeiten. Wenn beim PC der Spichermanager meint, er muesse eine Garbagecollection machen, geschieht sonst sehr wenig. Echtzeit heist in der Regel das System ist getaktet, zB 1ms, 10ms, so kommen die Messungen, so gehen die Daten wieder raus. Das System reagiert innerhalb dieser Zykluszeit. rene
Das UART ist ein Punkt wo der PC suboptimal ist. Speziell bei Halbduplex hardware wie RS485. Da sollte nach einer Meldung die Richtung umgeschaltet werden. Dies sollte im Interrupt geschehen, sonst it eh nichts. Speziell wenn man die Hardware an die Grenzen ausfahren will. RS485 macht von der Hardware her 20MBit, aber nicht vom PC. Da muesste die Leitung auf 0.5us genau umgeschaltet werden. rene
Yep, aber ich meine dazu etwas in der Doku des betreffenden Win32-APIs gefunden zu haben. Dass ebensolche RS485 Funktionalität (RTS Handshake) da schon drinsteckt. Und da sind wird genau beim Thema: In Windows/Linux muss etwas mit derart engem Zeitrahmen in einen Device-Driver passieren. Und solche Biester sind weit unangenehmer zu programmieren als ein AVR.
Für Linux gibt es Realtime-Kernel Erweiterungen wie rtlinux und rtai. Die CNC-Maschinensteuerung EMC greift z.B. darauf zurück. http://de.wikipedia.org/wiki/RTLinux http://www.linuxcnc.org Unter Linux mit Realtimekernel zu programmieren, ist aber ein komplexes Thema.
Zuerst muss man sich fragen : Welche Zuverlaessigkeit brauche ich ? Je komplexer das System, desto tiefer die Zuverlaessigkeit Wieviel Power darf's brauchen ? Kleine Systeme brauchen weniger Das Userinterface. Was benoetigt man ? Leuchten, Text, Graphisch, Balkenanzeige, Tasten ... Kann das UI auch abgesetzt sein ? Muss das UI auch immer laufen ? Kann ja sein, dass das UI nur bei Bedarf aktiviert wird. Ein Windows oder Linux kommt immer schlecht weg wenn man die Power nicht unbedingt braucht. rene
Zuverlaessigkeit ist sowieso das Schluesselwort bei Realtimesystemen. Das Ding steht irgendwo in der Welt draussen und muss Jahre (Jahrzehnte) laufen. Ein Softwareupdate geht nicht. Dh jede Zeile Code muss 5 mal ueberlegt sein, vor der Auslieferung. rene
Das ganze ist davon abhängig was du machen willst. Ein Realtime System auf PC Basis ist möglich, wird auch eingesetzt. Ein solches System ist jedoch sehr komplex und die Programmierung sollte man nur einem TEAM überlassen was wirklich weiß was es macht. Also für Anfänger ABSOLUT ungeeignet. Auf µC Basis sieht das einfacher aus. Ein solches System hat nur die Komponenten die für die jeweilige Aufgabenstellung benötigt werden. Also keinen Ballast der Rechenzeit benötigt und das System aus dem Takt bringen kann. Die Komplexität ist dadurch bedeutend geringer als bei einem PC basierenden System. Solche Realtime Systeme sind zb die Motorsteuerung oder auch ein ABS / ESP System im KFZ. Hier hat auch ein Anfänger eine Chance ein Realtime System für eine einfache Aufgabenstellung aufzusetzen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.