Share this

Energiesparende Designstrategien für Mikrocontrollersysteme

2026-02-21 12:52:31 · · #1
Zusammenfassung: Die energiesparende Entwicklung eingebetteter Systeme erfordert eine umfassende Analyse verschiedener Faktoren und eine sorgfältige Gesamtplanung. In der frühen Entwurfsphase sind diese Faktoren oft voneinander abhängig und beeinflussen sich gegenseitig; Maßnahmen zur Reduzierung des Systemstromverbrauchs können daher negative Auswirkungen auf andere Bereiche haben. Aus diesem Grund erfordert die Reduzierung des Gesamtstromverbrauchs eine sorgfältige Analyse und Berechnung. Dieser Artikel erörtert einige Aspekte, die bei der energiesparenden Entwicklung eines mikrocontrollerbasierten eingebetteten Systems aus Hardware- und Anwendungssoftwareperspektive zu berücksichtigen sind. Schlüsselwörter: Energiesparende Entwicklung, Hardwareentwicklung, Anwendungssoftwareentwicklung, Energiesparmodus. In eingebetteten Anwendungen gewinnt der Systemstromverbrauch zunehmend an Bedeutung, insbesondere bei batteriebetriebenen tragbaren Systemen. Die Reduzierung des Systemstromverbrauchs und die Verlängerung der Akkulaufzeit bedeuten geringere Betriebskosten. Bei mikrocontrollerbasierten eingebetteten Anwendungen erfordert die Minimierung des Systemstromverbrauchs eine Berücksichtigung sowohl der Hardware- als auch der Softwareperspektive. Da immer mehr eingebettete Anwendungen Echtzeitbetriebssysteme verwenden, ist die Frage der Reduzierung des Systemstromverbrauchs auf Betriebssystemebene ebenfalls von Bedeutung. Aus Platzgründen beschränkt sich dieser Artikel auf die Hardware- und Anwendungssoftwareentwicklung. 1 Hardware-Design: Die Auswahl eines Mikrocontrollers mit geringem Stromverbrauch kann den Stromverbrauch des Systems deutlich reduzieren. Die Stromspareigenschaften eines Mikrocontrollers lassen sich unter verschiedenen Aspekten untersuchen, darunter die Versorgungsspannung, die interne Mikrocontroller-Struktur, das Systemtakt-Design und die Energiesparmodi. 1.1 Einfacheren CPU-Kern wählen: Bei der Auswahl eines CPU-Kerns sollte nicht allein die Leistung im Vordergrund stehen. Wenn eine 8-Bit-CPU ausreicht, ist keine 16-Bit-CPU erforderlich; das Prinzip sollte „gut genug“ lauten. Zwar führen höhere Leistungsstufen bei Mikrocontrollern oft zu einem höheren Stromverbrauch. Eine komplexe CPU zeichnet sich durch hohe Integration und leistungsstarke Funktionen aus, doch aufgrund der vielen On-Chip-Transistoren ist der Leckstrom insgesamt hoch und selbst im Stoppmodus signifikant. Ein einfacher CPU-Kern hingegen ist nicht nur stromsparend, sondern auch kostengünstiger. 1.2 Niederspannungs-Stromversorgungssystem wählen: Durch die Reduzierung der Versorgungsspannung des Mikrocontrollers lässt sich dessen Stromverbrauch effektiv senken. Aktuell wird die Versorgungsspannung von Mikrocontrollern von den TTL-kompatiblen 5 V auf 3,3 V, 3 V, 2 V und sogar 1,8 V reduziert. Diese Senkung der Versorgungsspannung ist den Fortschritten in der Halbleitertechnologie zu verdanken. Vom ursprünglichen 3-µm-Prozess bis zu den heutigen 0,25-, 0,18- und 0,13-µm-Prozessen ist die Schwellenspannung von CMOS-Schaltungen kontinuierlich gesunken. Eine Niederspannungsversorgung kann den Betriebsstrom des Systems deutlich reduzieren. Aufgrund der kontinuierlichen Verkleinerung der Transistoren steigt jedoch tendenziell der Leckstrom der Transistoren, was sich ebenfalls negativ auf die Reduzierung des Stromverbrauchs auswirkt. Aktuell liegt die Versorgungsspannung von Mikrocontrollersystemen zwar immer noch hauptsächlich bei 5 V, aber in den letzten fünf Jahren hat sich die Anzahl der mit 3 V betriebenen Mikrocontrollersysteme verdoppelt, und auch die Anzahl der mit 2 V betriebenen Systeme nimmt zu. In weiteren fünf Jahren könnte die Anzahl der mit Niederspannung betriebenen Mikrocontroller die der mit 5 V betriebenen Mikrocontroller übersteigen. Die Reduzierung der Versorgungsspannung wird daher ein wichtiger Trend in der zukünftigen Entwicklung von Mikrocontrollern sein. 1.3 Auswahl eines Systems mit Energiesparmodus Der Energiesparmodus bezieht sich auf den Warte- und Stoppmodus des Systems. Der Stromverbrauch eines Mikrocontrollers ist in diesen Modi deutlich geringer als im Betriebsmodus. Früher verfügten herkömmliche Mikrocontroller im Betriebsmodus über die Befehle „Warten“ und „Stoppen“, mit denen der Mikrocontroller in einen Warte- oder Stoppzustand versetzt werden konnte, um Energie zu sparen. Im Wartemodus stoppt die CPU, der Systemtakt läuft jedoch weiter und die Peripherie-I/O-Module des Mikrocontrollers bleiben funktionsfähig. Der Stromverbrauch des Systems wird in der Regel nur geringfügig reduziert und beträgt 50–70 % des Verbrauchs im Betriebsmodus. Im Stoppmodus stoppt auch der Systemtakt und wird erst durch einen externen Interrupt wieder gestartet, wodurch die CPU aktiviert wird und ihre Arbeit fortsetzen kann. Der Stromverbrauch der CPU kann auf den μA-Bereich reduziert werden. Im Stoppmodus verbraucht die CPU selbst praktisch keinen Strom. Um den Stromverbrauch des Systems weiter zu reduzieren, ist es unerlässlich, möglichst viele I/O-Module des Mikrocontrollers abzuschalten. Mit jedem abgeschalteten I/O-Modul sinkt der Stromverbrauch, und der Tiefststand erhöht sich. Der Tiefststand entspricht im Wesentlichen einem vollständigen Herunterfahren, bei dem der Stromverbrauch des Mikrocontrollers unter 20 nA sinken kann. Wichtig ist, dass die im On-Chip-RAM gespeicherten Daten verloren gehen, sobald die Stromversorgung unterbrochen wird. Das bedeutet, dass das System nach dem Aufwachen der CPU neu initialisiert werden muss. Daher sollten vor dem Tiefststand wichtige Systemparameter in einem nichtflüchtigen Speicher wie dem EEPROM gesichert werden. Im Tiefststand werden alle I/O-Schnittstellen deaktiviert, und die Aufwachmethoden sind stark eingeschränkt – in der Regel nur Reset- oder IRQ-Interrupts. Je mehr I/O-Module aktiv bleiben, desto mehr Aufwach-Interruptquellen stehen dem System zur Verfügung. Der Stromverbrauch des Mikrocontrollers sinkt je nach gewählter Aufwachmethode auf Werte zwischen 1 µA und einigen zehn µA. Beispielsweise können Benutzer externe Tastatur-Interrupts, asynchrone serielle Schnittstellen-Empfangs-Interrupts (SCI) usw. beibehalten, um die CPU aufzuwecken. Je mehr Aufweckmethoden beibehalten werden, desto höher ist der Stromverbrauch des Systems. Weitere mögliche Aufweckmethoden sind das Aufwecken durch die Echtzeituhr und den Watchdog. Im Shallow-Stop-Modus ist die externe Quarzoszillatorschaltung weiterhin aktiv. Abbildung 1 zeigt den Stromverbrauch des Systems in verschiedenen Betriebsmodi am Beispiel des Freescale HCS08-Mikrocontrollers. Der HCS08 ist ein 8-Bit-Mikrocontroller, der in verschiedenen Serien mit jeweils unterschiedlicher Anzahl an I/O-Modulen erhältlich ist. Der Stromverbrauch im Energiesparmodus ist jedoch annähernd gleich. Abbildung 1 zeigt den Stromverbrauch des HCS08-Mikrocontrollers in verschiedenen Modi am Beispiel des Mikrocontrollers der R-Serie: Bei Raumtemperatur (25 °C), ohne Berücksichtigung der I/O-Port-Lasten, mit einer 2-V-Spannungsversorgung und einem auf 16 MHz eingestellten PLL-Takt (Bustakt 8 MHz) beträgt der typische Stromverbrauch 2,6 mA. Bei einer Temperatur von 85 °C steigt der Stromverbrauch auf 3,6 mA. Bei einer 3-V-Spannungsversorgung erhöht er sich auf 3,8 mA bzw. 4,8 mA. Mit einer 2-V-Spannungsversorgung und einem externen Quarzoszillator mit 2 MHz (Bustakt 1 MHz) sinkt der typische Betriebsstrom auf 450 μA. Im Standby-Modus ist der Stromverbrauch stark von der Taktfrequenz abhängig, da der Takt nicht angehalten wird. Die Energieeinsparung ist daher begrenzt. Im Zustand des leichten Stopps (Stop3), der durch einen externen Interrupt ausgelöst wird, beträgt der Stromverbrauch ca. 0,5 μA. Im Zustand des moderaten Stopps (Stop2) lässt sich der Stromverbrauch weiter reduzieren. Bei Verwendung des internen 1-kHz-Takts, der einen Taktzyklus aufrechterhält und die CPU periodisch aufweckt, erhöht sich der Stromverbrauch um ca. 0,3 μA. Im Zustand des tiefen Stopps (Stop1) werden die RAM-Daten nicht mehr gespeichert, und das System kann nur durch einen externen Reset neu gestartet werden. Der Stromverbrauch kann derzeit auf 20 nA reduziert werden. Alle Daten wurden bei Raumtemperatur gemessen. Steigt die Umgebungstemperatur auf 85 °C, kann der Stromverbrauch um das 3- bis 5-Fache ansteigen. 1.4 Wahl eines geeigneten Taktschemas Die Wahl des Takts hat großen Einfluss auf den Stromverbrauch des Systems. Entwickler müssen zwei Aspekte beachten: Erstens sollte die Systembusfrequenz so niedrig wie möglich sein. Der Gesamtstromverbrauch im Mikrocontroller lässt sich in Betriebsstrom und Leckstrom unterteilen. Ein idealer CMOS-Schaltkreis verbraucht im Ausgangszustand keinen Strom. Beispielsweise ist bei einem typischen CMOS-Inverter (siehe Abbildung 2) der P-Transistor leitend, der N-Transistor gesperrt, wenn der Eingang Null ist, und es fließt kein Strom. In der Realität weist der N-Transistor jedoch einen gewissen Leckstrom auf. Mit zunehmender Integrationsdichte und abnehmender Dicke der Transistorbasis steigt dieser Leckstrom. Mit steigender Temperatur sinkt die Schwellenspannung des CMOS-Schaltkreises, während der Leckstrom mit steigender Umgebungstemperatur zunimmt. Im Betrieb eines Mikrocontrollers wechselt der Schaltkreis ständig zwischen „1“ und „0“. Der durch den Betrieb des Mikrocontrollers verursachte Stromverbrauch wird als Betriebsstrom bezeichnet. Wie in Abbildung 2 dargestellt, sind die Schaltverzögerungszeiten zweier Transistoren beim Umschalten zwischen Ein- und Aus-Zustand nicht exakt gleich. Daher kommt es kurzzeitig vor, dass beide Transistoren gleichzeitig eingeschaltet sind. In diesem Moment fließt ein hoher Strom zwischen der Versorgungsspannung und Masse, der die Hauptursache für den Betriebsstrom des Mikrocontrollers ist. Der Betriebsstrom ist nahezu proportional zur Taktfrequenz des Mikrocontrollers. Durch Minimierung der Systemtaktfrequenz lässt sich der Stromverbrauch des Systems daher effektiv reduzieren. Die zweite Frage betrifft das Taktkonzept: Soll eine Phasenregelschleife (PLL) verwendet werden und ob ein externer oder ein interner Quarzoszillator zum Einsatz kommt? Neuere Mikrocontroller-Generationen, wie beispielsweise die HCS08-Serie von Freescale, verfügen über einen integrierten Quarzoszillator, der direkt als Taktquelle genutzt werden kann. Der Vorteil eines integrierten Quarzoszillators liegt darin, dass kein externer Quarz benötigt wird, wodurch die Hardwarekosten des Systems sinken. Zu den Nachteilen zählen die geringe Genauigkeit des integrierten Quarzoszillators (der Fehler liegt üblicherweise bei etwa 25 %, und selbst nach der Kalibrierung kann noch ein relativer Fehler von 2 % auftreten) und der erhöhte Stromverbrauch. Moderne Mikrocontroller verwenden häufig Phasenregelschleifen (PLL), mit denen die Taktfrequenz des Mikrocontrollers programmgesteuert werden kann. PLLs ermöglichen den Einsatz externer Quarzoszillatoren mit niedrigerer Frequenz, wodurch das Rauschen auf der Platine deutlich reduziert wird. Da die Taktfrequenz programmgesteuert ist, lässt sich der Systemtakt über einen weiten Bereich anpassen, was häufig zu sehr hohen Busfrequenzen führt. Allerdings verursacht auch die Verwendung einer PLL einen zusätzlichen Stromverbrauch. Hinsichtlich der Taktung allein verbraucht ein externer Quarzoszillator ohne PLL am wenigsten Strom. 2. Anwendungssoftware-Überlegungen Der Begriff „Anwendungssoftware“ dient zur Abgrenzung von „Systemsoftware“ oder „Echtzeitbetriebssystem“. Die Bedeutung von Software für ein energiesparendes System wird oft unterschätzt. Ein Hauptgrund dafür ist, dass Softwarefehler nicht so leicht zu erkennen sind wie Hardwarefehler und es keinen eindeutigen Standard zur Beurteilung der Energiespareigenschaften von Software gibt. Dennoch sollten Entwickler bestrebt sein, die Energiespareigenschaften der Anwendung in der Software abzubilden, um „unsichtbare“ Leistungsverluste zu vermeiden. 2.1 Verwendung von „Interrupts“ statt „Polling“ Ob ein Programm Interrupts oder Polling verwendet, mag für einige einfache Anwendungen nicht entscheidend sein, kann aber einen erheblichen Unterschied in den Energiespareigenschaften ausmachen. Bei Verwendung von Interrupts kann die CPU nichts tun oder sogar in den Warte- oder Stoppmodus wechseln; im Polling-Modus hingegen muss die CPU ständig auf E/A-Register zugreifen, was zu einem deutlich höheren Stromverbrauch führt. 2.2 Subroutinen durch Makros ersetzen: Programmierer müssen verstehen, dass das Lesen von RAM mehr Energie verbraucht als das Lesen von Flash-Speicher. Aus diesem Grund erlauben ARM-CPUs, die für ihren geringen Stromverbrauch bekannt sind, in ihrem Design nur einen Subroutinenaufruf. Beim Eintritt in eine Subroutine legt die CPU das aktuelle CPU-Register zunächst auf den Stack (RAM) und holt es beim Verlassen wieder vom Stack, was mindestens zwei RAM-Operationen zur Folge hat. Daher können Programmierer die Verwendung von Makrodefinitionen anstelle von Subroutinenaufrufen in Betracht ziehen. Für Programmierer gibt es keinen Unterschied in der Code-Syntax zwischen dem Aufruf einer Subroutine und eines Makros, jedoch expandieren Makros während der Kompilierung, während die CPU die Anweisungen einfach sequenziell ausführt und so Subroutinenaufrufe vermeidet. Das einzige offensichtliche Problem ist die größere Code-Größe. Heutzutage verfügen Mikrocontroller über immer größeren On-Chip-Flash-Speicher; für Anwendungen, bei denen eine größere Code-Größe weniger problematisch ist, reduziert dieser Ansatz zweifellos den Stromverbrauch des Systems. 2.3 Minimierung der CPU-Auslastung Die CPU-Auslastung kann auf verschiedene Weise reduziert werden: Ergebnisse können vorab berechnet und im Flash-Speicher abgelegt werden. Alternativ können Lookup-Tabellen Echtzeitberechnungen ersetzen, wodurch CPU-Auslastung und Stromverbrauch gesenkt werden (viele Mikrocontroller verfügen über schnelle und effiziente Lookup-Befehle und Adressierungsmodi zur Optimierung von Lookup-Algorithmen). Bei unvermeidbaren Echtzeitberechnungen sollte die Berechnung beendet werden, sobald eine ausreichende Genauigkeit erreicht ist, um Überberechnungen zu vermeiden. Nach Möglichkeit sollten kürzere Datentypen verwendet werden, z. B. 8-Bit-Zeichendaten anstelle von 16-Bit-Integer-Daten und Bruchrechnung anstelle von Gleitkommaarithmetik. 2.4 I/O-Module sollten nur zeitweise betrieben werden. Nicht verwendete oder nur zeitweise genutzte I/O-Module sollten umgehend abgeschaltet werden, um Energie zu sparen. RS232-Treiber benötigen viel Strom; dies kann über einen I/O-Pin des Mikrocontrollers gesteuert werden, indem der Treiber abgeschaltet wird, wenn keine Kommunikation erforderlich ist. Nicht verwendete I/O-Pins sollten als Ausgänge oder Eingänge konfiguriert und mit Pull-up-Widerständen auf High-Pegel gezogen werden. Nicht initialisierte Pins können den Leckstrom des Mikrocontrollers erhöhen. Besondere Aufmerksamkeit sollte dem Umstand gelten, dass einige einfach gebaute Mikrocontroller bestimmte I/O-Pins nicht freilegen. Diese nicht sichtbaren I/O-Pins müssen unbedingt initialisiert werden. 3. Fazit: Ein erfolgreiches Low-Power-Design erfordert eine Kombination aus Hardware- und Softwareentwicklung. Bereits zu Beginn der Hardwareentwicklung müssen die Eigenschaften einer Low-Power-Anwendung vollständig verstanden, ein geeigneter Mikrocontroller ausgewählt und die Systemlösung auf Basis dieses Verständnisses entworfen werden. Bei der Softwareentwicklung sind die Besonderheiten der Low-Power-Programmierung zu berücksichtigen und die Energiesparmodi des Mikrocontrollers bestmöglich zu nutzen. Aus Platzgründen wurden hier nur einige häufige Probleme im Low-Power-Design behandelt. Viele weitere Probleme können nur in der Praxis vom Entwickler analysiert und gelöst werden. Referenzen: 1 Liu Huiyin et al. Principles and Embedded Applications of Motorola Microcontroller MC68HC08, Beijing: Tsinghua University Press, 2001 2 Shao Beibei. Online-Entwicklungsmethoden für eingebettete Mikrocontroller-Anwendungen. Peking: Tsinghua University Press, 2004. 3 Donnie Garcia, Scott Pape. MC9S08GB/GT Energiesparmodi. Freescale Semiconductor, Rev. 2. 2004. 4 MC9S08GB/GT Datenblatt. Freescale Semiconductor, Rev. 2.2, 2004. 5 HCS08-Familien-Referenzhandbuch. Freescale Semiconductor, 2003. 6 Scott Pape. Übergang von HC08 zu HCS08. Freescale Semiconductor, 2004. 7 Bill Lucas, Scott Pape. Konfiguration der System- und Peripherietakte im MC9S08GB/GT. Freescale Semiconductor, 2003. 8 Scott Pape. S08 in energiesparenden Geräten. Freescale Technology Forum, 2005.
Read next

Luftstrom-Dreh-SPS-elektrisches Steuerungssystem [mit Bildern]

Das Luftstrahlspinnen ist eine traditionelle und ausgereifte Garnspinntechnologie. Angesichts der steigenden Anforderung...

Articles 2026-02-20