DE4020809C2 - Verfahren zum Informationsaustausch über einen seriellen Bus - Google Patents
Verfahren zum Informationsaustausch über einen seriellen BusInfo
- Publication number
- DE4020809C2 DE4020809C2 DE19904020809 DE4020809A DE4020809C2 DE 4020809 C2 DE4020809 C2 DE 4020809C2 DE 19904020809 DE19904020809 DE 19904020809 DE 4020809 A DE4020809 A DE 4020809A DE 4020809 C2 DE4020809 C2 DE 4020809C2
- Authority
- DE
- Germany
- Prior art keywords
- byte
- data
- bit
- block
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Description
Die Erfindung bezieht sich auf ein wie im Oberbegriff des Patentanspruchs
1 angegebenes Verfahren zum Informationsaustausch
über einen seriellen Bus.
Ein derartiges Verfahren ist bereits aus der DE 21 17 819 C3
bekannt. Die bekannte Übertragungseinrichtung verwendet Datentelegramme,
die aus Fernschreibzeichen zusammengesetzt und daher
byteorientiert sind. Auf ein Synchronzeichen folgen Zeichen mit
einer Adresseninformation, einer Information über die Länge des
Datentelegrammes und die zu übertragenden Daten.
Aufgabe der Erfindung ist es, das im Oberbegriff des Patentanspruchs
1 angegebene Verfahren zum Informationsaustausch über
einen seriellen Bus so weiter zu vervollkommnen, daß sich die
Art des Informationsaustausches zwischen der Zentrale und den
Teilnehmerstellen in Abhängigkeit von der Art der zu übertragenden
Daten optimieren läßt.
Gemäß der Erfindung wird diese Aufgabe mit den im kennzeichnenden
Teil des Patentanspruchs 1 angegebenen Verfahrensschritten
gelöst.
Das erfindungsgemäße Verfahren hat den Vorteil, daß zwischen
der Zentrale und den Eingabe- und/oder Ausgabeeinheiten verschiedenartige
Informationen in jeweils optimaler Weise ausgetauscht
werden können.
In weiterer Ausgestaltung der Erfindung wechseln die aus jeweils
acht Bit bestehenden Bit bestehenden Datenbytes eines
Datenblockes mit Einzelbits ab, die jeweils Logikpegel 1
haben.
Zweckmäßigerweise folgen in einem byteorientierten Datentelegramm
auf das Steuerbyte ein
Adreßbyte und ein Werte-Byte.
Die Erfindung wird anhand der in den Figuren dargestellten Ausführungsbeispiele
näher erläutert.
Es zeigen
Fig. 1 einen Teile eines Anzeigefeldes,
Fig. 2 eine Impulsfolge mit Taktimpulsen und mit Datenimpulsen,
Fig. 3 eine über einen seriellen Bus zu übertragende Bytefolge,
Fig. 4 einen bitorientierten Block,
Fig. 5 einen byteorientierten Block,
Fig. 6 ein Flußdiagramm für einen Eingabe-/Ausgabebaustein,
Fig. 7 ein getastetes Ausgangssignal,
Fig. 8 ein Impulsdiagramm für das Einlesen von Bytes und
Fig. 9 ein Impulsdiagramm für die Ausgabe von Bytes.
Das Verfahren dient zum Austauschen von Informationen zwischen
der Zentrale und den Eingabe- und/oder Ausgabeeinheiten, die
über den seriellen Bus an die Zentrale angeschlossen sind. Der
Informationsaustausch erfolgt mit Hilfe von Datentelegrammen.
Die von der Zentrale ausgesandten Datentelegramme sind wahlweise
byteorientiert oder bitorientiert.
Die byteorientierten Datentelegramme enthalten jeweils ein oder
mehrere Adreßbytes. Die bitorientierten Datentelegramme enthalten
jeweils ein Bit je Eingabe- und/oder Ausgabeeinheit.
Die Datentelegramme beginnen jeweils mit einem Synchronisationszeichen,
auf das ein Steuerbyte und ein oder mehrere Datenbytes
folgen.
Die aus jeweils acht Bit bestehenden Datenbytes eines Datentelegrammes
wechseln mit Einzelbits ab, die jeweils Logikpegel 1
haben.
In einem byteorientierten Datentelegramm folgen auf das Synchronisationszeichen
ein Steuerbyte, ein Adreßbyte und ein
Werte-Byte.
Bitorientierte Datentelegramme werden mit einem Synchronisationszeichen
abgeschlossen.
In der folgenden Figurenbeschreibung werden der Einfachheit
halber die Ein- und/oder Ausgabeelemente als E/A-Elemente, die
Eingabe- und/oder Ausgabebausteine als E/A-Bausteine und Eingabe-
und/oder Ausgabevorrichtungen als E/A-Vorrichtungen und
die Ein- und/oder Ausgabeaufsätze als E/A-Aufsätze bezeichnet.
Die E/A-Aufsätze und die E/A-Elemente bilden die E/A-Peripherie
P.
Das in Fig. 1 gezeigte Anzeigefeld enthält Vorrichtungen, die
aus gleichartigen E/A-Bausteinen 411 . . . 416 und darauf aufsetzbaren
verschiedenartigen E/A-Aufsätzen 501 . . . 711 bestehen.
Die E/A-Bausteine 411 . . . 416 enthalten jeweils eine Sendevorrichtung
und eine Empfangsvorrichtung zum seriellen Datenaustausch
und sind gruppenweise über je einen gemeinsamen Datenbus
31 . . . 3x miteinander und mit einer gruppeneigenen Zentrale
21 . . . 2x verbunden, die eine Vorrichtung zur Ablaufsteuerung
enthält.
Die Vorrichtung 11 zur Hauptsteuerung, die mit dem Datensichtgerät
11a versehen ist, tauscht mit einer in der Figur nicht
dargestellten übergeordneten Einrichtung Prozeßdaten PD aus.
Die Vorrichtung 12 zur Diagnose bzw. Einzelsteuerung, die mit
dem Datensichtgerät 12a versehen ist, tauscht mit einer nicht
dargestellten Anordnung ebenfalls Prozeßdaten aus.
Die Hauptzentrale 13 ist über die Leitung 300 mit der Vorrichtung
11 zur Hauptsteuerung verbunden. Die Zentralen 21 . . . 2x
haben jeweils einen Anschluß für den mit der Hauptzentrale 13
verbundenen Bus 302 und einen Anschluß für den mit der Vorrichtung
12 verbundenen Bus 301.
An die Zentrale 21 ist der lokale Bus 31 angeschlossen. In entsprechender
Weise verbinden weitere, nicht dargestellte lokale
Busse jeweils eine weitere Zeile von E/A-Bausteinen des Anzeigefeldes
mit einer zugeordneten Zentrale.
Die E/A-Bausteine sind jeweils mit einem Bezugszeichen versehen,
dessen erste Ziffer 4, dessen zweite Ziffer die betreffende
Zeile des Anzeigefeldes und dessen dritte Ziffer eine fortlaufende
Nummer innerhalb der betreffenden Zeile ist.
Somit sind die E/A-Bausteine 411 . . . 416 der ersten Zeile an den
lokalen Bus 31 angeschlossen.
Die Anzahl von Zeilen des Anzeigefeldes kann insbesondere etwa
100, die Zahl von E/A-Bausteinen je Zeile insbesondere etwa 250
betragen. An die Hauptzentrale 13 lassen sich somit bis zu etwa
100 Zentralen anschließen.
Der E/A-Baustein 411 ist nicht bestückt, so daß sein Eingang E
und sein Ausgang A frei zugänglich sind. Die weiteren E/A-Bausteine
der ersten Zeile sind mit E/A-Aufsätzen bestückt, die
unmittelbar an den betreffenden E/A-Baustein angeschlossen und
zugleich als E/A-Element ausgebildet sind. Als Eingabeelemente
dienen der Schalter 501 und die Taste 502. Als Ausgabeelemente
sind die Leuchtdiode 601, die Anzeigelampe 602, der Optokoppler
603, das Relais 604 und der Summer 605 vorgesehen.
Die E/A-Bausteine können andererseits mit je einem Schieberegister
als E/A-Aufsatz bestückt sein. An die Schieberegister
sind dann die E/A-Elemente angeschlossen. Der E/A-Baustein ist
dann somit jeweils mittelbar mit einem Eingabeelement und/oder
mit einem Ausgabeelement verbunden. Als Ausgabeelemente können
dabei eine Vorrichtung zur 7-Segment-Anzeige, ein Drucker mit
CENTRONIX-Interface oder ein Codierschalter dienen.
Außer den genannten E/A-Elementen erster Art können insbesondere
die folgenden E/A-Elemente zweiter Art Verwendung finden.
Ein Meßgerät kann mit seinem Eingang an den Ausgang eines
Schieberegisters angeschlossen und mit seinem Ausgang an ein
weiteres Schieberegister geführt sein.
Als E/A-Aufsätze können ferner Analog/Digital-Wandler bzw. A/D-
Wandler, Digital/Analog-Wandler bzw. D/A-Wandler und Zähler
dienen.
Ein Sensor, der z. B. ein Temperatursensor sein kann, kann an
einem A/D-Wandler geführt sein. Ein Aktor, insbesondere mit
Analogwert-Vorgabe, kann an einen D/A-Wandler angeschlossen
sein.
Die genannten A/D-Wandler und der D/A-Wandler liegen jeweils
mit einem Eingang an den Ausgang und mit einem Ausgang am Eingang
des zugeordneten E/A-Bausteins. Dabei hat der Eingang des
dem D/A-Wandler zugeordneten E/A-Bausteins und der Ausgang des
dem A/D-Wandler zugeordneten E/A-Bausteins jeweils eine Hilfsfunktion.
Ferner kann die Einrichtung, die ein Gerät oder eine Anlage
sein kann, in Empfangs- und in Senderichtung jeweils zwei
E/A-Aufsätze mit je einem Schieberegister benötigen.
Fig. 2 zeigt eine Spannungspegel-, Bit- und Takt-Darstellung
für die über den lokalen Bus übertragenen Daten. Impulse im Bereich
von 2/3 U bis U werden als Taktimpulse gewertet. Blieb
der Pegel der Datenleitung im Bereich von 1/3 U bis 2/3 U, so
wird ein Datenbit "1" angenommen. War der Pegel der Datenleitung
zwischen zwei Taktimpulsen für eine vorgegebene Zeit im
Bereich von 0 bis 1/3 U, so wird ein Datenbit "0" angenommen.
Als Orientierungszeichen für den E/A-Baustein wird im fortlaufenden
Daten-Bitstrom ein Synchronisationszeichen verwendet.
Dieses besteht aus der kontinuierlichen Folge von 9×"0". Um
bei beliebigem Dateninhalt kein Synchronisationszeichen vorzutäuschen,
wird ähnlich dem bekannten SDLC-Verfahren nach
jeweils acht Datenbits ein Zusatzbit mit dem logischen Wert "1"
eingeschoben. Anders als bei dem SDLC-Verfahren ist ein festes
Raster vorgesehen, so daß sich eine definierte Blocklänge
ergibt. Für eine allgemeine Bitfolge ohne Darstellung der
Taktimpulse zwischen den Datenbits ergibt sich das in Fig. 3
gezeigte Bild.
Eine Folge von Bits, die logisch zusammengehören und eine bestimmte
Funktion im E/A-Baustein ansprechen, bildet einen
Block. Es gibt zwei Arten von Blöcken:
Bitorientierte Blöcke enthalten Werte für alle E/A-Bausteine,
wobei jeweils ein Bit einem E/A-Baustein zugeordnet ist. Ein
solcher Block wird durch Synchronisationszeichen abgeschlossen.
Byteorientierte Blöcke enthalten codierte Werte, die entweder
für einen bestimmten, angegebenen E/A-Baustein oder gleichzeitig
für alle E/A-Bausteine gültig sind. Ein Abschluß des Blockes
durch Synchronisationszeichen ist dabei nicht nötig, und
daher nicht vorgesehen.
Ein bitorientierter Block ist in Fig. 4, ein byteorientierter
Block in Fig. 5 dargestellt.
Mit Hilfe dieser Blöcke werden die Daten zwischen der Zentrale
und dem E/A-Baustein ausgetauscht. Dabei können Ausgabewerte
Bitausgaben oder Byteausgaben sein.
Abfragen können zu einer Biteingabe oder Byteeingabe auffordern
oder sich auf die Betriebsart, das zuletzt ausgegebene Bit oder
Byte, das zuletzt eingelesene Bit oder Byte oder auf einen oder
mehrere zuletzt eingestellte Parameter beziehen. Ferner kann
eine Abfrage, ob ein E/A-Baustein vorhanden ist, eine Bitantwort
auslösen. Weiterhin kann sich eine Abfrage darauf beziehen,
ob die Schnittstelle zur Peripherie hin funktioniert oder
ob eine Störung vorliegt.
Eine Biteingabe ist vorzugsweise damit verbunden, daß der Eingang
E wie bei Sensor-Bedienungstasten üblich berührt oder mit
einer Spannungs- oder Stromquelle verbunden wird.
Zweckmäßige Einstellungsmöglichkeiten betreffen die Betriebsart
und umfassen insbesondere eine Einstellung der Ausgabeform des
Taktes normal invertiert oder permanent und eine Einstellung
am Eingang auf Ansprechen bezüglich des Pegels oder der Flanken.
Weitere Einstellungsmöglichkeiten betreffen eine Adreßzuweisung,
Parametereinstellungen wie Einstellungen einer Monoflop-Zeit
für die Bitantworten, des Tastverhältnisses bei getaktetem
Ausgang oder einer Blinkfrequenz, ein Reset bzw. eine
Grundeinstellung und ein Freigeben oder Sperren des Blinkens.
In die Eingabeelemente werden als Eingabedaten insbesondere
Steuerungs- oder Quittierungssignale eingegeben.
Der E/A-Baustein verhält sich entsprechend dem Flußdiagramm nach
Fig. 6. Dabei bedeutet
data | |
8 Bit + "1" im 9. Bit | |
Sync | 8 × "0" + "0" im 9. Bit |
NOP | Befehl "no operation" |
. . . | Ergebnis der Auswertung |
/ | kein weiteres Ergebnis bzw. Empfang von Zeichen |
In der folgenden Beschreibung ist unter einem Sync-Zeichen ein
Synchronisationszeichen zu verstehen. Immer dann, wenn das
Sync-Zeichen empfangen wird, wird der E/A-Baustein in den Zustand
"bereit" überführt. Das hat den Vorteil, daß das System
aus undefinierten bzw. blockierenden Zuständen befreit wird.
Dieser Bereitzustand wird nur auf dem Weg "8 Bit + 1" verlassen.
Die "1" trennt hier die 8 Bit voneinander, im Unterschied
zum Sync-Zeichen, das anstelle der "1" im 9. Bit jeweils eine
"0" hat.
Kommt ein Zeichen oder ein Block, der kein Sync-Zeichen ist, so
verläßt der E/A-Baustein den Zustand "bereit".
Das Sync-Zeichen besteht aus neun "0"-Bits. "8 Bit + 1", d. h.
acht beliebige Bit und ein "1"-Bit an neunter Position bedeutet,
daß ein Kontrollbyte empfangen wurde. Aus dem Inhalt der
ersten acht Bit kann der E/A-Baustein erkennen, um welche Art
von Datenblock es sich handelt und wie lang der gesamte Datenblock
sein wird.
Mit einem Bit der 8 Bit des Kontrollbytes wird dem E/A-Baustein
mitgeteilt, um welche Art von Block es geht. Mit zumindest
4 Bit wird die Bedeutung des gesamten Blocks entsprechend einem
Kontroll code codiert. In diesem Zustand decodiert der E/A-Baustein
diese vier Bits der empfangenen 8 Bits. Liegt jedoch
keine zulässige Bitkombination und kein zulässiger Code vor, so
geht der E/A-Baustein in den Wartezustand über. Dies ist z. B.
bei Störungen auf dem Übertragungsweg oder im E/A-Baustein
selbst der Fall. In diesem Zustand wartet der E/A-Baustein
darauf, wieder ein Sync-Zeichen zu empfangen, d. h. eine Folge
von neun logischen "0". Nach Empfang des Sync-Zeichens geht der
E/A-Baustein wieder in den Grundzustand "bereit" über.
Wurde eine decodierbare Nachricht empfangen, so geht der E/A-
Baustein in den Zustand "auf nächstes Byte warten" oder " Kontroll-Code interpretieren" über. Das Verfahren sieht
prinzipiell unterschiedliche Blöcke vor: Einerseits einen Kurzblock,
der aus drei Bytes besteht, d. h. 3×8 Bit und andererseits
einen Langblock, der praktisch beliebig viele Bits enthalten
kann. Um welche Art von Block es sich handelt, geht aus
einem der ersten 8 Bit hervor.
Der E/A-Baustein nimmt im Falle eines Drei-Byte-Blockes bzw.
eines byte-orientierten Datentelegrammes den Zustand "auf nächstes Byte warten" und im
Falle eines Bitblockes bzw. bitorientierten Datentelegrammes
den Zustand "Kontroll-Code interpretieren" an. Der Drei-Byte-Block dient insbesondere dazu,
von der Zentrale aus einzelne Unterstationen anzusprechen oder
codierte Parameter zu übertragen. Der Bitblock dient dazu, eine
Unterstation nach der anderen abzufragen oder mit einem aktuellen
Ausgabewert zu versorgen. Die Länge des Bitblockes richtet
sich danach, mit wievielen E/A-Bausteinen das Anzeigefeld bestückt
ist. Besagt der Kontrollcode, daß nichts zu tun ist,
d. h. im Falle NOP (No Operation), so geht der E/A-Baustein in
den Zustand über, in dem er auf ein Sync-Zeichen wartet. Ein
Bit-Block mit den Nachrichteninhalt "NOP" hat insbesondere die
Funktion, den Kontakt zur Unterstation aufrechtzuerhalten, ohne
daß ein Befehl zu übermitteln ist, insbesondere zur Aufrechterhaltung
der Synchronisation oder dergleichen oder wenn für
Servicezwecke ein Datenverkehr auf der Leitung verlangt wird,
ohne daß der E/A-Baustein auf die empfangenen Daten reagieren
soll.
Im Falle "kein NOP" geht der E/A-Baustein in den Zustand
über, in dem Taktimpulse gezählt werden. Dabei
wird jeder 9. Impuls ignoriert und der Inhalt des
Impuls-Zählers mit der eigenen Adresse verglichen. Im betrachteten
Fall wurde im ersten Block mitgeteilt, daß es sich um
einen Bitblock handeln werde, d. h. eine Bitfolge wählbarer
Länge, die mit einem definierten Abschlußzeichen abgeschlossen
wird. Dieses Abschlußzeichen ist das Synchronzeichen, bestehend
aus neuen "0"-Bits. Hat der E/A-Baustein erkannt, daß es nicht
um "No Operation", sondern um etwas Konkretes geht, so beginnt
er, die Taktimpulse zu zählen. Diese Taktimpulse sind in Fig. 2
mit TP bezeichnet. Die Taktimpulse werden anhand der Anstiegsflanke
im positiven Spannungsbereich erkannt. Zwischen den
Taktimpulsen TP ist ein Freiraum für die Dateninformation vorgesehen.
Fig. 2 zeigt für die Datenimpulse allein jeweils den
Logikpegel. Zwischen diesen Datenbits liegen die nicht dargestellten
Taktimpulse.
Die Bitfolge nach Fig. 3 beginnt mit 9 "0"-Datenbits, d. h.
mit den Sync-Zeichen. Darauf folgen beliebige Datenbits und an
neunter Position die logische "1". Der erste Block nach dem
Sync-Zeichen ist das Kontrollbyte.
Der E/A-Baustein ist so geartet, daß er immer nach Empfang von
neun logischen "0" in Reihe erkennt, daß es sich um ein Sync-
Zeichen handelt und dann in den Bereitzustand zurückkehrt.
Nach Empfang des Kontrollbytes beginnt der Baustein, die Taktimpulse
zu zählen. Jeder 9. Taktimpuls wird dabei ignoriert,
da dieser dem Rahmenbit und nicht dem Nutzdatenbit zugeordnet
ist. Die Information des Informationsbits, das nach der Anstiegsflanke
des ersten eigentlichen Datenimpulses kommt, betrifft
den E/A-Baustein mit der Adresse 1. Nach dem ersten Datenbit
kommt die Anstiegsflanke des nächsten Taktimpulses. Der
Datenbitfreiraum danach ist zum Datenaustausch mit dem E/A-
Baustein bestimmt, der die Adresse 2 hat. Die dabei übermittelte
Information ist entweder ein neuer Ausgabewert oder ein
neuer Eingabewert.
Jeder E/A-Baustein zählt Impulsflanken mit. Nur bei zwei Ereignissen
verläßt der E/A-Baustein diesen Zustand. Im einen Fall
empfängt er vor Erreichen seiner eigenen Adresse ein Sync-Zeichen,
d. h. die Zentrale hat nicht genug Impulse abgegeben, um
diesen E/A-Baustein auch zu erreichen. Im anderen Fall wird er
bei verlorener Synchronisation neu synchronisiert, so daß er
in den Zustand "bereit" übergeht. Entspricht die mitgezählte
Nummer der eigenen Adresse, so geht er in den Zustand über,
in dem der E/A-Baustein entsprechend dem
Kontrollcode des ersten Blocks verfährt. Je nach Kontrollcode, der die
Übertragungsrichtung bestimmt bzw. festlegt, ob es sich um eine
Abfrage oder um eine Ausgabe handelt, übernimmt der E/A-Baustein
das Datenbit als Ausgabewert und leitet es an den eigenen
Ausgang weiter oder gibt in dieser Datenbitphase den am Eingabepin
herrschenden Zustand oder einen anderen, im Kontrollcode
spezifizierten Wert an die Leitung weiter.
Ist die Eingabe oder Ausgabe abgeschlossen, so geht der
E/A-Baustein ohne weiteres externes Ereignis in den Zustand
"auf Synchron warten" über, da die weiteren Nachrichten für
andere E/A-Bausteine bestimmt sind.
Empfängt der E/A-Baustein ein Sync-Zeichen, so geht er in den
Grundzustand "bereit" über.
Erkennt der sich im Zustand "bereit" befindliche E/A-Baustein aufgrund
des Codes im ersten Kontrollblock, daß es sich insgesamt um
einen Drei-Byte-Block handeln wird, so geht er in den Zustand
"auf nächstes Byte warten" über. In diesem Zustand wird nicht auf ein Sync-Zeichen gewartet,
da die Gesamtlänge der Dateninformation durch die Angabe
"3-Byte-Block" klar ist. Im Zustand "auf nächstes Byte warten" wartet der E/A-
Baustein zunächst den Zustand des zweiten Bytes ab.
Mit dem Empfang des zweiten Byte hat er die E/A-Adresse
empfangen. Der E/A-Baustein nimmt diesen Zustand ein, wenn er
insgesamt weitere acht beliebige Bit und eine "1", d. h. das
zweite Byte empfangen hat. Alle diese Drei-Byte-Blöcke dienen
dazu, eine bestimmte E/A-Adresse anzusprechen: Entweder um dem
E/A-Baustein etwas mitzuteilen oder vom E/A-Baustein etwas zu
erfahren.
Der E/A-Baustein führt einen Adressenvergleich durch. Im Falle
einer Fremdadresse geht der E/A-Baustein in den Zustand über,
in dem er ein weiteres Byte abwartet. Wurde daraufhin ein weiteres
Byte mit acht beliebigen Bit und eine "1" auf der neunten
Bitposition empfangen, dann ist der Drei-Byte-Block beendet und
der E/A-Baustein geht selbsttätig in den Zustand über, in dem
er zum Empfang weiterer Informationen bereit ist
Wurde beim Vergleich des zweiten Blocks mit der eigenen Adresse
erkannt, daß der betrachtete E/A-Baustein selbst angesprochen
ist, so geht der E/A-Baustein in den Zustand über, in
dem der Kontrollcode interpretiert wird. Enthält der Kontrollcode
die Information "No Operation", so wird der E/A-Baustein -
obwohl er angesprochen wurde - wieder in den Zustand überführt,
in dem ein drittes Byte abgewartet wird. Auf diese Weise
wird die Informationsauswertung routinemäßig ohne weitere Aktion
beendet.
Für den Fall, daß die im Kontrollcode enthaltene Information
kein "No Operation" war, gibt es zwei Varianten. Bei der ersten
Variante soll der E/A-Baustein einen Wert empfangen. Bei der
zweiten Variante soll der E/A-Baustein einen Wert, den er
selber empfangen hat, abgeben.
Im Fall, daß die im Kontrollcode des ersten Blockes enthaltene
Information "empfangen" heißt, geht der E/A-Baustein in den Zustand
über, in dem er das nächste Byte abwartet, einliest und
entsprechend der im ersten Byte codierten Bedeutung dieses
Bytes verwendet. Beispielsweise wird eine neue Konfiguration
irgendeines Betriebsverhaltens übernommen.
Erkennt der E/A-Baustein, daß er senden soll, wird der angeforderte
Wert während der nächsten acht Bitzeiten Bit für Bit
an die Leitung gelegt und damit zur Zentrale übertragen. Nach
Abschluß dieser acht Bit - entweder in Empfangs- oder Senderichtung
- ist der Drei-Byte-Block beendet. Der E/A-Baustein
geht in den Grundzustand a, d. h. "bereit" über.
In jedem Zustand, in dem ein weiteres Byte erwartet wird, ist
ein Ausstieg in den Zustand "bereit" bei Empfang des Sync-
Zeichens vorgesehen. Eine Auswerteschaltung, die das Synchron-
Zeichen erkennt, führt bei erkanntem Sync-Zeichen den E/A-Baustein
in den Zustand "bereit" über.
Eine zweckmäßige Wahl der 3-Byte- und der Bit-Blöcke ergibt
sich aus folgender Tabelle:
In der Tabelle bedeuten:
Block
1 Bit-Ausgabe
2 Bit-Eingabe
3 Blinken aktiv
4 E/A vorhanden
5 Störung
6 letzte Bit-Ausgabe
7 NOP: no operation
8 Betriebsart/u = Adresse/m: Modus
9 Adreß-Vergabe/u′: Antwort
10 Vorgabe/Tastung & Blinkfrequenz
11 Byte-Ausgabe
12 Byte-Eingabe
13 Abfrage: Tastung & Blinkfrequenz
14 Abfrage: eingestellter Modus
15 NOP: no operation
16 Reset
1 Bit-Ausgabe
2 Bit-Eingabe
3 Blinken aktiv
4 E/A vorhanden
5 Störung
6 letzte Bit-Ausgabe
7 NOP: no operation
8 Betriebsart/u = Adresse/m: Modus
9 Adreß-Vergabe/u′: Antwort
10 Vorgabe/Tastung & Blinkfrequenz
11 Byte-Ausgabe
12 Byte-Eingabe
13 Abfrage: Tastung & Blinkfrequenz
14 Abfrage: eingestellter Modus
15 NOP: no operation
16 Reset
a = 0: Bit-Block
1: 3-Byte-Block
1: 3-Byte-Block
b = Reserve
c = Controllcode
d = im 3-Byte-Block: E/A-Adresse (u = 0: Sammel-Adresse)
im Bit-Block: Werte für die E/A-Bausteine erster Art
im Bit-Block: Werte für die E/A-Bausteine erster Art
e = im 3-Byte-Block: Modus/Parameter/Ausgabe-Byte/Eingabe-Byte u.ä.
im Bit-Block: Werte für die E/A-Bausteine zweiter Art
im Bit-Block: Werte für die E/A-Bausteine zweiter Art
Das Protokoll auf der Peripherieseite P der E/A-Bausteine sieht
eine Bitausgabe vor. Der mit dem Bitausgabeblock vorgegebene
logische Ausgangspegel steht am Stift A statisch an. Zum Stromsparen
besteht die Möglichkeit der Tastung des Ausgangssignales.
In diesem Fall ist, wie Fig. 7 zeigt, der Ausgang A periodisch
nur für einen Teil der Zeit aktiv. Die Wiederholfrequenz
1/T liegt über etwa 60 Hz, so daß ein Flimmereindruck vermieden
wird. Es gibt maximal 8 Werte für das Tastverhältnis. "0"
bedeutet dabei "permanent unaktiv", "8" bedeutet "permanent
aktiv". Bei einer auf das etwa dreifache angehobenen Stromstärke
durch eine angeschlossene Leuchtdiode während einem Zehntel
der Zeit ergibt sich etwa der gleiche visuelle Eindruck.
Zur Realisierung der Tastung werden die Taktimpulse des lokalen
Busses 31 mit Hilfe eines Modulo-8-Zählers gezählt. Der
Ausgang A ist dann für die Anzahl von Taktimpulsen aktiv, die
im entsprechenden 3-Byte-Block an diesem E/A-Baustein vorgegeben
wurde. Das Synchronisationszeichen setzt den Impulszähler
auch zurück. Um zu vermeiden, daß bei der Tastung in mehreren
E/A-Bausteinen die Stromquelle zur selben Zeit stark belastet
wird, werden die niedrigstwertigen 3 Bits der E/A-Baustein-Adresse
dem Modulo-8-Zähler auch zugeführt. Hierdurch
wird erreicht, daß sich die Stromaufnahme der E/A-Bausteine
ausmittelt.
Der E/A-Baustein kann auch selbständig, d. h. ohne dauerndes
Umstellen des Ausgangszustandes durch die Zentrale seinen Ausgang
A periodisch an- und ausschalten. Die "An"- und die "Aus"-
Zeit betragen gleichermaßen ein Vielfaches von 8 Taktimpulsen
des Taktes, der über den lokalen Bus zugeführt wird. Dieser
Wert, der im Bereich von 1 bis 31 liegt, wird durch die Zentrale
in einem entsprechenden 3-Byte-Block vorgegeben.
Aktiviert und mit dem Einsatzzeitpunkt des Blinkens anderer
E/A-Bausteine synchronisiert wird das Blinken mit einem entsprechenden
Bitblock "Blinken aktiv". Alle E/A-Bausteine mit
darin freigegebenem Blinken beginnen nach dem abschließenden
Synchronisationszeichen dieses Bitblocks mit einer "An"-Zeit.
Die Zentrale bestimmt daher den zeitlichen Verlauf des Blinkens.
Dabei sorgt die Zentrale dafür, daß es zu keinen Rhythmusstörungen
kommt.
Das Einlesen von Bytes erfolgt entsprechend Fig. 8, die den
zeitlichen Verlauf der Signalspannungen an Stiften des E/A-Bausteins
zeigt. Diese Signalspannungen sind das Datensignal D,
das Eingangssignal E, der Takt T und das Ausgangssignal A.
In Fig. 8 bedeuten u8 das letzte Bit der E/A Adresse und
a . . . h die Bits 1 bis 8 die im Schieberegister parallel eingelesen
sind.
Mit t1 ist eine Monoflop-Zeitkonstante, getriggert durch eine
fallende Taktflanke, bezeichnet. In dieser Zeit, die durch ein
Modus-Kommando verändert werden kann, antwortet der E/A-Baustein.
In Fig. 8 sind zu den Signalspannungen an den Stiften E, T
und A noch die Stiftbezeichnungen QH, clock und shift/load
angegeben. Diese Bezeichnungen werden bei üblichen Schieberegistern
z. B. bei solchen vom Typ 74 LS165 und 74 LS166 für
die entsprechenden Anschlüsse verwendet.
Vorzugsweise erfolgt gleichzeitig Speicherung der Werte im E/A-
Baustein, insbesondere zum Zwecke einer Wiedergewinnung bei gestörter
Einrichtung.
Die Ausgabe von Bytes erfolgt entsprechend Fig. 9, die den
zeitlichen Verlauf der Signalspannungen an Stiften des E/A-Bausteines
zeigt. Diese Signalspannungen sind das Datensignal D,
das Ausgangssignal A, der Takt T und das Eingangssignal E. Die
in Fig. 9 zusätzlich angegebenen Stiftbezeichnungen beziehen
sich auf die entsprechenden Anschlüsse des handelsüblichen
Schieberegisters vom Typ 74 LS595.
Dabei wird direkt von der Datenleitung D nach A ausgegeben.
Gleichzeitig wird der gesamte Wert im E/A-Baustein gespeichert,
so daß ein späteres Kontroll-Lesen oder eine Wiedergewinnung
der Information bei gestörter Einrichtung möglich ist.
Der E/A-Baustein sieht zweckmäßigerweise verschiedene Modi für
den Takt T und das Eingangssignal E vor. Der Takt T kann dabei
wahlweise - in derselben Polarität wie der auf dem lokalen Bus
oder dazu invertiert sein. Bei Byteeingaben wird er vorzugsweise
nur so lange am Stift T ausgegeben, so lange der Ausgang A
aktiv ist. Bei Byte-Ausgaben wird er vorzugsweise nur so lange
am Stift T ausgegeben, wie der Eingang E aktiv ist.
Im Modus Pegel-Eingabe für den Eingang E wird genau der zum
Abfragezeitpunkt anliegende logische Wert eingelesen. Beim
Modus "Flanke" für den Eingang E triggert die Flanke ein
Flip-Flop, das zum Abfragezeitpunkt gelesen und damit auch
wieder rückgesetzt wird.
Zweckmäßigerweise läßt sich dabei ein Ansprechen auf die Anstiegs-
oder Abstiegsflanke einstellen.
Ferner kann zwischen den Parametern t, b und tz gewählt werden.
Dabei bedeuten t eine Tastung mit 0 bis 8 von 8 Taktimpulsen,
b ein Blinken mit 1 bis 31mal 8 Taktimpulsen an bzw. aus und
tz eine Torzeit, und zwar ein zeitliches Tor innerhalb einer
Bitzeit direkt hinter der fallenden Flanke des Taktimpulses, in
dem der E/A-Baustein antwortet. Eine Grundeinstellung sieht
zweckmäßigerweise 100 µs vor. Diese Zeit kann auf die Werte 10,
100, 1000 µs umgeschaltet werden.
Der E/A-Baustein enthält zweckmäßigerweise als Funktionseinheiten
einen Fensterkomparator zur Unterscheidung der Pegel am
Datenanschluß, ein 9-Bit-Schieberegister zur Aufnahme von 8 Daten-
und 1 Rahmen-Bit, einem 9×"0"-Vergleicher zur Generierung
eines internen Synchronisationssignals, einen bis 9 zählenden
Zähler als Rahmen- bzw. Byte-Zähler, einen Zähler bis 255 I
als Taktimpulszähler zum Adreßvergleich.
Der Fenster-Komparator hat vorzugsweise drei Ausgänge:
Einen Taktausgang, einen Datenausgang für die logische 1 des
Datensignals und einen Datenausgang für die logische 0 des Datensignals.
Ein Sequenzer generiert aus Synchronisations- und Rahmeninformationen
Signale, die die zeitliche Orientierung im Bitstrom
ermöglichen. Insbesondere gewinnt er die Kriterien "bereit",
"Kontroll-Byte", "Adresse da" und "drittes Byte da".
Ein Kontroll-Code-Decoder steuert zusammen mit dem Sequenzer
unter anderem die Signalperiode. Ein Antwort-Multiplexer
schaltet die laut Kontroll-Code gewünschte Information mit
einem Gatter in Richtung Datenanschluß durch. Ein Torzeit-
Monoflop belegt über den Datenstift den lokalen Bus zu einer
bestimmten Zeit für eine bestimmte Zeitdauer. Diverse Register
dienen unter anderem zur Speicherung von Modus-Byte, Parametern
bzw. letztem Ausgabe-Byte. Eine EEPROM-ähnliche Struktur dient
zum Speichern der für diesen E/A-Baustein übernommenen Adresse.
Die E/A-Peripherie P umfaßt eine Vielzahl von direkt anschließbaren
Standardbauteilen, insbesondere LED, Relais, Signallampen,
Optokoppler, Summer, Kleinlautsprecher, Schalter und Taster.
Nach dem Zwischenschalten einfacher Schieberegister, z. B. vom
Typ 74 LS595, 165, 166 oder dergleichen lassen sich 7-Segment-Anzeigen,
Drucker, Tastaturen mit paralleler Schnittstelle,
Meßgeräte, steuerbare Stromversorgungen oder Codierschalter
anschließen.
Nach dem Zwischenschalten von A/D- bzw. D/A-Wandlern, gegebenenfalls
in Verbindung mit einem Schieberegister, lassen sich Sensoren,
z. B. für Temperatur oder Licht oder Aktoren bzw. Geräte
mit Analog-Eingängen anschließen.
Die E/A-Bausteine werden zweckmäßigerweise als Chips realisiert,
die die genannten Funktionseinheiten enthalten. Der E/A-Baustein
besteht vorzugsweise aus einem einzigen Chip mit 6 Anschlüssen
und einer Miniaturleiterplatte zur Aufnahme dieses Chips und
der Anschlußstifte zum Bus und der E/A-Peripherie P hin.
Bei der Adressierung von E/A-Bausteinen sendet die Zentrale -
zweckmäßigerweise zyklisch - 3-Byte-Blöcke der Bedeutung
"Adreßvergabe" aus. Die Zentrale sendet die Taktimpulse aus
und belegt aktiv die Datenbits im ersten und zweiten Byte. Der
erste Block besagt, daß es um die Adreßvergabe geht. Das zweite
Byte beinhaltet die Adresse, die vergeben werden soll. Die Zentrale
gibt auch den Impulsrahmen für das dritte Byte vor, ist
aber in den Datenpositionen passiv. In diesem Zustand wertet
die Zentrale empfangene Datenimpulse aus. Der E/A-Baustein, der
die Adresse des zweiten Bytes übernimmt, legt in diese Phase
die Adresse in die Datenpositionen des dritten Bytes. Die
ersten beiden Bytes gehen von der Zentrale zum E/A-Baustein.
Der Dateninhalt des dritten Bytes geht vom E/A-Baustein zur
Zentrale.
Zur Erweiterung der Eingabe- oder Ausgabemöglichkeiten können
Schieberegister vorgesehen sein. Diese Schieberegister benötigen
zum seriellen Übergeben oder Empfangen des Wertes einen
Takt. Dieser Takt läßt sich vorhandenen Anschlüssen des E/A-
Bausteines entnehmen, insbesondere durch Doppelverwendung des
Eingangsanschlusses. In Ausgaberichtung wird auf dem Eingangsanschluß
der Schiebetakt ausgegeben. In Eingaberichtung wird
der Schiebetakt auf dem Ausgabeanschluß an das angeschlossene
Schieberegister ausgegeben. Mit Hilfe der Schieberegister wird
die Möglichkeit der Ein-Bit-Ausgabe für eine Byte-Ein-/Ausgabe
nutzbar gemacht. Auf diese Weise lassen sich z. B. Siebensegmentanzeigen
oder Drucker anschließen.
Die Taktinformation, die der E/A-Baustein abgibt, besteht aus
den von der Zentrale empfangenen Taktimpulsen. Der E/A-Baustein
gibt diese Taktimpulse weiter. Ein eigener Taktgenerator ist
daher im E/A-Baustein weder vorgesehen noch erforderlich.
Claims (3)
1. Verfahren zum Austauschen von Informationen zwischen einer
Zentrale und über einen seriellen Bus daran angeschlossenen
Eingabe- und/oder Ausgabeeinheiten mit Hilfe von
Datentelegrammen,
dadurch gekennzeichnet,
daß von der Zentrale ausgesandte Datentelegramme wahlweise byte- oder bitorientierte Blöcke enthalten,
daß von der Zentrale ausgesandte Datentelegramme jeweils ein Steuerbyte enthalten, das angibt, ob ein bit- oder byteorientierter Block folgt,
daß die die byteorientierte Blöcke enthaltenden Datentele gramme zur Adressierung der Eingabe- und/oder Ausgabeeinhei ten jeweils wenigstens ein Adreßbyte enthalten, auf das wenigstens ein Datenbyte folgt und
daß die bitorientierte Blöcke enthaltenden Datentelegrammen Impulse je Eingabe- und/oder Ausgabeeinheit aufweisen, aus denen der Takt und die Datenbits abgeleitet werden, mit denen eine Eingabe- und/oder Ausgabeeinheit nach der anderen abfragbar oder mit einem aktuellen Ausgabewert zu versorgen ist und jeweils mit einem Synchronisationszeichen abgeschlossen werden.
dadurch gekennzeichnet,
daß von der Zentrale ausgesandte Datentelegramme wahlweise byte- oder bitorientierte Blöcke enthalten,
daß von der Zentrale ausgesandte Datentelegramme jeweils ein Steuerbyte enthalten, das angibt, ob ein bit- oder byteorientierter Block folgt,
daß die die byteorientierte Blöcke enthaltenden Datentele gramme zur Adressierung der Eingabe- und/oder Ausgabeeinhei ten jeweils wenigstens ein Adreßbyte enthalten, auf das wenigstens ein Datenbyte folgt und
daß die bitorientierte Blöcke enthaltenden Datentelegrammen Impulse je Eingabe- und/oder Ausgabeeinheit aufweisen, aus denen der Takt und die Datenbits abgeleitet werden, mit denen eine Eingabe- und/oder Ausgabeeinheit nach der anderen abfragbar oder mit einem aktuellen Ausgabewert zu versorgen ist und jeweils mit einem Synchronisationszeichen abgeschlossen werden.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß die aus jeweils acht Bit bestehenden Datenbytes eines
byteorientierten Datenblockes jeweils mit Einzelbits
abgeschlossen sind, die jeweils Logikpegel 1 haben.
3. Verfahren nach Anspruch 1 oder 2,
dadurch gekennzeichnet,
daß in einem byteorientierten Datentelegramm auf das
Steuerbyte ein Adreßbyte und ein Werte-Byte folgen.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19904020809 DE4020809C2 (de) | 1990-06-29 | 1990-06-29 | Verfahren zum Informationsaustausch über einen seriellen Bus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19904020809 DE4020809C2 (de) | 1990-06-29 | 1990-06-29 | Verfahren zum Informationsaustausch über einen seriellen Bus |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4020809A1 DE4020809A1 (de) | 1992-01-02 |
DE4020809C2 true DE4020809C2 (de) | 1994-10-20 |
Family
ID=6409377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19904020809 Expired - Fee Related DE4020809C2 (de) | 1990-06-29 | 1990-06-29 | Verfahren zum Informationsaustausch über einen seriellen Bus |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4020809C2 (de) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19852276C2 (de) * | 1998-11-13 | 2001-09-27 | Motorola Inc | Verfahren zum Empfang einer Nachricht über einen seriellen Datenbus, Funktionseinheit und lokales Netzwerk |
DE19618821B4 (de) * | 1996-05-10 | 2005-03-24 | Phoenix Contact Gmbh & Co. Kg | Verfahren zur multifunktionalen Adressierung der Prozeßdaten von Teilnehmern serieller Bussysteme |
DE19701310B4 (de) * | 1996-02-16 | 2006-07-27 | Dr. Johannes Heidenhain Gmbh | Vorrichtung und Verfahren zur Datenübertragung und zur Umschaltung zwischen verschiedenen Betriebsmodi eines Meßwertaufnehmers |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4322249A1 (de) * | 1992-10-23 | 1994-04-28 | Marquardt Gmbh | Bus-Schalter |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2117819C3 (de) * | 1971-04-13 | 1981-06-11 | Siemens AG, 1000 Berlin und 8000 München | Anordnung zur Bildung von Impulstelegrammen in Fernwirkanlagen |
-
1990
- 1990-06-29 DE DE19904020809 patent/DE4020809C2/de not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19701310B4 (de) * | 1996-02-16 | 2006-07-27 | Dr. Johannes Heidenhain Gmbh | Vorrichtung und Verfahren zur Datenübertragung und zur Umschaltung zwischen verschiedenen Betriebsmodi eines Meßwertaufnehmers |
DE19618821B4 (de) * | 1996-05-10 | 2005-03-24 | Phoenix Contact Gmbh & Co. Kg | Verfahren zur multifunktionalen Adressierung der Prozeßdaten von Teilnehmern serieller Bussysteme |
DE19852276C2 (de) * | 1998-11-13 | 2001-09-27 | Motorola Inc | Verfahren zum Empfang einer Nachricht über einen seriellen Datenbus, Funktionseinheit und lokales Netzwerk |
Also Published As
Publication number | Publication date |
---|---|
DE4020809A1 (de) | 1992-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1809913C3 (de) | Verfahren und Datenübermittlungsanlage zur Übertragung von Daten zwischen einer Haupteinheit und mehreren Endstelleneinheiten | |
EP0852859B1 (de) | Verfahren zur synchronisierung von daten, schnittstelle zur übertragung | |
DE2148906C2 (de) | Schaltungsanordnung zur Übertragung von Daten zwischen einem Rechner und einer Vielzahl von Endgeräten | |
DE69231158T2 (de) | Vorrichtung zur erzeugung und sendung eines seriellen datenpaketes zum kontrollieren eines netzwerkes von einzelpunkt-ein-/ausgabegeräten | |
DE3300262A1 (de) | Schaltungsanordnung zur zuteilung des zugriffs zu einer auf anforderungsbasis gemeinsam benutzten sammelleitung | |
DE3317567A1 (de) | Zeitmultiplex-fernsteuerungssystem | |
DE2362344A1 (de) | Datenuebertragungsanlage | |
DE2023693A1 (de) | ||
EP0863637A2 (de) | Kommunikationseinrichtung mit optischem Bus und Verfahren zu deren Betriebssteuerung | |
DE3789791T2 (de) | Datenübertragungsvorrichtung. | |
DE1462615A1 (de) | Codemeldungssystem | |
DE4020809C2 (de) | Verfahren zum Informationsaustausch über einen seriellen Bus | |
DE3545293C2 (de) | ||
DE69125247T2 (de) | Zeitmultiplexkoppelanordnung mit verteilter Architektur und einem Verbindungsmodul zur Bildung dieser Anordnung | |
DE69116585T2 (de) | Fernbedienungssystem sowie Sender und Empfänger für ein Fernbedienungssystem | |
DE2558374C2 (de) | Fernwirkeinrichtung zur Übermittlung von Fernwirksignalen mit Hilfe von Impulstelegrammen | |
DE2423195A1 (de) | Wartungsvorrichtung | |
DE69628841T2 (de) | Übertragungsverfahren über einen optischen bus mit gleichzeitig verschiedenen datenraten | |
DE4020807A1 (de) | Anzeigefeld zur ein- und ausgabe von daten | |
WO2018215290A1 (de) | Initialisierung eines lokalbusses | |
DE10039460A1 (de) | Datenbus für mehrere Teilnehmer | |
DE2126456A1 (de) | Datenübertragungsanordnung | |
EP1817679B1 (de) | Elektronisches steuerungssystem für die automatisierungstechnik | |
EP0048939B1 (de) | Signalübertragungseinrichtung mit Stationen, die mit Eingabeeinrichtungen wahlweise bestückbar sind | |
EP0348809B1 (de) | Verfahren zur Adressierung von Prozessoreinheiten und Schaltungsanordnung zur Durchführung des Verfahrens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |