DE4023471C2 - Steuerungssystem mit Hostcomputer und Kommunikationsschnittstellenschaltung - Google Patents

Steuerungssystem mit Hostcomputer und Kommunikationsschnittstellenschaltung

Info

Publication number
DE4023471C2
DE4023471C2 DE4023471A DE4023471A DE4023471C2 DE 4023471 C2 DE4023471 C2 DE 4023471C2 DE 4023471 A DE4023471 A DE 4023471A DE 4023471 A DE4023471 A DE 4023471A DE 4023471 C2 DE4023471 C2 DE 4023471C2
Authority
DE
Germany
Prior art keywords
interrupt
interface
host
control unit
host processor
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
Application number
DE4023471A
Other languages
English (en)
Other versions
DE4023471A1 (de
Inventor
Shawn L Adams
Jonathan R Engdahl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allen Bradley Co LLC
Original Assignee
Allen Bradley Co LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Allen Bradley Co LLC filed Critical Allen Bradley Co LLC
Publication of DE4023471A1 publication Critical patent/DE4023471A1/de
Application granted granted Critical
Publication of DE4023471C2 publication Critical patent/DE4023471C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)

Description

Die Erfindung betrifft ein Steuerungssystem mit Hostcomputer und Kommunikations­ schnittstellenschaltung gemäß den Merkmalen im Oberbegriff des Patentanspruchs 1, wie sie der US 44 42 504 entnehmbar sind.
Generell befaßt sich die Erfindung mit seriellen Kommunikationsnetzwerken, und insbesondere mit Schnitt­ stellenschaltungen zum Verbinden von digitalen Prozesso­ ren mit seriellen Kommunikationsnetzwerken.
Im Geschäfts- und Bürobereich als auch im Ferti­ gungs- und Betriebsbereich gibt es eine große Anzahl serieller Kommunikationsnetzwerke. Im Geschäftsbereich sind Lokalnetzwerke, beispielsweise unter dem Namen "Ethernet", bekannt, die Personalcomputer, Displaytermi­ nals, Minicomputer, Hauptcomputer, Drucker und Platten­ laufwerke zu einem System miteinander verbinden, in welchem Daten sehr schnell zwischen den einzelnen System­ komponenten übertragen werden können. In ähnlicher Weise sind im Fertigungs- oder Betriebsbereich Lokalbereichs­ netzwerke, beispielsweise unter dem Namen "MAP" bekannt, die Bereichssteuerungen, Displayterminals, Minicomputer, Hauptcomputer, CAD-Systeme, CAM-Systeme, CAE-Systeme und Plattenlaufwerke miteinander verbinden. Die Artenvielfalt der seriellen Kommunikationsnetzwerke ist übermäßig ge­ wachsen. Es hat nicht an Versuchen gefehlt, die Kommu­ nikation in gewissen Bereichen zu standardisieren. Dennoch sind heute hunderte verschiedenartiger Kommu­ nikationsnetzwerke im Gebrauch, und ihre Anzahl nimmt ständig zu.
Bei der Konstruktion digitaler Prozessoren zur Anwendung im kommerziellen Bereich muß man eine Strategie auswählen, um diesen Prozessor mit den seriellen Kommu­ nikationsnetzwerken zu verbinden. Hat bespielsweise der Prozessor eine Rückebene, wie einen "VME-Bus" oder "Multibus", muß man für jedes Kommunikationsnetzwerk eine Schaltungsplatte für diese Rückebene konstruieren. Eine Vielfalt von Prozessorschaltungsplatten und Kom­ munikationsschnittstellenplatten kann man für die Rück­ ebene konstruieren und zusammen in irgendeiner Kombi­ nation verwenden. Nacht der digitale Prozessor anderer­ seits nicht von einer Rückebene Gebrauch, kann man die Schnittstelle zum Kommunikationsnetzwerk hin als inte­ gralen Teil des digitalen Prozessors vorsehen. In diesem Fall muß jeder digitale Prozessor zum Betrieb mit einem besonderen Kommunikationsnetzwerk ausgelegt und kon­ struiert werden. Werden viele Netzwerke angetroffen, muß man für jedes Netzwerk einen Prozessor mit integraler Schnittstellenschaltung vorsehen. Bietet beispielsweise ein Hersteller eine Serie aus drei digitalen Prozessoren mit unterschiedlichen Leistungen und Fähigkeiten an und sollen diese Prozessoren mit drei verschiedenen Kommu­ nikationsnetzwerken zusammen arbeiten können, die auf ihrem Anwendungsgebiet vorkommen, dann sind bei Verwen­ dung einer gemeinsamen Rückebenenarchitektur sechs ver­ schiedene Schaltungsplattenerzeugnisse erforderlich und sogar neun verschiedene Erzeugnisse, wenn die Kommuni­ kationsschnittstelle ein integraler Teil des Prozessors ist.
Wenn eine große Vielzahl digitaler Prozessorerzeug­ nisse mit unterschiedlichen Architekturen und zahlrei­ chen Kommunikationsnetzwerken auf einem Anwendungsgebiet angeboten wird, in welchem solche Prozessoren ver­ wendet werden, ist die zu treffende Auswahl schwierig. Die Firma Allen-Bradley Company, der die Rechte am Erfindungsgegenstand gehören, stellt beispielsweise kostengünstige programmierbare Steuerungen her, wie sie aus der US-PS 4 504 927 bekannt sind, und Program­ mieranschlußgeräte oder Programmierterminals, wie sie aus der US-PS 4 527 250 bekannt sind, die keine Rückebene verwenden. Sie bietet auch programmierbare Steue­ rungen mittlerer Größe an, wie sie z. B. aus der US-PS 4 443 865 bekannt sind, die eine Rückebene haben, ferner große programmierbare Steuerungen, wie sie aus der US-PS 4 442 504 bekannt sind, die eine andere Rückebene verwenden, darüber hinaus zahlreiche numerische Steue­ rungen, wie sie beispielsweise aus der US-PS 4 228 495 bekannt sind, die nochmals von anderen Rückebenen Gebrauch machen, und Zellen- oder Bereichssteuerungen, wie sie in einer am 7. November 1986 eingereichten US-amerikanischen Patentanmeldung Nr. 928 529 beschrieben sind, die wiederum eine andere Rückebene verwenden. Offensichtlich ist es kommerziell nicht durchführbar, für jedes dieser Prozessor­ erzeugnisse und jedes dieser Kommunikationsnetzwerke, auf die die Prozessorerzeugnisse im Fertigungs- oder Betriebsbereich treffen, Kommunikationsschnittstellenmodule oder Kommunikationsschnittstellenschaltungen vorzusehen.
In der US 46 04 500 ist eine Lösung beschrieben, mit der Interruptsignale zwischen Prozes­ soren über einen Bus als Kommunikationsverbindung ausgetauscht werden können, ohne hierfür fest verdrahtete Interruptsignalpfade zwischen den Prozessoren vorsehen zu müssen. Durch ein jedem Prozessor zugeordnetes Bus-Interface wird dafür gesorgt, daß nur jeweils ein Prozessor zu einem Zeitpunkt Daten über den Bus überträgt und daß die für diesen Prozessor vorgesehenen Daten vom Bus herunter geholt werden. Die empfangenen Interruptsignale werden in einen lokalen FIFO-Speicher des empfangenden Prozessors unter Steuerung der Datenübertragung durch den sendenden Prozessor gespeichert. Steht das gespeicherte Inter­ ruptsignal am Ausgang des FIFO-Speichers bereit, veranlaßt eine Interruptsignalsteuereinheit die CPU des Prozessors, das Signal zu lesen und zu bedienen. Das Adressierungsschema für die Interruptsignale ist in einem gemeinsamen Speicher für alle Prozessoren gespeichert, so daß jeder Prozessor entsprechende Interruptsignale für einen bestimmten anderen Prozessor erzeugen kann. Das in dieser US-Patentschrift erläuterte System beruht auf dem direkten Nachrichtenaustausch zwischen den Prozessoren dadurch, daß ein Prozessor Daten in den lokalen Speicher eines anderen Prozessors übertragen kann. Auf ein Steuerungssystem mit einer Protokollmaschine für den Nachrichtenaustausch auf einer Kommunikationsverbindung eines Kommunikationsnetzwerkes gemäß dem Oberbegriff des Anspruchs 1 ist eine solche Lösung nicht anwendbar.
Der Erfindung liegt die Aufgabe zugrunde, ein Steuerungssystem gemäß dem Oberbegriff des Patentanspruchs 1 so weiterzubilden, daß die Kommunikationsschnittstellenschaltung des Systems den Anschluß eines seriellen Kommunikationsnetzwerkes an eine Vielfalt digitaler Prozessoren ermöglicht.
Diese Aufgabe wird durch den Gegenstand des Anspruchs 1 gelöst. Bevorzugte Weiterbil­ dungen sind in den Unteransprüchen definiert.
Die Erfindung schafft einerseits eine intelligente Kommunikationsschnittstellenschaltung, die es ermöglicht, daß ein serielles Kommunikationsnetzwerk an vielfältigste Erzeugnisse oder Produkte angeschlossen werden kann, deren Grundlage ein digitaler Prozessor bildet.
Das erfindungsgemäße Steuerungssystem umfaßt im Prinzip die Kommunikationsschnitt­ stellenschaltung, die in einer Ausführungsform noch eine Netzwerkzugriffseinrichtung enthalten kann. Die Netzwerkzugriffeinrichtung ist über die Kommunikationsverbindung an ein Kommunikationsnetzwerk angeschlossen und kommuniziert mit diesem, um Nach­ richtendaten zu empfangen und auszusenden. Der gemeinsame Speicher dient zum Speichern von Nachrichtendaten, die von der Netzwerkzugriffseinrichtung ausgesendet werden sollen, ferner zum Speichern von Nachrichtendaten, die von der Netzwerkzugriffseinrichtung empfangen worden sind, sowie zum Speichern einer Gruppe oder eines Satzes Hostinterrupt­ merker und einer entsprechenden Gruppe oder eines entsprechenden Satzes Bestätigungs- oder Quittungsmerker sowie schließlich zum Speichern einer Gruppe oder eines Satzes Schnittstelleninterruptmerker und einer entsprechenden Gruppe oder eines entsprechenden Satzes Bestätigungs- oder Quittungsmerker. Ein gemeinsamer Datenbus und ein gemeinsamer Adressenbus dienen zum Verbinden des gemeinsamen Speichers mit der Netzwerkzugriffs­ einrichtung und dem Hostprozessor. Die Schnittstellensteuereinheit ist mit dem Host­ prozessor, dem gemeinsamen Speicher und der Netzwerkzugriffseinrichtung verbunden und derart betreibbar, daß, wenn Nachrichtendaten von der Netzwerkzugriffseinrichtung empfan­ gen werden, ein Hostinterruptmerker umgeschaltet und ein Interruptsignal für den Host erzeugt wird. Ferner spricht die Schnittstellensteuereinheit auf ein Interruptsignal vom Hostprozessor an, um den Satz Schnittstelleninterruptmerker zu überprüfen und festzustellen, welcher umgekippt oder umgeschaltet worden ist, um ihren entsprechenden Bestätigungs- oder Quittungsmerker umzuschalten.
Nach der Erfindung wird somit ein Satz interrupt- oder unterbrechungsgesteuerter Vorgänge durch eine sehr einfache Interrupt- oder Unterbrechungsstruktur multiplext. Es steht dem Hostprozessor und der Schnittstellensteuereinheit jeweils nur eine einzige Interrupt- oder Unterbrechungsleitung zur Verfügung, jedoch können durch die Verwendung eines Satzes Hostinterrupt- oder Hostunterbrechungsmerker und eines Satzes Schnittstellensteuereinheits- Unterbrechungs- oder -Interruptmerker in dem gemeinsamen Speicher viele verschiedene Vorgänge angezeigt werden.
Nach der Erfindung kann somit eine Gruppe oder ein Satz Interruptvorgänge oder Unterbrechungen multiplext werden, ohne daß eine teure Speicherschutzschaltung oder "semaphore" Schemata für den Multiplexbetrieb erforderlich wären. Eine Unterbrechung wird angezeigt, wenn der Unterbrechungsmerker und sein Quittungsmerker im entgegengesetzten logischen Zustand sind. Die Schnittstellensteuereinheit bestätigt die Bedienung einer angeforderten Unterbrechung dadurch, daß der entsprechende Quittungsmerker umgeschaltet wird und er dadurch in denselben Zustand wie der Unterbrechungsmerker gebracht wird. Sie kann Hostunterbrechungsmerker ändern, jedoch kann sie aufgrund von Software-Vorschrift nicht Schnittstellensteuereinheit-Unterbrechungsmerker ändern. Umgekehrt kann der Host Schnittstellensteuereinheit-Unterbrechungsmerker ändern, aber nicht Hostunterbrechungsmerker. Die Schnittstellensteuereinheit und der Host können aber alle Merker lesen, um festzustellen, ob eine Unterbrechungsanforderung anhängig ist (d. h. Unterbrechungsmerker und Quittungsmerker sind in entgegengesetzten logischen Zuständen) oder ob sie bedient worden ist (der Unterbrechungsmerker und der Quittungsmerker sind im selben logischen Zustand).
Eine vorteilhafte Weiterbildung der Erfindung sieht auch Mittel zum Weiterleiten von Nachrichtendaten zwischen dem Hostprozessor und der Kommunikationsschnittstellen­ schaltung dadurch vor, daß der gemeinsame Speicher Datenstrukturen für ankommende Nachrichten, ausgehende Nachrichten und Netzwerkmanagement- oder Netzwerk­ verwaltungsdaten als auch die Unterbrechungs- oder Interruptmerker für jede dieser Datenstrukturen speichert. Wenn entweder der Hostprozessor oder die Kommunika­ tionsschnittstellenschaltung durch ein Interruptsignal unterbrochen ist, werden diese Unterbrechungs- oder Interruptmerker überprüft, um festzustellen, welche Datenstruktur zu bedienen ist und welche Priorität diese Bedienung hat. Auf diese Weise können Nachrichten und ihre Quittierung effizient weitergeleitet werden.
Weiterhin wird es nach der Erfindung vermieden, daß irgendeiner der Prozessoren vom ge­ meinsamen Speicher ausgeschlossen wird. Andere Systeme verwenden ein "Bussperr"-Signal, das es einem Prozessor ermöglicht, den anderen Prozessor vom gemeinsamen Speicher zu sperren, während er Funktionen ausführt. Dies kann zu einer Verlangsamung der Arbeitsweise der Kommunikationsschnittstelle führen und ihren Einsatz mit höheren Baudgeschwindig­ keiten verhindern.
Im folgenden soll die Erfindung an Hand von Zeich­ nungen beispielshalber erläutert werden. Es zeigt:
Fig. 1 eine bildliche Darstellung eines program­ mierbaren Steuerungssystems, das von der Erfindung Gebrauch macht,
Fig. 2 ein Blockschaltbild des Systemsteuermoduls, der ein Teil des Systems nach Fig. 1 bildet,
Fig. 3 ein Blockschaltbild eines Fern-E/A-Abtast­ moduls, der ebenfalls ein Teil des Systems nach Fig. 1 bildet,
Fig. 4 ein Blockschaltbild einer intelligenten Kommunikationsschnittstellenschaltung, die in den Modulen nach Fig. 2 und 3 verwendet wird,
Fig. 5 ein Schaltbild einer Netzwerkzugriffs­ schaltung, die ein Teil der Schaltung nach Fig. 4 bildet,
Fig. 6 ein Abbild (Map) eines gemeinsamen RAM, der ein Teil der Schaltung nach Fig. 4 bildet,
Fig. 7 ein Abbild (Map) eines Verhandlungs­ segments, das ein Teil des Speicherabbilds nach Fig. 6 bildet,
Fig. 8 ein Flußdiagramm eines Programms, das von einer Schnittstellensteuereinheit in der Schaltung nach Fig. 4 ausgeführt wird,
Fig. 9 ein Abbild (Map) eines Quittier- oder Handshakesegments, das ein Teil des Speicherabbilds nach Fig. 6 bildet,
Fig. 10 eine bildliche Darstellung von Daten­ strukturen, die in einem Kanal-A- und einem Kanal-B- Segment gespeichert sind, welche ein Teil des Speicher­ abbilds nach Fig. 6 bilden, und
Fig. 11 ein Flußdiagramm einer Unterbrechungs­ serviceroutine, die von der Schnittstellensteuereinheit der Schaltung nach Fig. 4 ausgeführt wird.
Zur Erläuterung eines bevorzugten Ausführungsbei­ spiels der Erfindung wird auf eine in Fig. 1 dargestellte programmierbare Steuerung 10 Bezug genommen, die in einem Gestell oder Rahmen 12 untergebracht ist, der eine Reihe von Schlitzen aufweist, die eine Anzahl gedruckter Schaltungsplattenmodule aufnehmen. Diese Funktionsmodule sind mit einer Mutterplatte verbunden, die sich längs der Rückseite des Rahmens 12 erstreckt und dort eine Rück­ ebene 11 vorsieht. Die Rückebene 11 weist eine Anzahl Modulverbinder auf, die über ein elektrisch leitendes Muster auf der Rückebene miteinander verbunden sind. Die Rückebene 11 sieht eine Reihe Signalbusse vor, mit denen die Module verbunden sind. Der Rahmen 12 enthält einen Energieversorgungsmodul 14, einen Systemsteuermodul 16, eine Anzahl programmausführender Prozessormodule 18 und eine Anzahl Fern-Ein/Ausgabe(E/A)-Abtastmodule 20.
Bis zu vier Fern-E/A-Abtastmodule 20 bilden eine Schnittstelle zwischen der Steuerung 10 und externen Fern-E/A-Rahmen 17, die über serielle E/A-Datenverbindun­ gen, wie die Verbindung 15, angeschlossen sind. Jeder Fern-E/A-Rahmen 17 hat eine Anzahl lokaler E/A-Module 19, die mit einzelnen Sensoren und Aktoren verbunden sind, welche sich bei einer gesteuerten Anlage oder Maschine befinden. Die lokalen E/A-Module 19 können viele verschie­ dene Bauformen annehmen und beispielsweise Module um­ fassen, die Gleichstromeingänge oder -ausgänge, Wechsel­ stromeingänge oder -ausgänge und analoge Eingänge oder Ausgänge aufweisen, und es kann sich auch um Module zur Lageeinstellung oder Positionierung mit offenem Steuerkreis oder geschlossener Regelschleife handeln. Der Fern-E/A- Rahmen 17 enthält auch einen Adaptermodul 19', wie er bei­ spielsweise aus der US-PS 4 413 319 bekannt ist, der mit dem seriellen Kommunikationsnetzwerk 15 verbunden ist und Nachrichtendaten zwischen den E/A-Modulen 19 und dem Netzwerk 15 übermittelt.
Der Systemsteuermodul oder die Systemsteuereinheit 16 ist über ein Kabel 25 an ein Programmieranschlußgerät oder Programmierterminal 24 angeschlossen, das dazu dient, Anwenderprogramme in die programmierbare Steuerung zu laden und den Betrieb der programmierbaren Steuerung zu gestalten bzw. zu konfigurieren als auch die Arbeitsweise der programmierbaren Steuerung zu überwachen. Das Terminal 24 ist ein Personalcomputer, der so programmiert ist, daß es einem Anwender möglich ist, die Systemsteuerprogramme zu entwickeln. Die Steuerprogramme werden in die program­ mierbare Steuerung heruntergeladen, und das Terminal 24 kann von der Systemsteuereinheit 16 abgetrennt werden, falls eine weitere Überwachung nicht erforderlich ist. Die Systemsteuereinheit 16 kann auch über ein Kabel 26 an ein Lokalbereichsnetzwerk 28 angeschlossen sein, über das die Systemsteuereinheit 16 Daten und Programmierbefehle erhalten als auch Statusinformation und Berichtsdaten an einen Zentralcomputer abgeben kann. Dadurch ist es einem Zentralcomputer oder einem Zentralterminal möglich, den Betrieb einer Anzahl programmierbarer Steuerungen auf einer Fertigungsebene zu programmieren und zu steuern.
Wie es aus Fig. 2 hervorgeht, sieht der Systemsteuer­ modul 16 eine Nachrichtenschnittstelle für die programmier­ bare Steuerung in bezug auf externe Anschlußeinheiten oder Terminals und Lokalbereichsnetzwerke vor. Der Systemsteuer­ modul oder die Systemsteuereinheit 16 nimmt auch System­ verwaltungsfunktionen wahr, beispielsweise eine Anzeige des Systemstatus und Überwachung des Zugriffs zur Rück­ ebene 11. Während des Normalbetriebs der programmierbaren Steuerung sorgt die Systemsteuereinheit 16 für die Kom­ munikation mit den externen Geräten, die an sie ange­ schlossen sind. Zu diesen externen Geräten zählen das Netzwerk 28 und das Programmierterminal 24. Eine der bedeutsamen Aufgaben besteht darin, mit dem Terminal 24 zu kommunizieren, so daß Information bereitgestellt wer­ den kann, die es dem Benutzer gestattet, die Arbeitsweise des Systems zu überwachen und fehlerhafte Sensoren oder Aktoren zu erkennen. Eine weitere Aufgabe der Systemsteuer­ einheit 16 ist es, mit einem Zentralcomputer oder einer programmierbaren Partnersteuerung über das Lokalbereichs­ netzwerk 28 Daten auszutauschen. Dies gestattet es dem Zentralrechner, von einer oder einer Anzahl programmier­ barer Steuerungen statistische Daten bezüglich ihrer Ar­ beitsweise zu sammeln.
Der Systemsteuermodul 16 ist mit Rückebenebussen 21 bis 23 verbunden und in drei Abschnitte unterteilt, und zwar einen Rückebeneschnittstellenabschnitt, einen Pro­ zessorabschnitt und einen Kommunikationsabschnitt. Der Rückebeneschnittstellenabschnitt überwacht den Rückebene­ zugriff für alle Gestell- oder Rahmenmodule und bildet die Schnittstelle zwischen dem Systemsteuermodul 16 selbst und der Rückebene 11. Der Prozessorabschnitt führt ein Überwachungs- oder Supervisorprogramm für die Steuerung 10 aus. Der Kommunikationsabschnitt ist in erster Linie ver­ antwortlich für die Kommunikation mit dem externen Ter­ minal 24 über die serielle Kommunikationsleitung 25 und mit dem Lokalbereichsnetzwerk 28 über eine Leitung 26.
Wie es ferner aus Fig. 2 hervorgeht, ist der Pro­ zessorabschnitt mit einem Satz Busse verbunden, die Steuerleitungen 61, einen 16-Bit-Datenbus 62 und einen 23-Bit-Adreßbus 63 umfassen. Der Zugriff zu diesen Bussen wird mittels einer Schieds- oder Arbitrationsschaltung 64 gesteuert. Der Prozessorabschnitt ist um einen 16-Bit- Mikroprozessor 66 herum aufgebaut, bei dem es sich bei­ spielsweise um das Modell 68010 hergestellt von Motorola, Inc. handeln kann. Der Mikroprozessor führt einen Pro­ grammcode aus, der in einem Festwertspeicher (ROM) 68 gespeichert ist. Der verwendete Mikroprozessor ist im wesentlichen ein speicherorientiertes Bauelement, und er hat keine direkt an ihn angeschlossene Eingabe/Ausgabe- Leitungen. Der Zugriff des Mikroprozessors zu anderen Bauelementen oder Baueinheiten auf dem Prozessorbus muß daher dadurch erfolgen, daß Adressen auf den Bus 63 aus­ gegeben werden. Die vom Mikroprozessor 66 ausgesandte Adresse wird in einer Adreßdecodierschaltung 70 deco­ diert mit dem Ergebnis, daß geeignete Steuersignale für die zum Zugriff ausgewählte Baueinheit erzeugt werden. Der Prozessorabschnitt enthält auch einen Interrupt- oder Unterbrechungsprozessor 72, der die Unterbrechungen zum Mikroprozessor 66 steuert und die geeigneten Befehls­ adreßvektoren liefert.
Eine Datentransferquittier- und Busfehlerschaltung (DTACK/BERR) 74 ist ebenfalls an den Prozessorsteuerbus 61 angeschlossen. Die Schaltung 74 spricht auf Signale von verschiedenartigen Baueinheiten im Prozessorabschnitt an und hat die Aufgabe, die Beendigung eines Datentransfers zu quittieren oder zu bestätigen und im Falle einer untaugli­ chen Adressierung oder eines Fehlers beim Datentransfer Busfehlersignale abzugeben. Diese Signale wirken auf den Mikroprozessor 66 ein, der dann eine Abhilfe- oder Korrek­ turmaßnahme einleitet. Der Prozessorabschnitt enthält auch eine Taktschaltung 89, die den Hauptsystemtaktgeber und einen Echtzeittaktgeber enthält. Eine Systemstatus­ schaltung 88 erhält Eingangssignale, die den Status des gesamten Systems 10 betreffen, und liefert eine Anzeige über diesen Status.
Ein Hauptdirektzugriffsspeicher (RAM) 69 für die Systemsteuereinheit 16 ist ebenfalls mit den Prozessor­ bussen 61 bis 63 verbunden. Der RAM 69 ist ein stati­ scher Speicher, der für die gesamte Steuerung 10 als Systemspeicher dient. Die anderen Module in dem System können zu diesem Hauptspeicher 69 direkt über die Rück­ ebene 11 Zugriff erlangen, und zwar ohne Eingriff des Mikroprozessors 66.
Wie es ferner aus Fig. 2 hervorgeht, ist der Pro­ zessorabschnitt der Systemsteuereinheit 16 über eine Anzahl Baueinheiten, die mit beiden Bussätzen verbunden sind, an die Rückebenebusse angeschaltet. So ist der Rückebenedatenbus 22 über einen Satz bidirektionaler Datenübertragungstore 78 mit dem Prozessordatenbus 62 verbunden, und der Rückebeneadreßbus 23 ist über einen weiteren Satz bidirektionaler Tore 76 mit dem Prozessor­ adreßbus 63 verbunden. Wenn die Systemsteuereinheit 16 die Kontrolle oder Steuerung über die Rückebene 11 der programmierbaren Steuerung 10 zu erlangen sucht, spricht eine Master- oder Hauptbetriebsartsteuerschaltung 81 auf Signale an den Steuerleitungen des Prozessorbusses 61 an und liefert geeignete Steuersignale über den Rückebene­ steuerbus 21, um zu anderen Modulen in dem Rahmen 12 Zugriff zu erlangen.
Wenn ein anderer Modul in dem Rahmen 12 Zugriff zu der Systemsteuereinheit 16 zu erlangen sucht, beispiels­ weise um den Inhalt des Haupt-RAM 69 zu lesen, wird die Systemsteuereinheit der Steuerung der Rückebene 11 durch diesen anderen Modul untergeordnet. Unter diesem Umstand spricht dann eine Slave- oder Nebenbetriebsartsteuer­ schaltung 82 in der Systemsteuereinheit 16 auf die Adresse der Systemsteuereinheit an, die am Rückebene­ adreßbus 23 erscheint, und auch auf Steuersignale an den Steuerleitungen des Rückebenebusses 21, die von dem anderen Modul stammen. Als Antwort darauf liefert die Nebenbetriebsartsteuerschaltung 82 Signale an die Über­ tragungstore 76 und 78, um es dem anderen Rückebenemodul zu ermöglichen, Zugriff zur Systemsteuereinheit 16 zu erlangen. In diesem zuletztgenannten Fall befindet sich die Hauptbetriebsartsteuerschaltung 81 in einem Schlafzustand. Die beiden Bustore 76 und 78 erhalten Freigabesteuersignale von der Haupt- oder Nebenbetriebsartsteuerschaltung 81 bzw. 82 über die Leitungen des Steuerbus 61 in Abhängigkeit von der Betriebsart der Rückebenekommunikation.
Eine Rückebenearbitrationsschaltung 84 überwacht den Zugriff zur Rückebene 11 und schafft eine Lösung für miteinander in Konflikt stehende Zugriffsanforderungen von den Modulen in dem System. Die Rückebenearbitrationsschaltung 84 verwendet ein rotierendes Prioritätssystem zum Festlegen, welchem von mehreren Modulen, die gleich­ zeitig den Zugriff zur Rückebene suchen, der Zugriff ge­ stattet wird. Bei diesem rotierenden Prioritätssystem verschiebt sich die Prioritätsreihenfolge immer dann, wenn ein Modul die Steuerung oder Kontrolle über die Rückebene 11 aufgibt.
Die E/A-Abtastmodule 20 sammeln Eingabesensordaten zur Verwendung durch die Programmausführungsprozessormo­ dule 18. Wie es aus Fig. 1 und 3 hervorgeht, verbindet ein Fern-E/A-Abtastmodul 20 die programmierbare Steue­ rung 10 mit einem oder mehreren Fern-Eingabe/Ausgabe- Rahmen 17, die einzelne E/A-Module 19 enthalten, welche an Eingabegeräte oder Ausgabegeräte der programmierbaren Steuerung 10 angeschaltet sind. Jeder Abtastmodul 20 fordert periodisch Eingabedaten an, die den Status der Eingabegeräte betreffen, welche mit den Fern-E/A-Rah­ men 17 verbunden sind, und speichert diese Eingabedaten in der Eingabebildtabelle des Moduls, so daß sie von anderen Modulen der Steuerung, wie den Prozessormodulen 18, gelesen werden können. Der Abtastmodul 20 enthält auch eine Bildtabelle für Ausgabedaten, die er von anderen Modulen der Steuerung empfängt, beispielsweise von den Prozessormodulen 18. In regelmäßigen Zeitabständen werden die aktualisierten Ausgabedaten in der Ausgabebildtabelle des Abtastmoduls zu den jeweiligen Fern-Eingabe/Ausgabe- Rahmen 17 transferiert, um die verschiedenen Aktoren zu steuern, die mit diesen Rahmen verbunden sind.
Jeder Fern-E/A-Abtastmodul 20 ist mit den drei Rückebenebussen 21 bis 23 verbunden. Der E/A-Abtastmodul 20 enthält zwei Sätze interner Busse, und zwar Speicher­ zugriffbusse 121 bis 123 und Mikroprozessorbusse 131 bis 133, die mit der Rückebene 11 über einen Satz Adreßbus­ tore 124 und einen Satz Datenbustore 126 verbunden sind. Diese beiden Übertragungstore werden von einer Inter- oder Zwischenbussteuerschaltung 128 kontrolliert oder gesteuert, die über den Speichersteuerbus 121 Signale an die Tore 124 und 126 aussendet. Ein lokaler Direktzugriffs­ speicher, der mit Haupt-RAM 134 bezeichnet wird, ist mit den drei Speicherbussen 121 bis 123 verbunden. Er speichert die Eingabebildtabelle für die Sensorinforma­ tion, die von den Fern-E/A-Rahmen 17 in den E/A-Abtast­ modul 20 eingegeben werden, und er speichert auch die Ausgabebildtabelle für die Ausgabedaten, die von den Fern-E/A-Rahmen 17 ausgegeben werden.
Die Zwischenbussteuerschaltung 128 sendet auch Steuersignale an eine E/A-Datenarbitrationsschaltung 130, die in Konflikt miteinander stehende Zugriffsanforderun­ gen zu den Speicherbussen 121 bis 123 von der Rückebene 11 und den Mikroprozessorbussen 131 bis 133 her auflöst. Zwei Sätze Übertragungstore, und zwar Adreßtore 136 und bidirektionale Tore 138, verbinden die Speicherbusse 121 bis 123 mit den Mikroprozessorbussen 131 bis 133 und erhalten Steuersignale von der E/A-Datenarbitrations­ schaltung 130 über den Speichersteuerbus 121.
Der Betrieb des Fern-E/A-Abtastmoduls 20 wird von einem 8-Bit-Mikroprozessor 140 gesteuert, der mit den drei Mikroprozessorbussen 131 bis 133 ver­ bunden ist. Bei dem Mikroprozessor 140 kann es sich um einen handelsüblichen Mikroprozessor Modell Z80 von Zilog, Inc. handeln. Der Mikroprozessor 140 arbeitet in Abhängigkeit von einem gespeicherten Programm, um Nach­ richtendaten von einem Kommunikationsabschnitt 141 an den Haupt-RAM 134 auszusenden und Nachrichtendaten von dem Kommunikationsabschnitt 141 zu empfangen. Der Kommu­ nikationsabschnitt 141 vermittelt Nachrichtendaten zwi­ schen dem Mikroprozessor 140 und jeder der seriellen Verbindungen 15.
Die oben beschriebenen Module sind typisch für das Umfeld, in dem die Erfindung angewendet wird. Ein Host­ prozessor (wie der Mikroprozessor 66 oder 140), der eine Anzahl von Funktionen durchführt, muß ebenfalls über eine oder mehrere serielle Kommunikationsverbindungen oder Netzwerke kommunizieren. Der Hostprozessor tauscht Nachrichtendaten mit dem Kommunikationsnetzwerk über einen Kommunikationsabschnitt aus, der verantwortlich für die Ausführung des besonderen Netzwerkprotokolls ist, welches zum Senden oder Empfangen von Nachrichtendaten erforderlich ist. Der Hostprozessor hat die Fähigkeit, Daten zu lesen, einschließlich Nachrichtendaten, und zwar aus einem Speicher, der mit dem Kommunikationsab­ schnitt geteilt wird, und er kann Daten in diesen gemein­ samen Speicher schreiben.
Nach Fig. 4 ist ein bevorzugtes Ausführungsbeispiel der Kommunikationsschnittstellenschaltung so ausgelegt, daß ein Hostprozessor mit einer von zwei seriellen Kom­ munikationsverbindungen 200 und 201 verbunden wird. Der Hostprozessor (in Fig. 4 nicht gezeigt) ist mit der Kommunikationsschnittstellenschaltung über einen Satz bidirektionaler Tore 202 verbunden, die den Hostdatenbus 203 mit einem gemeinsamen Datenbus 204 verbinden. Der Hostadreßbus 204 ist verbunden mit einem gemeinsamen 15-Bit-Adreßbus 206 mittels eines Satzes von 15 Toren 207, die zusammen mit den Datentoren 202 freigegeben werden, wenn über eine "en"-Steuerleitung 208 ein niedriges lo­ gisches Signal empfangen wird. Der Host initiiert einen Lese- oder Schreibzyklus dadurch, daß er eine Anforde­ rungssteuerleitung 215 beaufschlagt, und die Schnitt­ stellenschaltung 210 bestätigt oder quittiert diese An­ forderung dadurch, daß sie eine Datentransferbestäti­ gungs- oder Datentransferquittungssteuerleitung 216 beaufschlagt, wenn der Zugriff zu den gemeinsamen Bussen 204 und 206 erteilt ist. Die Host-Lese/Schreib-Steuer­ leitung 209 bestimmt die Richtung des Datentransfers durch die Datentore 202.
Die gemeinsamen Busse 204 und 206 sind an einen gemeinsamen Direktzugriffsspeicher (RAM) 211 angeschlos­ sen, der von der Schnittstellenschaltung 210 über eine "WE"-Steuerleitung 212 und eine "ICS"-Steuerleitung 213 gesteuert wird. Die Schnittstellenschaltung 210 ist auch an die gemeinsamen Busse 204 und 206 angeschlossen, und sie betätigt die "en"-Steuerleitung 208, um Zugriff zum gemeinsamen RAM 211 durch den Hostprozessor zu erlangen.
Wie es noch im einzelnen erläutert wird, dient der gemeinsame RAM 211 als Mittel zum Austauschen von Infor­ mation, einschließlich Nachrichtendaten, zwischen dem Hostprozessor und der Kommunikationsschnittstelle. Nach­ richtendaten können in den gemeinsamen RAM 211 entweder durch den Hostprozessor oder die Schnittstellenschaltung 210 geschrieben werden, und die andere Baueinheit kann die Nachrichtendaten lesen, nachdem das Vorhandensein dieser Nachrichtendaten signalisiert worden ist. Ferner werden, wie es noch im einzelnen beschrieben wird, in dem gemeinsamen RAM 211 Daten gespeichert, die von der Kommunikationsschnittstellenschaltung zum richtigen Betrieb mit dem Hostprozessor benötigt werden, als auch Daten gespeichert, die die Kommunikationsschnittstellen­ schaltung für die besondere Anwendung konfigurieren.
Immer noch unter Bezugnahme auf Fig. 4 sei bemerkt, daß die Schnittstellenschaltung 210 eine anwendungs­ spezifische integrierte Schaltung (ASIC) ist, die eine Reihe von Funktionen ausführt. Sie handhabt die Zugriffs­ arbitration zu dem gemeinsamen RAM 211 und steuert die Lese- und Schreibzyklen zu dem gemeinsamen RAM 211. Weiterhin leitet sie Nachrichtendaten von dem gemeinsamen RAM 211 entweder zu einem A-Kanal-Sender-Empfänger 220 oder zu einem B-Kanal-Sender-Empfänger 221, und sie übermittelt Nachrichtendaten von dem Sender-Empfänger 220 oder 221 zurück zum gemeinsamen RAM 211.
Sie gestattet es auch einer Schnittstellensteuer­ einheit 222 Daten aus dem gemeinsamen RAM 211 zu lesen und Daten darin einzuschreiben.
Der Betrieb der Schnittstellenschaltung 210 wird durch die Schnittstellensteuereinheit 222 gesteuert oder kontrolliert, bei der es sich um einen programmierten Mikrocomputer handelt, beispielsweise das Modell "Super 8" hergestellt von Zilog, Inc. Die Schnittstellensteuer­ einheit 222 ist über einen 8-Bit-Daten/Adreß-Bus 223, einen 8-Bit-Adreßbus 224 und einen Satz Steuerleitungen an die Schnittstellenschaltung 210 angeschlossen. Wenn eine 16-Bit-Adresse an die Busse 223 und 224 gelegt wird, wird ein Signal an eine "AS"-Steuerleitung 225 gelegt, und wenn acht Datenbits am Bus 223 anliegen, erscheint ein Signal an der "DS"-Steuerleitung 226. Die Richtung des Datentransfers auf dem Bus 223 wird durch den logi­ schen Zustand einer R/W-Steuerleitung 227 bestimmt. Die oben genannten Busse und Steuerleitungen werden von der Schnittstellensteuereinheit 222 angesteuert, je­ doch wird eine Reihe von Steuerleitungen durch die Schnittstellenschaltung 210 angesteuert. Diese umfas­ sen eine Warte-Steuerleitung 228, die die Schnittstellen­ steuereinheit 222 in einen Wartezustand versetzt, und eine Reihe von Unterbrechungsleitungen und Kennzeichen- oder Merkerleitungen, die zusammen mit 29 bezeichnet sind.
Die Schnittstellensteuereinheit 222 ist auch über einen Satz Steuerleitungen mit dem Hostprozessor ver­ bunden. Diese umfassen eine Unterbrechung-zum-Host- Steuerleitung 230, die von der Schnittstellensteuerein­ heit 222 beaufschlagt wird und dem Hostprozessor signalisiert, daß er in dem gemeinsamen RAM 211 bestimmte Datenstrukturen lesen soll. Gleichermaßen kann der Hostprozessor die Schnittstellensteuereinheit 222 über eine Unterbrechung-zur-Steuereinheit-Steuer­ leitung 231 unterbrechen, über die der Schnittstellen­ steuereinheit 222 signalisiert wird, den gemeinsamen RAM 211 im Hinblick auf Information vom Hostprozessor zu lesen. Schließlich kann noch eine TME-Steuerleitung 232 vom Hostprozessor beaufschlagt werden, um der Schnittstellensteuereinheit 222 zu signalisieren, daß sie in eine Prüf- oder Testbetriebsart eintreten soll.
Wie es insbesondere aus Fig. 4 und 5 hervorgeht, verbindet die Schnittstellenschaltung 210 die Sender- Empfänger 220 und 221 mit dem gemeinsamen RAM 211 und die Schnittstellensteuereinheit 222 mit dem gemeinsamen RAM 211. Der Sender-Empfänger 220 für den Kanal A ist über Leitungen 250 mit einer seriellen Kanal-A-Protokoll­ maschine 251 verbunden, und der Sender-Empfänger 221 für den Kanal B ist über Leitungen 252 mit einer seriellen Kanal-B-Protokollmaschine 253 verbunden, deren Umrisse gestrichelt eingezeichnet sind. Die seriellen Protokoll­ maschinen 251 und 253 sind bezüglich ihres Aufbaus und ihres Betriebs miteinander identisch.
Nachrichtendaten zu und von den seriellen Protokoll­ maschinen 251 und 253 werden bezüglich des gemeinsamen RAM 211 über einen 8-Bit-Datenbus 255 und einen Satz von acht bidirektionalen Datentoren 256 übertragen. Eine DMA-Steuerung 257 (DMA = Direkter Speicherzugriff) führt in Wirklichkeit den Transfer von Nachrichtendaten zu und von dem gemeinsamen RAM 211 dadurch aus, daß auf ihrem gemeinsamen Adreßbus 206 über einen Satz von fünfzehn Adreßtoren 258 Adressen erzeugt werden. Die Steuerung oder Kontrolle der gemeinsamen Busse 204 und 206 erfolgt durch eine Arbitrations- und Steuerschaltung 260, die die An­ forderungen vom Hostprozessor, von der Schnittstellen­ steuereinheit 222 und von beiden der A- und B-Kanäle der DMA-Steuerung 257 bescheidet.
Wie es ferner aus Fig. 4 und 5 hervorgeht, sind die Schnittstellensteuereinheitbusse 223 und 224 über einen Satz von acht bidirektionalen Toren 262 und einen Satz von acht Adreßtoren 263 mit der Schnittstellenschaltung 210 verbunden. Wenn eine Dateneinheit oder ein Datum am Bus 223 vorhanden ist, wie dies von der DS-Steuerleitung 226 signalisiert wird, werden die bidirektionalen Tore 262 freigegeben und das Datum wird von ihnen weiterge­ leitet in der von der R/W-Steuerleitung 227 angezeigten Richtung. Dieses Datum wird an einen 8-Bit-Datenbus 263 gelegt, der seinerseits über einen weiteren Satz von acht bidirektionalen Datentoren 264 mit dem 8-Bit-Daten­ bus 255 verbunden ist. Auf diese Weise können Daten zu oder von dem gemeinsamen RAM 211 auf den Datenbus 263 und durch die Tore 262 zu der Schnittstellensteuerein­ heit 222 übertragen werden. Daten auf dem Bus 263 kön­ nen auch zur DMA-Steuerung 257 übertragen werden, um die Schnittstellensteuereinheit 222 zum Setzen der Speicher­ adresse freizugeben, die die DMA-Steuerung erzeugen wird. Die Schnittstellensteuereinheit 222 steht auch mit einem Satz Zeitgeber 266 und Prozessorstatusregistern 268 in Verbindung. Die Schnittstellensteuereinheit 222 kann daher Daten in die Zeitgeber 266 einschreiben, die die seriellen Protokollmaschinen 251 und 253 gemäß den besonderen Zeitgabeanforderungen der Lokalbereichsnetz­ werke konfigurieren oder ausgestalten. Die Schnittstellen­ steuereinheit 222 kann auch Daten in die Register 268 einschreiben, die den Betrieb der Schnittstellenschaltung 210 steuern, während die Schnittstellensteuereinheit 222 andere Funktionen ausführt. Die Schnittstellensteuerein­ heit 222 kann auch Daten aus den Prozessorstatusregistern 268 auslesen, um zu jedem beliebigen Zeitpunkt den Zu­ stand der Schnittstellenschaltung 210 zu bestimmen. Der Inhalt des Prozessorstatusregisters 268 ist in einer Ta­ belle A zusammengestellt.
Tabelle A Prozessorstatusregister
4 Bit Dem Manchester-Codierer wird gesagt, wieviele gültige Bits er empfangen muß, bevor ein "gültiger Manchester" angezeigt wird
1 Bit Gültiges Manchestersignal verfügbar
1 Bit Träger erfaßt
1 Bit Fehlererfassung
8 Bit Stationsadresse
4 Bit Zustand von Empfangs-FIFO-Vollheit,
3 Bit Anzahl der Preambelmerker ausgesendet vor einem Paket
8 Bit Anzahl der Bit-Zeiten zum Halten des Senders nach dem Sendebefehl
1 Bit Sender besetzt
1 Bit Empfänger besetzt
Empfängersyndromregister - Ursache einer "schlechten Paket"- Unterbrechung zum Mikroprozessor
Empfangs-FIFO-Überlauf
Manchestercode verloren
Paket zu kurz
Paket zu lang
Abbrechen der empfangenen Nachricht
CRC schlecht (CRC = zyklische Redundanzprüfung)
Lies vom leeren Empfangs-FIFO
Sendersyndromregister
Sende-FIFO-Unterlauf (leer)
Zu viele Eröffnungsmerker
Schreibe in den vollen Sende-FIFO
Wenn die Schnittstellensteuereinheit 222 eine Adresse an ihren Bus 223 legt, wie es durch ihre AS-Steuerleitung 225 angezeigt wird, dann wird die Adresse in einem Adreß­ latch 270 gespeichert. Wenn danach die oberen acht Bits der Adresse an Bus 224 erscheinen, wird die vollständige 16-Bit-Adresse an einen Adreßbus 271 gelegt. Diese Adresse wird von einem Decoder 272 decodiert, um eine der Baueinheiten, die mit dem Datenbus 263 verbunden ist, freizugeben. Wird der gemeinsame RAM 211 adressiert, erzeugt der Decoder 272 darüber hinaus eine Anforderung an die Arbitrations- und Steuerschaltung 260, und ein Wartesignal wird für die Schnittstellensteuereinheit 222 durch eine Prozessorschnittstellensteuerung 267 über eine Steuerleitung 228 erzeugt. Bei Gewährung des Zugriffs wird das Wartesignal entfernt, und es wird ein Satz Adreß­ tore 273 freigegeben, so daß die von der Schnittstellen­ steuereinheit 222 erzeugte Adresse über die Tore 258 zum gemeinsamen Adreßbus 206 gelangen kann.
Durch die oben beschriebenen Busse und Tore hat die Schnittstellensteuereinheit 222 vollen Zugriff zum gemeinsamen RAM 211, wo sie Information mit dem Host­ prozessor austauschen kann. Zusätzlich kann die Schnitt­ stellensteuereinheit 222 den Betrieb der seriellen Pro­ tokollmaschinen 251 und 253 konfigurieren, ihren Betrieb steuern und ihren Betrieb überwachen.
Weiterhin ist unter Bezugnahme auf Fig. 5 darzule­ gen, daß die seriellen Protokollmaschinen 251 und 253 die bitorientierte Protokollstruktur handhaben, die von den Lokalbereichsnetzwerken verwendet wird, mit denen sie verbunden sind. Die seriellen Protokollmaschinen werden oft auch HDLC-Maschinen (HDLC = High Level Data Link Control (bitorientiertes Steuerungsverfahren)) genannt, die die pakettierte Information im seriellen Format des Lokalbereichnetzwerksprotokolls aussenden und empfangen. Jede sieht Merker, das Einfügen und Streichen von Nullen sowie CRC-Überprüfung und -Erzeugung vor. Jede serielle Protokollmaschine 251 und 253 ist in einen Empfangsabschnitt und einen Sendeabschnitt unterteilt. Der Empfangsabschnitt transferiert alle Datenbytes, die bei einem Manchester-Decoder 300 empfangen werden, zu einem Empfangs-FIFO-Speicher 280. Der Sendeabschnitt sendet alle Datenbytes, die in einen Sende-FIFO-Speicher 281 geladen werden, durch einen Manchestercodierer 301 aus.
Der Empfangsabschnitt wird durch eine Empfangs­ steuerung 302 betrieben, die mit jeden seiner funktionel­ len Elemente verbunden ist. Wenn ein Datenpaket über den Manchesterdecoder 300 empfangen wird, wird das darin enthaltene Adreßfeld durch eine Schaltung 303 überprüft, und zwar beim seriellen Transfer zu einem Serien/Parallel- Umsetzer 304. Entspricht die Adresse nicht der Lokaladresse dieser Station, wird das Datenpaket ignoriert. Andernfalls wird das Datenpaket in 8-Bit-Datenbytes vom Serien/Parallel- Umsetzer 304 umgesetzt, und diese Datenbytes werden im Empfangs-FIFO-Speicher 280 gespeichert. Die letzten beiden Bytes vor dem Abschlußmerker des Pakets sind eine CRC-Zahl, die mit der von einem CRC-Prüfer 304 erzeugten Signal verglichen wird. Sind die Zahlen einander gleich, dann hat eine genaue Übertragung des Datenpakets stattgefunden, und es wird in den Empfangs-FIFO-Speicher 280 gegeben. Eine Unterbrechung der Schnittstellensteuereinheit 222 (Fig. 4) wird erzeugt, um anzuzeigen, daß ein Datenpaket empfangen worden ist. Falls die CRC-Bytes (CRC = Cyclische Redundanzprüfung, cyclische Blockprüfung) einen Übertra­ gungsfehler anzeigen, erzeugt der CRC-Prüfer 305 eine Unterbrechung für die Schnittstellensteuereinheit 222 und Fehlerbits werden in das Empfangssyndromregister gesetzt, um die Schnittstellensteuereinheit 222 über das Problem zu informieren.
Der Sendeabschnitt wird von einer Sendesteuerung 306 betrieben, die mit jedem seiner funktionellen Elemente verbunden ist. Dem Sendeabschnitt wird von der Schnitt­ stellensteuereinheit 222 befohlen, eine im Sende-FIFO- Speicher 281 gespeicherte Datennachricht auszusenden. Der Sender beginnt automatisch mit der Aussendung der Preambel­ bits des Datenpakets durch den Manchstercodierer 301, und die Datenbytes werden dann aus dem Sende-FIFO-Speicher ausgelesen und an einen Parallel/Serien-Umsetzer 307 gelegt. Die Daten werden in einen seriellen Bitstrom umgesetzt, der dem Manchestercodierer 301 zum Aussenden zugeführt wird. Ein CRC-Generator 308 überwacht alle Bits in dem ausgesendeten Datenpaket, und wenn das letzte Bit ausgesendet worden ist, erzeugt der CRC-Generator 308 eine 16-Bit-CRC-Zahl, die in der oben beschriebenen Weise benutzt wird, um die Integrität des Datenpakets über­ prüfen zu können, wenn es bei einer anderen Station empfangen wird.
Es gibt viele Architekturen, die man verwenden kann, um die seriellen Protokollmaschinen 251 und 253 zu implementieren oder zu realisieren. Viele ihrer Funktionen können beispielsweise durch Universal-Asynchron- Empfänger-Sender (UART) wahrgenommen werden, die in in­ tegrierter Schaltungsform im Handel erhältlich sind. Das gleiche gilt für die Manchestercodierer, Manchesterdeco­ dierer und die FIFO-Speicher. Diese funktionellen Ele­ mente der seriellen Protokollmaschinen 251 und 253 sind in dem bevorzugten Ausführungsbeispiel als Teil einer ASIC (anwendungsspezifische integrierte Schaltung) im­ plementiert, die auch die anderen in Fig. 5 dargestellten funktionellen Elemente enthält. Die Erfindung ermöglicht es, daß diese ASIC in einem weiten vielfältigen Bereich der Kommunikation angewendet werden kann, so daß ihre Konstruktion, Entwicklung und Werkzeugausrüstung wirt­ schaftlich gerechtfertigt ist.
Wie es oben beschrieben wurde, speichert der ge­ meisame RAM 211 Datenstrukturen, die es der Kommunikations­ schnittstellenschaltung ermöglichen, sich dem besonderen Hostprozessor anzupassen, mit der sie verbunden ist, und mit diesem Hostprozessor Nachrichtendaten auszutauschen. Diese gespeicherten Datenstrukturen sind generell in Fig. 6 dargestellt und sollen nachstehend im einzelnen erläutert werden.
Wie es aus Fig. 6 hervorgeht, speichert der ge­ meinsame RAM 211 Daten in Segmenten. Das erste Segment 350 ist ein Verhandlungssegment, das 32 Datenbytes ent­ hält, das beim Einschalten verwendet wird, um die Cha­ rakteristika, Eigenschaften oder Kennmerkmale der Kom­ munikationen zwischen dem Host und der Kommunikations­ schnittstellenschaltung zu verhandeln oder auszuhandeln. Dieses Segment 350 wird noch im einzelnen beschrieben werden.
Das zweite Segment ist ein Identifikationssegment 352, welches die Information enthält, die die Serien- und Revisionszahl der Kommunikationsschnittstellenschal­ tung enthält.
Das dritte Segment 351 ist ein Segmentverzeichnis, das eine Anordnung von Segmentdiskriptoren enthält, die die Startadresse jedes Segments in dem gemeinsamen RAM 211, die Größe jedes Segments, den Typ des Segments und die Instanz des Segments enthalten. Das Segmentverzeichnis 351 ist ein Index für die anderen Segmente in dem gemeinsamen RAM 211. Die Segmenttypen oder Segmentarten umfassen:
0 - Verhandlungssegment
1 - Segmentverzeichnis
2 - Identifikationssegment
3 - Kanalsegment
4 - Zwischen- oder Interprozessorquittungsmerker
5 - Selektionssegment
Die Instanz gibt die Zahl oder Nummer des Segments einer besonderen Art an. Beispielsweise gibt es zwei Kanalsegmente 355 und 356 bei dem bevorzugten Ausführungsbeispiel, und diese werden voneinander unterschieden durch ihre jeweilige Instanznummer "0" und "1".
Dem Verzeichnissegment 351 folgt ein Handshake- oder Quittungssegment 354, das acht 8-Bit-Wörter pro Kanal im gemeinsamen RAM 211 einnimmt. Aus Fig. 9 geht hervor, daß das Quittungssegment 354 vier Wörter 370 bis 373 enthält, welche Kennzeichen oder Merker (Flags) speichern, die sich auf Unterbrechungen vom Host zur Schnittstellen­ steuereinheit 222 beziehen, und vier Wörter 374 bis 377 enthält, die Merker speichern, die sich auf Unterbrechun­ gen von der Schnittstellensteuereinheit 222 zum Host be­ ziehen. So wird ein Merker im Wort 370 durch den Host­ prozessor umgekippt oder umgeschaltet, wenn er die Schnittstellensteuereinheit 222 unterbricht. Die Schnitt­ stellensteuereinheit 222 bedient die Unterbrechung da­ durch, daß sie diese Merker liest und feststellt, welches umgeschaltet worden ist. Der erste Merker (Bit 0) zeigt an, daß der Kanal A zurückzusetzen ist, der nächste Merker (Bit 7) zeigt an, daß die Diagnostikzähler zurückzusetzen sind, die nächsten vier Merker (Bits 8 bis 11) zeigen an, daß die vier Kanal-A-Zugriff-FIFO-Register eine Bedienung anfordern, und die nächsten vier Merker (Bits 12 bis 15) zeigen an, daß die jeweiligen vier Kanal-A-Management- FIFO-Register eine Bedienung anfordern. Die Schnittstellen­ steuereinheit 222 bestätigt oder quittiert die Unterbre­ chung durch Umschalten des entsprechenden Merkers im Wort 371 und führt die Routine aus, die zum Bedienen der Unterbrechung erforderlich ist. Die Wörter 372 und 373 im Quittungssegment 354 sind mit den Wörtern 370 und 371 identisch, beziehen sich jedoch auf den Kanal B.
Die letzten vier Wörter 374 bis 377 im Quittungs­ segment 354 sind in der gleichen Weise organisiert, jedoch werden die Unterbrechungsmerker in den Wörtern 374 und 376 durch die Schnittstellensteuereinheit 222 umge­ schaltet und die Unterbrechungen werden durch den Host bedient. Der Host quittiert die Unterbrechung durch Um­ schalten des entsprechenden Merkers im Wort 375 oder 377 und führt die geeignete Unterbrechungsserviceroutine aus.
Zusammenfassend betrachtet arbeitet somit das Quittungssegment 354 wie ein Mittel zum Multiplexen vieler unterbrechungen entweder vom Host oder von der Schnittstellensteuereinheit 222 über ein Paar von Unterbre­ chungsleitungen. Eine Unterbrechung wird signalisiert, wenn die entsprechenden Bits in Wortpaaren 370-371, 372-373, 374-375 und 376-377 im entgegengesetzten Zustand sind. Der Host kann lediglich seine eigenen Merker um­ schalten, und die Schnittstellensteuereinheit 222 kann ebenfalls nur ihre eigenen Merker umschalten. Beide körnen allerdings alle Merker lesen, und jede dieser beiden Bau­ einheiten kann feststellen, ob eine Unterbrechung ange­ fordert worden ist und ob eine angeforderte Unterbre­ chung bedient worden ist. In Anwendung dieser Technik braucht kein Prozessor zu irgendeiner Zeit von dem gemeinsamen RAM 211 ausgeschlossen sein. Die Arbeitsweise dieser Unterbrechungsmultiplextechnik wird nachstehend mit weiteren Einzelheiten erläutert.
Wie es ferner aus Fig. 5 hervorgeht, speichern die nächsten beiden Segmente im gemeinsamen RAM 211 Daten, die Nachrichten zugeordnet sind, die über den A-Kanal und den B-Kanal der Schnittstellenschaltung übermittelt wer­ den. So speichert das Segment 355 die FIFO's, Nachrich­ tenvorsätze, Puffervorsätze und Puffer, die der Kommuni­ kation über den Kanal A zugeordnet sind, und das Segment 356 speichert ähnliche Datenstrukturen zur Kommunikation über den Kanal B. Da die beiden Segmente 355 und 356 einander ähnlich sind, wird lediglich das eine dieser beiden Segmente im einzelnen erläutert.
Wie es aus Fig. 10 hervorgeht, besteht jede Nach­ richt, die zwischen dem Host und der Schnittstellensteuer­ einheit 222 über den gemeinsamen RAM 211 übertragen wird, aus einem Nachrichtenvorsatz, keinem oder mehreren Puffer­ vorsätzen und einem Datenpuffer, der jeweils einem Puffer­ vorsatz zugeordnet ist. Die Nachrichtenköpfe oder Nachrich­ tenvorsätze sind bei 378 als ein verbundener Satz von Datenstrukturen dargestellt, und jeder Nachrichtenvorsatz speichert die nachstehende Information:
NEXT (nächster) - Zeiger zum nächsten Puffervorsatz, der dieser Nachricht zugeordnet ist;
SERVICE (Bedienung) - die von dieser Nachricht durchgeführte Bedienung;
PRIORITY (Priorität) - die Prioritätsstufe dieser Nachricht, wo das Protokoll verschiedene Priori­ täten unterstützt;
STATUS (Zustand) - das Ergebnis dieses Aussendens
0 = bestätigte Ausgabe
1 = bestätigte Nichtausgabe
2 = nichtbestätigte Ausgabe
3 = nichtbestätigte Nichtausgabe;
REASON (Grund) - Fehlercode, der den Grund eines Fehlers oder einer Störung anzeigt;
DESTINATION ADDRESS COUNT (Bestimmungsadreßzählung) - Anzahl der Bytes, die für die Bestim­ mungsadresse erforderlich sind;
DESTINATION NETWORK ADDRESS (Bestimmungsnetzwerkadresse) - die Bestimmung dieser Nachricht
SOURCE ADDRESS COUNT (Quellenadreßzählung) - Anzahl der Bytes, die zum Definieren der Quellenadresse erforderlich sind;
SOURCE NETWORK ADDRESS (Quellennetzwerkadresse) - die Quelle dieser Nachricht
SAP TYPE (SAP-Art) - die Art des Bedienungszugriffspunktes (SAP = Service Access Point), die in dieser Nachricht verwendet wird;
DSAP (Bestimmung von DSAP) - Bestimmung der Bedienungszugriffspunkt­ nummer
SSAP (Quelle von SSAP) - Quellenbedienungszugriffspunktnummer;
BUFFER HEADER POINTER (Puffervorsatzzeiger) - Adresse des ersten Puffervorsatzes, der dieser Nachricht zugeordnet ist;
TAG (Anhänger) - anwenderdefiniertes Feld.
Die Puffervorsätze sind in Fig. 10 bei 379 als ein Satz verbundener Datenstrukturen dargestellt. Jeder Puffer­ vorsatz speichert die folgende Information:
NEXT (nächster) - Zeiger zum nächsten Puffervorsatz, der dieser Nachricht zugeordnet ist;
DATA (Daten) - Zeiger zum Puffer, der diesem Puffer­ vorsatz zugeordnet ist;
SIZE (Größe) - die Anzahl der Datenbytes in dem zuge­ ordneten Puffer.
Die Puffer sind bei 380 dargestellt, und bei jedem handelt es sich um eine fortwährende Folge von Bytes, die einem der Puffervorsätze 379 zugeordnet sind. Eine Nachricht, die aus einem oder mehreren dieser Datenpuffer 380 besteht, kann entweder der Host oder die Schnittstellensteuerein­ heit 222 dadurch bilden, daß die Nachrichtendaten in den Puffern gespeichert werden und daß sie dann mit ihren zugeordneten Puffervorsätzen 379 miteinander verbunden werden. Es wird dann ein Nachrichtenvorsatz 378 gebildet, der den ersten Puffervorsatz in dieser verbundenen Liste von Puffervorsätzen 379 identifiziert.
Ferner wird unter Bezugnahme auf Fig. 10 ausgeführt, daß der Host, wenn er eine Nachricht erzeugt, einen Zeiger zu dem Kopf oder Vorsatz dieser Nachricht in einem Anforderungs-FIFO-381 speichert, wie es durch einen Pfeil 382 angedeutet ist. Der Anforderungs-FIFO 381 ist eine Anordnung aus solchen Zeigern, denen die folgende ge­ speicherte Information vorausgeht:
NEXT IN (nächster EIN) - Hostindex zum nächsten verfügbaren Platz in dem FIFO, wo ein Nach­ richtenvorsatzzeiger gespeichert werden kann;
NEXT OUT (nächster AUS)-Schnittstellensteuereinheitindex zum nächsten Nachrichtenzeiger, der ausgelesen und verarbeitet werden soll;
WRAP MASK: (Warp-Maske) - die beiden Indizes wrap, die dieses Feld benutzen;
IFLAG NUMBER (Unterbrechungsmerkernummer) - Unterbrechungsmerkerbitnummer, die von diesem FIFO benutzt wird.
Wenn die Schnittstellensteuereinheit 222 unterbrochen ist, liest sie den nächsten Nachrichtenzeiger aus dem Anforderungs-FIFO 381 aus, wie dies durch einen Pfeil 383 dargestellt ist, und sie liest den angezeigten Nachrichten­ vorsatz 378 und die zugeordneten Daten 380, die durch die Puffervorsätze 379 angezeigt sind, um eine Nachricht zu bilden. Sie bestätigt, daß die Nachricht empfangen und verarbeitet worden ist, und zwar dadurch, daß der Zeiger für denselben Nachrichtenvorsatz in einen Bestätigungs- FIFO 384 eingeschrieben wird, wie es durch einen Pfeil 385 veranschaulicht ist. Der FIFO 385 ist bezüglich seiner Struktur dem FIFO 381 ähnlich, und wenn der Host unter­ brochen wird, liest er den nächsten Nachrichtenvorsatzzei­ ger aus dem Bestätigungs-FIFO 384 aus, wie es durch einen Pfeil 386 angedeutet ist. Der Host liest dann den ange­ zeigten Nachrichtenvorsatz aus dem gemeinsamen RAM 211 aus, um zu bestätigen, daß die Nachricht, die er initiiert hat, verarbeitet worden ist.
Ähnliche Datenstrukturen existieren für Nachrichten, die von der Schnittstellensteuereinheit 222 initiiert werden. Wenn, immer noch unter Bezugnahme auf Fig. 10, die Schnittstellensteuereinheit 222 eine Nachricht auf dem Netzwerk empfängt, speichert sie die Nachrichtendaten in dem gemeinsamen RAM 211, und zwar in verfügbaren Puf­ fern 380, und den Nachrichtenvorsatz in einem verfügbaren Nachrichtenvorsatz 378. Sie speichert dann einen Zeiger zu dem Nachrichtenvorsatz 378 in einem Anzeige-FIFO 387, wie es durch einen Pfeil 388 gezeigt ist, und unterbricht den Host. Der Hostprozessor liest den nächsten Zeiger aus dem Anzeige-FIFO 387, wie es durch einen Pfeil 389 ver­ anschaulicht ist, und der Nachrichtenvorsatz und die Nachrichtendaten werden aus dem gemeinsamen RAM 211 aus­ gelesen. Der Hostprozessor schreibt dann einen Zeiger in einen Annahme-FIFO 390, wie es durch einen Pfeil 391 ver­ anschaulicht ist, und er unterbricht die Schnittstellen­ steuereinheit 222. Die Schnittstellensteuereinheit 222 liest den Zeiger aus dem Annahme-FIFO 390 aus, um zu bestätigen, daß die Nachricht von dem Host angenommen worden ist, wie es durch einen Pfeil 192 veranschaulicht wird.
Wie es aus Fig. 9 hervorgeht, enthält das Handshake- oder Quittungssegment Unterbrechungsmerker für jeden der vier FIFOs 381, 384, 387 und 390. So enthält die Host­ unterbrechung im Wort 370 vier Zugriffsmerker, die den vier Kanal-A-FIFOs entsprechen, und das Wort 372 ent­ hält vier Kanal-B-FIFOs. In ähnlicher Weise enthält das Schnittstellensteuereinheitswort 374 vier Zugriffsmerker, die den vier A-Kanal-FIFOs entsprechen, und das Schnitt­ stellensteuereinheitswort 376 enthält vier Zugriffs­ merker, die den vier B-Kanal-FIFOs entsprechen. Diese Merker ermöglichen es dem unterbrochenen Prozessor, den geeigneten FIFO prompt zu lesen, wenn er von dem anderen Prozessor unterbrochen wird.
Die Kanalsegmente 355 und 356 im gemeinsamen RAM 211 (Fig. 7) speichern ebenfalls Datenstrukturen, die Netz­ werkmanagement- oder Netzwerkverwaltungsfunktionen zugeordnet sind. Diese umfassen vier Management-FIFOs und zugeordnete Nachrichtenvorsätze, Puffervorsätze und Puffer (nicht dargestellt), die in der oben beschriebenen Weise arbeiten. Zusätzlich gibt es vier Managementunter­ brechungsmerker in jedem der Wörter 370 bis 377 des Quittungssegments 354 (Fig. 9), die es dem Host und der Schnittstellensteuereinheit 222 gestatten, die Management- oder Verwaltungs-FIFOs prompt zu bedienen.
Wie es aus dem Obigen hervorgeht, besteht die Haupt­ funktion der Schnittstellensteuereinheit 222 darin, Nach­ richten zwischen dem gemeinsamen RAM 211 und der Schnitt­ stellenschaltung 210 (Fig. 4) zu übermitteln. Die Schnittstellensteuereinheit führt diese Funktion und ihre anderen Funktionen unter der Leitung von Programmen durch, die in ihrem internen Festwertspeicher (nicht dargestellt) gespeichert sind. Eine Anzahl dieser Programme sind inter­ rupt- oder unterbrechungsgesteuert und enthalten eine Service- oder Bedienungsroutine, die ausgeführt wird, wenn eine Unterbrechung von dem Host über die Leitung 231 empfangen wird, sowie Bedienungs- oder Serviceroutinen, die ausgeführt werden, wenn eine Unterbrechung von dem A-Kanal oder dem B-Kanal von der Schnittstellenschaltung 210 empfangen wird. Das Hauptprogramm, das von der Schnittstellensteuereinheit 222 ausgeführt wird, ist allerdings in Fig. 8 dargestellt und wird nachstehend im einzelnen beschrieben.
Wie es in Fig. 8 dargestellt ist, wird beim Einschal­ ten oder physischen Zurücksetzen der Schnittstellen­ steuereinheit 222 ein Satz Befehle ausgeführt, die in einem Prozeßblock 400 dar gestellt sind, um Diagnostik­ funktionen auszuführen. So wird beispielsweise die Inte­ grität oder Sicherheit des gemeinsamen RAM 211 voll­ ständig überprüft. Dnach wird ein Satz Befehle, die durch einen Prozeßblock 401 dargestellt sind, ausge­ führt, um einer Satz Parameter auszuhandeln, die fest­ legen, wie die Schnittstellensteuereinheit 222 und der Host über den gemeinsamen RAM 211 miteinander kommunizieren wollen.
Nach dieser Aushandlung oder Verhandlung wird jeder der bei den Kanäle konfiguriert oder ausgestaltet, wie es durch einen Prozeßblock 402 dargestellt ist. Jeder phy­ sische Kanal verwendet in vorgegebener Weise einen Satz vordefinierter Zugriffs- und Protokollselektionen, ob­ wohl auch andere Selektionen gemacht werden können. So befinden sich in jedem Kanalsegment 355 und 356 des ge­ meinsamen RAM 211 (Fig. 6) Selektions- oder Auswahlsegmen­ te (nicht gezeigt), die vom Host gelesen werden können und die verwendet werden, um Betriebsparameter auszuwählen, die von den Vorgabe- oder Standardwerten verschieden sind. So kann beispielsweise jeder Kanal auf irgendeine von vier Zugriffsarten gesetzt werden: (1) einen aktiven Knoten auf einem Lokalbereichsnetzwerk, (2) einen nicht aktiven Knoten auf einem Lokalbereichsnetzwerk, (3) einen Abtaster oder Adapter auf einer seriellen E/A-Verbindung, oder (4) einer Brücke zwischen zwei Lokalbereichsnetzwer­ ken. Für jede dieser Zugriffsarten gibt es ein Menü, das die verschiedenen Protokolle definiert, die von dem Host ausgewählt werden können, und jedes auswählbare Protokoll kann Werte von Betriebsparametern für das Protokoll haben, d. h. Baud, Geschwindigkeit, Parität usw. Wenn die Kon­ figuration jedes Kanals beendet ist, wird der Kanal betriebs- oder funktionsfähig oder er wird "on line".
Immer noch unter Bezugnahme auf Fig. 8 sei bemerkt, daß nach der Beendigung der Konfiguration, jeder physische Kanal dann abwechselnd bedient wird. Dies wird dadurch bewerkstelligt, daß eine bei 403 angezeigte Subroutine aufgerufen wird, die den Kanalkontext schaltet. Dieser Kontextschalter beinhaltet die Aufbewahrung der Werte von Mikrocomputerregistern und das Laden der Registerwerte für den anderen Kanal. Bei einem Entscheidungsblock 404 wird eine Überprüfung vorgenommen, um festzustellen, ob der Kanal funktionsfähig ist, und es wird dann bei einem Entscheidungsblock 405 eine Überprüfung ausgeführt, um festzustellen, ob irgendwelche ankommenden Nachrichten im Empfangs-FIFO 280 (Fig. 5) des Kanals verfügbar sind. Trifft dies zu, wird die Nachricht aus dem Empfangs-FIFO 280 ausgelesen und in einen nichtbenutzten Puffer 308 im gemeinsamen RAM 211 eingeschrieben, wie dies durch einen Prozeßblock 406 veranschaulicht ist. Die entsprechenden Puffervorsätze 379 und Nachrichtenvorsätze 378 werden erzeugt, und ein Zeiger zum Nachrichtenvorsatz 378 wird in den nächsten Eintrag des Anzeige-FIFO 387 (Fig. 13) gespeichert. Wie es in einem Prozeßblock 407 dargestellt ist, wird der geeignete Kerker im Quittungssegment dann umgeschaltet, und der Host wird unterbrochen, um die ankommende Nachricht zu bedienen.
Wenn die ankommende Nachricht vorhanden ist, was durch einen Entscheidungsblock 405 festgestellt wird, wird bei einem Entscheidungsblock 408 eine Überprüfung eines internen Merkerregisters vorgenommen, um festzustellen, ob durch den Host Nachrichten zum Aussenden in dem gemein­ samen RAM 211 aufgestellt worden sind. Trifft dies zu, wird der Zeiger im Anforderungs-FIFO 381 gelesen, und der angezeigte Nachrichtenvorsatz 378, die Puffervorsätze 379 und die Puffer 380 (Fig. 10) werden von dem gemeinsamen RAM 211 in den Sende-FIFO 281 (Fig. 5) des Kanals transferiert, wie dies durch einer, Prozeßblock 405 angezeigt ist. Derselbe Nachrichtenvorsatzzeiger wird dann zum Bestätigungs-FIFO im gemeinsamen RAM 211 über­ mittelt, und der Host wird bei einem Prozeßblock 410 unterbrochen, um anzuzeigen, daß die Nachricht verar­ beitet worden ist.
Die Schnittstellensteuereinheit 222 läuft fort­ während zyklisch durch dieses Programm, wobei der Kontext zwischen den beiden Kanälen umgeschaltet wird. Folglich werden Nachrichten, die an irgendeinem dieser beiden Kanäle empfangen werden, durch den Host gelei­ tet, und Nachrichten, die von dem Host empfangen wer­ den, werden weitergeleitet zur Übertragung auf der ge­ eigneten seriellen Verbindung.
Wenn die Schnittstellensteuereinheit 222 den Host unterbricht, wie es oben beschrieben worden ist, muß sie zunächst den geeigneten Unterbrechungsmerker im Quit­ tungssegment 354 umschalten. Wie es beispielsweise in den Fig. 9 und 10 gezeigt ist, gibt es einen Unter­ brechungsmerker in jedem der Kanal-A- und Kanal-B-Host­ unterbrechungswörter 370 und 372, die dem Anzeige-FIFO 387 und dem Bestätigungs-FIFO 384 entsprechen. Irgend­ einer dieser Merker wird dadurch umgeschaltet, daß das Wort 370 und 372 von dem gemeinsamen RAM 211 gelesen wird, der Zustand des geeigneten Merkers geändert wird und das Wort 370 oder 372 zurück in den RAM 211 ge­ schrieben wird. Die Unterbrechung-zum-Host-Steuerleitung 230 wird dann beaufschlagt, um zum Host eine Signalisie­ rung zu senden. Wenn der Unterbrechungsmerker bereits anders als sein Bestätigungsmerker ist, dann ist bereits eine Unterbrechung angefordert worden, und der Unter­ brechungsmerker wird nicht erneut umgeschaltet.
Der Host arbeitet in der gleichen Weise, wenn er Nachrichtendaten in den Anforderungs-FIFO 381 lädt oder wenn der Empfang einer ankommenden Nachricht bestätigt wird, und zwar durch Einschreiben in den Annahme-FIFO 390. Das bedeutet, daß der Host das Kanal-A- oder Kanal-B-Schnittstellenunterbrechungswort 374 oder 376 des Quittungssegments 354 liest, den geeigneten Unter­ brechungsmerker umschaltet und das Wort zurück in das Quittungssegment 354 einschreibt. Der Host beaufschlagt dann die Unterbrechung-zur-Steuereinheit-Steuerleitung 231, um die Schnittstellensteuereinheit 222 munter oder scharf zu machen.
Wenn auf der Unterbrechung-zur-Steuereinheit- Steuerleitung 231 eine Unterbrechung angefordert wird, spricht die Schnittstellensteuereinheit 222 darauf dadurch an, daß sie eine Unterbrechungsbedienungsroutine ausführt, die in Fig. 11 dargestellt, ist. Diese Routine legt fest, welcher Unterbrechungsmerker umgeschaltet wird, und sie setzt das entsprechende Bit in einem Merkerregi­ ster, das in der Schnittstellensteuereinheit 222 ge­ speichert wird. So tritt die Unterbrechungsbedienungs­ routine, nachdem in sie eingetreten worden ist, in eine Schleife ein, in die die Kanal-A- und dann die Kanal-B- Unterbrechungsmerker überprüft werden. Das Schnittstellen­ unterbrechungswort 374 oder 376 wird dann als erstes aus dem Quittungssegment (Fig. 9) des gemeinsamen RAM 211 ausgelesen, wie es in einem Prozeßblock 400 darge­ stellt ist, und dann wird das entsprechende Bestäti­ gungswort 375 oder 377 ausgelesen, wie es bei einem Prozeßblock 481 dargestellt ist. Die entsprechenden Bits in den beiden Wörtern werden einer exklusiven ODER- Verknüpfung unterzogen, wie es ein Prozeßblock 402 zeigt, um festzustellen, welcher oder welche Unterbrechungs­ merker zu einem anderen Zustand als ihrem Bestätigungs­ merker umgeschaltet worden sind. Das resultierende Bit­ muster (R) wird mit dem Schnittstellensteuereinheitmerker­ register einer ODER-Verknüpfung unterzogen, so daß die neu erfaßte Unterbrechung oder die neu erfaßten Unterbrechungen dazu hinzugefügt werden, wie es in einem Prozeßblock 403 dargestellt ist.
Wie es ein Prozeßblock 404 zeigt, besteht der nächste Schritt darin, den Zustand des oder der Be­ stätigungsmerker um zuschalten, der oder die der oder den neu erfaßten Unterbrechungen entsprechen. Dies wird dadurch erreicht, daß das Bestätigungsmerkerwort 375 oder 377 mit dem Ergebnisbitmuster (R) einer ODER- Verknüpfung unterzogen wird, und dann das geänderte Bestätigungsmerkerwort zurück an seinen Platz in den gemeinsamen RAM 211 geschrieben wird, wie es in einem Prozeßblock 405 gezeigt ist. Bei einem Entscheidungs­ block 406 wird dann eine Überprüfung vorgenommen, um festzustellen, ob die Unterbrechungsmerker für beide Kanäle überprüft worden sind, und wenn dies zutrifft, endet die Unterbrechungsbedienungsroutine dadurch, daß die Schnittstellensteuereinheit 222 zur Aufnahme ihrer unterbrochenen Funktionen zurückkehrt.
Wie es oben aufgezeigt ist, wird der Zustand des Merkerregisters periodisch überprüft, um festzustellen, ob irgendeiner der FIFOs eine Bedienung erfordert. Wenn ein Merker gesetzt ist, wodurch angezeigt wird, daß ein besonderer FIFO eine Bedienung anfordert, werden alle Nachrichten in diesem FIFO verarbeitet. Dadurch wird einem Umstand Rechnung getragen, bei dem eine zweite oder noch mehr Unterbrechungen auftreten, bevor die erste Unterbrechung bedient worden ist.
Es wird darauf hingewiesen, daß eine Unterbrechungs­ bedienungsroutine, die der gerade beschriebenen ähnlich ist, auch vom Hostprozessor ausgeführt wird, wenn dieser durch die Schnittstellensteuereinheit 222 unterbrochen wird. Ferner sei noch bemerkt, daß während der Unter­ brechungsbedienung andere Funktionen ausgeführt werden können.

Claims (5)

1. Steuerungssystem mit einem Steuerfunktionen ausführenden Hostprozessor und einer mit einer Kommunikationsverbindung verbundenen Kommunikationsschnittstellenschaltung, die über eine Protokollmaschine Nachrichtendaten an die Kommunikationsverbindung aussenden und von dieser empfangen kann,
dadurch gekennzeichnet,
daß die Kommunikationsschnittstellenschaltung (210) eine mit der Protokollmaschine (251, 253) und dem Hostprozessor (66; 140) verbundene Schnittstellensteuereinheit (222) und einen mit dem Hostprozessor (66; 140) und der Schnittstellensteuereinheit (222) verbundenen, gemeinsamen Speicher (211) enthält, der dazu dient, von der Protokollmaschine (251, 253) empfangene Nachrichtendaten zu speichern, die vom Hostprozessor (66; 140) gelesen werden sollen, vom Hostprozessor (66; 140) empfangene Nachrichtendaten zu speichern, die von der Protokollmaschine (251, 253) ausgesendet werden sollen, und ein Handshake-Segment (354) zu speichern, das einen Satz Hostinterruptmerker (370, 372) und einen entsprechenden Satz Bestätigungsmerker (371, 373) sowie einen Satz Schnittstelleninterruptmerker (374, 376) und einen entsprechenden Satz Bestätigungsmerker (375, 377) enthält,
daß die Schnittstellensteuereinheit (222) Mittel zum Umschalten eines der Hostinterruptmerker (370, 372) und zum Erzeugen eines Interruptsignals für den Hostprozessor (66; 140) aufweist und der Hostprozessor (66; 140) Mittel aufweist, die auf ein ihm zugeführtes, von der Schnittstellensteuereinheit (222) erzeugtes Interruptsignal ansprechen, um den Satz Hostinterruptmerker (370, 372) zur Feststellung eines von der Schnittstellensteuereinheit (222) umgeschalteten Merkers zu überprüfen und den entsprechenden Hostbestätigungsmerker (371, 373) umzuschalten und den Interrupt vom Hostprozessor (66; 104) zu bedienen, und
daß der Hostprozessor (66; 140) Mittel zum Umschalten eines der Schnittstelleninterruptmerker (374, 376) und zum Erzeugen eines Interruptsignals für die Schnittstellensteuereinheit (222) aufweist und die Schnittstellensteuereinheit (222) Mittel aufweist, die auf ein ihr zugeführtes, vom Hostprozessor (66; 140) erzeugtes Interruptsignal ansprechen, um den Satz Schnittstelleninterruptmerker (374, 376) zur Feststellung eines vom Hostprozessor (66; 140) umgeschalteten Merkers zu überprüfen, und den entsprechenden Schnittstellenbestätigungsmerker (375, 377) umzuschalten und den Interrupt von der Schnittstellensteuereinheit (222) zu bedienen.
2. Steuerungssystem nach Anspruch 1, dadurch gekennzeichnet, daß einer der Hostinterruptmerker (370, 372) einem in dem gemeinsamen Speicher (211) vorgesehenen Anzeige-FIFO (387) zugeordnet ist, in dem von der Protokollmaschine (251, 253) empfangene Nachrichtendaten gespeichert werden, und daß der Hostprozessor (66; 140) ansprechend auf das durch die Schnittstellensteuereinheit (222) bewirkte Umschalten dieses einen Hostinterruptmerkers derart betreibbar ist, daß er Nachrichtendaten aus dem Anzeige-FIFO (387) liest.
3. Steuerungssystem nach Anspruch 2, dadurch gekennzeichnet, daß einer der Schnittstelleninterruptmerker (374, 376) einem in dem gemeinsamen Speicher (211) vorgesehenen Annahme-FIFO (390) zugeordnet ist und der Hostprozessor (66; 140) derart betreibbar ist, daß er nach dem Lesen von Nachrichtendaten aus dem Anzeige-FIFO (387) Daten in den Annahme-FIFO (390) schreibt, diesen einen Schnittstelleninterruptmerker umschaltet und ein Interruptsignal für die Schnittstellensteuereinheit (222) erzeugt.
4. Steuerungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß ein zweiter der Schnittstelleninterruptmerker (374, 376) einem in dem gemeinsamen Speicher (211) vorgesehenen Anforderungs-FIFO (381) zugeordnet ist und Nachrichtendaten vom Hostprozessor (66; 140) in diesem Anforderungs-FIFO (381) gespeichert werden und daß die Schnittstellensteuereinheit (222) ansprechend auf das durch den Hostprozessor (66; 140) bewirkte Umschalten dieses zweiten Schnittstelleninterruptmerkers derart betreibbar ist, daß Nachrichtendaten aus dem Anforderungs-FIFO (381) ausgelesen und der Protokollmaschine (251, 253) zum Aussenden an die Kommunikationsverbindung (200, 201) zugeführt werden.
5. Steuerungssystem nach Anspruch 4, dadurch gekennzeichnet, daß ein zweiter der Hostinterruptmerker (370, 372) einem in dem gemeinsamen Speicher (211) vorgesehenen Bestätigungs-FIFO (384) zugeordnet ist und daß die Schnittstellensteuereinheit (222) derart betreibbar ist, daß sie nach der Übermittlung von Nachrichtendaten von dem Anforderungs- FIFO (381) Bestätigungsnachrichtendaten in den Bestätigungs-FIFO (384) schreibt, diesen zweiten Hostunterbrechungsmerker umschaltet und ein Interruptsignal für den Hostprozessor (66; 140) erzeugt.
DE4023471A 1989-07-25 1990-07-24 Steuerungssystem mit Hostcomputer und Kommunikationsschnittstellenschaltung Expired - Fee Related DE4023471C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/384,614 US5283869A (en) 1989-07-25 1989-07-25 Interrupt structure for network interface circuit

Publications (2)

Publication Number Publication Date
DE4023471A1 DE4023471A1 (de) 1991-01-31
DE4023471C2 true DE4023471C2 (de) 2003-04-17

Family

ID=23518028

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4023471A Expired - Fee Related DE4023471C2 (de) 1989-07-25 1990-07-24 Steuerungssystem mit Hostcomputer und Kommunikationsschnittstellenschaltung

Country Status (4)

Country Link
US (1) US5283869A (de)
JP (1) JPH0364231A (de)
CA (1) CA2019373C (de)
DE (1) DE4023471C2 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301303A (en) * 1990-04-23 1994-04-05 Chipcom Corporation Communication system concentrator configurable to different access methods
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US5414814A (en) * 1992-05-08 1995-05-09 The United States Of America As Represented By The Secretary Of The Navy I/O interface between VME bus and asynchronous serial data computer
US6029199A (en) * 1992-10-23 2000-02-22 International Business Machines Corporation Computing system having a system supervisor and a collection of computing subunits each of which has a subunit supervisor
DE4341886A1 (de) * 1992-12-16 1994-06-23 Rolm Co HDLC-Hardwaremaschine und Speicherschnittstelle
US5504837A (en) * 1993-05-10 1996-04-02 Bell Communications Research, Inc. Method for resolving conflicts among distributed entities through the generation of counter proposals by transversing a goal hierarchy with acceptable, unacceptable, and indeterminate nodes
GB2298503B (en) * 1993-12-16 1998-08-12 Intel Corp Multiple programmable interrupt controllers in a computer system
US5455954A (en) * 1993-12-22 1995-10-03 Adaptec, Inc. Host interrupt signal generation circuit for controlling an auto read operation in a disk drive controller
US5634081A (en) * 1994-03-01 1997-05-27 Adaptec, Inc. System for starting and completing a data transfer for a subsequently received autotransfer command after receiving a first SCSI data transfer command that is not autotransfer
JPH07262152A (ja) * 1994-03-24 1995-10-13 Hitachi Ltd コンピュータシステム
US5896292A (en) * 1995-06-05 1999-04-20 Canon Kabushiki Kaisha Automated system for production facility
US5949762A (en) * 1996-01-24 1999-09-07 Telebit Corporation Apparatus and method for processing multiple telephone calls
KR100216451B1 (ko) * 1996-05-13 1999-08-16 윤종용 프로세서 통신시스템에서 다수의 하위데이타들을 전송하는 장치 및 방법
US5761428A (en) * 1996-07-05 1998-06-02 Ncr Corporation Method and aparatus for providing agent capability independent from a network node
US6145007A (en) * 1997-11-14 2000-11-07 Cirrus Logic, Inc. Interprocessor communication circuitry and methods
KR100257712B1 (ko) * 1997-12-31 2000-06-01 서평원 인터넷을 이용한 프로세스 간의 정보교환 장치
US7007099B1 (en) * 1999-05-03 2006-02-28 Lucent Technologies Inc. High speed multi-port serial-to-PCI bus interface
US7734744B1 (en) * 1999-11-09 2010-06-08 Cisco Technology, Inc. System for communicating management information and method of operation
US6799317B1 (en) * 2000-06-27 2004-09-28 International Business Machines Corporation Interrupt mechanism for shared memory message passing
US20040081394A1 (en) * 2001-01-31 2004-04-29 Giora Biran Providing control information to a management processor of a communications switch
US7310766B2 (en) * 2004-10-07 2007-12-18 International Business Machines Corporation End-to-end data integrity protection for PCI-Express based input/output adapter
US7721160B2 (en) * 2006-09-11 2010-05-18 Advanced Micro Devices, Inc. System for protecting data during high-speed bidirectional communication between a master device and a slave device
US9043363B2 (en) * 2011-06-03 2015-05-26 Oracle International Corporation System and method for performing memory management using hardware transactions
US8625422B1 (en) 2012-12-20 2014-01-07 Unbound Networks Parallel processing using multi-core processor
CN112198820B (zh) * 2020-09-27 2021-11-12 中国第一汽车股份有限公司 一种中断服务实现方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228495A (en) * 1978-12-19 1980-10-14 Allen-Bradley Company Multiprocessor numerical control system
US4442504A (en) * 1981-03-09 1984-04-10 Allen-Bradley Company Modular programmable controller
US4443865A (en) * 1981-10-26 1984-04-17 Allen-Bradley Co. Processor module for a programmable controller
US4504927A (en) * 1982-09-08 1985-03-12 Allen-Bradley Company Programmable controller with expandable I/O interface circuitry
US4527250A (en) * 1980-09-11 1985-07-02 Allen-Bradley Company Video computer terminal with detachable intelligent keyboard module
US4604500A (en) * 1981-12-02 1986-08-05 At&T Bell Laboratories Multiprocessing interrupt arrangement
US4831582A (en) * 1986-11-07 1989-05-16 Allen-Bradley Company, Inc. Database access machine for factory automation network

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809269A (en) * 1987-04-02 1989-02-28 Advanced Micro Devices, Inc. Dual-port timing controller
JP2834122B2 (ja) * 1987-07-08 1998-12-09 株式会社日立製作所 制御装置
US4937777A (en) * 1987-10-07 1990-06-26 Allen-Bradley Company, Inc. Programmable controller with multiple task processors

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228495A (en) * 1978-12-19 1980-10-14 Allen-Bradley Company Multiprocessor numerical control system
US4527250A (en) * 1980-09-11 1985-07-02 Allen-Bradley Company Video computer terminal with detachable intelligent keyboard module
US4442504A (en) * 1981-03-09 1984-04-10 Allen-Bradley Company Modular programmable controller
US4443865A (en) * 1981-10-26 1984-04-17 Allen-Bradley Co. Processor module for a programmable controller
US4604500A (en) * 1981-12-02 1986-08-05 At&T Bell Laboratories Multiprocessing interrupt arrangement
US4504927A (en) * 1982-09-08 1985-03-12 Allen-Bradley Company Programmable controller with expandable I/O interface circuitry
US4831582A (en) * 1986-11-07 1989-05-16 Allen-Bradley Company, Inc. Database access machine for factory automation network

Also Published As

Publication number Publication date
CA2019373C (en) 2000-10-10
US5283869A (en) 1994-02-01
DE4023471A1 (de) 1991-01-31
JPH0364231A (ja) 1991-03-19
CA2019373A1 (en) 1991-01-25

Similar Documents

Publication Publication Date Title
DE4023471C2 (de) Steuerungssystem mit Hostcomputer und Kommunikationsschnittstellenschaltung
EP1456722B1 (de) Datenübertragungsverfahren, serielles bussystem und anschalteinheit für einen passiven busteilnehmer
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE19581234B4 (de) Bussteuereinrichtung und Verfahren für eine hierarchische serielle Busanordnung unter Verwendung von Kommunikationspaketen
DE3931514C2 (de) Kanaladapter
EP0710904B1 (de) Backplane-Steuerung für Spinnereimaschine
EP0576459B1 (de) Verfahren zum aufbau von botschaften für den datenaustausch und/oder für die synchronisation von prozessen in datenverarbeitungsanlagen
DE4121446A1 (de) Terminal-server-architektur
DE102016000126B4 (de) Serielles Bussystem mit Koppelmodulen
DE4313190B4 (de) Vorrichtung und Verfahren zur Initialisierung einer Datenschnittstelle für eine programmierbare Steuerung
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE60123134T2 (de) Verfahren und vorrichtung für einen rekonfigurierbaren prozessor
DE2751106A1 (de) Automatisches mehrprozessor-schaltsystem fuer telegrafenleitungen
DE19609265B4 (de) Kommunikationseinrichtung mit asynchronem Übertragungmodus und daraus aufgebautes Kommunikationsnetzwerk
DE102018001574B4 (de) Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems
EP0184706A2 (de) Schnittstelleneinrichtung
WO2003028336A2 (de) Empfang von datentelegrammen in kommunikationssystemen mit redundanten netzwerkpfaden
EP0447769A2 (de) Verfahren und Schaltungsanordnung zur Verwaltung gleicher Einheiten sowie Vermittlungselement
EP0133577B1 (de) Datenübertragungsverfahren in einem digitalen Übertragungsnetzwerk und Vorrichtung zur Durchführung des Verfahrens
WO2003028306A1 (de) Verfahren zur erzeugung einer statischen adresstabelle und datennetz
DE10330596A1 (de) Zuordnung von Stationsadressen zu Kommunikationsteilnehmern in einem Bussystem
EP0562353A2 (de) Verfahren zum Übertragen hochpriorer Programme und Daten in einem Kommunikationssystem
DE19921359C2 (de) Datenübertragungssystem mit bidirektionaler Datenburstübertragung zwischen einer Zentrale und mindestens einer an einen Bus angeschlossenen Busstation
DE2348002B2 (de) Modular aufgebaute datenverarbeitungsanlage mit einer anzahl von gleichartigen prozessoren fuer die datenein-/ausgabe
EP1547348B1 (de) Verfahren und vorrichtung zur steuerung eines druckers oder kopierers durch zugriff auf datenobjekte mit hilfe von den datenobjekten zugeordneten netzwerkadressen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: H04L 29/02

8304 Grant after examination procedure
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee