-
HINTERGRUND
-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich auf ein Erweiterungsmodul und
insbesondere auf ein System, ein Verfahren und eine Vorrichtung
für ein universales
Steuerungerweiterungsmodul-System zur universalen Kopplung einer
Logiksteuerung mit einer Mehrzahl verschiedenartiger Eingangs-/Ausgangserweiterungsmodule.
-
Bisheriger
Stand der Technik
-
Auf
dem technischen Gebiet der Logic Controllers, das beispielsweise
Programmable Logic Controllers (Programmablaufsteuerungen – PLC) und Continuous
Loop Controllers (Endlosschleifensteuerungen – CLC) umfasst, ist die Logiksteuerung
typischerweise in einer Rahmengestellkonfiguration angeordnet, bei
der eine Master-Steuerung über
eine Rückwandplatine,
die einen gemeinsamen Bus und eine gemeinsame Spannungsquelle bereitstellt,
mit einem oder mehreren Ein-/Ausgangsmodulen (E/A-Modulen)
gekoppelt ist. Die Master-Steuerung ist über die E/A-Module mit verschiedenen
Automatisierungsgeräten
gekoppelt, einschließlich
u. a. beispielsweise Motoren, Schaltern, Turbinen, Boilern usw.
Die Gesamtzahl der Geräte,
die mit der PLC koppelbar sind, ist wahrscheinlich unbegrenzt und Fachleute
auf diesem technischen Gebiet kennen die verschiedenen Geräte, die
zum Anschluss angeboten werden. Zudem ist die Master-Steuerung mit
anderen PLCs koppelbar, um so eine Master/Slave-Anordnung zu bilden,
mit der die Master-Steuerung die Slave-Steuerungen steuert. Typischerweise
steuert der Master die Ablaufsteuerung, gemäß der bestimmte Geräte in Betrieb
gehen sollen, und die Slaves sind dafür zuständig, die Verarbeitung zwecks Antriebs
der Geräte
durchzuführen.
Das Europäische Patent
EP 0772 107 beschreibt eine
Feldsteuerung für
industrielle Prozesszwecke, einschließlich Erweiterungsmodulen zur
Abdeckung der Steuerungen zusätzlicher
Geräte.
-
ZIELE UND ZUSAMAMMENFASSENDE
BESCHREIBUNG DER ERFINDUNG
-
Ein
Ziel der vorliegenden Erfindung ist es, ein universales Erweiterungsmodul
bereitzustellen.
-
In Übereinstimmung
mit den vorstehend genannten Zielen stellt die vorliegende Erfindung
ein universales Erweiterungsmodul wie in Patentanspruch 1 angegeben
bereit, das dem Anschluss einer Logiksteuerung an eine Mehrzahl
verschiedenartiger E/A-Erweiterungsmodule dient, die Eingangs-/Ausgangsdaten
zwischen der Steuerung und automatisierten Geräten übermitteln. Eine Kommunikationsschnittstelle
stellt die Kommunikation zwischen der Steuerung und mindestens einem
aus der Mehrzahl verschiedenartiger E/A-Erweiterungsmodule her. Das
Erweiterungsmodul hat eine physische Konfiguration, die für Signale
ausgelegt ist, die von der Mehrzahl verschiedenartiger E/A-Erweiterungsmodule stammen.
-
Die
Erfindung bietet auch – wie
in Patentanspruch 13 angegeben – ein
universales Erweiterungsmodulsystem. Eine Logiksteuerung hat eine Konfiguration
für den
Antrieb eines automatisierten Gerätes. Ein E/A-Erweiterungsmodul
aus einer Mehrzahl verschiedener Arten koppelt die Logiksteuerung
mit dem automatisierten Gerät.
Ein Erweiterungsmodul hat eine physische Konfiguration, die für Signale
ausgelegt ist, die von einer Mehrzahl verschiedenartiger Eingangs-/Ausgangserweiterungen stammen.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
eine Tabelle der E/A-Erweiterungsbussignale;
-
2a ist
ein Zeitablaufdiagramm einer Erweiterungsmodulbus-Schreibtransaktion;
-
2b ist
ein Zeitablaufdiagramm einer Erweiterungsmodulbus-Lesetransaktion;
-
3 ist
ein Blockschaltbild des Erweiterungsmodulbus-Treiberschaltkreises;
-
4 ist
eine Tabelle der E/A-ASIC-Eingangs-/Ausgangssignale
-
5 ist
ein Zeitablaufdiagramm einer Schreibtransaktion in Modus 0;
-
6 ist
ein Zeitablaufdiagramm einer Lesetransaktion in Modus 0;
-
7a ist
eine Tabelle der Bits, die für
eine Transaktion in Modus 1 gesetzt sind;
-
7b ist
ein Zeitablaufdiagramm einer Schreibtransaktion in Modus 1;
-
8 ist
ein Zeitablaufdiagramm einer Schreibtransaktion in Modus 1;
-
9 ist
ein Zeitablaufdiagramm einer Lesetransaktion in Modus 1;
-
10 ist
ein Zeitablaufdiagramm einer Lesetransaktion in Modus 1;
-
11 ist
ein Zeitablaufdiagramm eines Steuerregister-Paritätsfehlers während der Schreibtransaktion
in Modus 1;
-
12 ist
ein Zeitablaufdiagramm eines Schreibregister-Paritätsfehlers während der Schreibtransaktion
in Modus 1; und
-
13 ist
ein Zeitablaufdiagramm eines Schreibregister-Paritätsfehlers während der Schreibtransaktion
in Modus 1;
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSBEISPIELE
-
Um
die Kapazität
der E/A-Module zu erweitern, wurde vom Erfinder vorgeschlagen, E/A-Erweiterungssteckplätze zur
Aufnahme zusätzlicher E/A-Erweiterungsmodule
vorzusehen. Damit die beschriebene PLC-Konfiguration jedoch für die E/A-Erweiterungsmodule
ausgelegt werden kann, muss auf irgendeine Weise die Konfiguration
so angepasst werden, dass die zusätzliche Last berücksichtigt wird.
Besagter Erfinder hat vorgeschlagen, ein Erweiterungsmodul zu verwenden,
das eine elektrische Schnittstelle für jedes der Erweiterungs-E/A-Module implementiert.
Dies macht es möglich,
zusätzliche elektrische
Spannung, z. B. +5 V, an jeder Stelle in der E/A-Buskonfiguration
einzuführen.
Zudem bietet jedes Erweiterungsmodul Schutz für die E/A-ASIC-Schalttechnik.
-
Als
Problem erweist sich die Tatsache, dass traditionell eine Mehrzahl
verschiedenartiger E/A-Module, die in der PLC-Konfiguration zum
Einsatz kommen kann, zur Verfügung
steht. Die Schwierigkeit besteht darin, dass jede Art von E/A-Modul
einen anderen Betriebssignalsatz hat. Da es nicht möglich ist,
im Voraus zu bestimmen, welches E/A-Modul in ein bestimmtes Erweiterungsmodul
eingefügt
wird, stellt die vorliegende Erfindung für die verschiedenen E/A-Module
eine Mehrzahl von Betriebsmodi bereit. Mit anderen Worten: Die vorliegende
Erfindung stellt ein universales Steuerungerweiterungsmodul bereit.
-
Als
Problem erweist sich auch die Tatsache, dass die Bereitstellung
einer Mehrzahl von Betriebsmodi für jedes Erweiterungsmodul umständlich ist. Insbesondere
ist es schwierig, eine Mehrzahl von Betriebsmodi so anzuordnen,
dass sie verschiedene Signalsätze
und Betriebsparameter von jedem Erweiterungsmodul verarbeiten können. Darüber hinaus
erfordert die Bereitstellung einer Mehrzahl von Betriebsmodi für jedes
Erweiterungsmodul eine Vielzahl von Schaltungen, die sowohl zusätzlichen
Platz belegen als auch zusätzliche
Energie verbrauchen.
-
Um
die vorstehenden Probleme zu beheben, bietet die vorliegende Erfindung
ein neuartiges Schema für
die Anordnung der Signale für
jeden der Mehrzahl von Betriebsmodi. Wie noch ausführlicher
beschrieben werden wird, sind die Taktsignale so angeordnet, dass
ein Taktsignalsatz für
jeden einer Mehrzahl von Betriebsmodi verwendet werden kann. Auf diese
Weise kann eine allgemeine, universale Mustervorlage für die Mehrzahl
von Betriebsmodi verwendet werden. So werden die mühselige
Aufgabe, verschiedene Betriebsmodi in jedem Gerät zu unterstützen, sowie
duplizierte Schaltungen und externer Energiebedarf vermieden.
-
Bevor
die Betriebsmodi der Erweiterungsmodule ausführlicher besprochen werden,
ist eine Beschreibung des Erweiterungsmoduls angebracht. Im bevorzugten
Ausführungsbeispiel
sorgt das Erweiterungsmodul für
die Kommunikation zwischen dem Erweiterungsmodul und der Steuerung.
Wie in der vorliegenden Patentschrift dargestellt wird die Kommunikation
durch eine serielle Schnittstelle sichergestellt. Allerdings können natürlich auch
andere Kommunikationsprotokolle An wendung auf die vorliegende Erfindung
finden. Zudem erwägt
die vorliegende Erfindung die Kapselung eines einzelnen Erweiterungsmoduls
in einem ASIC und weiterhin die Bereitstellung eines Slave-ASIC
innerhalb des Erweiterungsmodul-ASIC, um die Kommunikationsschnittstelle
bereitzustellen. Obwohl die Erfindung in Form dieser ASIC-Konfiguration beschrieben
wird, werden Fachleute auf diesem Gebiet der Technik erkennen, dass
dieses bevorzugte Ausführungsbeispiel
und die Erfindung anders angeordnet werden können als in einer ASIC-Konfiguration gemäß bekannten
Verfahren.
-
In
jedem Fall und unter der Prämisse,
dass die folgende Beschreibung nicht auf eine bestimmte ASIC-Konfiguration
oder bestimmte Stiftbelegungen begrenzt ist, wird die Erfindung
nun in dieser Form beschrieben. Der Slave-ASIC sorgt für die serielle Kommunikation
mit allen Erweiterungsmodulen (EM). Die CPU stellt eine Master-Gerätefunktion
bereit und steuert alle Datenübertragungen
von und zu den EMs. Das Erweiterungsmodul beinhaltet einen ASIC,
der eine "Slave-Funktion" bzw. einen "Slave-ASIC" verfügt, um ein
serielles Kommunikationsprotokoll bereitzustellen. Der Slave-ASIC
implementiert eine Zustandsmaschinenarchitektur, um eine ordnungsgemäße Kommunikation
und Steuerung zu gewährleisten.
Die E/A-Erweiterungsbussignale, wie sie vom Erweiterungsmodul gesehen
werden, werden in der folgenden Tabelle in 1 beschrieben. Beim
erstmaligen Hochfahren gibt die CPU ein aktives XOD-Signal aus.
Die Verbindung von der PLC zum Erweiterungsmodul und von Erweiterungsmodul zu
Erweiterungsmodul erfolgt 1-zu-1 mittels eines 10-Stift-Anschlusses
des Typs Chipsockel.
-
Es
wurde beschrieben, dass die Erfindung ein Schema anwendet, um die
Duplizität
der Betriebsprozesse zu vermeiden, zu der es durch die verschiedenen
Betriebsmodi kommt. Dieses Ziel wird bei der vorliegenden Erfindung
unter anderem dadurch erreicht, dass die Lese- und Schreibzyklen so konfiguriert werden,
dass sie eine ähnliche
Taktung und Struktur haben. Die Diagramme in 2a und 2b stellen
beispielsweise Erweiterungsmodulbus-Lesezyklus- und -Schreibzyklussequenzen
dar. Wie zu sehen sein wird, ist die Taktung des Lesezyklus im Wesentlichen
immer gleich, d. h. 23 oder 24 Zyklen im gezeigten Beispiel. Zudem
wird jede Bustransaktion – ganz
gleich, ob Schreib- oder Lesezyklus – durch einen kurzen, aktiven
LOW-Impuls im XA_OD-Signal initiiert. Außerdem werden alle Erweiterungsmodulda ten,
sowohl für
die Schreib- als auch die Lesezyklen, durch eine Moduladresse "MA" initiiert, die die
CPU adressiert. Diese MA hat eine gleichbleibende Bitlänge – im Beispiel
werden sowohl für
Schreib- als auch
Lesetransaktionen MA[2:0] 3 Bits dargestellt. Dann wird ein einzelnes
Bit "W" übertragen, das den von der
CPU verlangten Transaktionstyp anzeigt, d. h. das Schreib-/Lese-Bit (1
=> Schreiben, 0 => Lesen). Dann wird
eine Registeradresse, die diese CPU adressiert, von gleichbleibender
Bitlänge,
nämlich
RA[3:0], für
alle Schreib- und
Lesezyklen übertragen.
Als nächstes
werden die von der CPU generierten Steuerregister-Paritätsbits, nämlich CP[1:0],
mit gleicher Länge
für beide
Zyklen, also Schreib- und Lesezyklus, übertragen. Ein 8-Bit-Wort gleicher
Länge wird
entweder für
eine Lese- oder für
eine Schreibtransaktion übertragen, nämlich W[7:0]
oder R[7:0]. Schließlich
werden die Datenparitätsbits,
nämlich
DP[1:0], von der CPU für die
Schreibtransaktion und vom Erweiterungsmodul für die Lesetransaktion generiert.
-
Wie
zu erkennen ist, sind die Schreibtransaktion und die Lesetransaktion
fast identisch, was ihre Struktur und Taktung betrifft: Der einzige
Unterschied bei den vorgenannten Transaktionen besteht eigentlich
im Bestätigungssignal,
nachdem die Schreibtransaktion abgeschlossen ist, nämlich Ack[1:0].
Diese Bestätigungsbits
werden durch den Slave-ASIC an die CPU zurückgeschickt. Bei Bit "A1" bedeutet "0", dass der Schreibzyklus erfolgreich
war (keine Paritätsfehler
gefunden), und eine "1" zeigt an, dass der
Schreibzyklus ungültig
war (Datenparitätsfehler gefunden).
Bit "A0" ist standardmäßig auf "1" gesetzt. In jedem Fall befinden sich
die Bestätigungssignale innerhalb
der Taktung der 23 oder 24 Zyklen und stellen keine signifikante
Abweichung von der vordefinierten Zeitablaufstruktur dar. Die vorstehende
Taktung wird noch ausführlicher
unter Bezugnahme auf 5 bis 13 beschrieben.
-
Die
vorliegende Erfindung vermeidet das Duplizieren von Schaltungen,
indem sie immer dieselben Stifte für eine Mehrzahl von Erweiterungsmodulen,
d. h. eine Mehrzahl von Modi, bereitstellt. Dies wird in 3 dargestellt,
die zeigt, dass dieselbe elektrische E/A-Busschnittstellen-Schaltung
für alle Modi
verwendet wird. Ausführlicher
formuliert kann das Erweiterungsmodul 300 in einem oder
mehreren Erweiterungsmodul-Slave-ASICs 302a bis 302c enthalten
sein.
-
Jeder
Slave 302a bis 302c implementiert eine elektrische
Schnittstelle zu einem anderen Erweiterungs-E/A-Bus, der aus den
Abschlussschaltkreisen 304a bis 304c und den Bustreiber-Schaltkreisen 306a bis 306c besteht.
Diese Konfiguration erlaubt das Hinzufügen einer Energieversorgung,
z. B. 5 V, an jeder Stelle im verketteten E/A-Bus und bietet einen
gewissen Schutz für
jeden SLAVE-ASIC-E/A. In der vorliegenden Erfindung ist das EMD-Signal
ein bidirektionales Signal. Daher wird die Steuerschalttechnik in
der vorliegenden Erfindung in die Bustreiber-Schaltkreise verlegt,
um Buskonkurrenzfehler zu vermeiden. Drei Steuersignale (MSTR_IN, SLAVE_OUT
und NEXT_OUT) dienen der Aktivierung/Deaktivierung der EMD-Bustreiber-Schaltkreise.
-
Nachstehend
wird die EMD-Bustreibersteuerung beschrieben. Ein bekannter Schaltkreis,
z. B. der standardmäßig im Handel
angebotene SN74ABT125, kann als Bustreiber-Schaltkreis mit aktiver
LOW-Aktivierungsleitung
verwendet werden. Der Slave-ASIC generiert drei Steuersignale, um
die Bustreiber ordnungsgemäß zu aktivieren/deaktivieren.
Das Steuersignal MSTR_IN aktiviert die Bustreiberkreise A und B.
Dadurch kann das EMD-Signal in den Erweiterungsmodul-ASIC sowie
in den nächsten nachgeordneten
Erweiterungsmodul-ASIC eingegeben werden. MSTR_N wird aktiv, wenn
XAS erfasst wird, und inaktiv vor jeder Antwort von einem EM. Die Signale
MY_SLAVE_OUT und NEXT_SLAVE_OUT steuern von den EMs kommende EMD-Antworten gemäß der physischen
Adressposition der EMs. So steuert beispielsweise MY_SLAVE_OUT das EMD-Signal
als Ausgang des EM, das von der CPU adressiert wurde. Das Signal
NEXT_SLAVE_OUT leitet die EMD-Antwort weiter zum EM, wenn das von der
CPU adressierte EM eine höhere
Adresse hat oder diesem EM nachgeordnet ist. Weder MY_SLAVE_OUT
noch NEXT_SLAVE_OUT werden gesetzt, wenn die CPU ein EM mit einer
niedrigeren Adresse adressiert. Alle drei Steuersignale werden bei
Eintritt eines XOD sofort inaktiv.
-
Nachstehend
wird das schematische Layout des Slave-ASIC ausführlicher beschrieben. Es ist
erkennbar, dass das konkrete Layout und die Stiftbelegungen und
Betriebsparameter nur eine Anordnung unter vielen darstellen und
dass sich natürlich
auch andere auf diesem technischen Gebiet bekannte ASIC-Anordnungen
im Anwendungsbereich der vorliegenden Erfindung bewegen. Das grundlegende Slave-Design wird
in einem CPLD mit 128 Makrozellen entwickelt, wobei VHDL als Design-Tool
dient. Das CPLD-Design wird dann zu einem ASIC-Design weiterentwickelt.
Der ASIC hat insgesamt 44 Stifte, wovon 36 Stifte für E/As sowie
8 Stifte für
Spannungsversorgung und Masse belegbar sind. Die Betriebsfrequenz
des SLAVE-ASIC beträgt
max. 4,125 MHz – ein
Wert, der sich eindeutig innerhalb der Leistungsfähigkeit
des ASIC bewegt. Das Erweiterungsmodul wird vorzugsweise mit mindestens
einem der E/A-Erweiterungssteckplätze gekoppelt. Die Tabelle in 4 definiert
die erforderlichen Eingänge
und Ausgänge
des Slave-ASIC.
-
Wie
bereits beschrieben deckt die vorliegende Erfindung alle Erweiterungsmodul-E/A-Konfigurationen
ab. Dies wird durch Implementierung einer Mehrzahl von Betriebsmodi
erreicht, die ähnliche Zeitablaufdiagramm-Strukturen
aufweisen. Zwei Betriebsmodi im ASIC, nämlich Modus 0 und Modus 1, werden
unter Bezugnahme auf 5 bis 13 beschrieben.
Modus 0 wird für
einen ersten Typ von E/A-Erweiterungsmodul
entwickelt. Dagegen dient Modus 1 für einen zweiten Typ von E/A-Erweiterungsmodul.
Wie sich zeigen wird, besteht der einzige wesentliche Unterschied
zwischen den Modi in Bezug auf den ASIC-Betrieb in der Implementierung der
EXT0- und des EXT1-Daten-Ports.
-
Wie
bereits erwähnt
wird der Slave-ASIC unter Bezugnahme auf zwei Betriebsmodi beschrieben. Natürlich umfasst
die Erfindung jedoch eine Mehrzahl von Betriebsmodi, um für alle Erweiterungsmodul-E/A-Konfigurationen
ausgelegt zu sein. Kurz gesagt wird der Modus 0 für Erweiterungsmodule
vom Typ "8IN/8OUT" oder mit weniger
Datenpunkten oder Stiften benutzt. Was die Stiftbelegungen angeht,
so ist der EXT0-Bus in Modus 0 ein 8-Bit-Eingangsregister und der
EXT1-Datenbus ein
8-Bit-Ausgangsregister mit aktivem LOW. Auf diese Weise haben der EXT0-Datenbus
und der EXT1-Datenbus direkte Schnittstellen zu dem digitalen Erweiterungsmodul-E/A.
-
Modus
1 wird benutzt, wenn die Erweiterungsmodul-E/A-Konfiguration größer als "8IN/8OUT" ist oder wenn es sich um intelligente
Module handelt. Was die Stiftbelegungen angeht, so wird der EXT0-Bus
in Modus 1 als bidirektionaler 8-Bit-Datenbus mit aktivem HIGH und
der EXT1-Datenbus als 8-Bit-Adressierung und -Steuerung benutzt.
Daher sind externe Register und Dekodierschalttechnik für den Modus
1-Betrieb erforderlich. Im Übrigen
ist die Polarität
des EXT0-Daten-Ports sowohl in Modus 0 als auch in Modus 1 "aktiv HIGH". Der EXT1-Daten-Port
ist "aktiv LOW", während im Modus
0- und im Modus 1-Betrieb die Steuerleitungen "aktiv LOW" und die Adressleitungen "aktiv HIGH" sind.
-
Hervorzuheben
ist, dass dieselben Ports sowohl für Modus 0 als auch Modus 1
benutzt werden. Im Fall von Modus 0, wo davon ausgegangen wird, dass
das Erweiterungsmodul vom Typ "8IN/8OUT" oder mit weniger
Datenpunkten bzw. Stiften ist, wird der EXT0-Bus als 8-Bit-Eingangregister und
der EXT1-Bus als 8-Bit-Ausgangsregister mit "aktivem LOW" genutzt. In Modus 0 haben der EXT0-Datenbus
und der EXT1-Datenbus
direkte Schnittstellen zu dem digitalen Erweiterungsmodul-E/A. Genau dieselben
Ports und Stifte werden für
Modus 1 benutzt. Wie bereits erwähnt
wird Modus 1 benutzt, wenn davon ausgegangen wird, dass die Erweiterungsmodul-E/A-Konfiguration
größer als "8IN/8OUT" ist wenn es sich
um intelligente Module handelt. In Modus 1 wird der EXT0-Bus als
bidirektionaler 8-Bit-Datenbus mit aktivem HIGH und der EXT1-Datenbus
als 8-Bit-Adressierung und -Steuerung benutzt. So verwandelt sich
der EXT0-Port beim Wechsel von Modus 0 zu Modus 1 von einem Eingangsregister
in einen bidirektionalen Bus. EXT1 wird von einem Ausgang in ein
Adress- und Steuerregister umgewandelt.
-
Um
den richtigen Betriebsmodus zu bestimmen, bietet die vorliegende
Erfindung ein Spezialregister – das "ID-REG". Dieses ID_REG-Register wird von
jedem Erweiterungsmodul beim Hochfahren dekodiert, um den Betriebsmodus
zu bestimmen. Das ID_REG-Register wird auch von der CPU gelesen, um
den Erweiterungsmodultyp zu bestimmen.
-
Nach
Erkennen von XOD wird eine Transaktion in einem der beiden Modi
initiiert. Diese Erkennung bringt die Zustandsmaschine in ihren
Ausgangszustand und der EXT1-Daten-Port wird gelöscht, wenn das System in Modus
0 ist, bzw. die externen Ausgangsregister werden gelöscht, wenn
das System in Modus 1 ist. Beim ersten Hochfahren bestimmt der Slave-ASIC
außerdem
seine Moduladresse (MA_IN) sowie den Betriebsmodus (Modus 0 oder 1)
und gibt die nächste
Moduladresse (MA_OUT) weiter, indem er seine Moduladresse um 1 inkrementiert.
So bald XOD freigegeben wird, überwacht
die Slave-ASIC-Zustandsmaschine kontinuierlich das XAS-Signal aus
ihrem Ausgangszustand heraus.
-
Eine
Bustransaktion wird initiiert, wenn XAS aktiv wird. An der ersten
ansteigenden Flanke des EMC0-Taktes erfolgt dann der Übergang
in Zustand 0. In Zustand 0 wird die Zustandsmaschine in einen bekannten
Zustand gebracht und geht dann an der nächsten ansteigenden Flanke
des EMC0-Taktes weiter in Zustand 1. Wenn zu irgendeinem Zeitpunkt das
XOD-Signal aktiv wird, wird der EXT1-Daten-Port asynchron nullgestellt
und die Zustandsmaschine kehrt in ihren Ausgangszustand zurück. Wenn
das System im Modus-1-Betrieb ist, werden die externen Ausgangsregister
asynchron gelöscht
und die Zustandsmaschine kehrt in ihren Ausgangszustand zurück. Das
nächste
Auftreten eines XAS-Signals bringt die Zustandsmaschine synchron
in einen bekannten Zustand, nämlich
entweder Modus 0 oder Modus 1, und eine Schreib- oder Lesetransaktion wird
initiiert. Der Modus 0 und der Modus 1 werden nachstehend sowohl
für eine
Lese- als auch eine Schreibtransaktion beschrieben.
-
Die
Schreibtransaktion in Modus 0 wird nun unter Bezugnahme auf 5 beschrieben.
Sobald ein gültiges
XAS-Signal wie vorstehend beschrieben erkannt wird, geht der Slave-ASIC
weiter zu Zustand 0 der Steuerungzustandsmaschine, und zwar an der ersten
ansteigenden Flanke des EMC0-Taktes. Im Zustand 0 wird das MSTR_IN-Signal
gesetzt und das EMD-Signal wird als Eingang zum Slave-ASIC aktiviert.
Die Steuerungzustandsmaschine beginnt mit dem Einschieben der Steuerungzustandsregister-Daten,
und zwar beginnend an der ansteigenden Flanke des EMC0-Taktes 1
(Zustand 1) und endend an der ansteigenden Flanke des EMC0-Taktes
10 (Zustand 10). In Zustand 4 (EMC0-Takt 4) bestimmt der Slave-ASIC,
ob die von der CPU eingeschobene Moduladresse (MA) der Moduladresse
(MA_IN) entspricht, die beim Hochfahren eingegeben wurde, und wenn
dies so ist, wird "My_addr" gesetzt. Falls die Adressen
nicht übereinstimmen,
wird "My_addr" nicht gesetzt, und
die Zustandsmaschine fährt
fort, durch die verbleibenden Zustände zu gehen, um die richtige
EMD-Bustreibersteuerung und die Steuerregisterparitätsprüfungen abzuklären. In
Zustand 10 bestimmt der Slave-ASIC die Art der durchzuführenden
Transaktion und wechselt dann beim nächsten EMC0-Takt entweder in
die Schreib- oder in die Lesezustandsmaschine.
-
Während einer
Schreibtransaktion schiebt der Slave-ASIC Schreibdaten ein, und
zwar beginnend mit Zustand 11 (EMC0-Takt 11) und endend mit Zustand
20 (EMC0-Takt 20). Während
des Zustands 11 wird auch die Steuerregisterparität geprüft. Falls ein
Fehler im Steuerregister erkannt wird, kehrt die Schreibzustandsmaschine
zurück
in einen Ruhezustand und die Steuerungzustandsmaschine kehrt dann
beim nächsten
EMC0-Takt in ihren Ausgangszustand zurück. Der EXT1-Daten-Port wird nicht gestört und das
MSTR_IN-Bussteuersignal wird inaktiv. Wenn kein Steuerregister-Paritätsfehler
erkannt wird, werden die Schreibdaten entsprechend eingeschoben.
In Zustand 20 wird das MSTR_IN-Bussteuersignal freigegeben und in
Zustand 21 bereitet die Zustandsmaschine die EMD-Bussteuersignale
für eine Rückantwort
an die CPU vor. Wenn "My_addr" gültig ist,
wird das MY_SLAVE_OUT-Bussteuersignal
gesetzt. Wenn "My_addr" ungültig ist,
wird das NEXT_SLAVE_OUT-Bussteuersignal nur dann gesetzt, wenn die
CPU ein Modul mit einer höheren Adresse
adressiert hat.
-
In
Zustand 22 prüft
der Slave-ASIC die Parität
der Schreibdaten. Wenn ein Schreibdaten-Paritätsfehler erkannt wird, gibt
der Slave-ASIC eine "Ungültig"-Bestätigung (11)
zurück
an die CPU und präsentiert
keine neuen Daten am EXT1-Daten-Port. Wenn kein Schreibdaten-Paritätsfehler
erkannt wird, gibt der Slave-ASIC eine "Gültig"-Bestätigung
(01) zurück
an die CPU, dekodiert die Registeradresse (RA) und aktiviert neue
Daten am EXT1-Daten-Port, wenn die Registeradresse "C" (hex) dekodiert worden ist. Wenn ein
anderes Register dekodiert wird, gibt die Zustandsmaschine dennoch
eine gültige
Bestätigung
zurück
an die CPU, präsentiert
dem EXT1-Daten-Port jedoch keine neuen Daten. Dies gilt nur für den Betrieb
in Modus 0. An der ansteigenden Flanke des EMC0-Taktes 24 kehrt
die Schreibzustandsmaschine in einen Ruhezustand zurück und die
Steuerungzustandsmaschine kehrt in ihren Ausgangszustand zurück. Auf
diese Weise wird die Schreibbustransaktion in Modus 0 abgeschlossen.
-
Die
Lesetransaktion in Modus 0 wird in 6 dargestellt.
Dort wird eine Lesetransaktion in Modus 0 gezeigt, bei der die CPU
RA8(hex) adressiert. Hervorzuheben ist, dass die Steuerungzustandsmaschine
genauso funktioniert wie die weiter oben beschriebene Schreibbustransaktion,
außer dass
sie jetzt in Zustand 10 in die Schreibzustandsmaschine wechselt.
In Zustand 11 gibt die Schreibzu standsmaschine das EMD-Bussteuersignal MSTR_IN
frei, wählt
den bidirektionalen EMD-Port (EMD_TRI_EN) als Ausgang aus und prüft die Steuerregisterparität. Wenn
ein Paritätsfehler
auftritt, kehrt die Lesezustandsmaschine in einen Ruhezustand zurück und die
Steuerungzustandsmaschine kehrt an der nächsten ansteigenden Flanke
des EMC0-Taktes
in einen Ausgangszustand zurück. Wenn
kein Fehler erkannt wird, geht die Lesezustandsmaschine an der nächsten ansteigenden
Flanke des EMC0-Taktes weiter zu Zustand 12.
-
In
Zustand 12 bereitet die Zustandsmaschine die EMD-Bussteuersignale für eine Rückantwort an die CPU vor, indem
sie das Bussteuersignal MY_SLAVE_OUT setzt. In Zustand 12 wird auch
die Registeradresse (RA) dekodiert, um die Datenquelle zu bestimmen.
Wenn RA zu "0" dekodiert, dann
werden die ID_BUF-Daten aktiviert; wenn RA zu "8" dekodiert,
dann wird der EXT0-Datenbus aktiviert. Wenn eine andere Adresse
dekodiert wird, dann wird der hex-Wert FF aktiviert. An der abfallenden
Flanke von EMC0 12 wird das "R"-Register mit geeigneten Daten
geladen, und zwar entweder vom EXT0-Datenbus mit den ID_BUF-Daten
oder mit dem Standardwert FF. In dem in 2 dargestellten
Fall werden die EXT0-Daten in das "R"-Register
geladen. An der nächsten
ansteigenden Flanke des EMC0-Taktes (Zustand 13) schiebt die Lesezustandsmaschine
das Lesedatenbit 7 auf der EMD-Leitung
ein und das letzte Lesebit 0 wird an der ansteigenden Flanke des EMC0-Taktes
20 (Zustand 20) eingeschoben. Der Slave-ASIC generiert 2 Paritätsbits "PR1" und "PR0" in den 8 Bits der
Lesedaten und schiebt diese Daten auf der EMD-Leitung in den Zuständen 21
und 22 ein. In Zustand 23 werden alle EMD-Bussteuersignale freigegeben,
die Lesezustandsmaschine kehrt in einen Ruhezustand zurück und die
Steuerungsmaschine kehrt in ihren Ausgangszustand zurück. Auf
diese Weise wird die Lesebustransaktion in Modus 0 abgeschlossen.
-
Nachstehend
wird der Betrieb in Modus 1 beschrieben. Es sei daran erinnert,
dass in Modus 1 dieselben Stifte verwendet werden wie für die in
Modus 0 benutzten Erweiterungsmodule. In Modus 1 wird jedoch der
EXT1-Bus als Steuer-Port verwendet. Die verschiedenen Bit-belegungen zur Steuerung
von Modus 1 über
den EXT1-Bus werden unter Bezugnahme auf 7a beschrieben.
-
Nachstehend
wird die Schreibbustransaktion in Modus 1 beschrieben. Zu beachten
ist insbesondere, dass die Steuerregister-Zustandsmaschine und die Schreibzustandsmaschinen-Funktion
bei Modus 1 identisch sind mit denen, die oben für Modus 0 beschrieben wurden.
Im Fall von Modus 1 weichen die externe Port-Nutzung und die verfügbaren Register jedoch
ab von Modus 0. In Modus 1 wird der EXT1-Daten-Port als Steuer-Port für die externe
Dekodierschaltung verwendet und der EXT0-Daten-Port ist ein bidirektionaler
Daten-Port. Es lässt
sich erkennen, dass in Modus 0 genau dieselben Stifte wie in Modus
1 Anwendung finden. Mit anderen Worten: Für die beiden unterschiedlichen
Arten von E/A-Erweiterungsmodulen ist keine zusätzliche oder modifizierte Schalttechnik
erforderlich. Die Erfindung berücksichtigt
den Anschluss beider Modularten unter Nutzung derselben Stifte.
Nur die Modi müssen
geändert
werden und es wird eine Universalverbindung für eine Mehrzahl von Erweiterungsmodulen
vorgesehen.
-
Wie
in 7b und 8 dargestellt werden die Schreibdaten
am EXT0-Daten-Port an der ansteigenden Flanke des EMC0-Taktes 21
aktiviert und haben für
drei Taktperioden Gültigkeit.
Die Registeradresse (RA[3:0]) wird an der abfallenden Flanke der
EMC0-Takte 5, 6, 7 bzw. 8 auf den EXT1-Daten-Port getaktet. Alle
16 Registeradressen stehen für
externes Dekodieren zur Verfügung.
Die WRSTRB wird an der ansteigenden Flanke des EMC0-Taktes 22 gesetzt
und an der abfallenden Flanke des EMC0-Taktes 22 gelöscht. Das
Signal BUSY wird an der abfallenden Flanke des EMC0-Taktes 16 gesetzt
und an der abfallenden Flanke des EMC0-Taktes 24 gelöscht. Wenn
ein Paritätsfehler
im WRITE-Byte erkannt wird, behalten sowohl die ASIC-Register als
auch die externen Register ihren zuletzt empfangenen Wert. Ausführlichere Informationen
zur Zeitablaufsteuerung sind 7b und 8 zu
entnehmen.
-
Die
Schreibbustransaktion in Modus 1 wird nun unter Bezugnahme auf 9 und 10 beschrieben.
Die Steuerregister-Zustandsmaschine und die Schreibzustandsmaschinen-Funktion
sind identisch mit denen von Modus 0, jedoch weichen die Nutzung
des externen Ports und die verfügbaren
Register gegenüber
Modus 0 ab. In Modus 1 wird der EXT1-Daten-Port als Steuer-Port für die externe
Dekodierschaltung benutzt und der EXT0-Daten-Port ist ein bidirektionaler
Daten-Port. Die CPU kann auch auf alle 16 Register in Modus 1 zugreifen,
wobei Register 0 weiterhin das ID-Register bleibt.
-
In
einem bevorzugten Ausführungsbeispiel wird
das ID-Register von der Registeradresse (RA) "00 hex" adressiert und in DWG 2808000, Abschnitt 8,
definiert. Der Slave-ASIC füllt
Bit 7 mit einer "0" und die übrigen 7
Bits sind gemäß dem jeweils
benutzten Modultyp fest verdrahtet. Gemäß ID-Registerdefinition arbeitet
der Slave-ASIC im ASIC-Modus 0 nur für die ID-Registerwerte 01,
04 und 05 hex. Alle anderen ID-Registerwerte arbeiten in Modus 1.
Natürlich
sind die hier festgelegten, spezifischen Parameter nur beispielhaft.
Fachleute auf diesem technischen Gebiet werden wissen, dass sie
innerhalb des Anwendungsbereichs der vorliegenden Erfindung modifizierbar
sind.
-
Die
vorliegende Erfindung bietet ein universales Verfahren für eine Paritätsprüfung für alle Modi und
Arten von Bustransaktionen, d. h. Schreib- und Lesetransaktionen. 11 bis 13 stellen Schreib-
und Lesetransaktionen in Modus 1 dar, die verschiedene Paritätsfehler
aufweisen. Insbesondere verdeutlichen die Abbildungen den Busbetrieb bzw.
die Busreaktion unter diesen Umständen. Bustransaktionen in Modus
0 reagieren auf diese Fehler auf die gleiche Weise. Wiederum sorgt
die Erfindung für
eine universale Reaktion auf eine Mehrzahl von Erweiterungsmodulen.
Ausführlicher
stellt 11 einen Steuerregister-Paritätsfehler
während
einer Schreibtransaktion in Modus 1 dar. In diesem Fall reagiert
der EXT1-Bus auf einen Paritätsfehler
in den Bits RA3:RA0. Infolgedessen werden die Bits EXT1(3):EXT1(0)
aktiviert. Dies wiederum führt
dazu, dass das Steuersignal MSTR_IN ausgeschaltet und die Transaktion
abgebrochen wird. 12 stellt einen Schreibregister-Paritätsfehler
während
einer Schreibtransaktion in Modus 1 dar. In ähnlicher Weise wie oben zeigen
die Bits RA3:RA0 einen Paritätsfehler
an, und in Reaktion darauf schaltet die MSTR_IN-Steuerleitung ab
und die Transaktion wird abgebrochen. 13 stellt
einen Steuerregister-Paritätsfehler
während
einer Lesetransaktion in Modus 1 dar. Gleiches wie oben gilt auch
für diesen
Fall, wobei die Bits RA3:RA0 einen Paritätsfehler anzeigen und das Steuersignal
MSTR_IN ausgeschaltet wird. Die vorliegende Erfindung stellt also
eine einheitliche Paritätsprüfung be reit,
bei der in allen Modi und bei allen Transaktionsarten, d. h. Schreiben
oder Lesen, dieselben Bits benutzt werden.