4.9 Bausteine zur Analog/Digital- und Digital/Analog-Wandlung
Den bisher beschriebenen Schnittstellenbausteinen ist gemeinsam, daß an
allen ihren Ein- und Ausgängen digitale, binäre Signale auftreten, die
genau zwei Zustände annehmen können. Diese Zustände hatten wir
mit H- bzw. L-Pegel bezeichnet. Häufig werden Mikrocomputer, insbesondere
natürlich DSPs, jedoch in einer "analogen" Umwelt eingesetzt, in
der die zu verarbeitenden Signale beliebige Werte aus einem kontinuierlichen Spannungsbereich
annehmen können. Dazu gehört z.B. der µP-Einsatz in Meßgeräten,
Meßwert-Erfassungssystemen oder in Steuerungssystemen.
In diesen Systemen werden die verschiedensten physikalischen
Größen durch Sensoren gemessen und in elektrische (analoge) Spannungen
umgesetzt. Zu diesen Sensoren zählen beispielsweise Druck- oder Temperaturfühler
sowie Spannungs- oder Strommesser. Zur Weiterverarbeitung durch den µP müssen
ihre elektrischen Signale durch Analog/Digital-Umsetzer (ADU, Analog to Digital
Converter - ADC) in digitale (Zahlen-)Werte umgewandelt werden.
Die digitalen Ergebnisse der Bearbeitung im Prozessor dienen
dann wiederum zum Steuern und Regeln von technischen Prozessen oder zum Antrieb
von Maschinen und Motoren. Dazu müssen sie durch Digital/Analog-Umsetzer
(DAU, Digital to Analog Converter - DAC) in analoge (Spannungs-)Signale
umgeformt werden.
Wir werden hier nur kurz und stark vereinfachend das Grundprinzip der Analog/Digital-Wandlung bzw. Digital/Analog-Wandlung darstellen. Der Schwerpunkt dieses Abschnittes liegt auf der Beschreibung der hochintegrierten Bausteine, die diese Umwandlung vornehmen.
Die Anzahl n der Bits der Dualzahl, die in einen
analogen Spannungswert umgesetzt bzw. als Ergebnis der Wandlung erhalten wird,
bestimmt die Genauigkeit (Auflösung) der Umwandlung. Bausteine zur Ausführung
dieser Umwandlung nennt man entsprechend n-bit-D/A-Wandler bzw. n-bit-A/D-Wandler.
4.9.1 Digital/Analog-Wandlung
4.9.1.1 Prinzip
Die Aufgabe der Digital/Analog-Wandlung (kurz: D/A-Wandlung) besteht darin, den
Bereich der n-bit-Dualzahlen 0 <= D <=
2n-1 auf einen vorgegebenen Spannungsbereich Umin <=
U < Umax linear abzubilden. Dazu wird der Spannungsbereich in 2n
gleich große Abschnitte unterteilt, deren Länge man LSB (Wertigkeit
des Least Significant Bits) nennt, d.h.
LSB := (Umax - Umin) / 2n [Volt].
Jeder Dualzahl wird nun als analoger Wert die Spannung
UDA(D) = D × LSB + Umin
zugewiesen. Wie dies technisch geschieht, werden wir kurz an zwei möglichen Verfahren zur D/A-Wandlung beschreiben.
| Selbsttestaufgabe 4.9-1: (–>
Lösungsvorschlag) |
Berechnen Sie mit dem oben definierten Wert LSB die maximale analoge Ausgangsspannung UDA,max. Welchem Digitalwert würde bei dieser Berechnung die maximale Spannung Umax zugewiesen?
|
Im Bild 4.9-1a ist für n = 8 und Umin = 0 V die Ausgangsspannung eines D/A-Wandlers gezeichnet, die man erhält, wenn man den digitalen Zahlenbereich von $00 bis $FF (in hexadezimaler Form) durchläuft. Es handelt sich um die charakteristische Treppenfunktion, deren Stufenhöhe gerade ein LSB ist.
Bild 4.9-1: a) Ausgangssignal der Digital/Analog-Wandlung, b) PWM-Signal
Eine Zwischenstufe zur D/A-Wandlung ist im Bild 4.9-1b skizziert. Sie wird als Pulsweiten-Modulation (PWM) bezeichnet. Diese zeichnet sich dadurch aus, daß sie ohne weiteren Aufwand ausschließlich durch digitale Schaltungen realisiert werden kann. Deshalb wird sie heute standardmäßig in Prozessor- oder Peripheriebausteinen eingesetzt. Dabei wird der digitale Ausgangswert D in eine periodische, digitale Zeitfunktion umgewandelt, deren Impulsdauer proportional zum Wert D ist:
- Der oberen Grenze 2n des betrachteten Digital-Zahlenbereiches wird ein Zeitintervall konstanter Länge TS zugewiesen. Dieses Zeitintervall bestimmt die Schwingungsdauer des Ausgangssignals. Es wird in 2n gleich lange Teilintervalle TI untergliedert.
- Für jeden umzuwandelnden Digitalwert D wird nun ein (positiver) Ausgangsimpuls erzeugt, dessen Länge gerade durch TP = D × TI gegeben ist.
- Nach jedem erzeugten Impuls wird der Ausgang bis zum Ende der Schwingungsdauer TS auf L-Pegel gehalten, also für die Restzeit TS - TI = (2n - D) × TI .
Die eigentliche Umwandlung des PWM-Ausgangssignals in den analogen Ausgangswert
UDA geschieht in einer separaten Schaltung, die das PWM-Ausgangssignal
integriert. Sie wird deshalb als Integrator oder Integrierglied bezeichnet. Auf
ihren Aufbau kann hier leider nicht eingegangen werden.
| Selbsttestaufgabe 4.9-2: (–>
Lösungsvorschlag) |
- Bestimmen Sie für den im Bild 4.9-1 dargestellten
Digitalwert $A0 die Ausgangsspannung UDA($A0), indem Sie
die gezeichnete Rechteckschwingung PWM integrieren.
- Skizzieren Sie eine Schaltung, die aus einem eingegebenen Digitalwert
D ein PWM-Signal der dargestellten Form erzeugt. (Zur Verfügung
stehen Ihnen neben einem Taktgenerator Dualzähler, Register und
Komparatoren.)
- Berechnen Sie für einen 8-bit-Wandler nach b) mit der Taktfrequenz
10 MHz die Zeiten TS und TI sowie die dem Digitalwert
$A0 zugeordnete Impulslänge TP. Welche maximale Wandlungsrate
kann so erreicht werden?
|
4.9.1.2 Bausteine für die Digital/Analog-Wandlung
Die meisten Verfahren der D/A-Wandlung zeichnen sich durch hohe Anforderungen aus, die sie an das Einhalten der wichtigsten Bauelemente-Parameter stellen. Bei hochauflösenden D/A-Wandlern entsprechen den niederwertigen Bits des Digitalwerts außerdem sehr kleine Potentialsprünge der analogen Ausgangsspannung. Hier bedarf es eines hohen schaltungstechnischen Aufwands, Störspannungen zu unterdrücken, die z.B. durch einen hochfrequenten (System-) Takt induziert werden. Deshalb werden die D/A-Wandler heute (meist noch) nicht zusammen mit hochkomplexen digitalen Schaltungen auf einem Chip integriert, sondern statt dessen als selbständige Halbleiterbausteine eingesetzt.
Auf diese Bausteine wollen wir hier nicht näher
eingehen, da sie neben der eigentlichen Schaltung zur D/A-Wandlung häufig
nur noch ein internes Register zur Zwischenspeicherung des digitalen Eingabewertes
und eine Schnittstelle zur Kommunikation mit dem µP (vgl.
Bild 4.1-2) besitzen.
4.9.2 Analog/Digital-Wandlung
4.9.2.1 Prinzip
Das Prinzip der Analog/Digital-Wandlung (A/D-Wandlung) ist im Bild 4.9-2 skizziert.
Bild 4.9-2: Ausgangssignal der Analog/Digital-Wandlung
Ein analoges Signal U(t) nimmt darin Werte aus dem Bereich Umin <=
U< Umax an. Dieser Bereich wird wiederum in 2n gleich
große Abschnitte der Länge LSB = (Umax - Umin)
/ 2n unterteilt. Im Bild 4.9-2 ist durch eine zweite Ordinaten-Skala
D(t) diese Unterteilung für n = 8 mit hexadezimalen Zahlenwerten eingezeichnet.
Zum Beispiel gehört zum Zeitpunkt t0 der Spannungswert U(t0).
Diesem Wert ist der Digitalwert D(t0) = $78 zugeordnet.
Liegt ein Spannungswert U(t0) in einem
der durch die Digitalisierung erzeugten Teilabschnitte, d.h.
Umin + m × LSB < U(t0) < Umin + (m+1) × LSB ,
so ordnet man ihm als D(t0) den Digitalwert der unteren Abschnittsgrenze zu, also D(t0) := m.
4.9.2.2 Bausteine für die Analog/Digital-Wandlung
Im Bild 4.9-3 ist der Aufbau eines Bausteins zur A/D-Wandlung (Analog Data Aquisition Unit - ADU) skizziert. (Wie bereits in den vorhergehenden Abschnitten werden wir auf die dunkel grau unterlegten Komponenten nur soweit eingehen, daß wir weiter unten eine typische Realisierung der Status- und Steuerregister darstellen.) Bausteine der beschriebenen Form besitzen in der Regel wenigstens eine Auflösung von 10 bit. Ihre Wandlungszeit liegt in Abhängigkeit von der Auflösung und dem Wandlungsverfahren typischerweise im µs-Bereich.
Bild 4.9-3: Baustein zur A/D-Wandlung
Die Ausführungseinheit besitzt häufig mehrere analoge Eingänge
AIj (Analog Input). Typisch sind 8 bis 16 Eingänge. Durch
einen (Analog-)Multiplexer wird genau eines der Eingangssignale ausgewählt.
Der prinzipielle Aufbau solch eines Multiplexers aus MOS-Transistoren wird später
gezeigt. Jedoch werden hier sehr hohe Anforderungen an die Toleranzgrenzen der
Transistorparameter gestellt. Die Steuerung dieses Multiplexers wird vom Prozessor
über das Steuerregister vorgenommen (s.u.). Das selektierte Eingangssignal
wird über den Multiplexerausgang UA auf einen von zwei Eingängen
eines Spannungs-Komparators gelegt. Dabei handelt es sich um eine Schaltung, die
durch ein binäres Ausgangssignal anzeigt, ob die Spannungsdifferenz an ihren
Eingängen positiv oder negativ ist.
Die eigentliche A/D-Wandlung geschieht im
wesentlichen durch die Komponente, die am Ausgang des Komparators hängt.
Für die Realisierung dieser Komponente und das von ihr durchgeführte
Wandlungsverfahren gibt es viele Möglichkeiten. Als Beispiel soll hier die
Wandlung durch sukzessive Approximation dargestellt werden, die eines der
schnellsten Verfahren ist. Dabei besteht die erwähnte Komponente aus einem
(Approximations-)Register und einer Steuerlogik.
Zum Beginn einer Wandlung wird das Register auf
den Wert 0 zurückgesetzt. Dann wird mit jedem Impuls des Wandlertaktes "sukzessiv"
ein Bit des Registers auf den logischen Wert '1' gesetzt, beginnend mit dem höchstwertigen
Bit. Der aktuelle Registerinhalt wird auf die Eingänge des nachgeschalteten
D/A-Wandlers (DAC) gegeben. Dieser erzeugt daraus die analoge Spannung UDA,
die im Komparator mit der Eingangsspannung UA verglichen wird. Über
die Eingänge Umin und Umax werden dazu dem A/D-Wandler
die Grenzen des zulässigen Spannungsbereiches zugeführt. Ist UDA
größer als UA, so wird noch während der zweiten Hälfte
des Taktimpulses das zuletzt veränderte Registerbit wieder zurückgesetzt.
Mit dem folgenden Taktimpuls wird das Verfahren mit dem nächsten Bit des
Registers fortgesetzt, bis auch das niederstwertige Bit ausgewertet wurde. Zum
Ende jeder Wandlung wird der Inhalt des Approximations-Registers in das Datenregister
DR übertragen und kann dort vom Prozessor ausgelesen werden.
Ein n-bit-A/D-Wandler mit sukzessiver Approximation
benötigt also für die Konvertierung jedes analogen Wertes genau n Taktschwingungen.
Wegen der Ähnlichkeit zum Auswiegen eines Gegenstandes mit Hilfe einer (Apotheker-)Waage
und verschieden schweren Gewichtsstücken wird die beschriebene Umwandlung
auch Wägeverfahren genannt.
Im Bild 4.9-4 ist dieses Verfahren
für einen 8-bit-A/D-Wandler dargestellt. Als Ordinate ist darin zur Vereinfachung
nur die Skala der digitalen Werte eingezeichnet. In jedem der acht Taktintervalle
ist als Spaltenvektor der Inhalt des Approximations-Registers aufgeführt.
Bits, die während eines Taktes geändert werden, sind umrahmt gezeichnet.
Als Ergebnis der Wandlung erhält man im Beispiel den Wert D(UE)
= 01100101 = $65.
Bild 4.9-4: Beispiel zur sukzessiven Approximation
4.9.2.2.1 Programmierbarer Spannungsvergleich
Als Erweiterung des bisher beschriebenen Aufbaus kann die Ausführungseinheit
des Bausteins ein (Ausgabe-)Register AR enthalten. In dieses kann der Prozessor
einen beliebigen digitalen Wert einschreiben. Über den Multiplexer MUX
kann der Registerinhalt auf den D/A-Converter geschaltet und dort in den entsprechenden
Analogwert UDA übersetzt werden. Der Spannungskomparator vergleicht
diesen Wert wiederum mit dem Wert UA des Eingangssignals. Im Statusregister
wird daraufhin ein Bit gesetzt, das anzeigt, ob UDA kleiner als UA
ist oder nicht. Dieser Vergleich dauert stets nur eine einzige Taktschwingung,
ist also erheblich schneller als eine vollständige A/D-Wandlung des Eingangssignals.
Dieser programmierbare Spannungsvergleich (Programmable Voltage Comparison)
wird deshalb immer dann angewandt, wenn der Prozessor nur feststellen will,
ob die Eingangsspannung größer ist als eine bestimmte "Referenzspannung"
oder nicht.
Wird das Signal UDA über einen speziellen
(analogen) Ausgang nach außen geführt, so kann der Baustein auch als
D/A-Wandler betrieben werden.
4.9.2.3 Das Programmiermodell
Im Bild 4.9-5 sind mögliche Realisierungen des Status- und des Steuerregisters
gezeigt.
Bild 4.9-5: Das Programmiermodell des A/D-Wandlers
4.9.2.3.1 Das Steuerregister
| BC | (Begin Conversion) Durch dieses Bit wird der Baustein aufgefordert, eine Operation auszuführen. Dabei kann es sich um eine A/D-Wandlung, aber auch um einen programmierbaren Spannungsvergleich handeln. |
| IE | (Interrupt Enable) Wenn dieses Bit gesetzt wird, kann der Baustein über seinen INT-Ausgang eine Unterbrechungsanforderung an den Prozessor stellen. Diese Anforderung wird immer dann erzeugt, wenn eine A/D-Wandlung beendet wurde. |
| SC | (Short Cycle) Durch dieses Bit wird die Auflösung des A/D-Wandlers bestimmt. So kann z.B. aufgabenabhängig zwischen einer Genauigkeit von 8 bzw. 10 bit gewählt werden. Die Wahl wirkt sich auf die Wandlungsgeschwindigkeit des Bausteins aus. |
| PC |
(Programmable Voltage Comparison) Durch dieses Bit wird der Baustein
in die Betriebsart "programmierbarer Spannungsvergleich" versetzt. |
| CA3..CA0 | (Channel Address) Durch diese Bits wird der Analog-Multiplexer gesteuert und genau einer der (bis zu) 16 Eingänge selektiert. |
4.9.2.3.2 Das Statusregister
| IF | (Interrupt Flag) Dieses Bit wird gesetzt, wenn eine A/D-Wandlung beendet wurde. |
| BSY |
(busy) Durch dieses Bit zeigt der Baustein dem Prozessor an, daß
er "beschäftigt" ist, also augenblicklich eine A/D-Wandlung
durchführt. |
| PCO | (Programmable Voltage Comparator Output) In diesem Bit wird das binäre Ergebnis des programmierten Spannungsvergleichs abgelegt. |
| OV |
(Over Scale) Wenn das zu wandelnde Eingangssignal UE
nicht im zulässigen Spannungsbereich (Umin <=
UE < Umax) liegt, wird der Prozessor darüber
durch dieses Bit informiert. |