Einen Großteil meines Designerfolgs verdanke ich meiner Universität. Allerdings nicht wegen der Laborversuche, bei denen wir gelernt haben, was einen Kondensator versehentlich in die Luft jagen könnte, sondern weil wir gelernt haben, dass Murphys Gesetz dann zuschlägt, wenn man es am wenigsten erwartet. Ich verbrachte damals viel Zeit mit Computerspielen und der Bewältigung eines endlosen Aufgabenpensums für meine Kurse und musste mich darauf verlassen können, dass mein Computer jederzeit funktioniert.
Damals war die Leistung von Computern noch recht begrenzt und es war nicht ungewöhnlich, hin und wieder den berüchtigten „Blue Screen Of Death“ zu sehen. Während es frustrierend ist, bei Computerspielen unterbrochen zu werden, hätte der Verlust meiner ungespeicherten Studienarbeiten aufgrund eines Systemabsturzes eine massive Panikattacke in mir ausgelöst. Wenn Sie als Designer arbeiten und Ihr Mikrocontroller schon einmal im Betrieb ausgefallen ist, kennen Sie dieses Panikgefühl wahrscheinlich.
In einem Embedded-System können Ausfälle von Mikrocontrollern (MCUs) schlimme Auswirkungen haben. MCUs sind oft das Herzstück von Anwendungen wie Zahlungssystemen, medizinischen Geräten und Sicherheitssystemen. Diese Systeme erfordern eine hohe Stabilität und haben oft geringe Toleranzen für Systemausfälle.
Eine ausgefallene MCU kann zu einem vollständigen Stillstand des Betriebs führen. Dies kann für die Benutzer lästig sein aber auch Sicherheitsrisiken für kritische Anwendungen darstellen. Für die Kunden führen unzuverlässige Systeme zu einer Beeinträchtigung der Betriebskapazität und potenziell auch zu Umsatzeinbußen. Für uns als Designer ist es ein schwerer Schlag für unseren Stolz, wenn Hunderte unserer Produkte ständig im Betrieb versagen, ganz abgesehen von der drohenden Rufschädigung.
Ein zuverlässiges Embedded-System erfordert eine gemeinsame Anstrengung des Hardware-Designers und des Firmware-Programmierers. Einige Designfehler bleiben jedoch während der Entwicklungsphase unentdeckt und entfalten erst im Betrieb ihr destruktives Potential. Wenn dies der Fall ist, wer sollte dann den Hauptanteil der Verantwortung tragen?
Bevor wir Schuldzuweisungen machen, lassen Sie uns einen Blick auf die häufigsten Gründe werfen, warum Mikrocontroller ausfallen.
Der Speicherblock eines Mikrocontrollers ist ein bestimmter Bereich seines internen RAM, der für den temporären Einsatz bestimmt ist. Die Größe eines Speicherblocks ist begrenzt und unterscheidet sich je nach MCU. Wenn der Firmware-Programmierer eine Variable zuweist, die größer als die Blockgröße ist, kann es während der Laufzeit zu einem Überlaufen des Speicherblocks kommen, was dann zum Ausfall der Firmware führt.
Bei der MCU-Firmware-Programmierung wird ein Pointer häufig verwendet, um die Adresse von Variablen oder Programmfunktionen anzuzeigen. Die Deklaration und Verwendung von Pointern erfordert, dass der Firmware-Programmierer die durch die Programmiersprache (oft C) streng definierte Syntax einhält. Die versehentliche Einführung eines illegalen Pointers kann dazu führen, dass die MCU versucht, Variablen oder Funktionen in Adressen zu verarbeiten, die außerhalb ihres gültigen Bereichs liegen. Dies könnte zum Absturz der MCU führen.
Eine MCU benötigt ein stabiles Stromnetz, um zuverlässig zu funktionieren – ein Faktor, der oft übersehen wird. Eine MCU kann ausfallen, wenn ihre Stromquelle durch externe Störungen ständig unterbrochen wird. Ein Einbruch der Betriebsspannung kann dazu führen, dass sich eine MCU unberechenbar verhält oder vollständig zum Stillstand kommt.
Wenn man elektrische Störungen nicht behebt, insbesondere solche, die durch Relais und Motoren verursacht werden, kann dies zum Absturz der MCU führen. Während eines meiner früheren Projekte, bei dem es um das Antreiben eines einfachen Gleichstrommotors ging, fiel meine MCU jedes Mal aus, wenn sie versuchte, den Motor rückwärts zu fahren. Dieses Problem ließ sich schließlich durch eine Erhöhung der elektrischen Isolation mit einem Operationsverstärker lösen.
Manchmal hat ein Ausfall eines Mikrocontrollers nichts mit dem für die Hardware oder Firmware zuständigen Ingenieur zu tun. Qualitativ minderwertige Lötstellen an den MCU-Pins können zu einem unvorhersehbaren MCU-Verhalten führen. Wenn mehrere Ihrer Embedded-Systeme ausfallen, sollten Sie die Prozessqualität Ihres Herstellers prüfen.
Anstatt sich gegenseitig die Schuld zuzuweisen, müssen sowohl Hardware- als auch Firmware-Ingenieure ihren Teil zum Entwurf eines zuverlässigen Embedded-Systems beitragen. Die Anwendung bewährter Programmierverfahren und die vorherige Planung der Speicherzuweisung sind wichtige Aspekte, die man beachten sollte. Für Programmierer empfiehlt es sich, die Dinge einfach zu halten, um die Gefahr fehlerhafter Codes zu minimieren.
Hardware-Designer müssen die Umgebung berücksichtigen, in der die Hardware eingesetzt wird, und sich auf alle Möglichkeiten vorbereiten. Dies bedeutet die Einhaltung der besten grundlegenden Designpraktiken und die effektive Nutzung der Tools Ihrer PCB-Software zum Testen des Designs. Sie benötigen ein benutzerfreundliches PCB-Layout-Tool, das alles enthält, was Sie für die Erstellung von qualitativ hochwertigen, herstellbaren Leiterplatten benötigen? Dann sind Sie bei CircuitMaker genau richtig. Zusätzlich zu der benutzerfreundlichen PCB-Designsoftware haben alle CircuitMaker-Anwender Zugang zu einem persönlichen Arbeitsbereich auf der Altium 365-Plattform. Sie können Ihre Designdaten in die Cloud hochladen und speichern, und Ihre Projekte ganz einfach über Ihren Webbrowser auf einer sicheren Plattform betrachten.
Nutzen Sie CircuitMaker noch heute und verpassen Sie nicht, wenn der neue CircuitMakerPro von Altium erscheint.