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
Das 8-Bit-Muster 1101 0111 speichert eine vorzeichenbehaftete Ganzzahl im Zweierkomplement. Welchen Wert N hat sie im Dezimalsystem?
1101 01118 bit
N =
2.ZahlensystemeSchwer
Setze die Bits auf das 8-Bit-Ergebnis von 1000 1100 OR 0010 1001. Welchen Wert R hat das Ergebnis dezimal?
Bestimme die minimale SOP-Form von F(A, B, C, D) = Σm(0, 2, 5, 8, 9, 11, 12, 13) + d(6, 15), wobei d die Don’t-Care-Bedingungen kennzeichnet. Wie viele Literale L enthält sie?
Ein UART sendet Bytes mit 115200 Baud im Format 8N1: 8 Datenbits, keine Parität und 1 Stoppbit(s), plus das Startbit. Bestimme die größte Anzahl an Datenbytes pro Sekunde, die er übertragen kann.
baud = 115200 Bd8N1
RB = B/s
6.Messdatenerfassung und AbtastungSchwer
Ein 12-Bit-ADC streamt jeden Abtastwert über einen UART mit 38400 Baud im Format 8N1 (Startbit, 8 Datenbits, 1 Stoppbit). Jeder Abtastwert wird als 2 ganze(s) Byte(s) gesendet, und die Verbindung ist dauernd belegt. Bestimme die höchste Signalfrequenz fmax, die ohne Aliasing abgetastet werden kann, in Hz.
baud = 38400 BdN = 128N1
fmax = Hz
3Lösungen
1.Zahlensysteme
Antwort: N = −41
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.
Stellenwerte addieren
Die übrigen Bits behalten ihre normalen positiven Werte.
−128 + 64 + 16 + 4 + 2 + 1 = −41
Antwort
N = −41
2.Zahlensysteme
Antwort: R = 173
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.
Boolesche Algebra: Die Regeln, die Ausdrücke vereinfachen, sind X + X′ = 1 und X·X′ = 0, X + X = X, die Absorption X + X·Y = X, die Zusammenfassungsregel X·Y + X·Y′ = X, X + X′Y = X + Y und das Konsensus-Theorem XY + X′Z + YZ = XY + X′Z. Die De-Morganschen Gesetze machen aus (X·Y)′ den Ausdruck X′ + Y′ und aus (X + Y)′ den Ausdruck X′·Y′. Ein Karnaugh-Diagramm wendet diese Regeln grafisch an: Jede Gruppe aus zwei benachbarten Feldern ist eine Anwendung von XY + XY′ = X.
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.
Primimplikanten
Die größten Gruppen, die sich aus Einsen und X bilden lassen.
B′C′D′, BC′D, AD, AC′, A′CD′, A′B′D′
Minimale Überdeckung
F = BC′D + AD + AC′ + A′B′D′
L = 10
Antwort
L = 10
5.Messdatenerfassung und Abtastung
Antwort: RB = 11520 B/s
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.
Bits pro Frame
1 + 8 + 0 + 1 = 10
Byterate
115200/10 = 11520 B/s
Antwort
RB = 11520 B/s
6.Messdatenerfassung und Abtastung
Antwort: fmax = 960 Hz
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.