Hallo zusammen,
ich arbeite aktuell an der Aufgabe zur seriellen Datenübertragung aus dem Hardwarepraktikum. In der Aufgabenstellung ist beschrieben, dass die Übertragung durch einen Automaten gesteuert wird, der folgende Phasen durchläuft:
Start → Bit 0 → Bit 1 → Bit 2 → Bit 3 → Parität → Stop → Idle
Dabei soll:
- Die Übertragung synchron zum Takt erfolgen,
- Im Zustand Idle dauerhaft ein HIGH-Signal (1) am Datenkanal anliegen,
- Durch ein asynchrones BOT-Signal (LOW für 1 Takt) eine neue Übertragung eingeleitet werden,
- Die Daten beginnend mit dem LSB übertragen werden,
- Am Ende eine gerade Parität gesendet werden,
- Nach einem Stop-Bit (LOW) der Automat wieder in den Idle-Zustand übergehen.
Nun zur eigentlichen Frage:
Ich bin dabei, die Wahrheitstabelle zu vervollständigen, in der unter anderem die Steuersignale S1 (für das Schieberegister) und Tp (für die Paritätsberechnung) gesetzt werden müssen. Für die Phasen Start, Stop und Idle bin ich mir nicht sicher, ob S1 und Tp dort aktiv sein müssen oder ob diese Phasen als „don’t care“ bzw. ohne Wirkung für diese Signale gelten.
Konkret:
Nach meinem Verständnis sollten S₁ und Tₚ nur in bestimmten Phasen aktiv sein:
- S₁ wird nur in den vier Datenphasen (Bit 0–3) benötigt, wenn das Schieberegister getaktet wird.
- Tₚ ist nur in der Paritätsphase erforderlich, um die Parität zu berechnen.
Daher frage ich mich, ob in den Phasen Start, Stop und Idle die Signale S₁ und Tₚ entweder
- explizit auf 0 gesetzt werden müssen,
- oder ob sie als „don’t care“ behandelt werden können, da sie dort keine logische Wirkung auf die Funktion haben.
Ich möchte die Wahrheitstabelle formal korrekt ausfüllen und keine Punkte verlieren, nur weil ich „“* oder „0“ falsch eingesetzt habe.
A1 und A0 sind auch nach folgender Tabelle:
Diese Schaltung zeigt auch den ganzen Vorgang: