Abitur Hessen Technische Informatik 2021 · LK
Abiturprüfung Technische Informatik in Hessen 2021, LK: 24 Aufgaben mit Lösungen. Themen: Use-Case-Diagramme und UML-Klassendiagramme und Objektdiagramme.
Themen der Prüfung: Use-Case-Diagramme · UML-Klassendiagramme und Objektdiagramme · Klassen und Methoden implementieren · Sequenzdiagramme und Netzwerkkommunikation · Schaltnetze: KV-Diagramm und NAND-Technik · Flipflops und Schieberegister · Struktogramme für Mikrocontroller-Steuerungen · Assemblerprogrammierung und Mikrocontrolleraufbau · Sensoren und Aktoren
Aufgabe Vorschlag A - Aufgabe 1.1 · Use-Case-Diagramme
Enthärtungsanlage
Der Härtegrad von Trinkwasser kann unterschiedlich sein, je nachdem welche natürlichen Inhaltsstoffe im Wasser enthalten sind (z. B. Kalk). Zu hartes bzw. kalkhaltiges Wasser kann der Rohrinstallation im Haus und den wasserführenden Geräten (z. B. Kaffeemaschine, Waschmaschine) schaden. Um dies zu verhindern, gibt es so genannte Enthärtungsanlagen, die die Kalkteilchen durch Salzteilchen ersetzen. Dazu wird die Anlage direkt nach dem Hausanschluss eingebaut, wo sie dann das komplette von außen einströmende Wasser enthärtet. Das Salz, das für die Enthärtung benötigt wird, wird in Tab-Form (ähnlich in der Größe wie Spülmaschinentabs) in einem Behälter im Gerät vorgehalten. Dort werden die Tabs nach und nach in Wasser aufgelöst (Material 1). Die Anlage muss regelmäßig durch eine Spülung gereinigt werden, um die ausgelösten Teilchen zu entfernen. Moderne Enthärtungsanlagen sind mithilfe eines Assemblers elektronisch gesteuert und bieten zudem Zugang zum WLAN, um mit einer App auf die Anlage zugreifen zu können.
Material 1
1 Zur Steuerung der Anlage und zur Nutzerverwaltung ist eine Anlagensoftware zu entwickeln. Über sie soll die Userin oder der User (im Folgenden User genannt) in der Lage sein, aktuelle Daten der Anlage auszulesen (z. B. Wasserverbrauch pro Tag). Dafür muss sich der User jedoch mit Username und Passwort einloggen. Nicht eingeloggte User können ebenfalls auf die Anlage zugreifen, allerdings werden ihnen nur eingeschränkte Daten angezeigt. Eingeloggte User dürfen auch Einstellungen verändern. Dazu zählt der Zeitpunkt der Reinigung, der gewünschte Härtegrad und Datum/Uhrzeit. Sollte sich der Admin-User einloggen, darf dieser ebenfalls die bereits erwähnten Einstellungen verändern. Der Admin-User hat aber nach dem Einloggen auch die Möglichkeit weiterführende Einstellungen zu ändern.
1.1
Stellen Sie ein Use-Case-Diagramm (Anwendungsfalldiagramm) für dieses Szenario dar. Bestimmen Sie dabei die menschlichen Akteure, die Beziehungen zwischen Akteuren und Anwendungsfällen und eventuell vorhandene include- bzw. extend-Beziehungen. (10 BE)
Aufgabe Vorschlag A - Aufgabe 1.2 · UML-Klassendiagramme und Objektdiagramme
Enthärtungsanlage
Der Härtegrad von Trinkwasser kann unterschiedlich sein, je nachdem welche natürlichen Inhaltsstoffe im Wasser enthalten sind (z. B. Kalk). Zu hartes bzw. kalkhaltiges Wasser kann der Rohrinstallation im Haus und den wasserführenden Geräten (z. B. Kaffeemaschine, Waschmaschine) schaden. Um dies zu verhindern, gibt es so genannte Enthärtungsanlagen, die die Kalkteilchen durch Salzteilchen ersetzen. Dazu wird die Anlage direkt nach dem Hausanschluss eingebaut, wo sie dann das komplette von außen einströmende Wasser enthärtet. Das Salz, das für die Enthärtung benötigt wird, wird in Tab-Form (ähnlich in der Größe wie Spülmaschinentabs) in einem Behälter im Gerät vorgehalten. Dort werden die Tabs nach und nach in Wasser aufgelöst (Material 1). Die Anlage muss regelmäßig durch eine Spülung gereinigt werden, um die ausgelösten Teilchen zu entfernen. Moderne Enthärtungsanlagen sind mithilfe eines Assemblers elektronisch gesteuert und bieten zudem Zugang zum WLAN, um mit einer App auf die Anlage zugreifen zu können.
Material 1
Material 2
UML-Klassendiagramm
Hinweis: Bei der Klasse <ArrayList> handelt es sich um einen beliebigen Containerdatentyp.
1.2
In Material 2 ist ein Entwurf eines UML-Klassendiagramms für die Enthärtungsanlage angegeben.
Beschreiben und erklären Sie das dargestellte Klassendiagramm mit Konzentration auf folgende Stichworte: abstrakte Klasse, Komposition, Vererbung, Klassenattribute, Assoziation zwischen Anlage und Sensor. [9 BE]
Aufgabe Vorschlag A - Aufgabe 1.3 · Klassen und Methoden implementieren
Enthärtungsanlage
Der Härtegrad von Trinkwasser kann unterschiedlich sein, je nachdem welche natürlichen Inhaltsstoffe im Wasser enthalten sind (z. B. Kalk). Zu hartes bzw. kalkhaltiges Wasser kann der Rohrinstallation im Haus und den wasserführenden Geräten (z. B. Kaffeemaschine, Waschmaschine) schaden. Um dies zu verhindern, gibt es so genannte Enthärtungsanlagen, die die Kalkteilchen durch Salzteilchen ersetzen. Dazu wird die Anlage direkt nach dem Hausanschluss eingebaut, wo sie dann das komplette von außen einströmende Wasser enthärtet. Das Salz, das für die Enthärtung benötigt wird, wird in Tab-Form (ähnlich in der Größe wie Spülmaschinentabs) in einem Behälter im Gerät vorgehalten. Dort werden die Tabs nach und nach in Wasser aufgelöst (Material 1). Die Anlage muss regelmäßig durch eine Spülung gereinigt werden, um die ausgelösten Teilchen zu entfernen. Moderne Enthärtungsanlagen sind mithilfe eines Assemblers elektronisch gesteuert und bieten zudem Zugang zum WLAN, um mit einer App auf die Anlage zugreifen zu können.
Material 1
1.3 Der Wasserverbrauch des gesamten Hauses pro Tag kann von der Anlage gemessen werden und wird mit Angabe des Datums gespeichert. Mit einem Befehl in der App kann sich der User die angezeigte Tabelle so strukturieren, dass die Tage nach dem Wasserverbrauch aufsteigend sortiert sind (Tag mit dem größten Wasserverbrauch steht ganz rechts). Folgende beispielhafte unsortierte Feldliste steht bereits zur Verfügung (Werte entsprechen Litern pro Tag):
Element 1
Element 2
Element 3
Element 4
Element 5
261
29
214
986
189
1.3.1
Erläutern Sie den Ablauf des Sortierverfahrens Quicksort an oben genannter beispielhafter Feldliste und ermitteln Sie für dieses Beispiel die Anzahl der nötigen Vergleiche.
[8 BE]
1.3.2
Die unsortierte Feldliste soll aufsteigend von links nach rechts sortiert werden. Implementieren Sie ein entsprechendes Sortierverfahren (Bubblesort, Shellsort oder Quicksort) in der von Ihnen im Unterricht verwendeten Programmiersprache.
[8 BE]
Aufgabe Vorschlag A - Aufgabe 2.1 · Sequenzdiagramme und Netzwerkkommunikation
Enthärtungsanlage
Der Härtegrad von Trinkwasser kann unterschiedlich sein, je nachdem welche natürlichen Inhaltsstoffe im Wasser enthalten sind (z. B. Kalk). Zu hartes bzw. kalkhaltiges Wasser kann der Rohrinstallation im Haus und den wasserführenden Geräten (z. B. Kaffeemaschine, Waschmaschine) schaden. Um dies zu verhindern, gibt es so genannte Enthärtungsanlagen, die die Kalkteilchen durch Salzteilchen ersetzen. Dazu wird die Anlage direkt nach dem Hausanschluss eingebaut, wo sie dann das komplette von außen einströmende Wasser enthärtet. Das Salz, das für die Enthärtung benötigt wird, wird in Tab-Form (ähnlich in der Größe wie Spülmaschinentabs) in einem Behälter im Gerät vorgehalten. Dort werden die Tabs nach und nach in Wasser aufgelöst (Material 1). Die Anlage muss regelmäßig durch eine Spülung gereinigt werden, um die ausgelösten Teilchen zu entfernen. Moderne Enthärtungsanlagen sind mithilfe eines Assemblers elektronisch gesteuert und bieten zudem Zugang zum WLAN, um mit einer App auf die Anlage zugreifen zu können.
Material 1
2 Mit einer App kann der User per Smartphone Zugriff auf die Enthärtungsanlage nehmen. Die Enthärtungsanlage stellt dabei den Server dar, während das Smartphone mit der App den Client darstellt. Im folgenden Ablauf loggt sich ein User ein und fragt den Wert des bisher im Haus verbrauchten Wassers ab.
Nachdem der Client die Verbindung aufgebaut hat, schickt er den Int-Wert „42“. Der Server fragt daraufhin nach dem Passwort mit dem String „pwd“. Das Passwort wird anschließend ebenfalls in einem String übertragen. Der Server überprüft das Passwort. Sollte es korrekt sein, sendet er die angefragten Daten als 8-Bit-Wort mit dem Inhalt „10111010“ als String-Wert. Der Client bestätigt den Erhalt mit der Übertragung des Strings „received“. Daraufhin wird die Verbindung abgebaut. Sollte das Passwort nicht korrekt sein, sendet der Server den String „declined“ und die Verbindung wird direkt abgebaut.
2.1
Modellieren Sie zur Übertragung der Daten zwischen Enthärtungsanlage und Smartphone-App ein Sequenzdiagramm (Client- und Serverseite) in Material 3 inklusive Verbindungsauf- und -abbau. (10 BE)
Hinweis: Zur Kommunikation über TCP/IP sind die Klassen ServerSocket und Socket in Material 4 zu verwenden.
Material 4: Socket und ServerSocket
Material 3: UML-Sequenzdiagramm (Vorlage)
Aufgabe Vorschlag A - Aufgabe 2.2 · Sensoren und Aktoren
Enthärtungsanlage
Der Härtegrad von Trinkwasser kann unterschiedlich sein, je nachdem welche natürlichen Inhaltsstoffe im Wasser enthalten sind (z. B. Kalk). Zu hartes bzw. kalkhaltiges Wasser kann der Rohrinstallation im Haus und den wasserführenden Geräten (z. B. Kaffeemaschine, Waschmaschine) schaden. Um dies zu verhindern, gibt es so genannte Enthärtungsanlagen, die die Kalkteilchen durch Salzteilchen ersetzen. Dazu wird die Anlage direkt nach dem Hausanschluss eingebaut, wo sie dann das komplette von außen einströmende Wasser enthärtet. Das Salz, das für die Enthärtung benötigt wird, wird in Tab-Form (ähnlich in der Größe wie Spülmaschinentabs) in einem Behälter im Gerät vorgehalten. Dort werden die Tabs nach und nach in Wasser aufgelöst (Material 1). Die Anlage muss regelmäßig durch eine Spülung gereinigt werden, um die ausgelösten Teilchen zu entfernen. Moderne Enthärtungsanlagen sind mithilfe eines Assemblers elektronisch gesteuert und bieten zudem Zugang zum WLAN, um mit einer App auf die Anlage zugreifen zu können.
Material 1
Zukünftig soll auch der Füllstand der Salztabs (Material 1) erfasst und dem User per App ersichtlich gemacht werden. Um dies zu verwirklichen, soll die Enthärtungsanlage mit einem zusätzlichen Sensor ausgestattet werden.
Entwickeln Sie mit einer der Ihnen aus dem Unterricht bekannten Sensortechniken ein Konzept inklusive grafischem Technologieschema, um den Füllstand sensorisch zu erkennen.
[6 BE]
Aufgabe Vorschlag A - Aufgabe 3.1 · Struktogramme für Mikrocontroller-Steuerungen
Enthärtungsanlagen müssen in regelmäßigen Abständen gereinigt werden. Dazu wird das von außen zulaufende Trinkwasser in die Enthärtungsanlage geleitet, um dort das zuvor abgelassene Wasser zu ersetzen. Der Reinigungsprozess wird in der Anlage mithilfe eines Assemblers gesteuert.
Sobald durch eine manuelle Betätigung von außen an Pin 0 ein HIGH-Signal anliegt, wird der Reinigungsprozess gestartet. Zwei Sekunden nach dem Start des Prozesses wird das Magnetventil 1 am Zulauf geschlossen (HIGH = geschlossen / LOW = geöffnet). Das restliche im Behälter befindliche Wasser wird nun abgepumpt. Dazu muss nach einer Wartezeit von 50 ms das Magnetventil 2 geöffnet werden. Danach wird die Pumpe an Pin 7 eingeschaltet, um das Wasser in den Ablauf zu pumpen (HIGH = ein). Die Pumpe läuft so lange, wie der Füllstandssensor an Pin 3 ein HIGH-Signal meldet. Sobald dort ein LOW-Signal zu lesen ist, wird die Pumpe abgeschaltet, das Magnetventil 2 geschlossen und das Magnetventil 1 wieder geöffnet. Zum Abschluss wird über Pin 4 ein erfolgreicher Reinigungsprozess mit einem HIGH-Signal gemeldet.
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
↓ · · · ↓ · ↑ · ↓ · ↓ · ↑
Abwasserpumpe · · · Erfolgreich · Füllstandssensor
Wasser · Magnetventil
2 · Magnetventil
1 · Start-
sequenz
3.1
Stellen Sie die beschriebene Mikrocontroller-Steuerung für die Reinigungsprozedur in einem Struktogramm dar.
Hinweis: Sämtliche erforderliche Verzögerungsschleifen können als gegeben angenommen und als Unterprogramme (z. B. warten20ms etc.) verwendet werden.
[10 BE]
Aufgabe Vorschlag A - Aufgabe 3.2 · Assemblerprogrammierung und Mikrocontrolleraufbau
Enthärtungsanlagen müssen in regelmäßigen Abständen gereinigt werden. Dazu wird das von außen zulaufende Trinkwasser in die Enthärtungsanlage geleitet, um dort das zuvor abgelassene Wasser zu ersetzen. Der Reinigungsprozess wird in der Anlage mithilfe eines Assemblers gesteuert.
Sobald durch eine manuelle Betätigung von außen an Pin 0 ein HIGH-Signal anliegt, wird der Reinigungsprozess gestartet. Zwei Sekunden nach dem Start des Prozesses wird das Magnetventil 1 am Zulauf geschlossen (HIGH = geschlossen / LOW = geöffnet). Das restliche im Behälter befindliche Wasser wird nun abgepumpt. Dazu muss nach einer Wartezeit von 50 ms das Magnetventil 2 geöffnet werden. Danach wird die Pumpe an Pin 7 eingeschaltet, um das Wasser in den Ablauf zu pumpen (HIGH = ein). Die Pumpe läuft so lange, wie der Füllstandssensor an Pin 3 ein HIGH-Signal meldet. Sobald dort ein LOW-Signal zu lesen ist, wird die Pumpe abgeschaltet, das Magnetventil 2 geschlossen und das Magnetventil 1 wieder geöffnet. Zum Abschluss wird über Pin 4 ein erfolgreicher Reinigungsprozess mit einem HIGH-Signal gemeldet.
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
↓ · · · ↓ · ↑ · ↓ · ↓ · ↑
Abwasserpumpe · · · Erfolgreich · Füllstandssensor
Wasser · Magnetventil
2 · Magnetventil
1 · Start-
sequenz
3.2
Implementieren Sie Ihr Struktogramm aus Aufgabenteil 3.1 bzw. die beschriebene Mikrocontroller-Steuerung aus Aufgabe 3 in der von Ihnen im Unterricht verwendeten Assemblersprache.
Hinweis: Die als Unterprogramme zur Verfügung gestellten Verzögerungsschleifen müssen nicht implementiert werden.
[10 BE]
Aufgabe Vorschlag A - Aufgabe 3.3 · Sensoren und Aktoren
Enthärtungsanlagen müssen in regelmäßigen Abständen gereinigt werden. Dazu wird das von außen zulaufende Trinkwasser in die Enthärtungsanlage geleitet, um dort das zuvor abgelassene Wasser zu ersetzen. Der Reinigungsprozess wird in der Anlage mithilfe eines Assemblers gesteuert.
Sobald durch eine manuelle Betätigung von außen an Pin 0 ein HIGH-Signal anliegt, wird der Reinigungsprozess gestartet. Zwei Sekunden nach dem Start des Prozesses wird das Magnetventil 1 am Zulauf geschlossen (HIGH = geschlossen / LOW = geöffnet). Das restliche im Behälter befindliche Wasser wird nun abgepumpt. Dazu muss nach einer Wartezeit von 50 ms das Magnetventil 2 geöffnet werden. Danach wird die Pumpe an Pin 7 eingeschaltet, um das Wasser in den Ablauf zu pumpen (HIGH = ein). Die Pumpe läuft so lange, wie der Füllstandssensor an Pin 3 ein HIGH-Signal meldet. Sobald dort ein LOW-Signal zu lesen ist, wird die Pumpe abgeschaltet, das Magnetventil 2 geschlossen und das Magnetventil 1 wieder geöffnet. Zum Abschluss wird über Pin 4 ein erfolgreicher Reinigungsprozess mit einem HIGH-Signal gemeldet.
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
↓ · · · ↓ · ↑ · ↓ · ↓ · ↑
Abwasserpumpe · · · Erfolgreich · Füllstandssensor
Wasser · Magnetventil
2 · Magnetventil
1 · Start-
sequenz
3.3
Erläutern Sie die Funktionsweise eines Magnetventils.
[3 BE]
Aufgabe Vorschlag A - Aufgabe 3.4 · Flipflops und Schieberegister
Enthärtungsanlagen müssen in regelmäßigen Abständen gereinigt werden. Dazu wird das von außen zulaufende Trinkwasser in die Enthärtungsanlage geleitet, um dort das zuvor abgelassene Wasser zu ersetzen. Der Reinigungsprozess wird in der Anlage mithilfe eines Assemblers gesteuert.
Sobald durch eine manuelle Betätigung von außen an Pin 0 ein HIGH-Signal anliegt, wird der Reinigungsprozess gestartet. Zwei Sekunden nach dem Start des Prozesses wird das Magnetventil 1 am Zulauf geschlossen (HIGH = geschlossen / LOW = geöffnet). Das restliche im Behälter befindliche Wasser wird nun abgepumpt. Dazu muss nach einer Wartezeit von 50 ms das Magnetventil 2 geöffnet werden. Danach wird die Pumpe an Pin 7 eingeschaltet, um das Wasser in den Ablauf zu pumpen (HIGH = ein). Die Pumpe läuft so lange, wie der Füllstandssensor an Pin 3 ein HIGH-Signal meldet. Sobald dort ein LOW-Signal zu lesen ist, wird die Pumpe abgeschaltet, das Magnetventil 2 geschlossen und das Magnetventil 1 wieder geöffnet. Zum Abschluss wird über Pin 4 ein erfolgreicher Reinigungsprozess mit einem HIGH-Signal gemeldet.
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
↓ · · · ↓ · ↑ · ↓ · ↓ · ↑
Abwasserpumpe · · · Erfolgreich · Füllstandssensor
Wasser · Magnetventil
2 · Magnetventil
1 · Start-
sequenz
3.4 Im kontinuierlichen Betrieb sorgt ein Schrittmotor über die Stellung eines Ventils für das richtige Mischungsverhältnis des enthärteten Wassers. Der Schrittmotor wird über ein 8-stufiges Schieberegister angesteuert, welches das nötige Bitmuster im Ringbetrieb vorhält.
Material 5: Datenblatt Flip-Flop MC74HC74A
Material 6: Datenblatt Flip-Flop MC74HC112A
3.4.1
Erklären Sie die abgebildeten Flipfloptypen aus den Datenblättern in Material 5 und Material 6 und wählen Sie einen Typ für den Aufbau des Schieberegisters aus.
[4 BE]
3.4.2
Entwerfen und zeichnen Sie eine beschriftete Schaltung für ein vereinfachtes 4-stufiges Schieberegister im Ringbetrieb mit seriellen und parallelen Ein- und Ausgängen mithilfe der von Ihnen ausgewählten Bauteile.
[10 BE]
Aufgabe Vorschlag A - Aufgabe 3.5 · Schaltnetze: KV-Diagramm und NAND-Technik
Enthärtungsanlagen müssen in regelmäßigen Abständen gereinigt werden. Dazu wird das von außen zulaufende Trinkwasser in die Enthärtungsanlage geleitet, um dort das zuvor abgelassene Wasser zu ersetzen. Der Reinigungsprozess wird in der Anlage mithilfe eines Assemblers gesteuert.
Sobald durch eine manuelle Betätigung von außen an Pin 0 ein HIGH-Signal anliegt, wird der Reinigungsprozess gestartet. Zwei Sekunden nach dem Start des Prozesses wird das Magnetventil 1 am Zulauf geschlossen (HIGH = geschlossen / LOW = geöffnet). Das restliche im Behälter befindliche Wasser wird nun abgepumpt. Dazu muss nach einer Wartezeit von 50 ms das Magnetventil 2 geöffnet werden. Danach wird die Pumpe an Pin 7 eingeschaltet, um das Wasser in den Ablauf zu pumpen (HIGH = ein). Die Pumpe läuft so lange, wie der Füllstandssensor an Pin 3 ein HIGH-Signal meldet. Sobald dort ein LOW-Signal zu lesen ist, wird die Pumpe abgeschaltet, das Magnetventil 2 geschlossen und das Magnetventil 1 wieder geöffnet. Zum Abschluss wird über Pin 4 ein erfolgreicher Reinigungsprozess mit einem HIGH-Signal gemeldet.
Port 1 des Mikrocontrollers
Pin 7 · Pin 6 · Pin 5 · Pin 4 · Pin 3 · Pin 2 · Pin 1 · Pin 0
↓ · · · ↓ · ↑ · ↓ · ↓ · ↑
Abwasserpumpe · · · Erfolgreich · Füllstandssensor
Wasser · Magnetventil
2 · Magnetventil
1 · Start-
sequenz
3.5 Dot-Matrix-Anzeige (12 BE)
Auf dem Deckel der Enthärtungsanlage ist eine 5x7 Felder große Matrixanzeige (englisch: Dot-Matrix-Display, ähnlich einer 7-Segment-Anzeige) verbaut, um auch ohne die App wichtige Informationen anzeigen lassen zu können. Dieses Display ist eine optische Anzeige, die aus einzelnen Bildpunkten in einer Matrix aus horizontalen Zeilen und vertikalen Spalten besteht. Jeder einzelne Bildpunkt ist eine LED und durch die Angabe einer Zeilen- und einer Spaltennummer eindeutig definiert. Angesteuert wird das Display mit vier Eingangsvariablen. In Material 7 ist das Display mit Beschriftung der Zeilen und Spalten für eine beispielhafte Anzeige der Ziffer 3 und die zur LED an der Position 3D zugehörigen Wahrheitstabelle abgebildet.
Material 7: Dot-Matrix-Display und Wahrheitstabelle
Beispielhafte Belegung des Dot-Matrix-Displays mit der Ziffer 3:
Für die LED mit der Bezeichnung 3D ergibt sich für die zur Verfügung stehenden Symbole folgende Wahrheitstabelle:
#
d
c
b
a
3D
0 · 0 · 0 · 0 · 0 · 1
1 · 0 · 0 · 0 · 1 · 0
2 · 0 · 0 · 1 · 0 · 0
3 · 0 · 0 · 1 · 1 · 1
4 · 0 · 1 · 0 · 0 · 0
5 · 0 · 1 · 0 · 1 · 1
6 · 0 · 1 · 1 · 0 · 1
7 · 0 · 1 · 1 · 1 · 0
8 · 1 · 0 · 0 · 0 · 1
9 · 1 · 0 · 0 · 1 · 1
A · 1 · 0 · 1 · 0 · 1
B · 1 · 0 · 1 · 1 · 1
C · 1 · 1 · 0 · 0 · 0
D · 1 · 1 · 0 · 1 · 0
E · 1 · 1 · 1 · 0 · 1
F · 1 · 1 · 1 · 1 · 1
Ermitteln Sie für die LED 3D die vollständig vereinfachte Form der Schaltfunktion und entwerfen Sie die erhaltene Schaltfunktion in NAND-Technologie. Zeichnen Sie ihr Ergebnis in einer Schaltung.
Hinweis: Die invertierten Eingangsvariablen stehen nicht zur Verfügung.
a)
b)
c)
Aufgabe Vorschlag B - Aufgabe 1 (1.1, 1.2) · Use-Case-Diagramme
Autohaus
Ein Autohaus in Südhessen bietet den Kauf sowie die Reparatur und Wartung von Pkws an.
1 Das Autohaus benötigt eine neue Vertriebssoftware, damit die Vertriebsmitarbeiterinnen und -mitarbeiter (im Folgenden Vertriebsmitarbeiter genannt) die Wünsche ihrer Kundschaft beim Neuwagenkauf besser erfassen können.
Material 1 – UML-Klassendiagramm
1.1
Mithilfe der neuen Software sollen die Vertriebsmitarbeiter sowohl Pkws nach Kundenwunsch konfigurieren als auch Angebote für Pkws erstellen können. Bei der Konfiguration der Pkws muss ein Fahrzeugtyp, ein dazu angebotener Motortyp sowie eine dazu angebotene Farbe ausgewählt werden. Zusätzlich können bei Bedarf ein oder mehrere Sonderausstattungen ausgewählt werden.
Entwickeln Sie ein Anwendungsfalldiagramm (Use-Case-Diagramm) für die beschriebene Vertriebssoftware. Bestimmen Sie dabei die menschlichen Akteure, die Beziehungen zwischen Akteuren und Anwendungsfällen und eventuell vorhandene include- bzw. extend-Beziehungen. (6 BE)
1.2
Erläutern Sie anhand von Beispielen aus Ihrem Anwendungsfalldiagramm aus Aufgabenteil 1.1 die Aussagekraft von Anwendungsfalldiagrammen und ihre Bedeutung im Rahmen der Softwareentwicklung. (5 BE)
Aufgabe Vorschlag B - Aufgabe 1 (1.3, 1.6) · UML-Klassendiagramme und Objektdiagramme
Autohaus
Ein Autohaus in Südhessen bietet den Kauf sowie die Reparatur und Wartung von Pkws an.
1 Das Autohaus benötigt eine neue Vertriebssoftware, damit die Vertriebsmitarbeiterinnen und -mitarbeiter (im Folgenden Vertriebsmitarbeiter genannt) die Wünsche ihrer Kundschaft beim Neuwagenkauf besser erfassen können.
Material 1 – UML-Klassendiagramm
1.3
Die Klasse Konfigurator kennt alle zurzeit verfügbaren Fahrzeugtypen des Autohauses (Material 1). Für jeden Fahrzeugtyp werden der Hersteller, das Modell, das Baujahr sowie der Grundpreis im System gespeichert. Jeder Fahrzeugtyp ist nur mit bestimmten Motortypen, bestimmten Farben und bestimmten Sonderausstattungen kombinierbar. Ein spezifischer Motortyp kann in mehreren Fahrzeugtypen verbaut sein. Genauso können eine spezifische Farbe oder eine spezifische Sonderausstattung mit mehreren Fahrzeugtypen kombiniert werden. Jeder Motortyp wird im System mit einer Motorennummer, der Motorenart (Benzin, Diesel, Elektro), der Leistung sowie dem Aufpreis erfasst. Für jede Farbe werden der Farbton, das Vorhandensein einer Metallic-Lackierung ( true oder false) sowie der Aufpreis im System gespeichert. Jede Sonderausstattung wird mit einem Namen, einer Ausstattungsnummer und einem Aufpreis im System erfasst.
Im Rahmen einer Konfiguration wird ein neues Fahrzeugobjekt erstellt. Jedes Fahrzeug kennt seinen Fahrzeugtyp, seine Farbe und seinen Motortypen. Wurden im Rahmen der Konfiguration ein oder mehrere Sonderausstattungen ausgewählt, so kennt das Fahrzeug auch diese.
Ergänzen Sie das UML-Klassendiagramm (Material 1) unter Berücksichtigung der Attribute und Methoden der Klassen Konfigurator und Fahrzeug mithilfe der Informationen aus diesem Aufgabenteil. Modellieren Sie dazu sämtliche zusätzliche Klassen mit ihren Attributen (sinnvolle Datentypen), zweckmäßigen Konstruktoren und Assoziationen samt Assoziationsnamen, Multiplizitäten und Navigierbarkeit im Design-Modell. [13 BE]
1.6
Beschreiben Sie das Prinzip der Datenkapselung und erläutern Sie anhand eines Beispiels die Bedeutung dieses Prinzips für die Vertriebssoftware. [5 BE]
Aufgabe Vorschlag B - Aufgabe 1.4 · Sequenzdiagramme und Netzwerkkommunikation
Autohaus
Ein Autohaus in Südhessen bietet den Kauf sowie die Reparatur und Wartung von Pkws an.
1 Das Autohaus benötigt eine neue Vertriebssoftware, damit die Vertriebsmitarbeiterinnen und -mitarbeiter (im Folgenden Vertriebsmitarbeiter genannt) die Wünsche ihrer Kundschaft beim Neuwagenkauf besser erfassen können.
Material 1 – UML-Klassendiagramm
Ein Vertriebsmitarbeiter des Autohauses konfiguriert auf Kundenwunsch einen Pkw. Dazu startet er mithilfe der Methode konfiguratorStarten() der Klasse AutohausUI den Konfigurator. Innerhalb der Methode konfiguratorStarten() wird nun als erstes der zum Kundenwunsch (Hersteller: OPI, Modell: Frosch, Baujahr: 2020) passende Fahrzeugtyp aus den zurzeit verfügbaren Fahrzeugtypen richtig ausgewählt. Danach werden alle für den Fahrzeugtyp lieferbaren Farben abgefragt. Anschließend werden alle für den Fahrzeugtyp lieferbaren Motortypen abgefragt, bevor alle für den Fahrzeugtyp lieferbaren Sonderausstattungen abgefragt werden. Der Kunde entscheidet sich für die Farbe Rot (Objektbezeichnung: f3), einen Elektromotor mit 150PS (Objektbezeichnung: m4) sowie mehrere Sonderausstattungen, die in einer Liste (Referenzattribut s) gespeichert wurden. Auf Basis dieser Entscheidung erstellt der Konfigurator nun ein neues Fahrzeugobjekt.
Modellieren Sie das beschriebene Szenario in einem UML-Sequenzdiagramm (Material 2) unter Berücksichtigung der Informationen aus Aufgabenteil 1.3 und mithilfe zusätzlich erforderlicher Getter-Methoden.
Hinweis: Die Liste mit den vom Kunden gewählten Sonderausstattungen ist als gegeben anzunehmen.
Material 2 – UML-Sequenzdiagramm (Vorlage)
Aufgabe Vorschlag B - Aufgabe 1.5 · Klassen und Methoden implementieren
Autohaus
Ein Autohaus in Südhessen bietet den Kauf sowie die Reparatur und Wartung von Pkws an.
1 Das Autohaus benötigt eine neue Vertriebssoftware, damit die Vertriebsmitarbeiterinnen und -mitarbeiter (im Folgenden Vertriebsmitarbeiter genannt) die Wünsche ihrer Kundschaft beim Neuwagenkauf besser erfassen können.
Material 1 – UML-Klassendiagramm
Die Methode berechneGesamtpreis(...) der Klasse Angebot, die bei der Erzeugung eines Angebotsobjekts aufgerufen werden soll, berechnet den Preis des jeweiligen Fahrzeugs (Grundpreis des Fahrzeugtyps + Aufpreise für Farbe, Motortyp und alle Sonderausstattungen). Beträgt die als Parameter übergebene Rabattstufe 1, so werden 15% Rabatt auf den Fahrzeugpreis gewährt. Beträgt die als Parameter übergebene Rabattstufe 2, so werden 18% auf den Fahrzeugpreis gewährt. Weitere Rabattstufen existieren nicht. Zur Berechnung des Gesamtpreises müssen zum rabattierten Fahrzeugpreis abschließend die als Parameter übergebenen Zulassungskosten addiert werden.
Der Wert des Attributs angebotsnummer der Klasse Angebot soll fortlaufend (beginnend bei 1) für jedes neue Angebotsobjekt gesetzt werden.
Implementieren Sie die Klassen Angebot und Fahrzeug entsprechend der Vorlage im UML-Klassendiagramm (Material 1) und entsprechend der Beschreibung in Aufgabenteil 1.3 in der von Ihnen im Unterricht verwendeten objektorientierten Programmiersprache.
Hinweis: Setter- und Getter-Methoden sind nicht zu erstellen.
a)
b)
Aufgabe Vorschlag B - Aufgabe 2 (2.1, 2.3, 2.4) · Assemblerprogrammierung und Mikrocontrolleraufbau
Um mehr potenzielle Kunden auf das Autohaus aufmerksam zu machen, soll der Schriftzug des Autohauses nachts mithilfe von RGB-LEDs nacheinander in den Farben Weiß, Grün und Violett beleuchtet werden. Eine RGB-LED besteht im Inneren aus drei einzeln ansteuerbaren Leuchtdioden: aus einer roten Leuchtdiode, einer grünen Leuchtdiode und einer blauen Leuchtdiode. Eine RGB-LED hat somit insgesamt vier Anschlüsse, drei für die Ansteuerung der unterschiedlichen Leuchtdioden und einen als gemeinsamen Rückleiter. Durch gezielte Ansteuerung mehrerer interner Leuchtdioden lassen sich somit alle Farben erzeugen. Die vom Autohaus gewünschten Farben können wie folgt generiert werden:
Weiß · Grün · Violett
Rot · High · Rot · Low · Rot · High (für 1,5 ms)
Grün · High · Grün · High · Grün · Low
Blau · High · Blau · Low · Blau · High (für 2,5 ms)
Solange die RGB-LED in der Farbe Violett leuchten soll, müssen abwechselnd erst die rote LED für 1,5 ms und danach die blaue LED für 2,5 ms auf High geschaltet werden.
Da der Schriftzug des Autohauses nur nachts beleuchtet werden soll, wird mithilfe eines Helligkeitssensors regelmäßig die Helligkeit gemessen. Fällt diese unter einen bestimmten Wert, so liefert der Helligkeitssensor ein High-Signal und der Schriftzug wird nacheinander für jeweils 2 Sekunden in den Farben Weiß, Grün und Violett beleuchtet. Die Beleuchtung wird erst ausgeschaltet, wenn es hell wird, d.h. wenn der Helligkeitssensor ein Low-Signal liefert.
Die Steuerung der Beleuchtung erfolgt über einen Mikrocontroller. Es kann die nachfolgende Pinbelegung benutzt werden. Wird eine andere Pinbelegung verwendet, so muss diese dokumentiert werden.
2.1
Erläutern Sie das EVA-Prinzip anhand der beschriebenen Beleuchtungssteuerung. [4 BE]
2.3
Implementieren Sie die Mikrocontroller-Steuerung in der von Ihnen im Unterricht verwendeten Assemblersprache. [10 BE]
Hinweis: Die als Unterprogramme zur Verfügung gestellten Verzögerungsschleifen sind nicht zu erstellen.
2.4
Beschreiben Sie die Aufgaben des Steuerwerks, des Rechenwerks und der unterschiedlichen Bussysteme innerhalb von Mikrocontrollern. [6 BE]
Aufgabe Vorschlag B - Aufgabe 2.2 · Struktogramme für Mikrocontroller-Steuerungen
Um mehr potenzielle Kunden auf das Autohaus aufmerksam zu machen, soll der Schriftzug des Autohauses nachts mithilfe von RGB-LEDs nacheinander in den Farben Weiß, Grün und Violett beleuchtet werden. Eine RGB-LED besteht im Inneren aus drei einzeln ansteuerbaren Leuchtdioden: aus einer roten Leuchtdiode, einer grünen Leuchtdiode und einer blauen Leuchtdiode. Eine RGB-LED hat somit insgesamt vier Anschlüsse, drei für die Ansteuerung der unterschiedlichen Leuchtdioden und einen als gemeinsamen Rückleiter. Durch gezielte Ansteuerung mehrerer interner Leuchtdioden lassen sich somit alle Farben erzeugen. Die vom Autohaus gewünschten Farben können wie folgt generiert werden:
Weiß · Grün · Violett
Rot · High · Rot · Low · Rot · High (für 1,5 ms)
Grün · High · Grün · High · Grün · Low
Blau · High · Blau · Low · Blau · High (für 2,5 ms)
Solange die RGB-LED in der Farbe Violett leuchten soll, müssen abwechselnd erst die rote LED für 1,5 ms und danach die blaue LED für 2,5 ms auf High geschaltet werden.
Da der Schriftzug des Autohauses nur nachts beleuchtet werden soll, wird mithilfe eines Helligkeitssensors regelmäßig die Helligkeit gemessen. Fällt diese unter einen bestimmten Wert, so liefert der Helligkeitssensor ein High-Signal und der Schriftzug wird nacheinander für jeweils 2 Sekunden in den Farben Weiß, Grün und Violett beleuchtet. Die Beleuchtung wird erst ausgeschaltet, wenn es hell wird, d.h. wenn der Helligkeitssensor ein Low-Signal liefert.
Die Steuerung der Beleuchtung erfolgt über einen Mikrocontroller. Es kann die nachfolgende Pinbelegung benutzt werden. Wird eine andere Pinbelegung verwendet, so muss diese dokumentiert werden.
2.2
Entwickeln Sie ein Struktogramm für die beschriebene Mikrocontroller-Steuerung. [10 BE]
Hinweis: Sämtliche erforderlichen Verzögerungsschleifen können als gegeben angenommen und als Unterprogramme (z.B. warten1.5ms) verwendet werden.
Aufgabe Vorschlag B - Aufgabe 3 · Schaltnetze: KV-Diagramm und NAND-Technik
Die vier Werkstatträume des Autohauses werden nachts mithilfe von binären Bewegungsmeldern überwacht. Die Datensignale D0 bis D3 der vier Bewegungsmelder sollen abwechselnd nacheinander über eine gemeinsame Datenleitung Z in ein Nebengebäude übertragen werden, wo eine Weiterverarbeitung der Daten erfolgt. Zur Umwandlung der parallel anliegenden Daten in serielle Daten wird eine digitale Schaltung benötigt, die gesteuert durch die beiden Adresssignale A0 und A1 festlegt, welches Datensignal zurzeit über die Leitung Z übertragen wird. Neben der Datenleitung Z werden auch die Adresssignale ins Nebengebäude weitergeleitet, um dort auswerten zu können, welcher Bewegungsmelder welches Signal sendet.
Der Zusammenhang zwischen den Adresssignalen und dem übertragenen Datensignal kann folgender Tabelle entnommen werden:
Adresssignal A1
Adresssignal A0
Übertragenes Datensignal
0 · 0 · D0
0 · 1 · D1
1 · 0 · D2
1 · 1 · D3
Material 3: Verdrahtungsplan
Material 4: Auszug aus Datenblatt der integrierten Schaltung 74HC10
SN54HC10, SN74HC10 – TRIPLE 3-INPUT POSITIVE-NAND GATES
Wide Operating Voltage Range of 2 V to 6 V
Outputs Can Drive Up To 10 LSTTL Loads
Low Power Consumption, 20-µA Max I CC
Typical t pd = 9 ns
±4-mA Output Drive at 5 V
Low Input Current of 1 µA Max
description/ordering information
The 'HC10 devices contain three independent 3-input NAND gates. They perform the Boolean function or in positive logic.
FUNCTION TABLE (each gate)
INPUTS
OUTPUT
A
B
C
Y
H · H · H · L
L · X · X · H
X · L · X · H
X · X · L · H
https://www.ti.com/lit/ds/symlink/sn74hc10.pdf (abgerufen am 30.07.2020)
3.1
Ermitteln Sie die minimierte Funktionsgleichung für die Datenleitung Z. [3 BE]
3.2
Überführen Sie Ihre Funktionsgleichung in NAND-Darstellung und zeichnen Sie den Verdrahtungsplan der digitalen Schaltung in Material 3 unter Berücksichtigung von Material 4. [10 BE]
3.3
Neben den vier Werkstatträumen sollen nun auch zwei Verkaufsräume und zwei Büros mit binären Bewegungsmeldern ausgestattet werden.
Bestimmen Sie die minimale Anzahl der erforderlichen Adresssignale, wenn die Daten aller Bewegungsmelder nacheinander über eine Datenleitung übertragen werden sollen. [3 BE]
Aufgabe Vorschlag C - Aufgabe 1.1 · Use-Case-Diagramme
Boundary-Scan-Test
Das Verfahren des Boundary-Scan-Tests (BST) wurde entwickelt, um Leiterbahnen auf Leiterplatten (Platinen) mithilfe von Software auf ihre Funktionalität zu testen.
Der BST nutzt auf der Leiterplatte vorhandene spezielle integrierte Schaltkreise (ICs) 1, die über die vier zusätzlichen BST-Anschlüsse Testdata in (TDI), Testdata out (TDO), Testclock (TCK) und Test mode select (TMS) verfügen.
Eine detailliertere Übersicht eines solchen Boundary-Scan-ICs ist in Material 1 zu finden. In den ICs befinden sich Boundary-Scan-Zellen, die als Schieberegister zwischen den Anschlüssen der ICs und der internen Logik angeordnet sind. Der Boundary-Scan-Test wird softwareseitig von einem PC über einen Mikrocontroller gesteuert. Im Folgenden soll zuerst die Testsoftware erstellt werden.
1 Integrated Circuit, kurz IC; Plural ICs.
Material 1: Übersicht Boundary-Scan-IC
1.1
Folgende Anwendungsbeschreibung liegt vor:
Das Testpersonal (im Folgenden Tester genannt), das den BST durchführt, kann Schaltungsbeschreibungen in das Programm einlesen. Der Tester kann außerdem den Test auswählen, der durchgeführt werden soll, und er kann Testmuster generieren. Es gibt drei Spezialfälle von Testmustern: den Integritätstest, den Verbindungstest und den Speichertest. Für jeden Spezialfall müssen bei der Generierung der Testmuster unterschiedliche Einstellungen vorgenommen werden. Als weitere Aktionen stehen dem Tester die Testdurchführung des ausgewählten Tests und das Anzeigen der Testergebnisse zur Verfügung.
Entwickeln Sie ein aussagekräftiges Anwendungsfalldiagramm (Use-Case-Diagramm) für diese Anwendungsbeschreibung. Bestimmen Sie dabei die menschlichen Akteure, die Beziehungen zwischen den Akteuren und Anwendungsfällen und eventuell vorhandene Vererbungs-, include- oder extend-Beziehungen. [10 BE]
Aufgabe Vorschlag C - Aufgabe 1 (1.2, 1.3) · UML-Klassendiagramme und Objektdiagramme
Boundary-Scan-Test
Das Verfahren des Boundary-Scan-Tests (BST) wurde entwickelt, um Leiterbahnen auf Leiterplatten (Platinen) mithilfe von Software auf ihre Funktionalität zu testen.
Der BST nutzt auf der Leiterplatte vorhandene spezielle integrierte Schaltkreise (ICs) 1, die über die vier zusätzlichen BST-Anschlüsse Testdata in (TDI), Testdata out (TDO), Testclock (TCK) und Test mode select (TMS) verfügen.
Eine detailliertere Übersicht eines solchen Boundary-Scan-ICs ist in Material 1 zu finden. In den ICs befinden sich Boundary-Scan-Zellen, die als Schieberegister zwischen den Anschlüssen der ICs und der internen Logik angeordnet sind. Der Boundary-Scan-Test wird softwareseitig von einem PC über einen Mikrocontroller gesteuert. Im Folgenden soll zuerst die Testsoftware erstellt werden.
1 Integrated Circuit, kurz IC; Plural ICs.
Material 1: Übersicht Boundary-Scan-IC
1.2 Die zentrale Klasse der Boundary-Scan-Software heißt BScan (Material 2) und besitzt Attribute, um das generierte Testmuster, die erwartete Testantwort und das Testergebnis zu speichern. Außerdem stellt sie die Möglichkeit zur Verfügung, den eigentlichen Test mithilfe der Methode testen() zu starten. Die Klasse BScan verwaltet eine Netzliste, die die Schaltung beschreibt, sowie eine Klasse zur Ansteuerung der Testhardware namens Testadapter. Der Testadapter besitzt lediglich eine Methode, um den Test durchzuführen. Diese gibt das Testergebnis zurück.
Die Netzliste besteht aus einem Container (Liste) mit Boundary-Scan-ICs (ICs), aus denen die zu testende Schaltung aufgebaut ist. Die Netzliste stellt die Möglichkeiten zur Verfügung, zum ersten IC der Schaltung zu gehen, zum nächsten IC zu wechseln, das aktuelle IC zurückzugeben, ein neues IC an das Ende der IC-Liste anzufügen sowie die Anzahl der ICs zurückzugeben. Ein IC hat einen Namen, einen Typ und eine ID. Zudem kann die Klasse BScan einen Testmustergenerator besitzen. Den Testmustergenerator gibt es in drei Ausprägungen, als Generator für den Integritätstest, für den Verbindungstest sowie für den Speichertest. Alle Generatoren haben die Fähigkeit, ein Testmuster sowie die zu erwartende Testantwort zu generieren. Die hierzu verwendeten Methoden sind polymorph. Die Generatoren kennen die zentrale Klasse BScan und können darüber auf die Netzliste zugreifen.
Material 2: UML-Klassendiagramm BScan
1.2.1
Ergänzen Sie das UML-Klassendiagramm in Material 2 entsprechend der obenstehenden Beschreibung. Modellieren Sie dazu geeignete Attribute, Datentypen, Multiplizitäten, Methoden und zweckmäßige Konstruktoren und Navigierbarkeiten im Design-Modell.
1.2.2
Erklären Sie die im Material 2 dargestellten Assoziationen (Assoziationsart und Multiplizitäten) zwischen den Klassen BScan und Netzliste sowie BScan und Testmustergenerator.
1.3
Das System befindet sich während der Laufzeit zu einem bestimmten Zeitpunkt in einem Zustand, in dem die Netzliste eingelesen ist, aber noch keine Testmuster generiert wurden. Die Netzliste enthält in diesem Zustand vier ICs, zwei ICs vom Typ MAX232 mit den Namen „Ser01“ und „Ser02“, einen IC vom Typ iCube8030 mit dem Namen „Con“ und einen ATMEGA512 mit dem Namen „CPU“. Die IDs der Bausteintypen lauten:
– „11110000“ für den MAX232,
– „00001111“ für den iCube8030,
– „11110011“ für den ATMEGA512.
Ein Integritätstestgenerator sowie der Testadapter und die Klasse BScan existieren zu diesem Zeitpunkt bereits, wurden aber noch nicht benutzt.
Überführen Sie den oben beschriebenen Sachverhalt in ein Objektdiagramm.
Aufgabe Vorschlag C - Aufgabe 1.4 · Klassen und Methoden implementieren
Boundary-Scan-Test
Das Verfahren des Boundary-Scan-Tests (BST) wurde entwickelt, um Leiterbahnen auf Leiterplatten (Platinen) mithilfe von Software auf ihre Funktionalität zu testen.
Der BST nutzt auf der Leiterplatte vorhandene spezielle integrierte Schaltkreise (ICs) 1, die über die vier zusätzlichen BST-Anschlüsse Testdata in (TDI), Testdata out (TDO), Testclock (TCK) und Test mode select (TMS) verfügen.
Eine detailliertere Übersicht eines solchen Boundary-Scan-ICs ist in Material 1 zu finden. In den ICs befinden sich Boundary-Scan-Zellen, die als Schieberegister zwischen den Anschlüssen der ICs und der internen Logik angeordnet sind. Der Boundary-Scan-Test wird softwareseitig von einem PC über einen Mikrocontroller gesteuert. Im Folgenden soll zuerst die Testsoftware erstellt werden.
1 Integrated Circuit, kurz IC; Plural ICs.
Material 1: Übersicht Boundary-Scan-IC
1.4 Der Integritätstest ist der einfachste der BSTs. Er testet, ob alle Boundary-Scan-ICs, die in der Schaltung vorhanden sein sollen, auch wirklich vorhanden sind, und ob sie in der richtigen Reihenfolge angeordnet sind. Dazu wird ein Testmuster erstellt, das pro IC aus 8 „0“-en besteht, die dann später während der Testdurchführung in die zu testende Schaltung geschoben werden. Für die erwartete Testantwort werden die IDs der ICs in der Reihenfolge, wie sie in der Netzliste auftreten, aneinandergehängt.
Implementieren Sie die Klasse IntegritaetstestGenerator und die Klasse BScan in einer objektorientierten Programmiersprache (z. B. Java).
Hinweise: Alle anderen Klassen sind als gegeben vorauszusetzen. Nutzen Sie zur Implementierung auch die Beschreibung aus Aufgabenteil 1.2. Auf die Implementierung der Klassen für die ICs und den Testadapter ist hierbei zu verzichten.
a)
b)
Aufgabe Vorschlag C - Aufgabe 1.5 · Sequenzdiagramme und Netzwerkkommunikation
Boundary-Scan-Test
Das Verfahren des Boundary-Scan-Tests (BST) wurde entwickelt, um Leiterbahnen auf Leiterplatten (Platinen) mithilfe von Software auf ihre Funktionalität zu testen.
Der BST nutzt auf der Leiterplatte vorhandene spezielle integrierte Schaltkreise (ICs) 1, die über die vier zusätzlichen BST-Anschlüsse Testdata in (TDI), Testdata out (TDO), Testclock (TCK) und Test mode select (TMS) verfügen.
Eine detailliertere Übersicht eines solchen Boundary-Scan-ICs ist in Material 1 zu finden. In den ICs befinden sich Boundary-Scan-Zellen, die als Schieberegister zwischen den Anschlüssen der ICs und der internen Logik angeordnet sind. Der Boundary-Scan-Test wird softwareseitig von einem PC über einen Mikrocontroller gesteuert. Im Folgenden soll zuerst die Testsoftware erstellt werden.
1 Integrated Circuit, kurz IC; Plural ICs.
Material 1: Übersicht Boundary-Scan-IC
1.5 Die Klasse Testadapter stellt die Verbindung zu dem Testgerät über ein Netzwerk her. Im Folgenden ist der Ablauf der Kommunikation zwischen Testadapter (Client) und Testgerät (Server) beschrieben.
Nachdem die Verbindung aufgebaut ist, sendet der Testadapter das Wort „WAKEUP“, welches vom Testgerät mit „ACK“ beantwortet wird. Anschließend sendet der Testadapter die Testdaten Zeichen für Zeichen an das Testgerät. Dazu besitzt er die Methode getTestdatum(): int, die ihm das jeweils nächste Zeichen zurückliefert. Mit der Methode testdatenVorhanden(): boolean kann er prüfen, ob noch Zeichen zum Senden vorhanden sind. Sind keine Zeichen mehr vorhanden, signalisiert er das Ende der Übertragung mit dem Wert „-1“ (Endezeichen). Nach jedem Zeichen erwartet der Testadapter ein Antwortzeichen vom Testgerät.
Das Testgerät liest die Zeichen vom Testadapter solange ein, bis es das Endezeichen bekommt. Solange das Testgerät kein Endezeichen bekommt, schiebt es das jeweilige Zeichen mit der Methode shiftData(zeichen: int): int der Klasse Testgeraet in die Testschaltung und erhält direkt eine Testantwort zurück. Diese Testantwort überträgt es zurück an den Testadapter. Das Endezeichen quittiert das Testgerät mit dem Wort „ACK“ und beendet anschließend die Verbindung.
Modellieren Sie zu der obenstehenden Beschreibung unter der Verwendung der Klassen ServerSocket und Socket das Sequenzdiagramm (Serverseite) in Material 4.
Hinweis: Die Klassendiagramme der Klassen Socket und ServerSocket stehen in Material 3 zur Verfügung.
Material 3: Klassendiagramme ServerSocket und Socket
Material 4: Sequenzdiagramm für Client-Server-Kommunikation
Aufgabe Vorschlag C - Aufgabe 2.1 · Flipflops und Schieberegister
Das Boundary-Scan-Testsystem besteht neben der Software auch aus einer Testhardware, die von einem Mikrocontroller gesteuert wird. Der Mikrocontroller ist dafür zuständig, die Testdaten von der Software zu empfangen, die Testsignale für die IC-Anschlüsse TCK, TDI und TMS zu erzeugen und die über den IC-Anschluss TDO empfangene Testantwort zurück an die Software zu senden.
TCK gibt den Takt an, mit dem die Daten in die Boundary-Scan-ICs geschoben werden. TMS legt den Testmodus fest und TDI sind die Testdaten. Bevor die Testdaten in TDI eingeschoben werden, muss der Test mit der Bitfolge „0100“ an TMS initialisiert werden. Für den anschließenden Testvorgang muss TMS immer „0“ sein. Nach Einschieben aller Testdaten wird der Test mit der Bitfolge „11“ (zwei „1“en) an TMS beendet.
Während die Testdaten bitweise in TDI eingeschoben werden, werden die Testantworten ebenfalls bitweise aus TDO herausgeschoben und können von der Testhardware gelesen werden. Ein Beispiel für das Einschieben der Daten findet sich in der folgenden Grafik.
Zur Initialisierung des Tests gibt es das Unterprogramm initTest. Zur Durchführung des Tests gibt es das Unterprogramm schiebeDaten, das immer dann automatisch aufgerufen wird, wenn ein Datenbyte (8 Bit an Testdaten) von der Software empfangen wurde. Außerdem gibt es das Unterprogramm sendeAntwort, das immer, wenn 8 Bit an Testantwort eingelesen wurden, diese an die Software sendet.
Zur Erzeugung des Taktsignals steht außerdem das Unterprogramm wait zur Verfügung, das eine halbe Taktperiode lang wartet.
2.1
Die Boundary-Scan-Zellen sind als Schieberegister angeordnet.
Beschreiben Sie die Funktionsweise eines Schieberegisters.
[4 BE]
Aufgabe Vorschlag C - Aufgabe 2 (2.2, 2.3, 2.5) · Assemblerprogrammierung und Mikrocontrolleraufbau
Das Boundary-Scan-Testsystem besteht neben der Software auch aus einer Testhardware, die von einem Mikrocontroller gesteuert wird. Der Mikrocontroller ist dafür zuständig, die Testdaten von der Software zu empfangen, die Testsignale für die IC-Anschlüsse TCK, TDI und TMS zu erzeugen und die über den IC-Anschluss TDO empfangene Testantwort zurück an die Software zu senden.
TCK gibt den Takt an, mit dem die Daten in die Boundary-Scan-ICs geschoben werden. TMS legt den Testmodus fest und TDI sind die Testdaten. Bevor die Testdaten in TDI eingeschoben werden, muss der Test mit der Bitfolge „0100“ an TMS initialisiert werden. Für den anschließenden Testvorgang muss TMS immer „0“ sein. Nach Einschieben aller Testdaten wird der Test mit der Bitfolge „11“ (zwei „1“en) an TMS beendet.
Während die Testdaten bitweise in TDI eingeschoben werden, werden die Testantworten ebenfalls bitweise aus TDO herausgeschoben und können von der Testhardware gelesen werden. Ein Beispiel für das Einschieben der Daten findet sich in der folgenden Grafik.
Zur Initialisierung des Tests gibt es das Unterprogramm initTest. Zur Durchführung des Tests gibt es das Unterprogramm schiebeDaten, das immer dann automatisch aufgerufen wird, wenn ein Datenbyte (8 Bit an Testdaten) von der Software empfangen wurde. Außerdem gibt es das Unterprogramm sendeAntwort, das immer, wenn 8 Bit an Testantwort eingelesen wurden, diese an die Software sendet.
Zur Erzeugung des Taktsignals steht außerdem das Unterprogramm wait zur Verfügung, das eine halbe Taktperiode lang wartet.
2.2
Zur Durchführung des Tests werden vier Anschlüsse am Mikrocontroller benötigt. Außerdem wird ein Register zum Empfangen der Testdaten von der Software benötigt sowie ein Register, in das die Testantwort gespeichert wird, um sie an die Software zurückzumelden.
Geben Sie die Portpins und Register des von Ihnen im Unterricht verwendeten Mikrocontrollers in Bezug auf deren Zweck für die Testdurchführung an.
2.3
Implementieren Sie das Unterprogramm initTest in dem von Ihnen im Unterricht verwendeten Assembler.
2.5
Implementieren Sie das Unterprogramm schiebeDaten unter Verwendung der zuvor benannten Anschlüsse und Register in dem von Ihnen im Unterricht verwendeten Assembler.
Hinweis: In der Assemblerprogrammiersprache steht der Befehl lsr Rd zur Verfügung...
Aufgabe Vorschlag C - Aufgabe 2.4 · Struktogramme für Mikrocontroller-Steuerungen
Das Boundary-Scan-Testsystem besteht neben der Software auch aus einer Testhardware, die von einem Mikrocontroller gesteuert wird. Der Mikrocontroller ist dafür zuständig, die Testdaten von der Software zu empfangen, die Testsignale für die IC-Anschlüsse TCK, TDI und TMS zu erzeugen und die über den IC-Anschluss TDO empfangene Testantwort zurück an die Software zu senden.
TCK gibt den Takt an, mit dem die Daten in die Boundary-Scan-ICs geschoben werden. TMS legt den Testmodus fest und TDI sind die Testdaten. Bevor die Testdaten in TDI eingeschoben werden, muss der Test mit der Bitfolge „0100“ an TMS initialisiert werden. Für den anschließenden Testvorgang muss TMS immer „0“ sein. Nach Einschieben aller Testdaten wird der Test mit der Bitfolge „11“ (zwei „1“en) an TMS beendet.
Während die Testdaten bitweise in TDI eingeschoben werden, werden die Testantworten ebenfalls bitweise aus TDO herausgeschoben und können von der Testhardware gelesen werden. Ein Beispiel für das Einschieben der Daten findet sich in der folgenden Grafik.
Zur Initialisierung des Tests gibt es das Unterprogramm initTest. Zur Durchführung des Tests gibt es das Unterprogramm schiebeDaten, das immer dann automatisch aufgerufen wird, wenn ein Datenbyte (8 Bit an Testdaten) von der Software empfangen wurde. Außerdem gibt es das Unterprogramm sendeAntwort, das immer, wenn 8 Bit an Testantwort eingelesen wurden, diese an die Software sendet.
Zur Erzeugung des Taktsignals steht außerdem das Unterprogramm wait zur Verfügung, das eine halbe Taktperiode lang wartet.
Das Unterprogramm schiebeDaten wird immer dann aufgerufen, wenn neue Daten im Empfangsregister vorliegen. Die Initialisierung ist zu diesem Zeitpunkt bereits erfolgt. Das Unterprogramm schiebt dann diese Daten mit dem niedrigsten Bit zuerst nach TDI und liest an TDO das entsprechende Bit der Testantwort des vorherigen Tests in das Antwortregister ein. Gleichzeitig erzeugt es den Takt TCK sowie das TMS-Signal, wie in der Grafik in Aufgabe 2 gezeigt.
Nachdem alle 8 Bit an Testdaten in die zu testende Schaltung eingeschoben und alle 8 Bit der Testantwort ausgelesen sind, wird das Unterprogramm sendeAntwort aufgerufen. Anschließend springt schiebeDaten wieder zurück an die Stelle, von der es aufgerufen wurde.
Entwickeln und zeichnen Sie ein Struktogramm für das Unterprogramm schiebeDaten.
Hinweis: Zum Schieben einzelner Bits um eine Stelle nach rechts in einem Register können Sie den Rechtsshift-Befehl lsr (Logic Shift Right) verwenden.
Du kannst auch nach Themen lernen
Übe ein Thema mit gemischten Aufgaben aus den Prüfungen aller Jahre.
- Use-Case-Diagramme · 6 Aufgaben
- UML-Klassendiagramme und Objektdiagramme · 6 Aufgaben
- Klassen und Methoden implementieren · 6 Aufgaben
- Struktogramme für Mikrocontroller-Steuerungen · 6 Aufgaben
- Assemblerprogrammierung und Mikrocontrolleraufbau · 6 Aufgaben
- Sequenzdiagramme und Netzwerkkommunikation · 4 Aufgaben