Anbindung analoger Komponenten an Mikrocontroller

GPIO-Ports - Multitalente der I/O-Kommunikation

20. April 2007, 11:29 Uhr | Von Abdul Aleaf
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Passive und aktive Überwachungsanwendung

bild4_2ccd9d_05.jpg
Bild 4. Echtzeit-Überwachung analoger Knoten. Der Embedded-Controller erkennt fehlerhafte Zustände und aktiviert ein passendes Alarmsignal oder eine entsprechende Meldung. Er kann außerdem auch das Ereignis in das Flash-Memory-Logbuch eintragen.

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.

bild5_ccde33_04.jpg
Bild 5. Der digitale Schwingungsdetektor stellt fest, dass das analoge Steuersystem schwingt. Ein A/D-Wandler-Eingang wird zur Schwingungserkennung verwendet und ein GPIO-Ausgang aktiviert, um das Schwingen zu unterdrücken.

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.

bild6_98e9ff_04.jpg
Bild 6. Das Dämpfungssignal bleibt noch für eine bestimmte Zeit nach der Schwingungsunterdrückung aktiv. Das digitale System erkennt Schwingungen, indem es die Anzahl der Richtungsumkehrungen pro Zeiteinheit zählt, die am Steuerausgang stattfinden.

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.

bild7_fb42a8_03.jpg
Bild 7. Digitale Komponenten ermöglichen das automatische Trimmen analoger Funktionen. Mit dem von einem GPIO- oder PWM-Ausgang gesteuerten Testsignal wird die Analogschaltung stimuliert, während ein A/D-Wandler-Eingang den Ausgang der analogen Funkt

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.


  1. GPIO-Ports - Multitalente der I/O-Kommunikation
  2. Passive und aktive Überwachungsanwendung
  3. Aktive Sensor-Backup- Anwendung

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Texas Instruments

Weitere Artikel zu Schnittstellen-ICs