Forum: Mikrocontroller und Digitale Elektronik PC oder uC?


von blanc (Gast)


Lesenswert?

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

von A.K. (Gast)


Lesenswert?

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.

von rene (Gast)


Lesenswert?

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

von rene (Gast)


Lesenswert?

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

von A.K. (Gast)


Lesenswert?

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.

von Winfried (Gast)


Lesenswert?

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.

von rene (Gast)


Lesenswert?

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

von rene (Gast)


Lesenswert?

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

von Ralph (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.