Datenaustausch, Funktion
Control-Byte im Prozessdatenaustausch
Das Control-Byte wird von der Klemme zur Steuerung übertragen. Es kann im Registermodus (REG = 1) oder im Prozessdatenaustausch (REG = 0) genutzt werden (siehe Anmerkung im Anhang). Zur Abwicklung der Datenübertragen (Handshake) wird das Control- und Status-Byte im Prozessdatenaustausch benutzt.
MSB
REG=0 | OL2 | OL1 | OL0 | 0 | IR | RA | TR |
Status-Byte im Prozessdaten-Modus
Das Status-Byte wird von der Klemme zur Steuerung übertragen. Es enthält die für den Handshake erforderlichen Daten.
MSB
REG=0 | IL2 | IL1 | IL0 | BUF_F | IA | RR | TA |
TR/TA: TRANSMIT-REQUEST/TRANSMIT ACCEPTED Bits
Der Handshake für das Senden der Daten wird über dieses Bit durchgeführt. Eine Zustandsänderung von TR bewirkt, dass die über OL0-OL2 festgesetzte Anzahl von Daten (maximal 5 Bytes) in das Sende-FIFO geladen wird. Die Klemme signalisiert über TA die Ausführung dieses Befehls.
Beispiel
Output | Input | Kommentar |
---|---|---|
00000000 | 0XXXX0X0 | Start Datenübertragung |
00100001 | 0XXXX0X0 | Steuerung fordert von der Klemme 2 Daten zu senden |
… | … | … |
00100001 | 0XXXX0X1 | Klemme hat 2 Daten in Sende FIFO geladen, Befehl ist ausgeführt |
01010000 | 0XXXX0X1 | Steuerung fordert von der Klemme 5 Daten (D0-D4) zu senden |
… | … | … |
01010000 | 0XXXX0X0 | Klemme hat 5 Daten in Sende FIFO geladen, Befehl ist ausgeführt |
RA/RR: REICEIVE-ACCEPTED/RECEIVE-REQUEST
Über eine Zustandsänderung von RR teilt die Klemme der Steuerung mit, dass sich die in IL0-IL1 angezeigte Anzahl von Daten in D0-D4 befinden. Die Übernahme der Daten wird im Control-Byte mit RA quittiert, erst daraufhin werden neue Daten von der Klemme zur Steuerung übertragen.
Beispiel:
Output | Input | Kommentar |
---|---|---|
00000000 | 0XXXX00X | Start Datenübertragung |
0XXX000X | 0011X01X | Klemme fordert von der Steuerung 3 Daten von D0-D2 zu übernehmen |
... | ... | ... |
0XXX001X | 0011X01X | Steuerung hat Daten übernommen |
0XXX001X | 0101X00X | Klemme fordert von der Steuerung 5 Daten von D0-D4 zu übernehmen |
... | ... | … |
0XXX000X | 0101X00X | Steuerung hat Daten übernommen |
IR/IA: INIT-REQUEST/INIT-ACCEPTED
Ist IR high, so führt die Klemme eine Initialisierung durch. Die Sende und Empfangsfunktion werden gesperrt, die FIFO Zeiger werden zurückgesetzt und die Schnittstelle wird mit den Werten der zuständigen Register (R32-R35, R18) initialisiert. Die Ausführung der Initialisierung wird von der Klemme mit IA quittiert.
Beispiel:
Output | Input | Kommentar |
---|---|---|
0XXXXXXX | 0XXXXXXX | Start Datenübertragung |
00000100 | 0XXXXXXX | Initialisierung wird von Steuerung gefordert |
… | … | … |
00000100 | 00000100 | Klemme hat Initialisierung vollzogen |
00000000 | 00000100 | Steuerung fordert Datenaustausch |
… | … | … |
00000000 | 00000000 | Klemme ist bereit |
BUF_F: BUFFER-FULL_Flag
Der Empfangs-FIFO ist voll. Daten die jetzt empfangen werden, gehen verloren.
Fehlerbehandlung
Tritt ein Parity, Framing oder Overun Error auf, so geht das betreffende Datum für die Übertragung verloren, es wird nicht in das Empfangs-FIFO der Klemme geladen.
Ist der Puffer voll, so werden die ankommenden Daten ignoriert.
Im Fehlerfall werden die entsprechenden Diagnosebits in R6 gesetzt