Passive Überwachungsanwendung
Bild 4 zeigt eine Applikation, bei der der digitale Controller die Funktionstüchtigkeit einer Analogschaltung passiv überwacht. Im Falle einer Störung kann er einen Alarm auslösen, einen Eintrag im Ereignislogbuch des Flash-Speichers zur nachträglichen Analyse durchführen oder eine beliebige andere Aktion auslösen.
Mehrere Komponenten der CP3000-Familie enthalten einen On-Chip-Codec für Sprach- und Audio-Anwendungen, während alle CP3000-Versionen über Schnittstellen für externe Codecs und Hardware zur CVSD/PCM-Wandlung (Continuous Variable Slope Delta Modulation/Puls Code Modulation) verfügen, um eine Echtzeit-Transformation von analogen Daten in Sprachqualität vom standardisierten CVSD-Kompressionsformat in eine lineare PCM-Codierung auszuführen. Dadurch ist eine effiziente Codierung von Warnmeldungen oder anderen gesprochenen Meldungen in den – je nach CP3000-Derivat vorhandenen – On-Chip-Flash-Speicher oder externen Flash-Speicher möglich.
Ein typisches Anwendungsbeispiel ist die Überwachung der Steuerschaltung für den Seitenfensterheber in einem Auto. Falls der Controller einen zu hohen Strom registriert, könnte das daran liegen, dass das Fenster blockiert ist. Dank intelligenter Software lässt sich ein solches Ereignis genauer deuten.
So könnte sie beispielsweise die Fenstermotor-Laufzeit verwenden, um festzustellen, ob das Fenster vollständig geschlossen ist. Falls dies der Fall ist, wäre das ein Zeichen dafür, dass der Fensterpositionssensor funktionsunfähig ist. Wenn aber das Fenster noch nicht geschlossen sein kann, dann könnte das z.B. daran liegen, dass eine Kinderhand zwischen Fensterscheibe und Türrahmen eingeklemmt ist: In diesem Falle sollte sich der Motor in die umgekehrte Richtung drehen, während ein Alarmsignal dies dem Fahrer meldet. Über das CAN-Interface des CP3000 können solche Problemzustände zu anderen Komponenten im System kommuniziert werden.
Aktive Überwachungsanwendung
Auch bei analogen Systemen können Fehler auftreten, allerdings unterscheiden sie sich üblicherweise deutlich von denen, die bei digitalen Systemen vorkommen.
Ein Beispiel dafür ist das bekannte, mit „Hunting“ oder „Chatter“ bezeichnete Phänomen, das bei Servo-Loop-Controllern auftreten kann: Dabei schwingt der Controller-Ausgang um den Zielwert. Zahlreiche Faktoren können dieses Problem zusätzlich vergrößern, wie dies bei einem Positionscodierer mit unzureichender Auflösung der Fall ist. Wenn nämlich die Zielposition eines Servomotors zwischen zwei Schritten des Codierers liegt, wird am Eingang des Servomotor-Controllers immer ein Positionsfehler-Signal vorhanden sein, das nicht gleich Null ist. Als Folge davon könnte der Controller-Ausgang ständig zwischen positiven und negativen Positions-Korrektursignalen schwanken.
Ein digitaler Anti-Hunting-Detektor kann zum Beispiel eine solche Situation erkennen, indem er die Anzahl der Richtungsumkehrungen pro Zeiteinheit zählt, die am Steuerausgang stattfinden. Liegt diese Zahl über einem programmierten Schwellenwert, wird der Anti-Schwingungs-/Anti-Hunting-Ausgang aktiviert, sodass das unerwünschte Verhalten unterdrückt wird, zum Beispiel durch Einfügen eines Tiefpassfilters.
In Bild 5 ist das Grundkonzept dargestellt. Eine reale Implementierung würde höchstwahrscheinlich einen verzerrungsfreien Übergang zwischen den gefilterten und den ungefilterten Modi erfordern, zum Beispiel durch Verwendung des digitalen Signals zur Änderung der Filter-Zeitkonstante von einem unwirksamen in einen zur Schwingungsunterdrückung brauchbaren Wert.
Ist das Schwingen unterdrückt, lässt sich durch Festlegung einer Verzögerungszeit sicherstellen, dass das System anschließend nicht gleich wieder zu schwingen beginnt, nachdem die Schwing-Unterdrückungsfunktion deaktiviert wird (Bild 6).
Die Verzögerungszeit kann notwendig sein, wenn der Servomotor ein mechanisches System steuert, dessen Resonanzfrequenz mit der Frequenz des schwingenden Ausgangs übereinstimmt. Während der Verzögerungszeit kann die Reibung das Schwingen beenden. Eine Verzögerungszeit kann sich auch dann als nützlich erweisen, wenn das Schwingen andere Ursachen hat, wie ein plötzlich verstärktes Rauschen, welches durch Kopplung mit einer externen Quelle entsteht.
Einige der für diese Lösungen besprochenen Funktionen sind digital leichter realisierbar als analog. So ist die Implementierung eines Zählers zur Bestimmung der Anzahl der Richtungsumkehrungen oder einer Verzögerungsfunktion zur Unterdrückung der Schwingungen mit digitaler Hardware und dazugehöriger Software eine simple Aufgabe. Eine digitale Lösung ist nicht nur schneller implementiert, sondern auch deutlich kostengünstiger als eine analoge Lösung.
Aktive analoge Selbstkalibrierungsund Trimmanwendung
Eine aktive Steuerung kann auch zur Erzeugung von Testzuständen und -signalen für BIST-Modi (Built-In Self Test) verwendet werden. Durch Beobachtung der hervorgerufenen Effekte an inneren Knoten und an den Ausgängen ist es dem Embedded-Controller möglich, verschiedene Betriebszustände zu simulieren und die Funktionstüchtigkeit der Analogschaltung zu verifizieren.
Das gemessene Verhalten des Systems lässt sich auch zur Implementierung von Selbstkalibrierungs- und Trimmfunktionen während der Produktfertigung, des Power-on-Resets und periodisch während des Systembetriebs verwenden. Eine Feinabstimmung (Trimmung) lässt sich durchführen, indem die PWM-Ausgänge zur Erzeugung einer Referenz-Spannungsquelle genutzt und die Ausgänge des programmierbaren Timers als Referenzfrequenz-Generator für den analogen Schaltungsbereich herangezogen werden. Die Trimmeinstellungen können für die gesamte Lebensdauer des Systems (oder für jede beliebige kürzere Zeit) im Flash-Speicher abgelegt werden.
Das Frequenzverhalten eines Filters lässt sich beispielsweise bestimmen, indem der Filtereingang mit einem Testsignal stimuliert wird, um anschließend die Dämpfung am Filterausgang zu messen (Bild 7). Dabei variiert die Frequenz des Testsignals in einem vorgegebenen Frequenzbereich automatisch, während die GPIO-Ausgänge der Filterschaltung Komponenten hinzufügen oder aus ihr herausnehmen können, um die Cutoff-Frequenz des Filters einzustellen.
Kalibrierung und Feinabstimmung lassen sich als Teil der Power-on-/Selbsttest-Prozedur durchführen, bei der andere Systemschaltungen aus besagtem Verfahren ausgeschlossen werden können, sodass sie die Testsignale ignorieren. Während dieser Phase sind Peripheriefunktionen wie A/D-Wandler verfügbar (die in der Betriebszeit hierfür nicht verwendbar sind), um die Testausführung zu unterstützen.
In der Vergangenheit wäre die Bestimmung des Frequenzgangs eines Filters als Bestandteil des Selbsttests viel zu teuer gewesen, da die analoge Implementierung eines präzisen Wobbelgenerators eine schwierige Aufgabe ist, während eine digitale Version davon nur für niedrige Frequenzen realisierbar gewesen wäre.
Heutige kostengünstige Embedded-Controller erreichen bei der Ausführung ihrer schnellsten Befehle Taktraten von etwa 100 MHz; außerdem verfügen sie über Peripheriefunktionen wie Zähler/Timer, die, mit Hilfe eines quarzgesteuerten Taktgenerators, mit hoher Auflösung Testsignale synthetisieren können. Falls ein Embedded-Controller bereits aus anderen Gründen Bestandteil des Gesamtdesigns ist, lässt sich die Selbsttest-/Trimmfunktion fast ohne zusätzlichen Kostenaufwand implementieren, da hierfür nur wenige zusätzliche Komponenten und Leiterbahnen nötig sind.