Probeklausur 4 - Lösungen

Zurück zu den Aufgaben · Formelsammlung

Teilpunkte für erkennbaren Rechenweg auch bei Zahlenfehler.


Aufgabe 1 - Grundlagen & C (16 P) [Kap. 1]

TeilAntwortBegründung
1.1richtigAdressen müssen auf Struct-Zeiger gecastet werden - übliche und nötige Praxis.
1.2richtigstatic reduziert die Sichtbarkeit auf die Moduldatei.
1.3richtig-O0 behält stabiles Zeilen-Mapping, ideal zum Debuggen.
1.4falschSensoren/Aktoren sind extern; der MC integriert Timer, I/O, ADC usw.
1.5richtigBitschieben: 1<<18 setzt Bit 18; 0xF0>>4 = 0x0F.
1.6richtigDefinition des DA-Wandlers.

Aufgabe 2 - Timer / PWM (22 P) [Kap. 5]

Gegeben: fCLK=25MHzf_{CLK}=25\,\text{MHz}, 16-Bit, fA=1kHzf_A=1\,\text{kHz}, Duty 40 %.

2.1 TA=1/1000Hz=1 msT_A = 1/1000\,\text{Hz} = \mathbf{1\ ms}.

2.2 Prescalerideal=25106100065536=25106655360000,38\text{Prescaler}_{ideal} = \dfrac{25\cdot10^6}{1000\cdot 65536} = \dfrac{25\cdot10^6}{65\,536\,000} \approx 0{,}38 -> nächstgrößer: Prescaler = 2. (RC = 12500 <= 65536.)

2.3 Tstep=2/25106=0,08μs=80 nsT_{step} = 2/25\cdot10^6 = 0{,}08\,\mu\text{s} = \mathbf{80\ ns}.

2.4 RC=2510621000=12500RC = \dfrac{25\cdot10^6}{2\cdot 1000} = \mathbf{12\,500}.

2.5 RA=0,4012500=5000RA = 0{,}40 \cdot 12\,500 = \mathbf{5\,000}.

2.6 RB=0,5012500=6250RB = 0{,}50 \cdot 12\,500 = \mathbf{6\,250}.

2.7 20 ms Periode -> f=1/20ms=50 Hzf = 1/20\,\text{ms} = \mathbf{50\ Hz}; Tastverhältnis =1,5ms/20ms=7,5 %= 1{,}5\,\text{ms}/20\,\text{ms} = \mathbf{7{,}5\ \%}.

Aufgabe 3 - Parallele I/O (14 P) [Kap. 3]

3.1 0x66 = 0b1100110 -> Bits 1, 2, 5, 6 = Segmente b, c, f, g -> Ziffer 4.

3.2 Low-aktiv: Die LED leuchtet, wenn der Ausgang Low ist; der Strom fließt von +UB+U_B über die LED in den Pin (Sink Current). High-aktiv: Die LED leuchtet bei High; der Pin liefert den Strom (Source Current). Low-aktiv ist häufiger, weil die Ausgangsstufe eines MC nach Masse meist mehr Strom sinken kann als sie sourcen kann, und der Prozessor den LED-Strom nicht selbst bereitstellen muss - das ist elektrisch günstiger und schont die Versorgung.

Aufgabe 4 - Signalverarbeitung (18 P) [Kap. 7]

4.1 Linien bei 200 Hz (Amplitude 3), 400 Hz (Amplitude 1), 800 Hz (Amplitude 2).

4.2 sin(1600πt)\sin(1600\pi t) -> f=1600π/(2π)=800Hzf = 1600\pi/(2\pi) = 800\,\text{Hz} -> enthalten, Amplitude 2.

4.3 fmax=800Hzf_{max}=800\,\text{Hz} -> fs>1600Hzf_s > 1600\,\text{Hz} (knapp darüber, z. B. 1601 Hz).

4.4 falias=1000800=200 Hzf_{alias} = |1000 - 800| = \mathbf{200\ Hz}.

4.5 ΔU=3,3V/212=3,3V/40960,806 mV\Delta U = 3{,}3\,\text{V}/2^{12} = 3{,}3\,\text{V}/4096 \approx \mathbf{0{,}806\ mV}.

4.6 D=20004168Byte=80002=16000 ByteD = 2000\cdot 4 \cdot \tfrac{16}{8}\,\text{Byte} = 8000 \cdot 2 = \mathbf{16\,000\ Byte}.

Aufgabe 5 - CRC (14 P) [Kap. 10]

5.1 x4+x3+1x^4 + x^3 + 1 -> Bits 4, 3, 0 -> 11001.

5.2 Nachricht 1011 + 4 Nullen = 10110000, Division (mod 2) durch 11001:

10110000
11001
-----
01111000
 11001
 -----
 0010100    -> ausrichten auf nächste 1
   11001
   -----
   0000101

Rest (4 Bit) = 0101 -> Prüfbits = 0101.

5.3 Gesendet = Daten + FCS = 1011 + 0101 = 10110101 binär = 0xB5 hexadezimal.

5.4 Ein Paritätsbit (VRC) erkennt nur eine ungerade Anzahl von Bitfehlern (1-Bit-Fehler) und versagt bei geradzahligen Fehlern. CRC erkennt über die Polynomdivision Bündelfehler und mehrfache Fehler zuverlässig; die Erkennungsstärke hängt vom Generatorpolynom ab.

Aufgabe 6 - Seriell & Leitungscodes (10 P) [Kap. 4, Kap. 10]

6.1 9600 Baud, 8 Datenbits, N = keine Parität, 1 Stoppbit.

6.2 Rahmen = 1 + 8 + 0 + 1 = 10 Bit pro Zeichen -> 9600/10=9609600/10 = \mathbf{960} Zeichen/s.

6.3 In der Mitte jedes Bits liegt eine Flanke -> Takt- und Dateninformation stecken im Signal, der Empfänger kann sich selbst synchronisieren. Preis: doppelte Bandbreite (Baudrate = 2 x Bitrate).

6.4 G. E. Thomas: steigend = 0, fallend = 1 -> Flanken (steigend, steigend, fallend, fallend) = 0 0 1 1.

Aufgabe 7 - Interrupts / Software-Interrupt (6 P) [Kap. 9, Kap. 6]

7.1 Ein Software-Interrupt (SVC beim Cortex-M3, SWI beim ARM7) ist eine synchrone, benutzerdefinierte Programmunterbrechung, um vom User Mode in den privilegierten (Supervisor/Handler) Mode zu wechseln - so ruft Anwendungscode kontrolliert Systemdienste (z. B. putchar) auf.

7.2 Zwei von: Automatisches Stacking (Register werden per HW gesichert), Tail-Chaining (direkter Sprung in die nächste ISR ohne Pop/Push), Late-Arriving (Wechsel zu höher-prioritärem Interrupt während des Stacking), verschachtelte Interrupts (Preemption).


Zurück zu den Aufgaben · Probeklausur 3 · Startseite