Jeffrey Cross
Jeffrey Cross

SPARK Projekt Nr. 1, Beitrag Nr. 5

Shawn Schafferts Ratschenplaner

Echtzeit-Betriebssysteme?

Auch wenn es sich bei diesem Projekt um ein Smart-Home-Dashboard handelt, das nicht unbedingt zeitkritische Aufgaben hat, ist dies sehr leicht möglich. Was wäre, wenn eine Wolke die Sonnenkollektoren bedeckte und ich das Licht dimmen wollte. Ich möchte nicht, dass meine Software auf die Aktualisierung aller Temperatursensoren wartet, bevor die Beleuchtung geändert wird. Um dieses potenzielle Problem zu vermeiden, möchte ich für mein Projekt ein "Echtzeitbetriebssystem".

Systeme, die eingebettete Controller verwenden, zeichnen sich häufig durch die Notwendigkeit aus, Rechenverhalten in Echtzeit zu zeigen. Es ist wichtig zu verstehen, was dies bedeutet und wie sich dies auf die Wahl der Software auswirkt, die in einem Projekt verwendet werden soll. Niemand würde argumentieren, dass Computer im Laufe der Jahre immer schneller wurden. Die Geschwindigkeiten und Taktraten von Festplatten, Arbeitsspeicher, Grafikkarten und Motherboards stiegen mit jeder neuen Hardwaregeneration stetig an. Dies bedeutet, dass der Benutzer komplexe Anwendungen ausführen kann, ohne unnötig lange warten zu müssen, und dass einfache Anwendungen ihre Funktionen in verschwindend kleinen Zeitabständen ausführen. Bei den meisten Desktop-Anwendungen sind kleine Verzögerungen bei der Programmausführung nicht wahrnehmbar und unbedeutend. Was aber, wenn ein Teil Ihrer Anwendung den Not-Aus-Taster Ihrer selbst gebauten CNC-Fräsmaschine überwacht? Sie benötigen den Not-Aus-Schalter, um die Maschine innerhalb einer garantierten Zeit herunterzufahren. Ohne diesen Determinismus kann eine sehr gefährliche Situation entstehen, wenn beispielsweise eine Hintergrundaufgabe, wie Musik spielen oder Speichern einer Datei, die Computerbandbreite kurzzeitig beansprucht. Sie drücken und lassen den Not-Aus-Schalter los und sehen entsetzt zu, wie Ihre Mühle sich durch Ihren Part bewegt.

Es ist keine leistungsstarke oder schnelle CPU erforderlich, um rechtzeitig auf eine einzelne Bitänderung in einem Peripherie-E / A-Register zu reagieren. Jeder, der einen Port-Interrupt in einem einfachen 8-Bit-Mikrocontroller programmiert hat, kann herausfinden, wie lange es dauert, bis der 8-Bit-Prozessor den E / A-Interrupt erfasst und den Code zur Reaktion auf das Ereignis aufruft. Bei PC-Betriebssystemen wie OSX, Windows und Linux gibt es einige Möglichkeiten, "Echtzeit" -Threads zu implementieren. Diese Funktion wird jedoch häufig implementiert, indem das normale Verhalten des Betriebssystems durch ein Betriebssystem-Add-On überschrieben wird, um diese Funktion zu erreichen . Diese Betriebssysteme wurden als universelle Werkzeuge zum Ausführen einer Vielzahl von Anwendungen und zur Interaktion mit zahlreichen Hardwaregeräten von Drittanbietern entwickelt. Sie wurden jedoch nicht für deterministisches Echtzeitverhalten entwickelt.

Ein echtes Echtzeitbetriebssystem (RTOS) ist so konzipiert, dass ein Programm in Aufgaben aufgeteilt werden kann, die nach einem festen Zeitplan ausgeführt werden, und asynchrone Ereignisse, wie das Drücken einer CNC-Mühle für Not-Aus-Taster, ein Maximum garantieren Latenzzeit, bevor sie ausgeführt werden. Sie können ein Programm schreiben, um einen I / O-Pin bei 5 kHz und einen anderen bei 1 kHz mit minimalem Jitter umzuschalten, oder die Not-Aus-Taste programmieren, um Ihre CNC-Fräsmotoren innerhalb einer garantierten 1 Millisekunde abzuschalten.

Sehen Sie sich eine Liste der Echtzeitbetriebssysteme an und informieren Sie sich hier über Windows Embedded CE 6.0 R2.


Dieses SPARK Your Imagination Make: Die Windows Embedded-Projektreihe wird von der Microsoft Corporation gesponsert.

Aktie

Leave A Comment