Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
cpm:programmierung [2011/12/08 12:18] volkerpcpm:programmierung [2025/03/24 08:28] (aktuell) volkerp
Zeile 1: Zeile 1:
-====== Programmierung ======+====== PIO, CTC, SIO ======
  
 ===== PIO ===== ===== PIO =====
Zeile 9: Zeile 9:
 {{:cpm:ctc.jpg?400|}} {{:cpm:ctc.jpg?400|}}
  
 +===== SIO =====
 +
 +{{:cpm:sio-register.png?600|}}
 +
 +Int-Vektor-Register WR2 in Kanal B beschreiben.\\
 +Register WR4 sollte zuerst beschrieben werden.
 +
 +<code>
 +Beschreibung der Bit-Stellen der Steuerregister WR0 bis WR7, 
 +und der Statusregister RR0 bis RR2
 +
 +WR0:
 +D0..D2 Nr. des nächsten zu ladenden oder zu lesenden Registers.
 +D3..D5 RESET-Kommandos
 + SEND ABORT (nur SDLC) . Es wird eine Folge von 8 bis 13 "1" gesendet.
 + RESET EXT STATUS INT löscht die im RR0 bei Statusinterrupt eingetragenen Bit.
 + CHANNEL RESET führt zum Rücksetzen eines Kanals. Alle Steuer- und Statusregister sind gelöscht.
 + RESET R x INT ON FIRST CHAR. Nach Erscheinen eines Interrupt im Interruptmodus 1
 + muß durch RESET R x INT ON FIRST CHAR der Kanal für weitere Interrupt freigegeben werden.
 + RESET T x INT PENDING. Im Interruptmodus 2 erscheint bei leerem Sendepuffer ein Interrupt. Dieses
 + Kommando verhindert, daß dieser Interrupt mehrmals kommt. Nach dem Kommando tritt so
 + lange kein Interrupt auf, bis wieder ein Zeichen in den Sendepuffer gekommen ist.
 + ERROR RESET veranlaßt das Rücksetzen der Fehler-Bit (Parität und Empfängerüberlauf) in RR1
 + RETURN FROM INT erzeugt einen RETI-Befehl auf dem Datenbus.
 +D6..D7 setzt die CRC-Logik zurück.
 +
 +WR1:
 +D0 EXT INTERRUPT ENABLE. Gestattet Interrupt bei Wechsel von /DCD, /CTS, /SYNC, -bei BREAK,
 + bei Sendebeginn von CRC oder SYNC-Zeichen.
 +D1 TRANS INTERRUPT ENABLE. Erlaubt INT, wenn der Sendepuffer leer ist.
 +D2 STATUS AFFECTS VECTOR (nur Kanal B). Ist dieser Modus ausgewählt, so wird der Interruptvektor
 + in WR2 wie folgt modifiziert:
 + v3 v2 v1
 + 0 0 0 Kanal B Sendepuffer Leer
 + 0 0 1 Kanal B externer Statuswechsel
 + 0 1 0 Kanal B empfangenes Zeichen verfügbar
 + 0 1 1 Kanal B spezielle Empfangsbedingung*
 + 1 0 0 Kanal A Sendepuffer Leer
 + 1 0 1   Kanal A externer Statuswechsel
 + 1 1 0   Kanal A empfangenes Zeichen verfügbar
 + 1 1 1   Kanal A spezielle Empfangsbedingung*
 + *) spezielle Empfangsbedingung: Paritätsfehler, Empfängerüberlauf, CRC-/Format-Fehler, 
 + Blockende (SDLC)
 +D3..D4 Durch D3 und D4 werden spezielle Interruptbildungsmöglichkeiten für Empfänger eingestellt.
 +D5 D5 = 1 Der /WAIT-/READY-Ausgang wird aktiv, wenn der Empfänger leer ist.
 + D5 = 0 Der /WAIT-/READY-Ausgang wird aktiv, wenn der Sendepuffer voll ist.
 +D6 D6 = 0 /WAIT-/READY-Ausgang arbeitet als WAIT (Ausgang).
 + D6 = 1 /WAIT-/READY-Ausgang arbeitet als READY (Ausgang).
 + WAIT-Funktion: Das SIO kann keine Daten aufnehmen oder abgeben.
 + READY-Funktion: Das SIO ist zur Arbeit bereit.
 +D7 Freigabe des WAIT-/READY-Ausgangs.
 +
 +WR2:
 +Dieses Register enthält den lnterruptvektor. Er existiert nur im Kanal B. Bei STATUS AFFECTS
 +VECTOR werden die Bit-Stellen V1 bis V3 entsprechend der Interrupterzeugung eingetragen.
 +
 +
 +WR3:
 +D0 Erlaubt Empfangsfunktion.
 +D1 Bei D1 = 1 werden die SYNC-Zeichen nicht in die Empfangspufferregister geladen. CRC erfolgt normal.
 +D2 D2 = 1 verhindert im SDLC-Modus Interrupt, wenn keine Übereinstimmung zwischen empfangener und
 + programmierter Adresse oder wenn keine Globaladresse (11111111) vorliegt.
 +D3 Mit D3 = 1 beginnt die CRC-Konrolle beim Start des letzten Zeichens vom Empfangsregister zum Puffer.
 +D4 HUNTMODE. Die Übertragung wird abgebrochen, bis ein neues SYNC-Zeichen kommt.
 +D5 AUTOENABLE. Bei D5 = 1 arbeiten die DCD und CTS-Eingänge als Empfangs- und Sendesteuerung.
 + Bei D5 = 0 wirken DCD und CTS nur auf ihre Bit im Statusregister.
 +D6..D7 Bestimmt empfangene Bit/Zeichen.
 +
 +WR4:
 +D0 D0 = 1, SIO arbeitet mit Paritäts-Bit,
 +D1 D1 = 0, Parität gerade.
 + D1 = 1, Parität ungerade.
 +D2..D3 Bestimmt die Anzahl der Stop-Bit bei Senden.
 +D4..D5 Bestimmt die Art des Synchronmodus.
 +D6..D7 Bestimmung des Multiplikationsfaktors zwischen Takt und Übertragungsrate.
 +
 +WR5:
 +D0 TRANSMIT CRC-ENABLE. CRC-Freigabe bei Senden.
 +D1 D1 = 1, /RTS geht auf 0.
 + D1 = 0, /RTS geht auf 1, wenn der Sender leer ist.
 +D2 CRC/SDLC
 + D2 = 0, CRC-Kontrolle mit SDLC-Polynom X^16 + X^12 + X^5 + 1 .
 + D2 = 1, CRC-Kontrolle mit Polynom X^16 + X^15 + X^2 + 1 .
 +D3 TRANSMIT ENABLE.
 + Sendeerlaubnis. Bei Rücksetzen wird das letzte Zeichen noch voll ausgegeben.
 +D4 BREAK. Bewirkt Aussenden von "0" auf TxD.
 +D5..D6 Bestimmt auszugebende Bit/Zeichen. Bei weniger als 5 Bit/Zeichen gilt:
 + 1 1 1 1 0 0 0 D sendet 1 Bit
 + 1 1 1 0 0 0 D D sendet 2 Bit
 + 1 1 0 0 0 D D D sendet 3 Bit
 + 1 0 0 0 D D D D sendet 4 Bit
 + 0 0 0 D D D D D sendet 5 Bit
 +D7 DTR
 + D7 = 1 bewirkt /DTR = 0 (aktiv).
 +
 +WR6:
 +SYNC-Zeichen bei Monosynchronisation, die ersten 8 Bit bei Bisynchronisation.
 +
 +WR7:
 +2. Zeichen bei Bisynchronisation oder das Synchronzeichen bei Monosynchronisation. 
 +Bei SDLC muß WR7 = 01111110 sein.
 +
 +RR0:
 +D0 RECEIVE CHARACTER AVAILABLE; gesetzt, wenn mindestens 1 Zeichen im Puffer.
 +D1 INTERRUPT PENDING; wird bei jeder INT-Anmeldung gesetzt (nur Kanal A).
 +D2 TRANSMIT BUFFER EMPTY; gesetzt, wenn der Sendepuffer leer ist (außer bei CRC).
 +D3 DCD; zeigt Zustand /DCD.
 +D4 SYNC/HUNT
 + D4 = 0, Zeichensynchronisation erreicht,
 + D4 = 1, keine Synchronisation.
 +D5 CTS; zeigt Zustand /CTS.
 +D6 BREAK/ABORT; wird gesetzt, wenn mit dem Senden von CRC-Worten begonnen wird, 
 + nachdem der Sendepuffer leer geworden ist.
 +D7 CRC/SYNC
 + D7 = 1 bei Erkennen von BREAK (bei ASYNC) .
 + Im SDLC-Format bei Erkennen einer Abbruchfolge (7 oder mehr Einsen).
 +
 +RR1:
 +D0 ALL SENT wird gesetzt, wenn alle Zeichen im Asynchronmode gesendet sind.
 +D1..D3 Falls bei Empfang im SDLC-Modus die Anzahl der Bit/Zeichen nicht aufgehen, 
 + zeigt D1/D2/D3 die restlichen Bit an.
 +D4 Paritätsfehler,
 +D5 Empfängerüberlauf,
 +D6 Formatfehler im Asynchronmode,
 + CRC-Fehler im Synchronmode.
 +D7 Blockende bei SDLC mit gültigem CRC erkannt.
 +
 +RR2: 
 +Enthält Interruptvektor. Die Bit sind entsprechend STATUS AFFECTS VECTOR verändert.
 +</code>
  • cpm/programmierung.1323346723.txt.gz
  • Zuletzt geändert: 2011/12/08 12:18
  • von volkerp