Auswahlkriterien Schritt für Schritt

Wenn man sich den Herausforderungen beim Bau eines neuen elektronischen Geräts stellt, muss man eine Reihe von Fragen beantworten. Eine der wichtigsten ist die Auswahl der Komponenten, die nicht immer einfach ist. In den letzten Jahren waren viele Komponenten kaum verfügbar und mussten manchmal schnell durch andere mit ähnlichen Parametern ersetzt werden, auch auf Kosten der Herstellung einer neuen Leiterplatte. Das „Herz“ vieler moderner Geräte ist ein Mikrocontroller. Die Wahl fällt aufgrund unserer Fähigkeiten oder Ausrüstung manchmal einfach. Es entstehen jedoch neue Herausforderungen, und dann müssen viele Fragen rund um die Auswahl beantwortet und verschiedene Kriterien berücksichtigt werden.
 
  • Die Rolle der detaillierten Projektbeschreibung
  • Auswahlkriterien für Mikrocontroller
    • Versorgungsart
    • Betriebsspannung
    • Anzahl der Ausführungen
    • Peripheriemodule
    • Kern- und Peripheriegeschwindigkeit
    • Verfügbarer Speicher
    • Elektrische Zuverlässigkeit
    • Volumen
Wie wählen wir den richtigen Mikrocontroller für unser Projekt aus?

Die Wahl eines Mikrocontrollers für das zu erstellende Projekt erfolgt gleich zu Beginn der Arbeit. Bei der Betrachtung des Systemangebots sind drei Gruppen zu berücksichtigen – Mikrocontroller mit 8-, 16- und 32-Bit-Kern. Die Wahl eines Mikrocontrollers wird durch keine Regeln eingeschränkt, es gibt jedoch viele Faktoren, die die Entscheidung beeinflussen sollten. Manchmal, insbesondere zu Beginn eines Projekts, ist es schwierig einzuschätzen, welche Funktionen des Mikrocontrollers für eine bestimmte Anwendung am wichtigsten sind. Beispielsweise kann die Arbeitsfähigkeit in einem breiten Temperaturbereich oder die Verfügbarkeit integrierter Schnittstellenmodule im Widerspruch zu den Anforderungen an einen geringen Stromverbrauch des Netzteils stehen.

Projektbeschreibung

Die Auswahl der Komponenten für das Gerät ist ein Kompromiss zwischen den Parametern, dem Preis und der verfügbaren Werkstattausstattung. Bei einer so wichtigen Komponente wie Mikrocontroller ist das nicht anders. Die Auswahl kann umso schwieriger sein, dass sie sich auf die aktuellen und zukünftigen Parameter des fertigen Geräts sowie auf die Erstellungsmöglichkeit nachfolgender Entwicklungsversionen auswirkt. Eine gute Methode besteht darin, in dieser Phase eine Anforderungsbeschreibung zu erstellen, die nicht nur die Auswahl eines Mikrocontrollers erleichtert, sondern auch beim Vergleich der Eigenschaften und Parameter einzelner Systeme hilft.

Der erste Teil der Beschreibung sollte die Grundfunktionalität enthalten, d. h. eine Liste der wichtigsten Funktionen für ein bestimmtes Projekt. Es sollte folgende Informationen enthalten:
 
  • Welche Funktionen wird das entworfene Gerät erfüllen?
  • Was sind die Ein- und Ausgangssignale? Wie hoch werden ihre Werte sein (Spannung und Strom), wie wird ihre Frequenz sein?
  • Kommuniziert das Gerät mit der Umgebung? Wenn ja, auf welche Weise? Wird eine drahtlose Schnittstelle benötigt? Werden die Daten dem Benutzer grafisch vorgestellt?
  • Welche Daten werden im Speicher aufbewahrt und wie viel Platz wird dafür benötigt? Sollten diese Daten auch nach dem Aus-/Einschalten verfügbar sein?
  • Wie hoch sollte die Reaktionsgeschwindigkeit auf ein Ereignis sein?
  • In welcher Sprache wird die Steuerungsanwendung erstellt (dies hat Auswirkungen auf die Größe des Arbeitsspeichers und des Programmspeichers)?

Dann lohnt sich ein Blick auf die Projekt-Randbedingungen:
  • Wie hoch ist der Zielpreis des Geräts (der sich auf die Montage- und Komponentenkosten auswirken wird)?
  • Welche Leistungsbeschränkungen gibt es? Soll das Gerät tragbar oder stationär sein? Wie hoch ist die erforderliche Betriebszeit nach dem Batteriewechsel/Akkuladen?
  • Was ist die Zielgröße des Geräts? In welches Gehäuse soll es eingebaut werden?
  • Ist das Gerät für Industrie-, Verbraucher- oder Spezialanwendungen vorgesehen?
Anhand der Anforderungsliste lässt sich abschätzen, über welche Ressourcen der Mikrocontroller verfügen sollte. Es können Speicher-, Daten- und Programmanforderungen festgelegt werden. Man kann die Anzahl der Ein- und Ausgangspins und Peripheriegeräte angeben und die erforderliche Kernleistung abschätzen.

In dieser Phase der Erstellung der Projektspezifikation ist keine hohe Genauigkeit erforderlich. Der Zweck besteht lediglich darin, den Bedarf abzuschätzen, um die Eigenschaften und Funktionen der ausgewählten Mikrocontrollersysteme vergleichen zu können. Typisch für Systeme mit einem 8-Bit-Kern sind beispielsweise die Hardware-Implementierung von Schlafmodusfunktionen, die Echtzeitreaktion und Immunität gegenüber EMI-Störungen. Die Wahl von 32-Bit-Mikrocontrollern lohnt sich, wenn man Multitasking, dynamisches Management des Energieverbrauchs, hohe Rechenleistung oder die Möglichkeit der Arbeit unter der Kontrolle eines Betriebssystems erreichen möchte.

Auswahlkriterien

Um die Auswahl des richtigen Mikrocontrollers zu erleichtern, schlagen wir eine Reihe von Kriterien vor, an denen man sich orientieren kann. Sie sollten als Tipps und Themen zum Nachdenken betrachtet werden, nach Wichtigkeit und erwarteten Funktionen des Geräts geordnet werden und es können eigene Kriterien hinzugefügt werden, die in diesem Text nicht berücksichtigt sind. Bei einigen Geräten können bestimmte Aspekte von entscheidender Bedeutung sein, während sie bei anderen sogar weggelassen werden können.

Versorgungstyp

Tragbare Geräte werden in der Regel mit Batterien oder Akkus betrieben. Daher muss der in einem solchen Gerät eingebaute Mikrocontroller möglichst wenig Energie verbrauchen. Mikrocontroller wiederum, die in Geräte eingebaut sind, die über das Stromnetz (über ein Netzteil) betrieben werden, sollten ebenfalls energiesparend sein, um mit den Trends in modernen Anwendungen Schritt zu halten, es besteht jedoch keine Notwendigkeit, den Energieverbrauch komplett zu minimieren.

Der Mikrocontroller, der die Akku-Anwendung steuert, sollte über einen sehr effizienten Kern verfügen, damit er nach dem Aufwachen aus dem Schlafzustand, in dem er die meiste Zeit verbleibt, möglichst viele Vorgänge ausführen kann (um den Energieverbrauch zu minimieren). Daher ist in den meisten Fällen die beste Wahl für ein Mobilgerät ein Chip mit einem 32-Bit-ARM-Kern. Bei einem stationären Gerät mit eigener Stromversorgung ist die Geschwindigkeit des Mikrocontrollers ein wichtiges Kriterium, allerdings nur für die Befriedigung der Bedürfnisse der Anwendung.

Bei einem tragbaren Gerät ist die große Anzahl an Ruhezuständen, in die der Mikrocontroller wechseln kann, von Vorteil. Dies ist ein typisches Merkmal von 32-Bit-Mikrocontrollern. Einfachere 8-Bit-Elemente verfügen höchstens über einen oder zwei Betriebsmodi mit reduziertem Energieverbrauch. Es kommt häufig vor, dass der Mikrocontroller entweder im Betrieb oder ausgeschaltet ist. Für viele Anwendungen wird dies keinen Unterschied machen, aber für fortgeschrittenere Anwendungen kann es notwendig sein, mehr Energiesparmodi zu unterstützen. Dadurch kann man den durchschnittlichen Energieverbrauch minimieren und die Arbeitszeit im Batteriebetrieb verlängern.

Wert der Versorgungsspannung

Der Wert der Versorgungsspannung ist in mindestens zweierlei Hinsicht eine Überlegung wert. Erstens wirkt er sich auf die Geschwindigkeit des Mikrocontrollers aus. Meistens gilt, je niedriger die Versorgungsspannung, desto langsamer die Arbeit des Kerns (also desto niedriger die Frequenz, mit der er getaktet werden kann). Dies muss bei der Betrachtung der Ausführungsgeschwindigkeit des Codes berücksichtigt werden. Der zweite Aspekt sind die kooperierenden externen Systeme. Die Frage ist meist, ob ein mit Niederspannung betriebener Mikrocontroller beispielsweise mit Schnittstellensystemen funktionieren kann, die eine höhere Spannung benötigen. Es muss also geprüft werden, ob solche Systeme überhaupt verfügbar sind, ob der Einsatz spezieller Wandler erforderlich ist oder ob der Mikrocontroller mit einer höheren Spannung als geplant versorgt werden muss. Der Wert der Versorgungsspannung beeinflusst auch die Leistungsverluste im Kern, in den meisten Mikrocontroller-Anwendungen ist jedoch keine zusätzliche Kühlung erforderlich.

Anzahl der Ausführungen und deren Typ

Ein wichtiges Kriterium ist die Anzahl der I/O-Pins im Gehäuse, die wir in der Anwendung verwenden möchten. Bei der Betrachtung dieses Aspekts muss man über eine „grob“ angeordnete Anwendung verfügen. Das heißt, es soll klar sein, was für ein Display verwendet wird, wie es gesteuert wird, ob Ein-/Ausgabeschnittstellensysteme benötigt werden und wie sie mit dem Mikrocontroller selbst verbunden werden. Man muss außerdem die Anzahl der erforderlichen binären I/O-Pins (Ein- und Ausgänge), die geplante Anzahl von Tasten und die analogen Ein-/Ausgänge kennen. Ausgänge usw. Erst wenn das alles einigermaßen geplant ist, lässt sich abschätzen, wie viele Pins wir benötigen und in welchem Gehäuse wir unseren Mikrocontroller unterbringen werden.

Natürlich kann man auch weitere Systeme von Expandern mit serieller Schnittstelle verwenden, was den Bedarf an Pins deutlich reduziert. Gleichzeitig verkompliziert es aber die Software, die Platine und erschwert das Starten des Geräts. Die Auswahl eines Mikrocontrollers im Hinblick auf die Anzahl der Pins ist immer ein Kompromiss zwischen dem, was verfügbar ist, und dem Aufwand, der für das spätere Schreiben und Ausführen der fertigen Anwendung aufgewendet wird.

Besondere, zusätzliche Anforderungen

Moderne Mikrocontroller sind recht gut mit integrierten Peripheriemodulen ausgestattet. Darunter finden wir solche, die die Treiber von Motoren oder Wandlern direkt steuern können. Es gibt solche, die über eine sehr große Anzahl eingebauter PWM-Generatoren verfügen, die für die Steuerung vieler Servomechanismen im Manipulator nützlich sind. Viele können direkt an eine USB-Schnittstelle angeschlossen werden. Eingebaute Peripheriemodule vereinfachen die Anwendung, beschleunigen ihren Betrieb und reduzieren die Größe des Programmcodes. Außerdem ermöglichen sie einen wesentlich schnelleren Start des Geräts. Daher lohnt es sich, bei der Auswahl eines Mikrocontrollers die Verfügbarkeit von Peripheriemodulen und anderen besonderen Funktionalitäten zu berücksichtigen.

Auch die Auswahl der verarbeiteten Signale ist sehr wichtig. Wenn wir in der Anwendung analoge Signale verarbeiten, muss der Mikrocontroller eine hohe Leistung haben sowie über eine entsprechende Anzahl von A/D-Wandlern verfügen, die mit der erforderlichen Abtastfrequenz arbeiten. Es wäre noch am besten, wenn Peripheriemodule zur Unterstützung ihrer Arbeit verfügbar wären, wie DMA, MAC (Multiply And Accumulate), eine DSP- oder FPU-Einheit. Es ist dann möglich, analoge Signale effizient zu verarbeiten, ohne die Anforderungen an den Kern selbst und seine Leistung zu erhöhen.

Die Arbeitsgeschwindigkeit des Kerns und der Peripheriesysteme

Die Wahl zwischen Hardware- und Software-Umsetzung von Funktionen hat Konsequenzen für das gesamte Projekt. Es ist eine Wahl zwischen geringem Bedarf an Rechenleistung und der Einfachheit des Designs. Bei dieser Entscheidung muss man auch die Konsequenzen dieser Wahl berücksichtigen. Beispielsweise ist es möglich, die UART-Schnittstelle in Software zu implementieren, dies erfordert jedoch, dass die CPU ständig das Signal am ausgewählten Eingang abhört oder die Ausführung des Hauptprogramm-Threads unterbricht, wenn wir uns für die Verwendung von Interrupts vom I/O-Eingang entscheiden . Diese Funktionalität kann einen großen Teil der CPU-Rechenleistung verbrauchen und ein Hindernis für die Unterstützung anderer Peripheriegeräte darstellen. Ähnlich verhält es sich mit dem grafischen Display. Eine große Menge übertragener Daten kann sich auf die Geschwindigkeit der Programmausführung auswirken – hier kann es insbesondere bei hoher Bildschirmauflösung deutlich effizienter sein, einen DMA zu verwenden, der Daten aus dem Speicher über Hardware-SPI ohne Beteiligung des Kerns überträgt.

Verfügbare Speicherressourcen

Per Definition bietet das Betriebssystem Multitasking und schaltet selbstständig zwischen einzelnen Zuständen der Zustandsmaschine um, was die Programmierung wesentlich vereinfacht. Andererseits benötigt eine selbstgeschriebene Zustandsmaschine viel weniger Programmspeicher und Daten, erfordert weniger Rechenleistung und kann im Hinblick auf die Anforderungen der Anwendung und die Geschwindigkeit ihres Betriebs optimal sein. Beide Ansätze funktionieren und werden in der Praxis eingesetzt.

Das Betriebssystem benötigt wesentlich mehr Speicherressourcen als eine selbst geschriebene Anwendung. Zusätzlich zum eigentlichen Programm muss es Platz für überschüssige Daten bieten, zu denen in diesem Fall der im Flash-Speicher gespeicherte Betriebssystemcode und sein Bedarf an Arbeitsspeicher (Stack, Systemvariablen, Interrupt-Behandlung, Schnittstellenschaltungen und andere) gehören.

Programme, die in Assemblersprache geschrieben sind, benötigen normalerweise den geringsten Speicherbedarf. Die Verwendung eines Hochsprachen-Compilers erfordert die Zuweisung einer bestimmten Menge an Speicher für den Programmstack und die Variablen. Noch mehr Speicher wird, wie bereits erwähnt, vom Betriebssystem und dem von ihm gesteuerten Programm benötigt. Wichtig ist auch, ob der Mikrocontroller mit einem grafischen Display arbeitet, denn dann werden Icon-Muster oder andere grafische Elemente im Flash-Speicher abgelegt, die meist in Form von Bitmaps vorliegen und zusammen mit Farbattributen gespeichert viel Platz in Anspruch nehmen.

Elektrische Zuverlässigkeit

In einer idealen Anwendung wird die Widerstandsfähigkeit des Mikrocontrollers gegenüber Schwankungen der Versorgungsspannung, EMI-Störungen oder Überspannungen auf I/O-Leitungen nicht berücksichtigt. Unter realen Einsatzbedingungen, insbesondere in Fahrzeugen, ist der Mikrocontroller diesen Faktoren jedoch stark ausgesetzt. In Fahrzeugen funktionieren Mikrocontroller mit einem 8-Bit-Kern oder indirekte Mikrocontroller mit einem 16-Bit-Kern, der mit 5 V betrieben wird, deutlich besser. Die Praxis zeigt, dass die Verwendung eines 32-Bit-Kerns, der mit einer Niederspannung von 2,7 bis 3,3 V betrieben wird, schwierig ist, da er mit einem erhöhten Maß an EMI-Störungen verbunden ist. Eine solche Anwendung ist möglich, die Umsetzung erfordert jedoch deutlich mehr Zeit.

Produktionsvolumen

Wichtig für die Auswahl der Komponenten, nicht nur des Mikrocontrollers, ist, ob das Gerät ein Modul einer Industriemaschine ist, das in kleinen Stückzahlen angeboten wird, oder ob es in Tausenden von Stücken auf dem Verbrauchermarkt vertrieben werden soll. Im ersten Fall soll man sich in der Regel keine Gedanken über die Abmessungen des Gehäuses und den Preis der Komponenten machen. Im zweiten Fall muss man nicht nur auf die Komponenten selbst und deren Preise achten, sondern auch auf die Art der Installation auf der Zielplatine.

Startumgebung, Softwaretools

Heutzutage gibt es für viele Mikrocontroller eine große Auswahl an tollen, kostenlosen Hochsprachen-Compilern, Editoren, Debuggern, Simulatoren und anderen Hardware- und Softwaretools. Daher ist dieses Kriterium häufig nicht von großer Bedeutung, was jedoch nicht immer der Fall ist. Wenn wir ein Gerät für die Automobil- oder Luftfahrtindustrie entwickeln, müssen wir zertifizierte Softwaretools verwenden, die nicht billig sind und die Auswahl auf bestimmte Systemfamilien, oft bestimmter Hersteller, beschränken. Ein Designer, der ein neues Gerät für den Verbrauchermarkt baut, beispielsweise einen Controller eines Spielzeugs, wird viel mehr Freiheit haben.

Bei der Auswahl des Systemtyps und der IDE-Laufzeitumgebung lohnt es sich, auf die Verfügbarkeit von Funktionsbibliotheken zu achten. Oft leisten Chiphersteller viel Arbeit für den Programmierer, indem sie Funktionen und Verfahren ausführen, die für die Handhabung zahlreicher Funktionalitäten und Peripheriemodule verantwortlich sind: Touch-Schnittstelle, Display, Kommunikationsschnittstellen, PWM-Generatoren usw. Standardcodefragmente, die in den Labors des Herstellers getestet werden, können die Programmausführung erheblich beschleunigen und die Arbeitszeit am Projekt verkürzen. Es ist auch gut, den zuvor geschriebenen Code wiederzuverwenden. Deshalb ist es ratsam, einen Chiphersteller zu wählen, der verschiedene Mikrocontroller anbietet, aber auf die gleiche Weise programmiert sind und die gleichen Tools verwenden.

Schlussbemerkungen

Sobald wir die Kriterien analysiert und uns für Kompromisse entschieden haben, können wir mit der Suche nach einem Mikrocontroller beginnen, der unseren Projektanforderungen entspricht. Leider stellt sich oft heraus, dass es trotz der großen Anzahl verfügbarer Systeme schwierig ist, sich für das perfekte Modell zu entscheiden. Es kann notwendig sein, auf einige Optionen zu verzichten, die einerseits das Projekt erschweren und andererseits die Kosten erhöhen. Hierbei geht es nicht nur um den Mikrocontroller selbst, sondern auch um den Preis der Ausstattung, die zum Betrieb und Testen der Funktionen des fertigen Geräts erforderlich ist, sowie um die Kosten für Peripheriesysteme, die zur Implementierung einer bestimmten Funktionalität erforderlich sind. Es ist nicht ungewöhnlich, dass die Einführung zusätzlicher Funktionen die Komplexität von Tests erhöht und die Zeit bis zur Markteinführung eines Geräts erheblich verlängern kann. Wichtig sind auch Workshop-Möglichkeiten. Manchmal besteht die einzig mögliche Programmieroption darin, den gelöteten Schaltkreis auf der Platine (in-circuit) zu speichern. Die meisten modernen Mikrocontroller verfügen über diese Fähigkeit, aber nicht alle.

Der Text wurde von Transfer Multisort Elektronik Sp. z o.o. verfasst
https://www.tme.eu/de/news/library-articles/page/58382/wie-waehlen-wir-den-richtigen-mikrocontroller-fuer-unser-projekt-aus/