Probeklausur 6
Härtegrad: extrem. Aufgaben. Lösungen: Probeklausur 6 - Lösungen.
- Dauer: 120 Minuten
- Hilfsmittel: Formelsammlung, wissenschaftlicher Taschenrechner erlaubt
- Gesamt: 100 Punkte
Achtung - durchgehendes Szenario. Alle Aufgaben gehören zu einem einzigen System und bauen aufeinander auf: das Ergebnis jeder Aufgabe ist die Eingabe der nächsten. Ein Fehler am Anfang (besonders in Aufgabe 1) pflanzt sich durch die gesamte Klausur fort. Rechnen Sie mit den exakten Zwischenwerten, nicht mit gerundeten. Mehrere Aufgaben enthalten eine Falle: die naheliegende Antwort ist falsch.
Szenario. Ein Cortex-M3-Board (SAM3X-Familie) tastet ein Audiosignal ab, puffert die Daten per DMA, sichert sie per CRC, streamt sie über USART an einen PC und regelt parallel einen Aktor. Sie sollen das System vollständig durchrechnen und die Schwachstellen aufdecken.
| Nr. | Thema | Punkte |
|---|---|---|
| 1 | Taktbaum (PLL -> MCK) | 10 |
| 2 | Abtast-Timer und Quantisierungsfehler | 16 |
| 3 | Aliasing mit realer Abtastrate | 14 |
| 4 | ADC-Puffer und DMA-Dimensionierung | 12 |
| 5 | USART-Durchsatz (Engpassanalyse) | 16 |
| 6 | CRC-Sicherung | 10 |
| 7 | Echtzeit: Deadline und Shared Data | 12 |
| 8 | Regelung: PI-Regler mit Windup | 10 |
Aufgabe 1 - Taktbaum (10 P) Kap. 2
Der Quarz liefert f_XTAL = 12 MHz. Der PLLA ist mit DIVA = 1 und MULA = 13 programmiert; danach folgt der Hauptprozessor-Prescaler PRES = 2. Für den PLLA gilt
1.1 (6 P) Berechnen Sie und den Master Clock MCK. 1.2 (4 P) Ein Kommilitone erhält 78 MHz. Welchen typischen Fehler hat er gemacht, und warum ist Ihr Wert korrekt? MCK ist die Grundlage aller weiteren Aufgaben.
Aufgabe 2 - Abtast-Timer und Quantisierungsfehler (16 P) Kap. 5
Ein Timer Counter (TC) erzeugt den Abtast-Trigger. Als Zähltakt stehen nur diese Quellen zur Wahl: TCLK1 = MCK/2, TCLK2 = MCK/8, TCLK3 = MCK/32, TCLK4 = MCK/128. Bei Erreichen von RC wird der Zähler zurückgesetzt und ein Abtastwert ausgelöst: . RC ist ganzzahlig.
Gewünscht ist die CD-Audiorate f_s = 44,1 kHz.
2.1 (8 P) Bestimmen Sie für jede der vier Quellen das optimale (ganzzahlige) RC und die damit tatsächlich erreichte Abtastrate. 2.2 (4 P) Welche Quelle wählen Sie? Begründen Sie über den relativen Fehler in ppm. 2.3 (4 P) Warum lässt sich 44,1 kHz mit diesem Board prinzipiell nicht exakt treffen? Geben Sie die exakte tatsächliche Abtastrate als Bruch an - mit ihr rechnen alle folgenden Aufgaben.
Aufgabe 3 - Aliasing mit realer Abtastrate (14 P) Kap. 7
Das Eingangssignal enthält vier Spektrallinien: 8 kHz, 19 kHz, 27 kHz, 40 kHz. Es wird mit der tatsächlichen Abtastrate aus Aufgabe 2 abgetastet (ohne idealen Anti-Aliasing-Filter).
3.1 (3 P) Wie groß ist die Nyquist-Frequenz? 3.2 (6 P) Bestimmen Sie für jede Linie, ob sie korrekt erfasst wird oder als Alias erscheint, und geben Sie ggf. die Alias-Frequenz an. 3.3 (3 P) Das Nutzband ist 0-20 kHz. Ab welcher Frequenz muss ein realer Anti-Aliasing-Filter dämpfen, damit keine Linie ins Nutzband faltet? (Vorsicht: nicht die Nyquist-Frequenz.) 3.4 (2 P) Warum ist die Alias-Störung der 27-kHz-Linie besonders heimtückisch?
Aufgabe 4 - ADC-Puffer und DMA-Dimensionierung (12 P) Kap. 6
Der ADC liefert 12-Bit-Werte, die als 16-Bit-Worte abgelegt werden. Die Daten laufen per PDC (DMA) in einen Doppelpuffer (Ping-Pong); jeder Halbpuffer fasst 10 ms Signal.
4.1 (4 P) Wie viele Abtastwerte n enthält ein Halbpuffer? (Mit der realen Abtastrate; ganzzahlig runden.) 4.2 (3 P) Wie viele Byte belegt der gesamte Doppelpuffer? 4.3 (3 P) Auf welchen Wert setzen Sie den PDC-Zähler US_RCR je Halbpuffer, und wie oft pro Sekunde feuert der ENDRX-Interrupt? 4.4 (2 P) Wie lang ist ein Halbpuffer tatsächlich (in ms), und warum nicht exakt 10 ms?
Aufgabe 5 - USART-Durchsatz: Engpassanalyse (16 P) Kap. 4
Die Abtastwerte (2 Byte je Wert) sollen kontinuierlich über USART im Format 8N1 an den PC gestreamt werden. Der Baudratengenerator arbeitet mit , BRGR ganzzahlig.
5.1 (4 P) Welche Nutz-Datenrate (Byte/s) und welche minimale Baudrate verlangt der kontinuierliche Strom? 5.2 (4 P) Ein Student rundet BRGR kaufmännisch auf den nächsten ganzzahligen Wert. Welchen BRGR bekommt er, welche echte Baudrate, und welche maximale Byte-Rate liefert diese? 5.3 (4 P) Zeigen Sie durch Rechnung, dass das System damit Daten verliert. Wie groß ist das Defizit in Byte/s? 5.4 (4 P) Wie muss BRGR richtig gewählt werden, damit der Durchsatz reicht? Nennen Sie den BRGR, die resultierende Baudrate und erklären Sie, warum die Rundungsrichtung hier entscheidend ist (und warum die "Baudraten-Abweichung" gegenüber 44,1-kHz-Rechnungen hier kein Kriterium ist).
Aufgabe 6 - CRC-Sicherung (10 P) Kap. 10
Jeder Halbpuffer wird mit einem 1-Byte-Sequenzzähler versehen, der gleich der Pufferlänge n modulo 256 ist (n aus Aufgabe 4). Dieser Zählerwert wird mit CRC-4, Generator , gesichert.
6.1 (2 P) Wie lautet der Sequenzbyte-Wert binär? 6.2 (6 P) Berechnen Sie die 4 Prüfbits per Modulo-2-Division (Rechenweg zeigen). 6.3 (2 P) Wie lautet das gesendete Codewort, und wie prüft der Empfänger es?
Aufgabe 7 - Echtzeit: Deadline und Shared Data (12 P) Kap. 6
Die Abtast-ISR (höchste Priorität) muss in jeder Abtastperiode (aus Aufgabe 2) fertig werden und braucht 600 Taktzyklen. Eine niederpriore Task liest den Puffer und schaltet dazu - zur Vermeidung des Shared-Data-Problems - die Interrupts für einen kritischen Abschnitt von 1400 Taktzyklen ab.
7.1 (3 P) Wie viele MCK-Taktzyklen entspricht ? 7.2 (5 P) Bestimmen Sie die Worst-Case-Latenz der Abtast-ISR (Blockierung durch den kritischen Abschnitt + eigene Laufzeit) in µs. Wird die Deadline eingehalten? 7.3 (2 P) Die CPU-Auslastung liegt bei nur ca. 32 %. Erklären Sie das scheinbare Paradox, dass die Deadline trotzdem verletzt wird. 7.4 (2 P) Nennen Sie die maximal zulässige Länge des kritischen Abschnitts (in Zyklen) und eine bessere Lösung des Shared-Data-Problems ohne Interrupt-Sperre.
Aufgabe 8 - Regelung: PI-Regler mit Windup (10 P) Kap. 8
Parallel regelt ein PI-Regler den Aktor. Er läuft dezimiert nur bei jedem 100. Abtastwert, also mit der Periode . Parameter: , , Sollwert , Stellgröße begrenzt auf . Regelgesetz: , , mit .
8.1 (2 P) Berechnen Sie (in ms) und den Faktor . 8.2 (6 P) Die Messwerte sind . Berechnen Sie für jeweils , , die unbegrenzte Stellgröße und die begrenzte Stellgröße . 8.3 (2 P) Woran erkennt man hier Integral-Windup, und welche konkrete Folge hat er, sobald das Signal den Sollwert erreicht? Nennen Sie eine Gegenmaßnahme und deren Wirkung auf .