-
Einrichtung zur Datenübertragung zwischen einem Rechner
-
und externen Teilnehmern Die Erfindung bezieht sich auf eine Einrichtung
zur Datenübertragung zwischen einem Rechner mit einem parallelen Datenbus und externen
Teilnehmern, die an Übertragungsleitungen für das Senden und den Empfang serieller
Daten angeschlossen sind.
-
Bei einer derartigen Einrichtung ist die Struktur der seriell übertragenen
Daten anders als die Struktur der vom Rechner verarbeiteten Daten.
-
Es müssen daher Schnittstellen vorhanden sein, mit denen Daten des
Rechners an die von den Übertragungsleitungen verlangte Datenstruktur angepaßt wird.
Dies gilt auch für die dem Rechner über die Leitungen zugeführten Daten. Die Übertragungsgeschwindigkeit
ist auf den seriellen Übertragungsleitungen im allgemeinen anders als die Geschwindigkeit,
mit der der Rechner Daten verarbeitet. Wenn der Rechner daher neben der Verarbeitung
der von den Teilnehmern empfangenen und neben der Erzeugung der für die Teilnehmer
bestimmten Daten auch die Umwandlung der Daten in die jeweils geeignete Struktur
übernimmt, steht er für seine eigentlichen Aufgaben nur noch beschränkt zur Verfügung.
-
Der Erfindung liegt daher die Aufgabe zugrunde, eine Einrichtung der
eingangs erläuterten Gattung derart weiterzuentwickeln, daß der Rechner von der
Steuerung des Empfangs und des Senders der über die seriellen Schnittstellen übertragenen
Daten entlastet wird.
-
Die Aufgabe wird erfindungsgemäß dadurch gelöst, daß ein Koppel speicher
an
den parallelen Bus und einen internen Bus einer Steuereinheit angeschlossen ist,
die mit den Übertragungsleitungen verbunden ist und gemeinsam mit dem Rechner Zugriff
zum Koppelspeicher hat, wobei die Steuereinheit die vom Rechner in den Koppelspeicher
für die Teilnehmer eingeschriebenen Daten an die jeweilige übertragungsleitung ausgibt
und die von Teilnehmern ankommenden Daten in den Koppelspeicher einschreibt.
-
Der Datenaustausch zwischen dem Rechner und dem Kagpeispeicher kann
bei dieser Einrichtung ohne Behinderung durch Nachrichten stattfinden, die gerade
von den Teilnehmern ankommen. Die Übertragungsgeschwindigkeit zwischen Rechner und
Koppelspeicher hängt dabei nur von der Lese/Schreibgeschwindigkeit des Koppel speichers
und der Geschwindigkeit ab, mit der der Rechner arbeitet. Für die Abwicklung des
Empfangs und des Aus sendens von Daten geht somit keine Rechenzeit des Rechners
verloren.
-
Bei einer zweckmäßigen Ausführungsform ist vorgesehen, daß der Koppelspeicher
in Bereiche für Sende- und Empfangsdaten unterteilt ist und daß sowohl der Bereich
für das Senden als auch der Bereich für den Empfang in Abschnitte entsprechend der
Zahl der Teilnehmer aufgeteilt ist.
-
Damit wird der Zugriff des Rechners zu den von den jeweiligen Teilnehmern
empfangenen Daten vereinfacht.
-
Eine bevorzugte Ausführungsform besteht darin, daß im Bereich für
das Senden für jeden Teilnehmer Speicherblöcke mit Angabe der Blocklänge sowie eine
Adressenliste der Anfangsadressen der zu sendenden Blöcke vorhanden sind und daß
in jeder Anfangsadresse eine Stelle für die Anzeige eines Sendeauftrages und eine
Stelle für die Anzeige eines bei der Übertragung entstandenen Fehlers vorgesehen
sind. Die Steuereinheit kann hierbei schnell die Sendeaufträge prüfen und abwickeln.
Für den Rechner ist eine zusätzliche Rückmeldung darüber vorhanden, ob die Übertragung
an den jeweiligen Teilnehmer fehlerfrei abgelaufen ist. Bei einer günstigen Ausführungsform
ist vorgesehen, daß im Bereich für den Empfang je Teilnehmer ein zirkular beschreibbarer
Speicherabschnitt vorhanden ist, in den die Telegrammen zugeordneten Daten byteweise
gelangen, daß jedes Telegramm in einem Block abgelegt wird und daß je Block im Speicherabschnitt
eine Stelle für die Anzeige der Vollständigkeit der eingelesenen Daten und eine
Stelle für die Anzeige der Auslesung des Blockes durch den Rechner vorgesehen sind.
-
Der Rechner kann dabei sofort erkennen, ob die von einem Teilnehmer
übertragene Nachricht vollständig ist. Es ist daher auf einfache Weise möglich,
nur vollständige Nachrichten aus dem Koppelspeicher auszulesen. Durch die zirkulare
Einspeicherung wird der Ablauf der Einspeicherung beschleunigt.
-
Die Erfindung wird im folgenden an Hand eines Ausführungsbeispiels
näher erläutert, aus dem sich weitere Merkmale sowie Vorteile ergeben.
-
Es zeigen: Figur 1 ein Blockschaltbild einer Einrichtung zur Datenübertragung
zwischen einem Rechner und externen Teilnehmern, Figur 2 ein Schema der Einteilung
eines Koppel speichers in Bereiche für die auszusendenden Daten, Figur 3 ein Schema
der Einteilung des Koppelspeichers in Bereiche ,-ür die von den Teilnehmern empfangenen
Daten.
-
Ein Rechner 1 weist einen parallelen Datenbus 2 auf, der mit einem
Koppelspeicher 3 verbunden ist, der Bestandteil einer autonomen Steuereinheit 4
ist. Der parallele Datenbus 2 kann z..b. eine Breite von acht Bit haben, d. h. die
Daten werden auf dem Bus 2 byteweise übertragen. Der Kopppelspeicher 3 ist weit
in an einen parallelen Datenbus 5 angeschlossen, mit dem ein Prozessor 6 und ein
Festwertspeicher 7 verbunden ist. Weiterhin sind an den Datenbus 5 jeweils ein Parallel-Serien-Wandler
8 sowie ein Serien-Parallel-Wandler 9 für eine erste Übertragungsleitung 10 und
ein Parallel- Serien-Wandler 11 sowie ein Serien-Parallel-Wandler 12 für eine zweite
Übertragungsleitung 13 angeschlossen. Die Übertragungsleitungen 10, 13 verbinden
die Steuereinheit mit jeweils einem oder mehreren Teilnehmern 14, 15. Auf den Leitungen
10, 13 werden die Daten, die entweder von den Teilnehmern 14, 15 oder vom Rechner
1 gesendet werden, in Form von Telegrammen übertragen. Während der Rechner die einzelnen
Bytes der Telegramme parallel ausgibt oder empfängt, erfolgt die Übertragung auf
den Leitungen 10, 13 seriell.
-
Der Koppelspeicher 3 ist ein Schreib/Lesespeicher. Im Festwertspeicher
7 ~t;st-## Programm für den Prozessor 6 gespeichert, der den Datenverkehr zwisc#;#i-
den Serien-parallel-Wandlern 9, 12 bzw. den Parallel-Serien-Wandltern 8, 11 und
dem Koppelspeicher 3 steuert. Zum Koppelspeicher 3 haben s'o#dhl.rd-ie Steuereinheit
4 über den Prozessor 6 als auch der Rechner 1Zugriff Bei dem Koppel speicher 3 kann
es sich um einen Speicher der in der de#tschen Patentanmeldung P 30 21 306.0 beschriebenen
Art handeln. Dieser Speicher ermöglicht den gleichzeitigen Zugriff durch zwei Teilnehmer,
bei-5pielsweise den Rechner 1 und die Steuereinheit 4.
-
Jeder Datentransfer zwischen den Teilnehmern 14, 15 und dem Rechner
5 erfolgt über den Koppelspeicher 3. Der Koppelspeicher 3 ist aufgeteilt in einen
Bereich für die zu sendenden Daten und einen Bereich für die empfangenen Daten.
-
Je nach der Anzahl der Teilnehmer 14, 15 sind die Bereiche für Senden
und Empfangen noch weiter in Abschnitte unterteilt, die den jeweiligen Schnittstellen
der Leitungen 10 bzw. 13 zugeordnet sind.
-
Da bei der in Figur 1 dargestellten Anordnung zwei serielle Übertragungsleitungen
vorhanden sind, wird der für das Senden reservierte Speicherbereich in zwei Speicherblöcke
17, 18 aufgeteilt, von denen jeder die über die Leitung 10 bzw. 13 auszusendenden
Telegramme enthält. Der Speicherbock 17, 18 umfaßt u. a. z. B. vier Telegramme 19,
20, 21, 22, die ~atiSC-ei#zelnen Wörtern 23 mit einer festen Anzahl Bits zusammengesetzt
sind.
-
Oi#'Anzahl der Wörter 23 pro Telegramm kann unterschiedlich sein.
Jedes w'-or£t###-ist z. B. ein Byte lang. Eines der Wörter 23, z. B. das zweite
in jedem Telegramm, gibt die Anzahl der das jeweilige Telegramm 19, 20, 21, 22 bi}lde#den
Wörter an. Die Telegramme im Speicherblock 18 sind in Figur 2 nicht@mäher bezeichnet.
-
@@@@@@ jede@ Speicherblock 17, 18 enthält weiterhin eine Adressenliste
24 bzw. 25.
-
@@ den Speicherplätzen dieser Adressenlisten 24, 25 sind nacheinander
die Anfangsadressen der Sendeaufträge, z. B. der zu sendenden Telegramme 19, 20,
21, 22 Die Stellenzahl je Adresse richtet sich nach der Größe des koppelspeichers
3 und der Anzahl der gewünschten Sendeaufträge. Vorzugsweise werden Adreßwörter
mit jeweils 16 bit verwendet. Die Adressenliste 24 enthält z. B. vier Adreßwörter
26, 27, 28, 29, von denen jedes eine Breite on 2 Bytes hat.
-
In jedem Adreßwort 26, 27, 28, 29 wird die Stelle 30 mit der höchsten
Wertigkeit für die Kennzeichnung benutzt, ob das zu der Adresse gehörige Telegramm
gesendet werden soll oder nicht. Eine binäre "1" entspricht z. B. dem Auftrag ~Senden',
während die binäre "0" in dieser Stelle bedeutet, daß das zu der Adresse gehörige
Telegramm nicht gesendet werden soll. Die Stelle 31 mit der zweithöchsten Wertigkeit
je Adresswort 26, 27, 28, 29 dient zur Meldung, ob das zu der Adresse gehörige Telegramm
ohne Fehler ausgesendet wurde.
-
Jedes Adreßwort 26, 27, 28, 29 zeigt die Adresse des ersten Wortes
23 des zugehörigen Telegramms an. Dies ist in Figur durch Zeiger dargestellt, die
von der Adressenliste 24 zu den Telegrammblöcken 19, 20, 21, 22 verlaufen.
-
Die Anzahl der Adressen pro Adressenliste wird durch den Rechner bestimmt.
-
Der Rechner 1 legt auch die Anzahl der Telegramme, deren Länge und
deren Inhalt fest. Das Bit 30 wird für jeden Sendeauftrag vom Rechner 1 auf eine
binäre 11411 gesetzt. Die Steuereinheit 4 stellt an Hand der Adressenliste und des
Sendebeauftragungsbit der einzelnen Adreßwörter die Sendeaufträge fest und leitet
die zu den jeweiligen Adreßwörtern gehörigen Telegramme über den Bus 5 zu den Parallel-Serien-Wandlern
8, 10 und den Teilnehmern 14, 15. Neben dem Sendebeauftragungsbit prüft die Steuereinheit
4 auch das Bit 31 des jeweiligen Adreßwortes. Falls beim Senden ein Fehler auftritt,
wird das Bit 31 gesetzt. Diese Meldung ist r den Rechner 1 bestimmt und wird von
diesem ausgewertet. Die Steuereinheit 4 geht dann zum nächsten Adreßwort über.
-
flach dem Aussenden des zu einem Adreßwort gehörigen Telegramms 19,
20, 21, oder 22 setzt die Steuereinheit 4 das Sendebeauftragungsbit 30 auf eine
binäre "0" zurück. Sofern bei dem Aussenden ein Fehler festgestellt worden ist,
speichert die Steuereinheit 4 als Fehlermeldungsbit 31 eine binäre "0" ab.
-
Dieses Fehlermeldungsbit 31 dient in Verbindung mit der binären "1"
des Sendebeauftragungsbits dazu, dem Rechner 1 einen übertragungsfehler mitzuteilen.
Der Rechner 1 wertet die Fehlermeldung aus, z. B. durch Erteilung eines neuen Sendeauftrags
mit gleichem Inhalt. Nach der Aus ertung setzt der Rechner 1 das Fehlcrmeldungsblt
auf eine binäre "1" zurück.
-
Cr den Empfang ist ein weiterer Speicherbereich 32 des Koppel speichers
3 reserviert. Je serieller Übertragungsleitung ist ein Pufferabschnitt 33, 34 vorgesehen.
Jeder Pufferabschnitt 33, 34 hat die gleiche Anzahl von Wörtern.
-
Die Länge der Telegramme kann dagegen verschieden sein. In Figur 3
sind unterschiedliche lange Telegramme 35, 36, 37, 38 dargestellt. Bei Erreichen
des Endes des Pufferabschnittes33 bzw. 34 beginnt das Einlesen weiterer Daten wieder
am Anfang des jeweiligen Pufferabschnittes. Es handelt sich somit um zirkular arbeitende
Pufferabschnitte 33, 34.
-
In jedem ersten Wort 39 eines Telegramms 35, 36, 37, 38 sind zwei
Bit für die Information zwischen dem Rechner 1 und der Steuereinheit 4 vorgesehen.
-
Eine binäre "1" in der Stelle 40 mit der höchsten Wertigkeit zeigt
an, daß das zugehörige Telegramm vollständig übertragen und abholbereit ist. Das
Bit in der Stelle 40 wird von der Steuereinheit 4 gesetzt und vom Rechner 1 gelesen.
Eine binäre "1" in der Stelle 41 mit der zweithöchsten Wertigkeit zeigt der Steuereinheit
4 an, ob das Telegramm vom Rechner 1 ausgelesen wurde. Das Bit in der Stelle 41
wird vom Rechner 1 gesetzt und von der Steuereinheit 4 gelesen. Eine binäre "0"
in der Stelle 40 signalisiert, daß das zugehörige Telegramm nicht abholbereit ist.
In der Stelle 41 bedeutet eine binäre "0", daß das zugehörige Telegramm vom Rechner
nicht ausgelesen wurde.
-
In einem Adressenspeicher 42 wird die Adresse des ersten Wortes desjenigen
Telegrammes gespeichert, das fehlerfrei empfangen und vom Rechner 1 noch nicht abgeholt
worden ist. über den Inhalt des Adressenspeichers 42 gelangt der Rechner 1 daher
zu dem noch nicht abgeholten Telegramm und prüft dabei die Stelle 40 im ersten Wort
39, die angibt, ob das Telegramm vollständig und abholbereit ist. Der Rechner 1
liest dann das Telegramm aus dem Koppelspeicher 3 aus. An Hand eines Wortes, das
die Anzahl der von einem Telegramm belegten Speicherplätze angibt, kann der Rechner
1 die Länge des Telegramms feststellen. Die Länge legt die Anfangsadresse des nächsten
Telegramms fest, die der Rechner 1 bestimmt und wiederum im Adressenspeicher 42
ablegt.
-
IM Bereich 32 ist ein weiterer Adressenspeicher 16 je Pufferspeicherabschnitt
33, 34 vorhanden, dessen Inhalt eine Adresse ist, die denjenigen Speicherplatz
angibt,
der auf den letzten, noch von Daten des Telegramms 38 belegten Speicherplatz folgt.
Diese Adresse kann als Leerzeiger bezeichnet werden. Der Inhalt desAdressenspeichers
16 wird von der Steuereinheit 4 jeweils auf den neuesten Stand gebracht.
-
Ein zusätzlicher Adressenspeicher 48 je Pufferspeicherabschnitt 33,
34 für die Aufnahme einer Adresse, die denjenigen Speicherplatz angibt, ab dem der
jeweilige Pufferabschnitt 33, 34 mit Telegrammen belegt ist, ist ebenfalls Bestandteil
des Bereiches 32. Bevor die Steuereinheit 4 ein neues Byte in den Koppelspeicher
3 eingibt, prüft sie, ob die Inhalte der Adressenspeicher 16 und 48 übereinstimmen.
Ist dies der Fall, dann ist der zugeordnete Pufferspeicherabschnitt belegt, so daß
keine weiteren Daten eingespeichert werden können. Wenn dagegen keine Gleichheit
der Speicherinhalte vorhanden ist, stellt die Steuereinheit an Hand des Inhalts
des Adressenspeichers 16 fest, ab welcher Speicherstelle neue Daten eingegeben werden
können. Nach dem Einlesen dieser Daten setzt die Steuereinheit den Inhalt des Adressenspeichers
16 auf die anschließende freie Speicherstelle.
-
Die Steuereinheit 4 kann über das Bit in der Stelle 41 der Wörter
39 feststellen, ob das zugeordnete Telegramm, z. B. 35, bereits abgeholt wurde.
-
Im Speicherbereich 32 ist ferner eine Liste 43 der Adressen der an
die übertragugsleitungen 10, 13 angeschlossenen Teilnehmer, wenn die Steuereinheit
für diese die übergeordnete Einheit$Y#ster) ist. In Figur 1 sind zwar nur je ein
Teilnehmer pro übertragungsleitung dargestellt; es können jedoch auch mehrere Teilnehmer
an jede Leitung 10, 13 angeschlossen werden.
-
Die Liste 43 enthält die Adressen 44, 45 der Teilnehmer 14, 15.
-
Die Stelle 46 in jedem Wort 44, 45 dient zur Anzeige eines Fehlers.
Die Anzahl der Teilnehmer 14, 15 wird der Steuereinheit 4 beim Systemstart mitgeteilt.
Die Steuereinheit erstellt daraufhin die Liste 43, die durch ein besonderes Kennungswort
47 abgeschlossen wird, das z. B. in allen Stellen binäre Einsen enthält.
-
Die Steuereinheit 4 prüft die Adressenlisten 24 und 25, ob Sendeaufträge
vorliegen. Sofern kein Sendeauftrag vorhanden ist, führt die Steuereinheit
4
eine-zyklische Kurzabfrage der Teilnehmer 14, 15 an Hand der Liste 43 durch. Wenn
während der Kurzabfrage ein Übertragungsfehler auftritt, dann schreibt die Steuereinheit
in die Stelle 46 des Adreßworts eine binäre "l" ein. Die Stelle 46 wird vom Rechner
1 geprüft. Von der Steuereinheit 4 wird die Stelle 46 mit einer binären "O" beschrieben,
wenn der-Fehler nicht mehr vorhanden ist, z. B. nach wiederholter Abfrage.
-
L e e r s e i t e