| 4.8 Bausteine für synchrone, serielle Schnittstellen |  | Lösungsvorschläge zu den Selbsttestaufgaben |

## 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.

| 4.8 Bausteine für synchrone, serielle Schnittstellen |  | Lösungsvorschläge zu den Selbsttestaufgaben |