Embedded Systems

telos® Embedded Systems Programmierung

Informatikunternehmen, die wie telos seit Jahrzehnten aktiv sind, haben ein umfangreiches Portfolio an Erfahrungen. Im Bereich Embedded Systems liegen unsere Anfänge bei PIC Controllern von Microchip, X86 Derivaten von Intel etc und Controllern auf Basis des 8051.
Erstaunlicherweise gibt es all diese Controllerfamilien auch nach einem Vierteljahrhundert noch und werden weiterhin eingesetzt. Natürlich sind dies nicht die ursprünglichen Implementation oder gar Bauformen wie DIL oder PLCC. Die Technologie dahinter existiert aber weiterhin und findet ihren Niederschlag in aktuellen Komponenten und Projekten.

Fortschritt

Im Bereich der Embedded Systeme geht der Trend heute zu immer leistungsfähigeren CPUs, mit denen ganz neue Einsatzfelder für eingebettete Systeme erschlossen werden können. Längst haben sich Hochsprachen wie C bzw. C++ auch in der hardwarenahen Programmierung etabliert.
Einchiplösungen mit integriertem USB, Ethernet, SPI, UART, CAN und vielen weiteren Standardschnittstellen sind gang und gäbe und die Grenzen zwischen klassischen Computern und Embeddedsystemen verschwimmen zusehens. Hersteller wie ST und Freescale bieten ein komplettes Portfolio von Prozessoren an, die einerseits auf der gleichen Architektur basieren, sich andererseits aber deutlich in der Ausstattung und vor allem in der Bauteilgröße unterscheiden.

telos setzt abgesehen von klassischen Mikrocontrollern und CPUs zudem Digitale Signalprozessoren für Meß- und Steueraufgaben ein.

Energie

Modernere und immer leistungsfähigere Plattformen schaffen jedoch nicht nur neue Möglichkeiten, sie schaffen auch neue Herausforderungen. Mobile Geräte sind ein ungebrochener Trend der letzten Jahre und hieraus ergibt sich die Notwendigkeit, aktiv den Energieverbrauch solcher Systeme zu minimieren. Dies umfasst alle Bereiche, vom Hardwaredesign mit restriktiven Abschaltfunktionen für stromhungrige Peripherie bis zu Software, die gezielt Rechenleistung nur bei Bedarf anfordert.

Folglich steht in solchen Fällen nicht die absolute Rechenleistung eines Mikroprozessors im Vordergrund der Auswahl, sondern seine Fähigkeit, möglichst granular nicht benötigte Funktionen abzuschalten.

Betriebssysteme

Werden Anwendungen komplexer, dann ist ein Betriebssystem meist unverzichtbar.

Es gibt eine Reihe von klassischen Echtzeitbetriebssystemen wie CMX, FreeRTOS oder MQX. Wir haben bei telos die Erfahrung gemacht, dass sich viele Vorhaben unter Einsatz von Linux erheblich leichter realisieren lassen, da dieses Vorgehen eine einfache Migration von und hin zu Desktopsystemen ermöglicht und die Portierung von Anwendungen weniger Kosten verursacht.

Vorteile von Linux

Linux hat in den letzten Jahren vor allem im Servermarkt an großer Bedeutung gewonnen und schickt sich jetzt an, den Markt der Embedded Systeme zu erobern. Im Gegensatz zu anderen verbreiteten PC-Betriebssystemen hat Linux gerade für den Embedded Markt entscheidendene Vorteile:

  • Linux ist kostenlos; es steht unter der GNU GPL.
  • Es existieren robuste und erprobte Entwicklungswerkzeuge für alle denkbaren Plattformen und Programmiersprachen.
  • Alle Quelltexte von Linux sind frei verfügbar.
  • Linux ist ein vollwertiges Serverbetriebssystem inklusive Multitasking, Speicherschutz und Rechteverwaltung.
  • Linux verfügt von Haus aus über einen robusten und gut getesteten Netzwerkstack nebst diversen unterstützenden Werkzeugen und Protokollen, welche in anderen Systemen nicht, nur in Ansätzen oder nur kostenpflichtig vorhanden sind.

Echtzeit Linux

Linux ist wie die meisten anderen Multitasking-Betriebssysteme standardmäßig nicht echtzeitfähig. Das bedeutet, dass das Betriebssystem keine maximale Zeit garantiert, nach der ein Prozeß spätestens Rechenzeit erhält. Dieses ist in vielen Bereichen auch nicht wichtig, kann allerdings z.B. bei Embedded Systemen, die eine Anlage steuern sollen, zu einem Problem werden.

Man stelle sich eine Anlage vor, die ein Faß befüllen soll. Das Embedded System öffnet das Ventil und die Flüssigkeit fließt in das Faß. Nach einiger Zeit meldet ein Füllstandssensor an das System, dass das Faß voll sei. Leider bekommt der Steuerprozeß erst nach 10 Sekunden wieder Rechenzeit. Zu dieser Zeit ist es für das Schließen des Ventils aber zu spät: das Faß ist bereits übergelaufen.

Um Linux auch für solche Steuerungsaufgaben einsetzen zu können, gibt es diverse Echtzeiterweiterungen wie z.B. Xenomai.

telos blickt auf mehr als 15 Jahre in der Portierung und Nutzung von Linux in eingebetteten Systemen zurück. Dies gilt sowohl für die Entwicklung von Treibern und Plattformanpassungen, als auch für die Entwicklung von komplexen und datenintensiven Anwendungen mit Echtzeitanforderungen.