Anwendungsbeispiel ARM-Cortex ARM-Architekturen in Industrie-Steuerungen

Die Steuerungsebene

Die Steuerungsebene einer Fabrik setzt sich in der Regel aus einer großen Zahl programmierbarer Steuerungen (PLCs) zusammen, die Sensor-Daten erfassen und hieraus Entscheidungen generieren, den Prozesszustand zu verändern, Relais und Motoren anzusteuern oder den Status anderer mechanischer Komponenten in der Fabrik zu ändern. Die PLCs sind in der Lage, ein großes Netzwerk von I/Os mit Hunderten von Knoten zu überwachen und zu managen. PLCs erfordern in der Regel ein deterministisches Verhalten. Jedes I/O-Verhalten muss somit bei jedem Auftreten stets dieselbe Zeit (d.h. dieselbe Anzahl Prozessorzyklen) beanspruchen. Wenn die Forderungen nach Echtzeit-Fähigkeit und deterministischem Verhalten weniger strikt sind, kommt in einigen PLCs ein Echtzeit-Betriebssystem (Real-Time Operating System, RTOS) zum Einsatz, das die task-basierte Programmierung vereinfacht und gleichzeitig sicherstellt, dass das System innerhalb einer bestimmten Zeitspanne reagiert.

Zu den besonderen Merkmalen des ARM Cortex-M3 gehört die hardware-mäßige Unterstützung für deterministisches Verhalten. Anstatt Daten aus den Caches zu holen, ruft der Cortex-M3 seine Instruktionen und Daten direkt aus dem Chip-internen Flash-Speicher ab. Außerdem verfügt er über Hardware zum Abspeichern des CPU-Status während einer Exception. Hinsichtlich des Designs macht es der eingebaute Determinismus des Cortex-M3 möglich, eine aus zwei Chips bestehende Motorregelung durch eine einzige MCU zu ersetzen. In der Vergangenheit wäre ein digitaler Signalprozessor (DSP) zur Regelung des Motors, der dem betreffenden Knoten zugeordnet ist, nötig gewesen. In der Zwischenzeit hätte die MCU sich um die Anbindung an das übrige System kümmern können. MCUs auf Cortex-M3-Basis dagegen können beide Aufgaben übernehmen.

Die hardware-mäßige Unterstützung für deterministisches Verhalten kann ihre Stärken am besten mit einem Netzwerkprotokoll ausspielen, das ebenfalls für deterministisches Verhalten ausgelegt ist. Das Precision Time Protocol (PTP) IEEE 1588 bringt genau diese Eigenschaft mit und ist zudem des multi-casting-fähig. Was das Automatisierungs-Design angeht, ist also 10/100-Ethernet mit Hardware-Unterstützung für IEEE 1588 PTP eine wichtige Peripheriefunktion. Bei einigen anspruchsvolleren PACs wird wegen der größeren Datenmengen sogar Gigabit-Ethernet benötigt.

Ein weiteres beliebtes Kommunikationsverfahren ist das CAN-Protokoll (Controller Area Network), mit dem sich dezentrale, redundante Systeme realisieren lassen. Drahtlose Netzwerke gewinnen bei der Vernetzung von PLCs, Sensoren und anderen Geräten auf der Knoten-Ebene weiter an Popularität. Für die Kommunikation zwischen PLCs und PACs werden außerdem verbreitet WLANs verwendet. Die ARM-MPUs der Sitara-Klasse sind mit integriertem Ethernet MAC, CAN und SDIO for WLAN ausgestattet und bringen auch die notwendige Rechenleistung zur Unterstützung der Netzwerkprotokolle mit (Bild 2).

Auf der Sensor-Ebene findet das ZigBee-Protokoll zunehmend Beachtung. Gestützt auf die Funk-Spezifikation IEEE 802.15.4, nutzt ZigBee die Maschennetzwerk-Technik für den Aufbau betriebssicherer, selbstkonfigurierender Netzwerke für industrielle Anwendungen. Cortex-M3-basierte MCUs bieten ausreichend Rechenleistung für die Verarbeitung des ZigBee-Protokolls und alle damit zusammenhängenden Aufgaben -- mit Ausnahme der Funk-Kommunikation. Darüber hinaus reicht sie auch für die 10/100-Base-T-Ethernet-Kommunikation im Halb- und Vollduplex-Betrieb und mit Auto-MDIX-Unterstützung.

Die Stellaris-MCUs haben den entscheidenden zusätzlichen Vorteil, dass Ethernet-PHY und -MAC in den Chip integriert sind. Gegenüber einem System mit zwei Chips senkt dies die Kosten und spart Leiterplattenfläche. Wenn ein Design mit der Leistung von 10/100-Ethernet nicht auskommt, sollten sich Designer für Cortex-A8-basierte MPUs wie etwa die Sitara-Familie entscheiden.

Überlegungen zum Design

Häufig sind die Grafikanforderungen das Hauptkriterium bei der Wahl des Betriebssystems. Steuerungsanwendungen, die nach 2D- oder 3D-Grafik, Streaming-Video und höheren Display-Auflösungen verlangen, benötigen in der Regel auch ein RTOS, Embedded Linux oder Windows Embedded CE und dürften auf einem ARM9- oder Cortex-A8-basierten Prozessor laufen. Die ARM-MPUs der Sitara-Familie enthalten daher eine komplette MMU für die benötigte virtuelle Speicheradressierung.

Ein intelligentes Display-Modul, das für Text, 2D-Grafikelemente und QVGA-JPEG-Bilder geeignet ist, stellt üblicherweise die Obergrenze für Cortex-M3-basierte MCUs dar. Die im Cortex-M3 enthaltene MPU erleichtert die Nutzung von Echtzeit-Betriebssystemen mit kleinem Speicher sowie von abgespeckten Linux-Kernels (z.B. des Unisom-Kernels von RoweBots).

Innerhalb des ARM-Ecosystems gibt es zahlreiche zertifizierte Kommunikations-Stacks, darunter auch die in der Fabrikautomation benötigten, speziellen industriellen Kommunikations-Stacks. Hinzu kommt eine Selbsttest-Bibliothek gemäß IEC 60730, die in industriellen Anwendungen für die Gerätediagnose verwendet werden kann. Für Sitara-MPUs gibt es u.a. Unterstützung von Drittfirmen für Echtzeit-Betriebssysteme wie Neutrino, Integrity und VxWorks.