4.2 Die Parallel-Schnittstelle Anhang A: Programmiermodell MC6821

4.3/1

4.3 Die V.24-Schnittstelle

4.3.1 Allgemeine Grundlagen

In Abschnitt 4.2 wurde eine parallele Schnittstelle zum Anschluß von Peripheriegeräten beschrieben. Eine weitere Möglichkeit zur Anbindung dieser Geräte an einen Mikrorechner stellt die sogenannte V.24-Schnittstelle dar1). Die V.24-Schnittstelle ermöglicht die asynchrone, serielle Übertragung der Daten. Durch die Normung dieser Schnittstelle ist es möglich, Peripheriegeräte unterschiedlicher Hersteller mit den verschiedensten Rechnern, aber auch diese untereinander zu verbinden. In den USA wurde diese Schnittstelle unter der Bezeichnung RS232C (US-Norm EIA2) ) und in Europa unter der Bezeichnung V.24/V.28 (CCITT-Norm3), DIN 66020) festgelegt. Dabei sind in der V.24-Norm die funktionellen, in der V.28-Norm die elektrischen Eigenschaften beschrieben.

Bild 4.3-1 zeigt den Aufbau der V.24-Schnittstelle des Praktikumsrechners.


Bild 4.3-1:Die V.24-Schnittstelle des Praktikumsrechners

4.3/2

Da auf dem Datenbus des Rechners die Daten in paralleler Form anliegen, wird zur Realisierung einer seriellen Schnittstelle ein Baustein benötigt, der sowohl eine Parallel/Serien- wie auch eine Serien/Parallel-Umwandlung der Daten vornimmt. Ein solcher Interface-Baustein wird häufig

Asynchronous Communications Interface Adapter - ACIA

genannt. Ein Beispiel dafür ist z.B. der im Praktikumsrechner eingesetzte R6551 der Firma Rockwell (s. IC8 im Gesamtschaltplan des Rechners im Anhang von KE3 und Bild 4.3-1). Bevor die Funktion dieses ACIA-Bausteins näher erklärt wird, stellen wir kurz die Grundlagen der V.24-Schnittstelle dar.

Bild 4.3-2 zeigt das serielle Datenformat der V.24-Schnittstelle. Die Zeichen werden als Folge von Einzelbits übertragen, die von einem Startbit (logisch "0") angeführt und von einem, 1½ oder zwei Stopbits (logisch "1") abgeschlossen werden. Die Übertragung beginnt mit dem niederwertigen Bit 0 (LSB). (Da zwischen zwei "1"-Bits das Signal nicht zum "0"-Wert zurückkehrt, spricht man von einer "Non-Return-to-Zero"-Codierung - NRZ.)


Bild 4.3-2: Datenformat der V.24-Schnittstelle
(Beispiel: 8-bit-Daten mit Paritätsbit)

Die Kommunikation zwischen den Geräten erfolgt über Daten-, Takt-, Melde- und Steuersignale. Die Pegel der V.24-Schnittstelle auf den Datenleitungen sind in "negativer" Logik, die der Steuersignale in "positiver" Logik festgelegt:

logischer Zustand Datenbit Steuerinformation
0 H-Pegel: +3 V bis +15 V L-Pegel: -15 V bis -3 V
1 L-Pegel: -15 V bis -3 V H-Pegel: +3 V bis +15 V

Der Übergangsbereich zwischen -3V und +3V ist undefiniert. Die Übertragungsgeschwindigkeit kann bis zu 56.000 baud betragen, d.h. es können bis zu 56.000 bit/s übertragen werden. Die maximale Übertragungsentfernung ist abhängig von der Baudrate. Sie beträgt bei 19.200 baud ca. 30 Meter.

Die Schnittstellendefinition und die Pinbelegung des 25-poligen-Steckers sind der Vollständigkeit halber im Anhang B dargestellt. Bei der Funktionsbeschreibung werden wir uns hier auf die wichtigsten Signale zur Kommunikation zwischen Mikrorechnern untereinader und mit Terminals, Druckern und anderen Peripheriegeräten beschränken (s.Tabelle 4.3-1).

4.3/3

Bemerkung: Einige dieser Signale sind im L-Pegel aktiv und werden daher meist in negierter Form (mit Überstreichung o.ä.) geschrieben. Wir lassen diese Überstreichungen (aus Gründen der einfacheren Darstellung) dann weg, wenn der Zusammenhang eine exakte Darstellung nicht verlangt4). Bild 4.3-1 können Sie entnehmen, daß die Steuersignale des Schnittstellenbausteins R6551, den wir in diesem Abschnitt beschreiben werden, invertiert werden (IC5 und IC6). Daher muß hier festgestellt werden, daß im folgenden immer die Signale am V.24-Schnittstellenstecker gemeint sind, wenn nicht explizit auf die R6551-Signale Bezug genommen wird.

Tabelle 4.3-1: Die wichtigsten Signale einer V.24-Schnittstelle
PinSignal Eingang/Ausgang Abkürzung
2Transmit Data AusgangTxD   (TD)
3Receive Data EingangRxD   (RD)
4 Request to SendAusgangRTS
5Clear to Send EingangCTS
6Data Set Ready EingangDSR
7Signal Ground  SG   (GND)
8Data Carrier Detect EingangDCD
17Receiver Clock Ein-/AusgangRxD
20 Data Terminal Ready Ein-/AusgangRxC

In der Regel ist es nicht möglich, zwei Datenendeinrichtungen (DEEs, z.B. zwei Rechner) mit V.24-Anschluß direkt durch ein einfaches Kabelbündel zu verbinden. Die Normen sehen zur Verbindung zweier Datenendeinrichtungen den Einsatz von Modems (Datenübertragungseinrichtungen, DÜEs) vor. Dies ist für Entfernungen von wenigen Metern unwirtschaftlich. Um den Einsatz von Modems zu umgehen, bedarf es eines speziellen, an die Anforderungen der zu verbindenden Einheiten angepaßten Adapters. Ein Adapter in der einfachsten Form kann z.B. wie folgt realisiert werden:


Bild 4.3-3:Die einfachste V.24-Schnittstelle

4.3/4

Die Datensignale werden auf den Leitungen TxD (Transmit Data) und RxD (Receive Data) übertragen. Als Bezugspotential dieser Signale dient das Signal Betriebserde (Signal Ground). Kurz gesagt, kann die Steuerung der Datenübertragung über die Steuerleitungen folgendermaßen vorgenommen werden:

Ist der Rechner (bzw. das Terminal) bereit, Daten auszutauschen, so signalisiert er dies durch ein H-Signal am Ausgang DTR (Data Terminal Ready) der V.24-Schnittstelle. Dabei ist die Richtung des Datenaustauschs nicht vorgegeben. Die Betriebsbereitschaft wird vom Kommunikationspartner über die Leitung DSR (Data Set Ready) durch einen H-Pegel mitgeteilt. Durch das Signal RTS kann der Prozessor in einem Peripheriegerät den Empfangsteil (Receiver) einschalten. Dieses Gerät kann wiederum über das Signal CTS den Prozessor über seine Empfangsbereitschaft informieren oder sogar erst den Sender (transmitter) in der Prozessorschnittstelle einschalten.

Benutzt man den oben dargestellten Adapter, so kontrollieren die verbundenen Einheiten jeweils die eigenen "kurzgeschlossenen" Steuersignale. Der Anwender ist selbst für die Funktionsfähigkeit der Verbindung verantwortlich, da über die Steuerleitungen keine Informationen des Kommunikationspartners zur Verfügung stehen.

Gebräuchliche Datenübertragungsprotokolle der V.24-Schnittstelle

4.3/6

4.3.2 Aufbau des Bausteins R6551

Nachdem nun die für uns wesentlichen Teile der V.24-Schnittstelle und ihrer Handhabung beschrieben wurden, wird der Interface-Baustein R6551, kurz ACIA (Asynchronous Communications Interface Adapter) genannt, näher erklärt. Im Bild ist das Blockschaltbild der ACIA dargestellt 1). Dieses läßt sich zunächst grob in 3 Teile aufteilen:


Bild 4.3-6:Blockschaltbild der ACIA R6551

Der Empfängerteil besteht aus dem Empfangs-Schieberegister, das die seriellen Daten über den Anschluß RxD aufnimmt und in paralleler Form an das Empfangs-Datenregister weiterleitet (Serien/Parallel-Wandlung). Dort stehen die Daten dann über den Datenbus-Treibern dem Prozessor zur weiteren Verarbeitung zur Verfügung.

4.3/7

Der Sendeteil enthält ein Sende- Datenregister, aus dem die Daten in paralleler Form in das Sende-Schieberegister übertragen werden. In diesem findet die Parallel/Serien-Wandlung statt. Die seriellen Daten werden über den Anschluß TxD ausgegeben.

Der Steuerungs- und Überwachungsteil enthält die weiteren Register, auf die im folgenden ausführlich eingegangen wird: Status-, Steuer- und Befehlsregister. Der "on-chip"- Baudratengenerator erzeugt aus der durch einen extern angeschlossenen Quarz stabilisierten Frequenz eine ganze Palette von unterteilten Frequenzen. Aus diesen muß die Übertragungsfrequenz selektiert werden, mit der die Schieberegister getaktet werden. (Der benutzte Grundtakt ist das 16fache des intern daraus abgeleiteten Schiebetaktes, so daß jedes Bit 16 Vollschwingungen dieses Grundtaktes lang ist.) Anstelle der intern erzeugten Frequenz können (am Eingang XTLI, s.u.) auch ein externer Takt angeschlossen werden und XTLO unbeschaltet bleiben.

Die Interruptlogik wertet die im Statusregister vorliegenden Ergebnisse einer Übertragung aus und unterbricht in bestimmten Fällen die CPU. Die letzte Komponente besteht aus der Schreib/Lese-Steuerung sowie der Auswahllogik für die einzelnen Register. Die Datenbus-Treiber sind bidirektional. Das folgende Bild 4.3-7 zeigt die Anschlußbelegung des R6551.


Bild 4.3-7:Anschlußbelegung des R6551

4.3/8

Die positive Flanke des Systemtaktes F2 synchronisiert alle internen Steuerungsvorgänge. Die Modem-Ausgangssignale DTR, RTS werden durch zugeordnete Bits im Befehlsregister unmittelbar beeinflußt, der Zustand der Eingangssignale DSR, DCD kann im Statusregister abgefragt werden. Die Bedeutung dieser Signale muß durch die Übertragungssoftware zur V.24-Kommunikation berücksichtigt werden. Nur das Eingangssignal CTS wirkt sich - wie unten beschrieben - direkt auf den Sendeteil aus.

Die Selektion der ACIA geschieht über die beiden Eingänge CS0 und #CS1 (Chip Select). Dazu muß an CS0 ein H-Pegel und an #CS1 ein L-Pegel angelegt werden. Die Auswahl der einzelnen Register geschieht dann über Eingänge RS0 und RS1. Diese Eingänge sind im Mikrorechner mit den Adreßleitungen A0 und A1 der CPU verbunden. Dabei können einige Register nur beschrieben, andere nur gelesen werden, so daß zur Auswahl die Schreib-/Leseleitung R/#W herangezogen werden kann. Ein H-Pegel (read) am R/#W-Eingang schaltet die Daten auf dem internen Datenbus der ACIA über die bidirektionalen Datenbus-Treiber auf den System-Datenbus des Mikrorechners durch. Ein L-Pegel an diesem Eingang überträgt die Daten vom System-Datenbus auf den Datenbus der ACIA (write). Tabelle 4.3-2 zeigt die Zuordnung der Register zu bestimmten Adressen im Mikrorechner und die mit den Registern ausführbaren Operationen.

Tabelle 4.3-2: Adressierung der ACIA-Register
    Register-Operation
AdresseRS1 RS0 Schreiben (R/W=0) Lesen (R/W=1)
F00800 Sende-DatenregisterEmpfangs-Datenr.
F0090 1"Programmed Reset" Statusregister
F00A10 BefehlsregisterBefehlsregister
F00B11 SteuerregisterSteuerregister

4.3/13

4.3.3 Der Registersatz des R6551

Das Statusregister

Das Statusregister ist 8 bit breit und kann vom Prozessor nur gelesen werden. Ein Schreibbefehl mit der Adresse des Statusregisters hat zur Folge, daß das Bit 2 im Statusregister *) und die Bits 0,2,3,4 im Befehlsregister gelöscht (Bit 1 gesetzt) werden (programmed reset) und dadurch der Baustein in einen definierten Grundzustand versetzt wird.

Die einzelnen Bits des Statusregisters nach Bild 4.3- 12 geben Auskunft über den Zustand der Datenregister und der externen Kontroll-Signale (wie DSR und DCD), sowie über das Vorliegen von Übertragungsfehlern (Format-, Paritäts- und Überlauffehler) und dem daraus abgeleiteten Vorliegen einer Unterbrechungsbedingung.


Bild 4.3-12: Der Aufbau des Statusregisters (Adresse: $F009)

Das folgende Flußdiagramm (Bild 4.3-13) zeigt die Abfrage der verschiedenen Statusbits in einer Unterbrechungsbehandlungs-Routine zur Einleitung der geeigneten Maßnahmen - Datenübertragung oder Fehlerbehandlung.


Bild 4.3-13:Flußdiagramm zur Abfrage der Statusbits

4.3/16

Das Befehlsregister

Das Befehlsregister (Command Register - CR) hat den im Bild 4.3-14 gezeigten Aufbau. Es bestimmt die im folgenden beschriebenen Funktionen und Modi.


Bild 4.3-14: Aufbau des Befehlsregisters (Adresse: $F00A)

Hinweis:
Die Startadresse der Interruptroutine, die eine Unterbrechungsanforderung der ACIA bedient, ist im Praktikumsrechner unter den Adressen

$0040, $0041
abgelegt und kann dort beliebig geändert werden. Nach dem Rücksetzen des Rechners zeigt die Startadresse auf den Befehl RTI (Return from Interrupt).

4.3/19

Das Steuerregister

Das Steuerregister (Control Register, Instruction Register - IR) ist ebenfalls 8 bit breit. Es enthält Informationen über die Übertragungsgeschwindigkeit, die Quelle des Empfangs Taktes sowie über das Format des Übertragungsrahmens, d.h. über die Wortlänge und die Zahl der Stopbits (s. Bild 4.3-15).


Bild 4.3-15:Der Aufbau des Steuerregisters (Adresse: $F00B)

Tabelle 4.3-6: wählbare Übertragungsraten
Bit 
32 10 Baud-Rate
000 0(externer Takt)/16
000 150
001 075
001 1109.92
01 00134.58
010 1150
011 0300
011 1600
100 01200
100 11800
1 0102400
101 13600
110 0 4800
110 17200
111 09600
111 119200

4.3/21


Selbsttestaufgabe S4.3-1:
  1. Mit welchen Werten in binärer und hexadezimaler Form müssen das Steuer- und Befehlsregister/Instruktionsregister (CR, IR) initialisiert werden, wenn die Schnittstelle in der folgenden Betriebsart eingesetzt werden soll:

    • 7-bit-Zeichen,
    • gerade Parität,
    • 1 Stopbit,
    • 2400 baud,
    • interner Empfängertakt,
    • Receiver Echo Mode disabled
    • Sender- und Empfänger-Interrupt zugelassen (enabled)
    • DTR=1

  2. Wie sieht für die unter a) bestimmte Übertragungsart das Timing-Diagramm auf der V.24-Übertragungsleitung TxD für das ASCII-Zeichen 'K' ($4B) aus ? Tragen Sie auf ihrem Lösungsblatt auch geeignete Spannungswerte für H- und L-Pegel und die Bitdauer b ein. Skizzieren Sie auch das "Pausensignal" bis zur Übertragung des nächsten Zeichens.

  3. In der Betriebsweise, für die die Schnittstelle unter a) initialisiert wurde, wird auf der V.24-Empfangsleitung RxD folgendes Timing-Diagramm beobachtet:

    RxD Timing Diagramm

    Bestimmen Sie den Inhalt des Statusregisters SR in binärer und hexadezimaler Form vor dem Lesen des Empfangsdatenregisters RDR durch den µP. Setzen Sie dabei voraus, daß die Schnittstelle als Null-Modem betrieben wird, d.h. daß an der Schnittstelle RTS und CTS sowie DSR und DTR miteinander verbunden sind. Das Sendedatenregister TDR ist leer und DCD=1, d.h. #DCD=0.


Praktische Übung P4.3-1:
Programmieren Sie die V.24-Schnittstelle im 6809-Simulator, wie in Selbsttestaufgabe S4.3-1a vorgegeben. Geben Sie nun das Zeichen 'K' aus und vergleichen Sie das Zeitdiagramm mit dem in der Selbsstestaufgabe S4.3-1b ermitteltem Bild. (Hinweis: Verkleinern Sie das ACIA-Fenster durch Anklicken der Raute in der oberen, rechten Ecke.)

4.3/22


Selbsttestaufgabe S4.3-2:
Das folgende Bild stellt die serielle Übertragung zweier Zeichen auf einer V.24-Leitung dar, wie sie mit dem Oszilloskop zu beobachten ist. Vorausgesetzt ist, daß das niederwertige Bit jedes Zeichens zuerst übertragen wird und bei der Übertragung kein Fehler auftritt.

2 Zeichen auf V.24-Leitung

Es werde vorausgesetzt, daß die übertragenen Zeichen aus dem erweiterten ASCII-Zeichensatz stammen, wie er in der Tabelle im Anhang D dieser KE4 angegeben ist.

  1. Berechnen Sie die Übertragungsrate in bd (Baud). (Als Ergebnis soll einer der Werte aus Tabelle 4.3-5 angegeben werden.)

  2. Wieviele Stopbits werden nach jedem Zeichen übertragen ?
    Kennzeichnen Sie die übertragenen Bits durch die logischen Werte '0' und '1' bzw. durch SB (Startbit) oder StB (Stopbit).

  3. Wird die Übertragung der Zeichen durch ein Paritätsbit gesichert ?
    Wenn nein, begründen Sie Ihre Antwort.
    Wenn ja, geben Sie die Art dieses Paritätsbits an (even, odd, mark, space).

  4. Werden die Zeichen im 7-bit- oder 8-bit-Code übertragen?
    Wie lauten die Zeichen in binärer und hexadezimaler Form ?

  5. Welche Buchstabenkombination wird übertragen ?


Praktische Übung P4.3-2:
Programmieren Sie die V.24-Schnittstelle im 6809-Simulator, wie in Selbsttestaufgabe S4.3-2 vorgegeben. Geben Sie nun die dort unter e) ermittelte Buchstabenkombinationen ein und vergleichen Sie das Zeitdiagramm mit dem in der Selbsttestaufgabe S4.3-2 gezeigten Bild.

4.3/23

4.3.4 Kommunikation mit dem PC

In KE2 haben Sie bereits gelernt, wie Sie Programme und Datenbereiche zwischen dem PC und dem Praktikumsrechner austauschen können und damit z.B. auf einer Festplatte abspeichern bzw. von dort lesen können. Dies geschah auf einer hohen Anwendungsebene, ohne daß Sie wissen mußten, wie die V.24-Schnittstelle im Praktikumsrechner funktioniert und programmiert werden kann. In KE3 wurde dann bei der Beschreibung der Monitorroutinen - im Vorgriff auf die Beschreibung der V.24-Schnittstelle in dieser KE4 - das Programm LOAD zum Laden von Programmen und Daten in den Praktikumsrechner analysiert (vgl. Praktische Übung P3.2-6). Nachdem Sie in den vorangehenden Unterabschnitten die V.24-Schnittstelle ausführlich kennengelernt und in den Übungen bereits erste praktische Anwendungen dazu durchgeführt haben, sollen Sie sich in diesem Unterabschnitten nun ausführlich mit der Kommunikation zwischen zwei Rechnern über die V.24-Schnittstelle beschäftigen, und zwar auf einer sehr niedrigen, hardwarenahen Stufe. Die benutzten beiden Rechner sind Ihr PC sowie der Praktikumsrechner. Zur Vorbereitung verbinden Sie bitte beide mit dem zur Verfügung gestellten Kabel und stellen Sie die V.24-Schnittstelle des PCs, wie in KE2 beschrieben, (mit Hilfe des MODE-Befehls) ein.

Praktische Übung P4.3-3:
Schreiben Sie ein Programm, daß einen Datenblock vom PC in den Praktikumsrechner überträgt und ab einer eingebbaren Adresse im Speicher ablegt.

Im einzelnen soll das Programm:

  1. die Anzeige löschen,
  2. die Kennung "AA" (Anfangs-Adresse) im Operationsfeld der Anzeige ausgeben und im Adreßfeld die 4-stellige Startadresse eines Pufferbereiches einlesen, (Beenden der Eingabe durch die Taste '+')
  3. die Anzeige löschen,
  4. das Statusregister der ACIA solange abfragen, bis es das Vorliegen eines übertragenen Zeichens anzeigt,
  5. das empfangene Zeichen im Datenfeld anzeigen und im Puffer ablegen,
  6. sich selbst mit einem Sprung ins Monitorprogramm abbrechen, wenn das Zeichen '.' (Punkt) empfangen wurde, sonst
  7. danach die Pufferadresse erhöhen, diese im Adreßfeld anzeigen und zyklisch mit 4. fortfahren.

4.3/24

Zur Arbeit mit dem Emulator:
Nachdem Sie dieses Programm mit dem Editor erstellt und assembliert haben, können Sie es nun mit dem 6809-Emulator austesten. Starten Sie dazu den Emulator und laden Sie das Maschinenprogramm (Endung .HEX) in den Arbeitsspeicher des emulierten 6809-Prozessores (Menüpunkt: Datei, Eintrag: laden). 1) Nun können Sie durch Anklicken der Ikone

Bild

eine Datei bestimmen, in die alle ins Sende-Datenregister (Adresse $F008) geschriebenen ASCII-Zeichen als Zeichenkette eingetragen werden2). (Die Übertragung der Zeichenkette vom Emulator in die Datei wird in der Statuszeile durch ein Diskettensymbol mit der Beschriftung ACIA auf der linken Seite angezeigt.) Die Zeichenkette müssen Sie - wie oben verlangt - durch einen Punkt abschließen. Durch die Ikone

Bild

können Sie die Aufzeichnung stoppen. Danach starten Sie die Empfangsroutine (zweifaches Betätigen der Taste 'G') und öffnen durch die Ikone

Bild

die eben erzeugte Datei zur Eingabe der Zeichenkette. (Die Übertragung der Zeichenkette aus der Datei in den Emulator wird in der Statuszeile durch ein Diskettensymbol mit der Beschriftung ACIA auf der rechten Seite angezeigt.) Wenn Ihr Programm fehlerfrei arbeitet, können Sie dann im Pufferbereich die eingegebene Zeichenkette wiederfinden.

Wenn Ihr Programm im Emulator fehlerfrei läuft, können Sie es im Praktikumsrechner ablaufen lassen. Dazu müssen Sie es, wie in KE2 beschrieben, (mit dem mitgelieferten Programm IDE9.EXE) in den Praktikumsrechner übertragen. Nun erstellen Sie sich mit Hilfe des Editors eine beliebige ASCII-Datei und beenden die Eingabe mit einem Punkt. Starten Sie danach das erstellte Programm auf dem Praktikumsrechner und übertragen Sie die ASCII-Datei mit dem MS-DOS-Befehl "COPYDateiname COMn:" vom PC in den Praktikumsrechner. Überprüfen Sie wiederum die Übertragung durch Vergleich der in der Datei und im Puffer abgelegten ASCII-Zeichen.

Nach dem V.24-Empfangsprogramm sollen Sie nun auch das Gegenstück, also ein Programm zum Senden von ASCII-Zeichen entwickeln. Natürlich könnten Sie das in einer höheren Programmiersprache oder aber in 80x86-Assembler schreiben und auf dem PC ablaufen lassen. Beide Programmiersprachen sind jedoch nicht Gegenstand dieses Praktikums.

Der 6809-Emulator liefert aber die Möglichkeit, den PC als vollständigen Ersatz für einen 2. 6809-Rechner zu benutzen. Dazu können Sie die emulierte V.24-Schnittstelle auf die (in Hardware realisierte) V.24-Schnittstelle Ihres PCs abbilden (Menü: Datei, Eintrag: Schnittstellen). Danach sind Sie in der Lage, durch ein vom Emulator abgearbeitetes 6809-Programm auf die PCSchnittstellen COM1: oder COM2: zuzugreifen.

4.3/25

Praktische Übung P4.3-4:
Schreiben Sie ein Programm, daß einen Datenbereich aus dem Arbeitsspeicher des Praktikumsrechners liest und über die V.24-Schnittstelle überträgt.

Im einzelnen soll das Programm:

  1. die Anzeige löschen,
  2. die Kennung "AA" (Anfangs-Adresse) im Operationsfeld der Anzeige ausgeben und im Adreßfeld die 4-stellige Startadresse des gewünschten Datenbereiches einlesen, (Beenden der Eingabe durch die Taste '+')
  3. die Anzeige löschen und - mit der Startadresse beginnend -
  4. ein Zeichen des Datenbereichs lesen und im Datenfeld der Anzeige ausgeben, dabei die Speicheradresse des Zeichens im Adreßfeld anzeigen,
  5. das gelesene Zeichen zur V.24-Schnittstelle ausgeben und dabei (zur Sende-Synchronisation) das Statusregister der ACIA auswerten,
  6. sich selbst mit einem Sprung ins Monitorprogramm abbrechen, wenn das Zeichen '.' (Punkt) ausgegeben wurde, sonst
  7. mit der um 1 erhöhten Speicheradresse mit 4. fortfahren.

Zur Arbeit mit dem 6809-Emulator:
Nachdem Sie auch dieses Programm mit dem Editor erstellt und assembliert haben, können Sie es ebenfalls mit dem 6809-Emulator austesten. Starten Sie dazu den Emulator und laden Sie das Maschinenprogramm (Endung .HEX) in den Arbeitsspeicher des emulierten 6809-Prozessors (Menüpunkt: Datei, Eintrag: laden).3) Nun können Sie das ACIA-Fenster (Menüpunkt: Bausteine, Eintrag: ACIA) öffnen.

Dieses Fenster ist im folgenden Bild dargestellt. In der Mitte des Fensters sehen Sie die Register der ACIA mit ihren aktuellen Belegungen. Die Bedeutungen der einzelnen Bits von Steuer- und Befehlsregister - die im Fenster abweichend zum Text mit CON (Control) und COM (Command) bezeichnet sind - ist quasi "im Klartext" rechts aufgeschrieben. Sie können nun eine Folge von zweistelligen Hexadezimalzahlen eingeben und durch die Eingabetaste abschließen. Daraufhin werden diese Zeichen sukzessiv vom Feld 'zu empfangen' ins Feld 'empfangen' übertragen und gleichzeitig das Zeitdiagramm des jeweils übertragenen Zeichens im oberen Teil des Bildes dargestellt. Durch die Tastatur wird auf diese Weise die Empfangsleitung RxD der ACIA "simuliert". Nach der Übertragung können Sie sich mit Hilfe des waagerechten Verschiebebalkens noch einmal die gesamte zeitliche Darstellung der V.24-Übertragung anschauen. Die Aussendung von Zeichen geschieht durch das Einschreiben ihres V.24-Codes in das Sende-Datenregister (Adresse: $F008) der ACIA, z.B. über die Tastatur des emulierten Praktikumsrechners. Sie können sich auch dazu das Zeitdiagramm anschauen, wenn Sie das ACIA-Fenster durch Anklicken der Raute in der oberen, rechten Ecke verkleinern.

4.3/26

Durch Anklicken der Ikone

Bild

können Sie eine Datei bestimmen, in die alle ins Sende-Datenregister (Adresse $F008) geschriebenen Zeichen eingetragen werden. Legen Sie eine ASCII-Zeichenkette, die mit einem Punkt ('.'=$2E) endet, in einem Speicherbereich des emulierten Rechners ab. Starten Sie das Programm und geben Sie die Startadresse des Speicherbereiches ein. Nachdem das Programm mit einem Rücksprung ins Monitorprogramm endet, müssen Sie durch die Ikone

Bild

die Aufzeichnung stoppen. Danach können Sie sich durch die Ikone

Bild

das Zeitdiagramm der in der eben erzeugten Datei aufgezeichneten Zeichen anschauen. (Dabei müssen Sie den waagerechten Verschiebebalken benutzen. Wenn Ihr Programm fehlerfrei arbeitet, können Sie als Beschriftung des Zeitdiagramms die im Speicherbereich abgelegte Zeichenkette wiederfinden.

Wenn Ihr Programm fehlerfrei läuft, können Sie zur Kommunikation mit dem Praktikumsrechner einsetzen. Dazu müssen Sie das Empfangsprogramm aus P4.3-3, wie in KE2 beschrieben, (mit dem mitgelieferten Programm IDE9.EXE) in den Praktikumsrechner übertragen. Nun bilden Sie - wie oben beschrieben - die emulierte V.24-Schnittstelle auf die PC-Schnittstelle ab (Menüpunkt: Datei, Eintrag: Schnittstellen). Starten Sie danach das Empfangsprogramm im Praktikumsrechner und das Sendeprogramm im Emulator. Überprüfen Sie wiederum die Übertragung durch Vergleich der in den Speicherbereichen des Emulators und des Praktikumsrechners vorliegenden ASCII-Zeichenketten.


4.2 Die Parallel-Schnittstelle Anhang A: Programmiermodell MC6821