n Bit: 2ⁿ Zustände; Mod-N: kleinstes n mit 2ⁿ ≥ N; fout = fclk/N
Asynchronzähler
fmax = 1/(n·tpd)
Ring- und Johnson-Zähler
n und 2n Zustände
Methode
Gehe bei einer Schaltung von den Eingängen zum Ausgang vor, ein Gatter nach dem anderen, und schreibe den Wert an jede Leitung, oder schreibe ihren Ausdruck auf und fülle die Wahrheitstabelle aus.
Trage zum Vereinfachen die Einsen (und die Don’t-Cares als X) in ein Karnaugh-Diagramm mit Zeilen und Spalten im Gray-Code ein: 00, 01, 11, 10.
Decke die Einsen mit möglichst wenigen und möglichst großen Gruppen aus 1, 2, 4, 8 oder 16 Feldern ab, auch über den Rand hinweg; jede Gruppe ist ein Produktterm aus den Variablen, die konstant bleiben. Fasse für die POS-Form die Nullen zusammen.
Lies bei Flipflops und Zählern die Eingänge an jeder aktiven Taktflanke ab, schreibe den Zustand nach jeder Flanke auf und denke daran, dass ein n-Bit-Zähler nach 2ⁿ Zuständen überläuft.
Messdatenerfassung und Abtastung
Nyquist-Kriterium
fs > 2·fmax, fN = fs/2
Alias-Frequenz
fa = |f − k·fs|, k = round(f/fs)
Schrittweite
1 LSB = VFSR/2ᴺ
Quantisierungsfehler (Runden)
±½ LSB
ADC-Code bei Abschneiden
D = ⌊Vin/LSB⌋
Bits für eine Auflösung r
2ᴺ ≥ span/r
Ideales SQNR, Sinus mit Vollaussteuerung
SQNR = 6,02·N + 1,76 dB
Datenrate
Kanäle × fs × N bit/s
Gemultiplexter ADC
fs = 1/(n·(tc + tset))
UART
Tb = 1/Baudrate; 8N1 = 10 Bit pro Byte; Byte/s = Baudrate/Bits pro Frame
Baudraten-Teiler
baud = fclk/(16·D)
Methode
Schreibe auf, was gegeben ist: Abtastrate, Signalfrequenzen, Bitanzahl, Eingangsbereich, Baudrate.
Vergleiche bei Abtastaufgaben jede Frequenz mit fs/2; eine höhere Frequenz erscheint bei fa = |f − k·fs| mit dem nächstgelegenen Vielfachen von fs.
Bestimme bei Auflösungsaufgaben 1 LSB = VFSR/2ᴺ oder das kleinste N mit 2ᴺ ≥ Spanne/Auflösung.
Zähle bei Datenraten und UART-Verbindungen alles, was gesendet wird: Kanäle, Abtastwerte pro Sekunde, Bits oder ganze Bytes pro Abtastwert sowie Start-, Paritäts- und Stoppbits jedes Frames.
2Übungsaufgaben
1.ZahlensystemeMittel
Setze die Bits so, dass sie −78 im 8-Bit-Zweierkomplement speichern. Welchen Wert U hat das Muster, wenn man es als vorzeichenlose Zahl liest?
N = −788 bit
U =
2.ZahlensystemeSchwer
Ein unkomprimiertes Bild hat 512 × 512 Pixel mit 32 Bits pro Pixel. Wie viel Speicher M braucht es in KiB (1 KiB = 1024 Bytes)?
Bestimme mit dem Karnaugh-Diagramm das minimale Produkt von Summen (POS) von F(A, B, C, D) = Σm(0, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13). Wie viele Summenterme (Faktoren) N hat es?
Ein 4-Bit-Johnson-Zähler Q₃Q₂Q₁Q₀ startet bei 0000. Bei jeder Taktflanke werden die Bits um eine Stelle nach rechts geschoben (Q₃ → Q₂ → Q₁ → Q₀), und Q₃ erhält das Inverse von Q₀. Gib den Zustand Q = Q₃Q₂Q₁Q₀ nach 7 Taktflanken als Dezimalzahl an.
Q₃Q₂Q₁Q₀ = 00007
Q =
5.Messdatenerfassung und AbtastungMittel
Ein 12-Bit-ADC mit einem Eingangsbereich von 0 bis 10 V schneidet ab: Sein Ausgangscode ist ⌊Vin/LSB⌋ mit 1 LSB = VFSR/2ᴺ. Bestimme den dezimalen Ausgangscode D für eine Eingangsspannung von 0,887 V.
N = 12VFSR = 10 VVin = 0,887 V
D =
6.Messdatenerfassung und AbtastungSchwer
Ein Mikrocontroller mit 8 MHz Takt stellt seine UART-Baudrate als fclk/(16·D) ein, wobei D eine ganze Zahl ist, die auf den nächsten Wert gerundet wird. Die Zielbaudrate beträgt 4800 Baud. Bestimme den prozentualen Fehler der tatsächlichen Baudrate (positiv, wenn sie zu schnell ist).
fclk = 8 MHzZiel = 4800 Bd
e = %
3Lösungen
1.Zahlensysteme
Antwort: U = 178
Bits setzen: Jedes Bit hat den Wert einer Zweierpotenz (128, 64, …, 1). Eine Hexadezimalziffer entspricht genau vier Bits, und im 8-Bit-Zweierkomplement hat das linke Bit den Wert −128. Bitweise Operationen wirken auf jede Bitposition einzeln.
Invertieren und eins addieren
78 = 0100 1110
invertiert: 1011 0001
+1 → 1011 0010
Vorzeichenlos lesen
1011 0010₂ = 256 − 78 = 178
Antwort
U = 178
2.Zahlensysteme
Antwort: M = 1024 KiB
Stellenwertsysteme: Jede Ziffer ist ihren Wert mal eine Potenz der Basis wert. Im Binärsystem sind die Stellen 1, 2, 4, 8, 16, … wert, im Hexadezimalsystem 1, 16, 256, …, wobei A–F für 10–15 stehen. Im 8-Bit-Zweierkomplement ist das linke Bit −128 statt +128 wert; so werden negative Zahlen gespeichert.
Karnaugh-Diagramme: Die Felder sind im Gray-Code (00, 01, 11, 10) angeordnet, benachbarte Felder, auch die über den Rand hinweg, unterscheiden sich also in genau einer Variablen. Fasse die Einsen in Rechtecken aus 1, 2, 4, 8 oder 16 Feldern zusammen, so groß und so wenige wie möglich, bis jede 1 abgedeckt ist. Jede Gruppe ist ein Produktterm: die Variablen, die in ihr konstant bleiben. Eine Gruppe aus 2ᵏ Feldern verliert k Variablen. Don’t-Cares (X) dürfen genutzt werden, um Gruppen zu vergrößern, müssen aber nie abgedeckt werden. Fasst du stattdessen die Nullen zusammen, erhältst du die minimale POS-Form.
Die Nullen zusammenfassen
Jede Gruppe ist ein Rechteck aus 2ᵏ Feldern; Randfelder sind Nachbarn der Felder am gegenüberliegenden Rand.
(B + C + D′)
(A′ + C′ + D′)
(A′ + B′ + C′)
Minimale POS-Form
F = (B + C + D′)(A′ + C′ + D′)(A′ + B′ + C′)
N = 3
Antwort
N = 3
Es gibt eine weitere Gruppierung derselben Größe; sie hat dieselbe Anzahl von Termen und Literalen.
Flipflops und Zähler: Ein Flipflop ändert sich nur bei der aktiven Taktflanke. D übernimmt seinen Eingang (Q⁺ = D); T kippt bei T = 1; JK hält bei 00, setzt bei 01 zurück, setzt bei 10 und kippt bei 11. Ein n-Bit-Binärzähler hat 2ⁿ Zustände und zählt modulo 2ⁿ; ein Mod-N-Zähler läuft 0, 1, …, N − 1 und wieder auf 0 und braucht die kleinste Anzahl n von Flipflops mit 2ⁿ ≥ N. Jede Stufe eines Asynchronzählers halbiert die Frequenz, daher läuft der letzte Ausgang eines Mod-N-Zählers mit fclk/N. Ein Johnson-Zähler aus n Flipflops hat 2n Zustände, ein Ringzähler n.
ADC-Auflösung: Ein N-Bit-Umsetzer teilt seinen Vollaussteuerbereich VFSR in 2ᴺ Codes, von 0 bis 2ᴺ − 1. Ein Schritt ist 1 LSB = VFSR/2ᴺ: die kleinste Änderung, die der Umsetzer anzeigen kann. Ein abschneidender ADC liefert den Code ⌊Vin/LSB⌋; ein rundender ADC liegt nie mehr als ½ LSB vom wahren Wert entfernt, das ist sein Quantisierungsfehler. Jedes zusätzliche Bit halbiert das LSB und erhöht das ideale Signal-Quantisierungsrausch-Verhältnis SQNR = 6,02·N + 1,76 dB für einen vollausgesteuerten Sinus um etwa 6 dB. Um eine Auflösung r über einer Spanne zu erreichen, wähle das kleinste N mit 2ᴺ ≥ Spanne/r.
Schrittweite
1 LSB = 10/212 = 2,441 mV
Code
Vin/LSB = 887/2,441 = 363,3
Code = ⌊363,3⌋ = 363
Antwort
D = 363
Binär ist das 000101101011.
6.Messdatenerfassung und Abtastung
Antwort: e = 0,1603 %
UART: Eine asynchrone serielle Verbindung sendet jedes Byte als Frame: ein Startbit (low), die Datenbits, ein optionales Paritätsbit und ein oder zwei Stoppbits (high). Die Baudrate ist die Anzahl der Bits pro Sekunde, ein Bit dauert also Tb = 1/Baudrate und ein Frame aus n Bits dauert n/Baudrate. Das übliche 8N1-Format hat 10 Bits pro Byte. Der Baudratengenerator teilt den Takt: Baudrate = fclk/(16·D) mit einer ganzen Zahl D, sodass die tatsächliche Baudrate leicht vom Sollwert abweicht; ein Fehler unter etwa 2 % ist meist akzeptabel.