Mikrocontroller-Peripherie Unabhängig vom Core

Sind 8-bit-Mikrocontroller nicht etwas aus der Zeit gefallen? – Es kommt auf die Peripherie an. Wenn die unabhängig vom Core arbeitet, reicht ein einfaches Steuerprogramm – und schon reicht die geringe Rechnenleistung völlig aus.

Bei den 32-bit-Mikrocontrollern jagt eine Produktankündigung die andere. Die meisten Controller beruhen auf der gleichen, lizenzierten Architektur und der Wettbewerb vollzieht sich allein über den Preis, während praktische Aspekte außen vor bleiben. Die Abwesenheit einfachster Peripherieschaltungen soll durch schiere Rechenleistung kompensiert werden – so das Versprechen. Zugegeben, die wichtigste Stärke einer 32-bit-Architektur liegt in ihrer Rechenleistung und ihrem Zugriff auf große Speicherbereiche; alle diese Produkte nutzen zwangsläufig kleinste CMOS-Prozessgeometrien, um kleine Gehäuseformate und knappe Kostenziele zu erreichen.

Die meisten Embedded-Steuerungsanwendungen aber haben genau entgegengesetzte Anforderungen: Robustheit, leistungsfähige Analogfunktionen, I/O-Treiberfunktionen für hohe Spannung und Strom, geringen Stromverbrauch und langlebige Flash-Datenspeicherung. Dies alles sind grundlegende Qualitäten relativ ausgereifter CMOS-Prozesse (d.h. größere, ältere Geome­trien), wie man sie meist für 8-bit-­Mikrocontroller bevorzugt.

Peripherieschaltungen entlasten den Mikrocontroller

Geht es aber um hohe Verarbeitungsgeschwindigkeit, so haben 8-bit-Mikrocontroller Nachteile, die sie kompensieren müssen, um wettbewerbsfähig zu bleiben. Hier kommen Core-unabhängige Peripherieschaltungen, sogenannte CIPs (Core Independent Peripherals), ins Spiel. Das Konzept einer Core-unabhängigen Peripherieschaltung ist recht einfach: Benötigt eine Task eine große Anzahl von CPU-Zyklen oder eine große Menge an Code und RAM, so könnte man ein dediziertes Hardware-Element – also eine Peripherieschaltung – entwickeln, um diese Task so effizient wie möglich auszuführen. Dadurch wird der Mikrocontroller entlastet. Durch die Integration von CIPs können Entwickler einen kleineren Mikrocontroller-Core nutzen, der mit einer geringeren Taktfrequenz läuft. So lassen sich Kosten, Strombedarf und Komplexität senken und der Mikrocontroller darf sich gelegentlich im Leerlauf oder bei Bedarf sogar im Standby-Modus befinden. Ein einfaches, praktisches Beispiel soll dieses Konzept verdeutlichen.

Ein Steuerungssystem erhält Befehle von einem übergeordneten Controller in Form eines Pulsbreitenmodulations-Signals (Bild 1). Das Protokoll ist besonders einfach und kostengünstig ausgelegt: Das Pulsbreitenmodulations-Signal ist konstant im Rahmen eines vorgegebenen Toleranzbereichs (zwischen Tmin und Tmax) und nutzt lediglich ein Tastverhältnis W zur Übertragung aller nötigen Informationen (dabei wird eine Auflösung von R = 4 bit für die DC-Messung angenommen). Die nachfolgenden Erläuterungen konzentrieren sich ausschließlich auf die Optimierung der Erfassung und Dekodierung des Eingangssignals. Das Ausgangssignal dieses Subsystems könnte beliebig sein, zum Beispiel eine Drehzahl, Positions- oder Temperaturangabe.

Zunächst soll das Problem mit Mitteln eines Universal-Mikrocontrollers gelöst werden. Obwohl es viele mögliche Lösungswege gibt, soll sich die Analyse hier auf die nachfolgenden drei Basisfälle beschränken: