Z80 PIO (in der DDR U855) - Programmierung | ![]() |
![]() |
Letztmalig dran rumgefummelt: 02.09.20 14:40:19 |
![]() |
Zur Programmierung eines PIO sind maximal sechs Steuerbytes notwendig - im Extremfall ein Interrptsteuerwort, ein Betriebsartensteuerwort sowie eine Kanalsteuermuster, welches als Interruptauslöser dient. |
![]() |
1. Betriebsartenauswahl |
![]() |
Abhängig von der Betriebsart ist der PIO in der Lage, folgende
Funktionen jeweils mit bzw. ohne Interruptanforderung eines Kanals
auszuführen:
|
![]() |
Spätestens hier beweist sich der Spruch: "Es gibt zehn Arten von Menschen: die einen verstehen das Binärsystem, die anderen nicht!" - deshalb hier noch mal zu den entsprechenden Zahlensystemen ;-) |
![]() |
alle folgenden Bitmuster müssen via OUT-Befehlen auf die Steuerdresse des jeweiligen Bausteins mit Kanaladresse gesendet werden |
![]() |
Detailierte Funktionsbeschreibung und Programmierbeispiele findet man auch hier |
![]() |
Beispielprogramme zur PIO-Programmierung |
Reihenfolge der Programmierung für Bitbetrieb sowie Interruptanforderung (nach Anja Leheis - März 2013):
Interruptvektor
Steuerwort
Bitweise Betriebsart
E/A-Festlegung
Interruptmaske
Unterbrechungsfreigabe
für den Profi - Kurzreferenz zur PIO-Programmierung
Die Arbeitsweise des U855-PIO in einem speziellen Einsatzfall wird vom Programmierer über eine Reihe von Steuerwortausgaben an die Steuerwortadresse (control) des jeweiligen U855 Kanales festgelegt. Dabei ist zu
beachten, dass auch ein einmal programmierter PIO durch erneute Steuerwortausgaben teilweise oder vollständig umprogrammiert werden kann.
Die verschiedenen Steuerwörter des U855-PIO unterteilen sich in zwei Gruppen:
Steuerwörter mit Adressenkennzeichen können jederzeit, ohne eine bestimmte Reihenfolge einhalten zu müssen, ausgegeben werden. Steuerwortausgaben mit sequentieller Kennzeichnung müssen vom Programmierer genauestens
eingehalten werden. Anderenfalls kommt der PIO-Programmiervorgang vollständig durcheinander. Der Aufbau und die Bitbelegung der Steuerwörter ist der Tafel
oben zu entnehmen.
1. Betriebsartenauswahl | ![]() |
![]() |
![]() |
Betriebsart | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Byte-Ausgabe | 0 | 0 | X | X | 1 | 1 | 1 | 1 |
Byte-Eingabe | 0 | 1 | X | X | 1 | 1 | 1 | 1 |
Byte-Ein- /Ausgabe (nur Kanal A | 1 | 0 | X | X | 1 | 1 | 1 | 1 |
Bit-Ein- /Ausgabe | 1 | 1 | X | X | 1 | 1 | 1 | 1 |
Tabelle 1 - PIO-Betriebsarten-Programmierung
![]() |
Byte-Funktionen mit Quittungsbetrieb (Handshake) |
![]() |
Bitweise Programmierung erfordert Ein- und Asgabe-Festlegung (siehe 2.) |
![]() |
Empfohlenes Steuerwort für Byte-Ausgabe: 0FH (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!) |
![]() |
Empfohlenes Steuerwort für Byte-Eingabe: 4FH (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!) |
![]() |
Empfohlenes Steuerwort für Byte-Ein/Ausgabe auf Kanal A: 8FH (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!) |
![]() |
Empfohlenes Steuerwort für Bit-Ein/Ausgabe: CFH (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!) |
2. Ein- und Ausgangsfestlegung (nur bei Einzelbit-Betrieb) | ![]() |
![]() |
![]() |
Funktion | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Leitung ist Ausgang | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Leitung ist Eingang | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Tabelle 2 - PIO-Ein- und Ausgangsfestlegung für den Einzelbit-Betrieb
3. Interruptvektor | ![]() |
![]() |
![]() |
Funktion | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
7-Bit Interruptvektor | V7 | V6 | V5 | V4 | V3 | V2 | V1 | 0 |
Tabelle 3 - PIO-Interruptvektorfestlegung
![]() |
der Interruptvektor existiert für jeden Kanal getrennt |
![]() |
Bit0 = 0 Kennung für Interruptvektor |
![]() |
Interruptvektor muss zwischen: 00H und 7EH liegen - allerdings Bitmuster verschoben, damit Bit 0 auf 0 bleiben kann (nur gerade Hexzahlen wählen, als 0, 2, 4, 6, 8, A, C, E, |
4. Unterbrechungssteuerwort | ![]() |
![]() |
![]() |
Unterbrechungsfreigabe | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Unterbrechung durch PIO-Kanal gesperrt | 0 | X | X | X | 0 | 0 | 1 | 1 |
Unterbrechung durch PIO-Kanal erlaubt | 1 | X | X | X | 0 | 0 | 1 | 1 |
Tabelle 4 - PIO-Unterbrechungssteuerwort
![]() |
Empfohlenes Steuerwort für Interruptsperre: 03H (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!) |
![]() |
Empfohlenes Steuerwort für Interruptsperre: 83H (nicht zu berücksichtigende Bits sind auf 0 gesetzt worden!) |
5. Unterbrechungssteuerwort für Bit- Ein- und Ausgabe | ![]() |
![]() |
![]() |
Funktion | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Bitmuster zur Kennung als Unterbrechungssteuerwort | X | X | X | X | 0 | 1 | 1 | 1 |
Bitmaske zur Festlegung der Unterbrechungslösung zu berücksichtigenden Leitungen folgt | X | X | X | 1 | X | 1 | 1 | 1 |
Bitmaske zur Festlegung der Unterbrechungslösung zu berücksichtigenden Leitungen folgt nicht | X | X | X | 0 | X | 1 | 1 | 1 |
1-Zustand der Kanalleitung löst Unterbrechung aus | X | X | 1 | X | X | 1 | 1 | 1 |
0-Zustand der Kanalleitung löst Unterbrechung aus | X | X | 0 | X | X | 1 | 1 | 1 |
UND-Verknüpfung der ausgewählten Kanalleitungen | 0 | X | X | X | 1 | 1 | 1 | |
ODER-Verknüpfung der ausgewählten Kanalleitungen | X | 1 | X | X | X | 1 | 1 | 1 |
Unterbrechung durch PIO-Kanal erlaubt | 1 | X | X | X | X | 1 | 1 | 1 |
Unterbrechung durch PIO-Kanalgesperrt | 0 | X | X | X | X | 1 | 1 | 1 |
Tabelle 5 - PIO-Interruptsteuerwort für PIO-Kanal im Einzelbitbetrieb
![]() |
Empfohlenes Steuerwort: 07H (für Bitmaske zur Leitungsfestlegung folgt nicht; 0-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt) |
![]() |
Empfohlenes Steuerwort: 17H (für Bitmaske zur Leitungsfestlegung folgt; 0-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt) |
![]() |
Empfohlenes Steuerwort: 27H (für Bitmaske zur Leitungsfestlegung folgt nicht; 1-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt) |
![]() |
Empfohlenes Steuerwort: 37H (für Bitmaske zur Leitungsfestlegung folgt; 1-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt) |
![]() |
Empfohlenes Steuerwort: 47H (für Bitmaske zur Leitungsfestlegung folgt nicht; 0-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt) |
![]() |
Empfohlenes Steuerwort: 57H (für Bitmaske zur Leitungsfestlegung folgt; 0-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt) |
![]() |
Empfohlenes Steuerwort: 67H (für Bitmaske zur Leitungsfestlegung folgt nicht; 1-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt) |
![]() |
Empfohlenes Steuerwort: 77H (für Bitmaske zur Leitungsfestlegung folgt; 1-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal gesperrt) |
![]() |
Empfohlenes Steuerwort: 87H (für Bitmaske zur Leitungsfestlegung folgt nicht; 0-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben) |
![]() |
Empfohlenes Steuerwort: 97H (für Bitmaske zur Leitungsfestlegung folgt; 0-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben) |
![]() |
Empfohlenes Steuerwort: A7H (für Bitmaske zur Leitungsfestlegung folgt nicht; 1-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben) |
![]() |
Empfohlenes Steuerwort: B7H (für Bitmaske zur Leitungsfestlegung folgt; 1-Zusatnd der Leitungen löst Unterbrechung aus; UND-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben) |
![]() |
Empfohlenes Steuerwort: C7H (für Bitmaske zur Leitungsfestlegung folgt nicht; 0-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben) |
![]() |
Empfohlenes Steuerwort: D7H (für Bitmaske zur Leitungsfestlegung folgt; 0-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben) |
![]() |
Empfohlenes Steuerwort: E7H (für Bitmaske zur Leitungsfestlegung folgt; 1-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben) |
![]() |
Empfohlenes Steuerwort: F7H (für Bitmaske zur Leitungsfestlegung folgt; 1-Zusatnd der Leitungen löst Unterbrechung aus; ODER-Verknüpfung der gewählten Kanalleitungen sowie Unterbrechung durch den PIO-Kanal freigegeben) |
Bitmuster zur Leitungsverknüpfung der gewählten Interruptlogik
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
Leitung in die Verknüpfung einbezogen | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Leitung in die Verknüpfung nicht einbezogen | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Tabelle 6 - PIO-Bitmaske zur Interruptverknüpfung der E/A-Leitungen
![]() |
die Bitmaske für die Unterbrechungsauslösung der zu berücksichtigenden Leitungen muss unmittelbar nach dem Unterbrechungssteuerwort folgen |
![]() |
Bit4 = 1 im Unterbrechungssteuerwort |
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost am 28. März 2002 um 7.36 Uhr |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-) „Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“ Diddi Hallervorden, dt. Komiker und Kabarettist |