DE69028744T2 - Intelligente Netzwerkschnittstellenschaltung - Google Patents

Intelligente Netzwerkschnittstellenschaltung

Info

Publication number
DE69028744T2
DE69028744T2 DE69028744T DE69028744T DE69028744T2 DE 69028744 T2 DE69028744 T2 DE 69028744T2 DE 69028744 T DE69028744 T DE 69028744T DE 69028744 T DE69028744 T DE 69028744T DE 69028744 T2 DE69028744 T2 DE 69028744T2
Authority
DE
Germany
Prior art keywords
host processor
interface circuit
host
data
parameter value
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
DE69028744T
Other languages
English (en)
Other versions
DE69028744D1 (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
Application granted granted Critical
Publication of DE69028744D1 publication Critical patent/DE69028744D1/de
Publication of DE69028744T2 publication Critical patent/DE69028744T2/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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)

Description

    Hintergrund der Erfindung
  • Die Erfindung findet Anwendung auf dem Gebiet der Serienkommunikationsnetze und betrifft insbesondere Schnittstellenschaltungen zum Verbinden von digitalen Prozessoren mit Serienkommunikationsnetzen.
  • Auf dem geschäftlichen und fertigungstechnischen Gebiet findet man zahlreiche Serienkommunikationsnetze. Im Geschäftswesen finden beispielsweise unter der Warenmarke "Ethernet" vertriebene Lokalbereichsnetze Anwendung, um Personalcomputer, Sichtgeräte, Minicomputer, Großrechner, Drukker und Plattenlaufwerke zu einem System miteinander zu verbinden, in welchem Daten zwischen den einzelnen Baueinheiten oder Komponenten sehr schnell übertragen werden konnen. Gleichermaßen werden auf dem Gebiet der Fertigung und Herstellung unter der Warenmarke "MAP" vertriebene Lokalbereichsnetze verwendet, um zellensteuerungen mit Sichtgeräten, Minicomputern, Großrechnern, rechnergestützten Konstruktionssystemen, rechnergestützten Fertigungssystemen, rechnergestützten Ingenieurabteilungen und Plattenlaufwerken zu verbinden. Verschiedene Typen von Serienkommunikationsnetzen haben breite Anwendung gefunden, und obgleich derzeit hohe Anstrengungen unternommen werden, um die Kommunikationstechnik auf gewissen Gebieten zu standardisieren, sind derzeit hunderte verschiedener Netze in Gebrauch und ihre Anzahl nimmt immer noch zu.
  • Bei der Konstruktion digitaler Prozessoren zur Anwendung auf dem kommerziellen Gebiet ist die Auswahl einer Strategie zum Verbinden eines solchen Prozessors mit Serienkommunikationsnetzen erforderlich. Hat der Prozessor beispielsweise eine Rückebene, wie beispielsweise einen "VME-BUS" oder einen "MULTIBUS", kann man für jedes Kommunikationsnetz eine Schaltungsplatte für diese Rückebene konstruieren. Eine Vielzahl Prozessorschaltungsplatten und Kommunikationsschnittstellenplatten kann man für die Rückebene entwickeln und in Verbindung mit irgendeiner Kombinatidn verwenden. Macht der digitale Prozessor andererseits von keiner Rückebene Gebrauch, kann man die Schnittstelle zum Kommunikationsnetz als integrales Teil des digitalen Prozessors konstruieren. In diesem Fall muß jeder digitale Prozessor so ausgelegt und konstruiert sein, daß er in Verbindung mit einem besonderen Kommunikationsnetzwerk betrieben werden kann, und wenn zahlreiche Netze vorkommen, muß man für jedes Netz einen Prozessor mit integraler Schnittstellenschaltung anbieten. Bietet somit ein Hersteller eine Serie aus drei digitalen Prozessoren unterschiedlicher Leistung und Fähigkeit an und will man diese Prozessoren mit drei verschiedenen Kommunikationsnetzen im Einzugsgebiet der Prozessoren betreiben, benötigt man sechs Schaltungsplattenerzeugnisse, wenn eine gemeinsame Rückebenenarchitektur verwendet wird, oder neun verschiedene Erzeugnisse, wenn die Kommunikationsschnittstelle ein integraler Teil des Prozessors ist.
  • Bietet der Hersteller eine große Vielfalt digitaler Prozessorerzeugnisse mit unterschiedlichen Architekturen an und treten in der Umgebung, in der diese Prozessoren angewendet werden sollen, zahlreiche Kommunikationsnetze auf, muß man eine schwierige Auswahl treffen. Die Firma Allen-Bradley Company, die die Inhaberin der hier beschriebenen Erfindung ist, stellt kleine, kostengunstige speicherprogrammierbare Steuerungen her, wie sie beispielsweise im US Patent Nr. 4,504,927 beschrieben sind, und Programmiergeräte, wie sie beispielsweise im US Patent Nr. 4,527,250 beschrieben sind, die von einer Rückebene keinen Gebrauch machen. Sie bietet auch mittelgroße speicherprogrammierbare Steuerungen an, wie sie beispielsweise im US Patent Nr. 4,443,865 beschrieben sind, die eine Rückebene verwenden, ferner große speicherprogrammierbare Steuerungen, wie sie beispielsweise im US Patent Nr. 4,442,504 beschrieben sind, die eine andere Rückebene verwenden, numerische Steuerungen, wie sie beispielsweise im US Patent Nr. 4,228,495 beschrieben sind, die wiederum andere Rückebenen verwenden, und Zellensteuerungen, wie sie im US Patent Nr. 4,831,582 beschrieben sind, die eine noch andere Rückebene benutzen. Offensichtlich ist es kommerziell nicht durchführbar, Kommunikationsschnittstellenmodule oder -schaltungen für jedes dieser Prozessorerzeugnisse und jedes der Kommunikationsnetze vorzusehen, die auf dem Fabrikgelände vorkommen.
  • In der EP 229 700 ist eine virtuelle Steuerung zum Erzielen von Kompatibilität zwischen einem Hostprozessor und einer peripheren Steuerung offenbart, und zwar einschließlich einem gemeinsamen RAM zum Empfangen von Parameterwerten für die periphere Steuerung im Anschluß an das Einschalten und eines Steuerprozessors zum Programmieren der peripheren Steuerung in Übereinstimmung mit vom Host gewünschten Werten.
  • Kurze Darlegung der Erfindung
  • Die Erfindung betrifft eine intelligente Kommunikationsschnittstellenschaltung, die es gestattet, ein Serienkommunikationsnetz mit einer großen Vielzahl digitaler prozessorgestützter Erzeugnisse zu verbinden. Insbesondere betrifft die Erfindung eine Netzzugriffseinrichtung, die mit einem Kommunikationsnetz verbunden ist und darüber zum Empfangen und Aussenden von Nachrichtendaten kommunizieren kann, einen gemeinsamen Speicher zum Speichern von Nachrichtendaten, die von der Netzzugriffseinrichtung ausgesendet werden sollen,und zum Speichern von Nachrichtendaten, die von der Netzzugriffseinrichtung empfangen worden sind, einen gemeinsamen Datenbus und einen gemeinsamen Adreßbus zum Verbinden des gemeinsamen Speichers mit der Netzzugriffseinrichtung und einem Hostprozessor und eine mit dem Hostprozessor, dem gemeinsamen Speicher und der Netzzugriffseinrichtung verbundene Schnittstellensteuerung, die betreibbar ist, um mit dem Hostprozessor eine Vereinbarung oder Abstimmung über gegenseitig akzeptierbare Hardware-Schnittstellenparameter zu treffen.
  • Allgemeines Ziel der Erfindung ist die Vereinfachung und Verminderung der Anzahl der Erzeugnisse, die man zum schnittstellenmäßigen Anschluß einer Familie digitaler Prozessorerzeugnisse an eine Vielzahl Kommunikationsnetze benötigt. Die intelligente Kommunikationsschaltung kann man als ein integrales Teil des Prozessors ausbilden, oder sie kann in Form einer separaten Schaltungsplatte oder eines Moduls ausgebildet sein, die bzw. der mit der Prozessorrückebene verbunden ist. Der digitale Prozessor enthält eine Einrichtung zum Herstellen einer Verbindung mit dem gemeinsamen Datenbus und dem gemeinsamen Adreßbus sowie eine Einrichtung zum Ausführen bzw. Fortführen der Verhandlung bzw. Abstimmung mit der intelligenten Kommunikationsschnittstellenschaltung. Als ein Ergebnis dieser Verhandlung bzw. Abstimmung kennt die Schnittstellensteuerung die Hardwareeigenschaften jedes digitalen Prozessors und paßt ihren Betrieb in einer entsprechenden Weise an. Eine einzige intelligente Kommunikationsschnittstellenschaltung kann daher für jedes Kommunikationsnetzprotokoll konstruiert werden, und die Schaltung paßt sich automatisch allen digitalen Prozessoren in der Familie an.
  • Ein weiteres Ziel der Erfindung ist die Verminderung der Kosten des schnittstellenmäßigen Anschlusses von Prozessoren an Kommunikationsnetze. Zusätzlich zu der Herabsetzung der Kosten bezüglich des Aufbaus, der Herstellung, des Vertriebs und der Lagerhaltung aufgrund einer Verminderung der Anzahl einzelner Produkte, die man zum Erfüllen der Marktbedürfnisse benötigt, werden auch durch höhere Fertigungszahlen Kostenersparnisse erzielt. So kann man beispielsweise ein kundenintegrierte Schaltung als Netzzugriffseinrichtung für ein besonderes Kommunikationsnetzprotokol 1 verwenden. Dieselbe Schaltung kann man für alle Prozessoren der Familie benutzen, die gemäß dem besonderen Netzprotokoll zu verbinden sind, so daß eine hinreichend große Anzahl Schaltungen gefertigt werden, wodurch die hohen anfänglichen Werkzeugkosten gerechtfertigt sind.
  • Ein weiteres Ziel der Erfindung ist die Vereinfachung des Aufbaus einer Netzschnittstelle zwischen einem Prozessor und einem besonderen Netz. Der Prozessorkonstrukteur muß lediglich für die Verbindung mit den gemeinsamen Bussen sorgen und die Einrichtung zum Fortführen der Vereinbarung bzw. Abstimmung vorsehen. Die intelligente Kommunikationsschnittstellenschaltung paßt ihren eigenen Betrieb automatisch so an, daß er mit der Prozessorkonstruktion kompatibel ist.
  • Die obigen Ziele werden erreicht durch eine Kommunikationsschnittstellenschaltung, wie sie im Anspruch 1 dargelegt ist und wie sie in einem digitalen System nach Anspruch 7 verwendet wird.
  • Die obigen und andere Ziele sowie Vorteile der Erfindung gehen aus der nachstehenden Beschreibung hervor. In der Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die ein Teil der Beschreibung darstellen und in denen ein bevorzugtes Ausführungsbeispiel der Erfindung veranschaulicht ist. Dieses Ausführungsbeispiel stellt notwendigerweise nicht den vollen Schutzumfang der Erfindung dar. Bezüglich der Interpretation des Schutzumfanges wird daher auf die Ansprüche verwiesen.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 ist eine bildliche Darstellung eines programmierbaren Steuerungssystems, das von der Erfindung Gebrauch macht.
  • Fig. 2 ist ein Blockschaltbild des Systemsteuermoduls, das ein Teil des Systems von Fig. 1 darstellt.
  • Fig. 3 ist ein Blockschaltbild des Fern-E/A-Abtastmoduls, das ebenfalls ein Teil des Systems von Fig. 1 darstellt.
  • Fig. 4 ist ein Blockschaltbild der intelligenten Kommunikationsschnittstellenschaltung, die in den Modulen von Fig. 2 und 3 verwendet wird.
  • Fig. 5 ist ein Schaltbild der Netzzugriffsschaltung, die ein Teil der Schaltung von Fig. 4 darstellt.
  • Fig. 6 ist ein Plan des gemeinsamen RAM, der ein Teil der Schaltung von Fig. 4 darstellt.
  • Fig. 7 ist ein Plan des Vereinbarungs- oder Abstimmungssegments, das ein Teil des Speicherplans von Fig. 6 darstellt.
  • Fig. 8 ist ein Flußdiagramm des von der Schnittstellensteuerung von Fig. 4 ausgeführten Programms.
  • Fig. 9 ist ein Flußdiagramm des Vereinbarungs- oder Abstimmungsprozesses, der ein Teil des Programms von Fig. 8 darstellt.
  • Fig. 10 ist eine bildliche Darstellung einer Datenstruktur, die vom Abstimmungsprozeß von Fig. 9 benutzt wird.
  • Fig. 11 ist ein Flußdiagramm des Abstimmungsprozesses, der von einem Hostprozessor ausgeführt wird, der mit der Kommunikationsschnittstellenschaltung der Erfindung verbunden ist.
  • Fig. 12 ist ein Plan des Handshake- oder Quittungssegments, das ein Teil des Speicherplans von Fig. 6 darstellt.
  • Fig. 13 ist eine bildliche Darstellung der Datenstrukturen, die in den Kanal-A- und Kanal-B-Segmenten gespeichert sind, die einen Teil des Speicherplans von Fig. 6 darstellen.
  • Beschreibung des bevorzugten Ausführungsbeispiels
  • Eine in Fig. 1 dargestellte programmierbare Steuerung 10 ist in einem Rahmen oder Gestell 12 untergebracht, das eine Reihe Schlitze zur Aufnahme einer Vielzahl Module mit gedruckten Schaltungskarten aufweist. Diese Funktionsmodule sind an eine Mutterplatte angeschlossen, die sich längs der rückseitigen Oberfläche des Gestells 12 erstreckt und eine diesbezügliche Rückebene 11 vorsieht. Die Rückebene 11 hat eine Vielzahl Modulverbinder, die über ein leitendes Muster auf der Rückebene miteinander verbunden sind. Die Rückebene 11 sieht eine Reihe Signalbusse vor, mit denen die Module verbunden sind. Das Gestell 12 enthält ein Energieversorgungsmodul 14, eine Systemsteuerung 16, eine Anzahl Programmausführungsprozessormodule 18 und eine Vielzahl Fern-Eingabe/Ausgabe-Abtastmodule 20. Der mechanische Aufbau des Gestells 12 ist in dem US Patent Nr. 4,716,495 offenbart, dessen Inhaber mit dem Inhaber der hier beschriebenen Erfindung identisch ist.
  • Bis zu vier Fern-E/A-Abtastmodule 20 (E/A = Eingabe/Ausgabe) verbinden die Steuerung 10 schnittstellenmäßig mit externen Fern-E/A-Gestellen 17 über serielle E/A-Datenverbindungen, wie beispielsweise das Link 15. Jedes Fern-E/A-Gestell 17 enthält eine Vielzahl lokaler E/A-Module 19, die mit einzelnen Sensoren und Aktoren an der gesteuerten Anlage verbunden sind. Die lokalen E/A-Module 19 können zahlreiche Formen annehmen und beispielsweise Gleichstromeingänge oder -ausgänge, Wechselstromeingänge oder -ausgänge, analoge Eingänge oder Ausgänge sowie Positioniermodule mit offener oder geschlossener Schleife enthalten. Das Fern-E/A-Gestell 17 weist auch ein Adaptermodul 19' auf, wie es beispielsweise im US Patent Nr. 4,413,319 beschrieben ist. Dieses Adaptermodul ist an das serielle Kommunikationsnetz 15 angeschlossen und vermittelt Nachrichtendaten zwischen den E/A-Modulen 19 und dem Netz 15.
  • Die Systemsteuerung 16 ist über ein Kabel 25 mit einem Programmiergerät 24 verbunden, das dazu dient, die Anwenderprogramme in die programmierbare Steuerung zu laden sowie ihren Betrieb zu konfigurieren und ihr Leistungsvermögen zu überwachen. Bei dem Gerät 24 handelt es sich um einen programmierten Personalcomputer, der den Anwender in die Lage versetzt, für das System Steuerprogramme zu entwickeln. Die Steuerprogramme werden in die programmierbare Steuerung herabgeladen, und das Gerät 24 kann dann von der Systemsteuerung 16 abgetrennt werden, falls eine weitere Überwachung nicht erforderlich ist. Die Systemsteuerung 16 kann auch über ein Kabel 26 mit einem Lokalbereichsnetz 28 verbunden werden, über das sie Daten und Programmieranweisungen empfangen und Statusinformation sowie Berichtsdaten an einen zentralen Rechner abgeben kann. Dies setzt einen Zentralrechner oder ein zentrales Anschlußgerät in die Lage, eine Vielzahl programmierbarer Steuerungen auf einer Fabrikationsebene zu programmieren und zu steuern.
  • Wie es insbesondere aus Fig. 2 hervorgeht, sieht das Systemsteuermodul 16 eine Kommunikationsschnittstelle für die programmierbare Steuerung bezüglich externer Geräte und lokaler Bereichsnetze vor. Die Systemsteuerung 16 nimmt auch systemorganisatorische Funktionen wahr, wie beispielsweise die Bereitstellung einer Anzeige des Systemzustands und die Überwachung des Zugriffs zur Rückebene 11. Während das Normalbetriebs der programmierbaren Steuerung kümmert sich die Systemsteuerung 16 um die Kommunikation mit den externen Geräten, die mit ihr verbunden sind, beispielsweise um die Kommunikation mit dem Netz 28 und dem Programmiergerät 24. Eine der wesentlichen Aufgaben ist die Kommunikation mit dem Gerät 24, und zwar zum Vorsehen von Information, die es dem Benutzer gestattet, die Leistungsfähigkeit des Systems zu überwachen und fehlerhafte oder gestörte Sensoren oder Aktoren zu erfassen. Eine andere von der Systemsteuerung 16 überwachte Aufgabe ist der Austausch von Daten mit einem Zentralrechner oder einer programmierbaren Partnersteuerung über das lokale Bereichsnetz 28. Dadurch wird der Zentralrechner in die Lage versetzt, von einer oder einer Anzahl programmierbarer Steuerungen statistische Daten zu erlangen, die den Betrieb dieser Steuerungen betreffen.
  • Das Systemsteuermodul 16 ist an die Rückebenebusse 21-23 angeschlossen und in drei Abschnitte unterteilt: einen Rückebeneschnittstellenabschnitt, einen Prozessorabschnitt und einen Kommunikationsabschnitt. Der Rückebeneschnittstellenabschnitt überwacht den Rückebenezugriff für alle Gestellmodule und verbindet das Steuermodul 16 selbst mit der Rückebene 11. Der Prozessorabschnitt führt ein Überwachungsprogramm für die Steuerung 10 aus. Der Kommunikationsabschnitt ist in der Hauptsache für die Kommunikation mit dem externen Gerät 24 über die Serienkommunikationsleitung 25 und mit dem lokalen Bereichsnetz 28 über die Leitung 26 verantwortlich.
  • Wie es ferner aus Fig. 2 hervorgeht, halten eine Gruppe Busse den Prozessorabschnitt verbindungsmäßig zusammen. Diese Busse enthalten Steuerleitungen 61, einen 16-Bit-Datenbus 62 und einen 23-Bit-Adreßbus 63. Der Zugriff zu diesen Bussen wird durch eine Arbitrationsschaltung 64 gesteuert. Der Prozessorabschnitt ist rund um einen 16-Bit-Mikroprozessor 66 aufgebaut, bei dem es sich beispielsweise um einen von Motorola, Inc., vertriebenen Mikroprozessor Model 68010 handeln kann, der einen in einem Festwertspeicher 68 gespeicherten Programmecode ausführt. Der 68010-Mikroprozessor ist im wesentlichen ein speicherorientierter Baustein und weist keine direkt an ihn angeschlossene Eingabe/Ausgabe-Leitungen auf. Der Zugriff dieses Prozessors auf andere Komponenten am Prozessorbus muß deshalb durch Ausgabe von Adressen am Bus 63 vorgenommen werden. Die vom Mikropozessor 66 ausgegebene Adresse wird in einer Adreßdecodierschaltung 70 decodiert, um die geeigneten Steuersignale für die Komponenten zu erzeugen, auf die zugegriffen werden soll. Der Prozessorabschnitt enthält auch einen Unterbrechungs- oder Interruptprozessor 72, der die Unterbrechungen zum Mikroprozessor 66 steuert und die geeigneten Anweisungsadreßvektoren vorsieht.
  • Eine Datentransferbestätigungs- und Busfehlerschaltung 74 (DTACK/BERR) ist darüber hinaus mit dem Prozessorsteuerbus 61 verbunden. Die Schaltung 74 spricht auf Signale von den verschiedenen Komponenten im Prozessorabschnitt an, um die Vollendung eines Datentransfers zu bestätigen und um im Falle einer nicht passenden Adressierung oder eines Datentransferfehlers Busfehlersignale auszugeben. Auf diese Signale wirkt der Mikroprozessor 66 ein, der dann eine Korrektur veranlaßt. Der Prozessorabschnitt enthält auch eine Taktschaltung 89, die den Hauptsystemtaktgeber und eine Echtzeituhr enthält. Eine Systemzustandsschaltung 88 empfängt Eingabesignale, die den Zustand oder Status des gesamten Systems 10 betreffen und sie stellt eine Anzeige über diesen Status bereit.
  • Ein Hauptspeicher mit wahlfreiem Zugriff (RAM) 69 für die Systemsteuerung 16 ist ebenfalls an die Prozessorbusse 61 - 63 angeschlossen. Der RAM 69 ist ein statischer Speicher, der als Systemspeicher für die gesamte Steuerung 10 dient. Der Hauptspeicher 69 kann von anderen Modulen im System ohne Eingriff durch den Mikroprozessor 66 direkt zugegriffen werden.
  • Wie es ferner aus Fig. 2 hervorgeht, ist der Prozessorabschnitt der Systemsteuerung 16 schnittstellenmäßig mit den Rückebenebussen des Gestells 12 verbunden, und zwar über eine Vielzahl Komponenten, die mit beiden Busgruppen verbunden sind. Insbesondere ist der Rückebenedatenbus 22 mit dem Prozessordatenbus 62 über eine Gruppe bidirektionaler Datenübertragungstore 78 verbunden, und der Rückebeneadreßbus 23 ist mit dem Prozessoradreßbus 63 über einen weiteren Satz bidirektionaler Tore 76 verbunden. Wenn die Systemsteuerung 16 den Versuch unternimmt, die Kontrolle über die Rückebene 11 der programmierbaren Steuerung 10 auszuüben, spricht eine Hauptmodussteuerschaltung 81 auf Signale an den Steuerleitungen des Prozessorbusses 61 an und gibt die geeigneten Steuersignale über den Rückebenesteuerbus 21 aus, um zu anderen Modulen innerhalb des Gestells 12 den Zugriff zu erlangen.
  • Falls ein anderes Modul im Gestell 12 den Zugriff zur Systemsteuerung 16 sucht, um beispielsweise den Inhalt des Haupt-RAM 69 zu lesen, wird von diesem anderen Modul die Systemsteuerung der Steuerung der Rückebene 11 untergeordnet. In diesem Falle spricht eine Slavemodussteuerschaltung 82 in der Systemsteuerung 16 auf die am Rückebeneadreßbus 23 auftretende Adresse der Systemsteuerung und auf Steuersignale an den Steuerleitungen des Rückebenebusses 21 an, die von dem anderen Modul kommen. Die Slavemodussteuerung 82 antwortet darauf mit der Ausgabe von Signalen an die Übertragungstore 76 und 78, die es dem anderen Rückebenemodul gestatten, den Zugriff zur Systemsteuerung 16 zu erlangen. In diesem zuletzt beschriebenen Fall befindet sich die Mastermodussteuerschaltung 81 in einem Ruhezustand. Die beiden Bustore 76 und 78 empfangen Freigabesteuersignale von der Master- oder Slavemodussteuerschaltung 81 bzw. 82 über die Leitungen des Steuerbusses 61 in Abhängigkeit vom Modus der Rückebenekommunikation.
  • Eine Rückebenearbitrationsschaltung 84 überwacht den Zugriff zur Rückebene 11 und lost widersprechende Anforderungen zum Zugriff auf die Module im System auf. Die Rückebenearbitrationsschaltung 84 benutzt ein rotierendes Prioritätssystem, um festzulegen, welchem von einigen Modulen, die gleichzeitig den Zugriff zur Rückebene suchen, dieser Zugriff erteilt wird. Bei dem rotierenden Prioritätssystem wird die Prioritätsreihenfolge immer dann verschoben, wenn ein Modul die Steuerung über die Rückebene 11 zurückgibt.
  • Die E/A-Abtastmodule 20 sammeln Eingabesensordaten zur Verwendung durch die Programmausführungsprozessormodule 18. Wie es aus Fig. 1 und 3 hervorgeht, verbindet ein Fern-E/A- Abtastmodul 20 die programmierbare Steuerung 10 mit einem oder mehreren Fern-Eingabe/Ausgabe-Gestellen 17 die einzelne E/A-Module 19 enthalten, die die Schnittstellenmäßige Verbindung der Eingabevorrichtungen oder Ausgabevorrichtungen mit der programmierbaren Steuerung 10 vorsehen. Jedes Abtastmodul 20 fordert periodisch Eingabedaten an, die den Zustand oder Status der Eingabevorrichtungen betreffen, die an die Fern- E/A-Gestelle 17 angeschlossen sind, und speichert diese Daten in einer Eingabebildtabelle des Moduls, die von anderen Modulen der Steuerung gelesen werden kann, wie beispielsweise von den Prozessormodulen 18. Das Abtastmodul 20 enthält auch eine Bildtabelle der Ausgabedaten, die es von anderen Modulen der Steuerung erhält, wie 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-Gestellen 17 transferiert, um die verschiedenen Aktoren zu steuern, die mit diesen Gestellen verbunden sind.
  • Jedes Fern-E/A-Abtastmodul 20 ist mit den drei Rückebenebussen 21 bis 23 verbunden. Der E/A-Abtaster 20 enthält zwei Gruppen interner Busse: Speicherzugriffbusse 121 bis 123 und Mikroprozessorbusse 131 bis 133 sind mit der Rückebene 11 über eine Gruppe Adreßbustore 124 und eine Gruppe Datenbustore 126 verbunden. Diese Übertragungstore werden beide von einer Interbussteuerschaltung 128 gesteuert, die über den Speichersteuerbus 121 Signale an die Tore 124 und 126 aussendet. Ein lokaler Direktzugriffsspeicher, der hier Haupt-RAM 134 genannt wird, ist mit den drei Speicherbussen 121 bis 123 verbunden. Er speichert die Eingabebildtabelle für die Sensorinformation, die von den Fern-E/A-Gestellen 17 zum E/A-Abtaster 20 gelangt, und er speichert auch die Ausgabebildtabelle für die Ausgabedaten, die an die Fern-E/A-Gestelle 17 ausgegeben werden.
  • Die Zwischenbussteuerschaltung 128 sendet auch Steuersignale an die E/A-Datenarbitrationsschaltung 130, die einander widersprechende Aufrufe für den Zugriff zu den Speicherbussen 121 bis 123 von der Rückebene 11 und den Mikroprozessorbussen 131 bis 133 auflöst. Zwei Gruppen Übertragungstore, Adreßtore 136 und bidirektionale Tore 138 verbinden die Speicherbusse 121 bis 123 mit den Mikroprozessorbussen 131 bis 133 und empfangen Steuersignale von der E/A-Datenarbitrationsschaltung 130 über den Speichersteuerbus 121.
  • Der Betrieb des Fern-E/A-Abtasters 20 wird von einem Acht-Bit-Mikroprozessor 140 gesteuert, der mit den drei Mikroprozessorbussen 131 bis 133 verbunden ist. Bei dem Mikroprozessor 140 kann es sich um einen handelsüblichen Prozessor vom Typ Z80 der Firma Zilog, Inc. handeln, und er arbeitet in Abhängigkeit von einem gespeicherten Programm, um Nachrichtendaten vom Haupt-RAM 134 zu einem Kommunikationsabschnitt 141 zu senden und Nachrichtendaten vom Kommunikationsabschnitt 141 zu empfangen. Der Kommunikationsabschnitt 141 übermittelt Nachrichtendaten zwischen dem Mikroprozessor 140 und jedem der seriellen Links 15.
  • Die oben beschriebenen Module sind für das Umfeld typisch, in welchem die Erfindung angewendet wird. Ein Hostprozessor (wie beispielsweise der Mikroprozessor 66 oder 140), der eine Anzahl Funktionen ausführt, muß ebenfalls über eine oder mehrere serielle Kommunikationslinks oder Netze kommunizieren. Der Hostprozessor tauscht Nachrichtendaten mit dem Kommunikationsnetz über einen Kommunikationsabschnitt aus, der zum Ausführen des besonderen Netzprotokolls zum Senden oder Empfangen von Nachrichtendaten verantwortlich ist. Der Hostprozessor ist in der Lage, Daten zu lesen, einschließlich Nachrichtendaten, und zwar von einem Speicher, der mit dem Kommunikationsabschnitt gemeinsam ist, und er kann Daten in diesen gemeinsamen Speicher schreiben. Die genaue Art und Weise, in der diese Lese- und Schreibfunktionen ausgeführt werden, und die Menge der transferierten Daten, (d.h. 8, 16 oder 32 Bits) schwankt allerdings beachtlich von einem Hostprozessor zum nächsten. Bei der Erfindung handelt es sich um eine intelligente Kommunikationsschnittstellenschaltung, die als Kommunikationsabschnitt verwendet werden kann und die sich automatisch Abänderungen dadurch anpaßt, daß sie die Betriebsparameter, die in Verbindung mit einem besonderen Host verwendet werden sollen, aushandelt oder abstimmt. Ein Kommunikationsabschnitt zur Verwendung in einem besonderen lokalen Bereichsnetz kann deshalb so ausgelegt sein, daß es sich automatisch einer großen Vielzahl Hostprozessoren anpaßt, und zwar solchen, wie sie oben beschrieben worden sind.
  • Es wird jetzt insbesondere auf Fig. 4 Bezug genommen. Das bevorzugte Ausführungsbeispiel der Kommunikationsschnittstellenschaltung ist in einer solchen Weise ausgelegt, daß es einen Hostprozessor mit einem von zwei seriellen Kommunikationslinks 200 und 201 verbindet. Der Hostprozessor (in Fig. 4 nicht gezeigt) ist an die Kommunikationsschnittstellenschaltung über eine Gruppe bidirektionaler Tore 202 angeschlossen, die den Hostdatenbus 203 mit einem gemeinsamen Datenbus 204 verbinden. Der Hostadreßbus 205 ist mit einem gemeinsamen 15-Bit-Adreßbus 206 über eine Gruppe aus fünfzehn Toren 207 verbunden, die zusammen mit den Datentoren 202 freigegeben werden, wenn über eine "en"-Steuerleitung 208 ein logisch niedriges Signal empfangen wird. Der Host initiiert einen Lese- oder Schreibzyklus durch Beaufschlagen einer "Anforderung"-Steuerleitung 215, und die Schnittstellenschaltung 210 bestatigt die Anforderung durch Aufschlagen einer DTACK- Steuerleitung 216, wenn der Zugriff zu den gemeinsamen Bussen 204 und 205 bewilligt wird. Die Host-Lese/Schreib-Steuerleitung 209 bestimmt die Richtung des Datentransfers durch die Datentore 202.
  • Die gemeinsamen Busse 204 und 206 sind an einen gemeinsamen Direktzugriffsspeicher (RAM) 211 angeschlossen, der von der Schnittstellenschaltung 210 durch 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 den Zugriff zu dem gemeinsamen RAM 211 durch den Hostprozessor freizugeben.
  • Wie es weiter unten im einzelnen noch erläutert wird, dient der gemeinsame RAM 211 als Mittel zum Austauschen von Information, einschließlich Nachrichtendaten, zwischen dem Hostprozessor und der Kommunikationsschnittstelle. Nachrichtendaten können in den gemeinsamen RAM 211 entweder vom Hostprozessor oder von der Schnittstellenschaltung 210 eingeschrieben werden, und die andere Vorrichtung kann diese Nachrichtendaten auslesen, nachdem ihr Vorhandensein gemeldet worden ist. Wie es außerdem weiter unten im einzelnen noch erläutert wird, werden von der Kommunikationsschnittstellenschaltung zum richtigen Betreiben des Hostprozessors benötigte Daten in dem gemeinsamen RAM 211 gespeichert, gleichermaßen wie Daten, die die Kommunikationsschnittstellenschaltung bezüglich der besonderen Anwendung konfigurieren.
  • Immer noch unter Bezugnahme auf Fig. 4 sei erläutert, daß die Schnittstellenschaltung 210 eine applikationsspezifische integrierte Schaltung (ASIC) ist, die eine Anzahl Funktionen ausübt. Als erstes entscheidet sie über den Zugriff zu dem gemeinsamen RAM 211 und steuert die Lese- und Schreibzyklen bezüglich des gemeinsamen RAM 211. Sie leitet auch Nachrichtendaten vom gemeinsamen RAM 211 entweder zu einem A-Kanal-Sendeempfänger 220 oder einem B-Kanal-Sendeempfänger 221 weiter, und leitet auch Nachrichtendaten vom Sendeempfänger 220 oder 221 zurück zum gemeinsamen RAM 211. Schließlich gestattet sie auch einer Schnittstellensteuerung 222, Daten aus dem gemeinsamen RAM 211 auszulesen und Daten in ihn einzuschreiben.
  • Der Betrieb der Schnittstellenschaltung 210 wird von der Schnittstellensteuerung 222 gesteuert, bei der es sich um einen programmierten Mikrocomputer handelt, wie beispielsweise Modell "Super 8", hergestellt von Zilog, Inc. Die Schnittstellensteuerung 222 ist mit der Schnittstellenschaltung 210 verbunden über einen 8-Bit-Daten/Adreßbus 223 und einen 8-Bit-Adreßbus 224 sowie eine Gruppe Steuerleitungen. Wird eine 16-Bit-Adresse an die Busse 223 und 224 gelegt, tritt an einer AS-Steuerleitung 225 ein Signal auf, und falls am Bus 223 8-Bit-Daten auftreten, erscheint ein Signal an einer DS- Steuerleitung 226. Die Richtung des Datentransfers am Bus 223 wird festgelegt durch den logischen Zustand an einer R/W- Steuerleitung 227. Die oben aufgeführten Busse und Steuerleitungen werden von der Schnittstellensteuerung 222 angesteuert, jedoch wird eine Reihe der Steuerleitungen von der Schnittstellenschaltung 210 angesteuert. Diese umfassen eine Warte-Steuerleitung 228, die die Schnittstellensteuerung 222 in einen Wartezustand bringt, sowie eine Reihe Unterbrechungsleitungen und Kennzeichenleitungen, die kollektiv bei 229 gezeigt sind.
  • Die Schnittstellensteuerung 222 ist auch mit dem Hostprozessor über eine Gruppe Steuerleitungen verbunden. Diese umfassen eine UNTERBRECHUNG-ZUM-HOST-Steuerleitung 230, die von der Schnittstellensteuerung 222 beaufschlagt wird und die dem Hostprozessor signalisiert, daß er gewisse Datenstrukturen im gemeinsamen RAM 211 lesen sollte. Gleichermaßen kann der Hostprozessor die Schnittstellensteuerung 222 durch eine UNTERBRECHUNG-ZUR-STEUERUNG-Steuerleitung 231 unterbrechen, über die der Schnittstellensteuerung 222 signalisiert wird, den gemeinsamen RAM 211 im Hinblick auf Information vom Hostprozessor zu lesen. Schließlich kann eine TME-Steuerleitung 232 vom Hostprozessor beaufschlagt werden, um der Schnittstellensteuerung 222 zu signalisieren, daß sie in ihren Testmodusbetrieb eintreten sollte.
  • Es wird jetzt insbesondere auf Fig. 4 und 5 Bezug genommen. Die Schnittstellenschaltung 210 verbindet die Senderempfänger 220 und 221 mit dem gemeinsamen RAM 211 und auch die Schnittstellensteuerung 222 mit dem gemeinsamen RAM 211. Der Kanal-A-Sendeempfänger 220 ist über Leitungen 250 mit einer Kanal-A-Serienprotokollmaschine 251 verbunden, und der Kanal- B-Sendeempfänger 221 ist über Leitungen 252 mit einer Kanal- B-Serienprotokollmaschine 253 verbunden. Die Serienprotokollmaschinen 251 und 253 sind hinsichtlich ihres Aufbaus und Betriebs miteinander identisch.
  • Nachrichtendaten zu und von den Serienprotokollmaschinen 251 und 253 werden über einen 8-Bit-Datenbus 255 und eine Gruppe aus acht bidirektionalen Datentoren 256 in bezug auf den gemeinsamen RAM 211 übertragen. Eine Direktspeicherzugriff- oder DMA-Steuerung 257 führt den tatsächlichen Transfer von Nachrichtendaten zu und von dem gemeinsamen RAM 211 dadurch aus, daß über eine Gruppe aus fünfzehn Adreßtoren 258 am gemeinsamen Adreßbus 206 Adressen erzeugt werden. Die Steuerung der gemeinsamen Busse 204 und 206 wird festgelegt durch eine Arbitrations- und Steuerschaltung 260, die über Anforderungen vom Hostprozessor, von der Schnittstellensteuerung 222 und von beiden A- und B-Kanälen der DMA-Steuerung 257 entscheidet.
  • Immer noch unter Bezugnahme auf Fig. 4 und 5 sei erläutert, daß die Schnittstellensteuerbusse 223 und 224 über eine Gruppe aus acht bidirektionalen Toren 262 und eine Gruppe aus acht Adreßtoren 263 mit der Schnittstellenschaltung 210 verbunden sind. Wenn Daten am Bus 223 vorhanden sind, wie es durch die DS-Steuerleitung 226 signalisiert wird, werden die bidirektionalen Tore 262 freigegeben, und die Daten werden durch diese Tore in derjenigen Richtung übertragen, die von der R/W-Steuerleitung 227 angezeigt wird. Diese Daten gelangen zu einem 8-Bit-Datenbus 263, der über eine weitere Gruppe aus acht bidirektionalen Datentoren 264 mit dem 8-Bit-Datenbus 255 verbunden ist. Auf diese Weise können Daten zu oder vom gemeinsamen RAM 211 zum Datenbus 263 und über Tore 262 zur Schnittstellensteuerung 222 gelangen. Daten am Bus 263 können auch zur DMA-Steuerung 257 übermittelt werden, um die Schnittstellensteuerung 222 freizugeben, und zwar zum Setzen der Speicheradresse, die die DMA-Steuerung erzeugen wird. Er ist auch mit einer Gruppe Zeitgeber 266 und Prozessorstatusregister 268 verbunden. Die Schnittstellensteuerung 222 kann somit Daten zu den Zeitgebern 266 schreiben, die die Serienprotokollmaschinen 251 und 253 bezüglich der besonderen Zeitsteueranforderungen des lokalen Bereichsnetzes konfigurieren. Die Schnittstellensteuerung 222 kann auch Daten in die Register 268 schreiben, die den Betrieb der Schnittstellenschaltung 210 steuern, während die Schnittstellensteuerung 222 andere Funktionen ausführt. Die Schnittstellensteuerung 222 kann auch Daten von den Prozessorstatusregistern 268 lesen, um zu jedem beliebigen Zeitpunkt den Zustand der Schnittstellenschaltung 210 zu steuern. Der Inhalt des Prozessorstatusregisters 268 ist in der nachstehenden Tabelle A zusammengestellt. Tabelle A Prozessorstatusregister
  • Wenn die Schnittstellensteuerung 222 auf ihren Bus 223 eine Adresse gibt, wie es durch ihre AS-Steuerleitung 225 angezeigt wird, wird diese Adresse in einem Adreß-Latch 270 zwischengespeichert. Wenn anschließend die oberen acht Bits der Adresse auf den Bus 224 gegeben werden, wird die vollständige 16-Bit-Adresse an einen Adreßbus 271 gelegt. Diese Adresse wird vom Decodierer 272 decodiert, um eine der Vorrichtungen freizugeben, die an den Datenbus 263 angeschlossen ist. Wenn zusätzlich der gemeinsame RAM 211 adressiert wird, erzeugt der Decodierer 272 einen Aufruf an die Arbitrations- und Steuerschaltung 260, und ein Wartesignal wird für die Schnittstellensteuerung 222 von einer Prozessorschnittstellensteuerung 267 über die Steuerleitung 228 erzeugt. Wird der Zugriff bewilligt, wird dieses Wartesignal entfernt, und eine Gruppe Adreßtore 273 wird freigegeben, so daß die von der Schnittstellensteuerung 222 erzeugte Adresse über die Tore 258 zu dem gemeinsamen Adreßbus 206 gelangt.
  • Über die oben beschriebenen Busse und Tore hat die Schnittstellensteuerung 222 vollen Zugriff zum gemeinsamen RAM 211, wo sie Information mit dem Hostprozessor austauschen kann. Darüber hinaus kann die Schnittstellensteuerung 222 den Betrieb der Serienprotokollmaschinen 251 und 253 konfigurieren, ihren Betrieb steuern und auch ihren Betrieb überwachen.
  • Immer noch unter Bezugnahme auf Fig. 5 sei erläutert, daß die Serienprotokollmaschinen 251 und 253 die bitorientierte Protokollstruktur handhaben, die von den lokalen Bereichsnetzen verwendet werden, mit denen sie verbunden sind. Sie werden auch manchmal HDLC-Maschinen genannt, die gepackte Information im Serienformat des Protokolls der lokalen Bereichsnetze aussenden und empfangen. Jede Maschine sieht die Kennzeichen, das Einfügen und Auslassen von Nullen sowie die CRC-Überprüfung und -Erzeugung vor. Jede Serienprotokollmaschine 251 und 253 ist in einen Empfangsabschnitt und Sendeabschnitt unterteilt. Der Empfangsabschnitt transferiert alle bei einem Manchester-Decodierer 300 empfangene Datenbytes zu einem Empfangs-FIFO-Speicher 280. Der Sendeabschnitt leitet alle in den Sende-FIFO-Speicher 281 geladene Datenbytes an einen Manchester-Codierer 301 weiter.
  • Der Empfangsabschnitt wird von einer Empfangssteuerung 302 betrieben, die mit allen seinen Funktionselementen verbunden ist. Wird ein Datenpaket vom Manchester-Decodierer 300 empfangen, wird das darin enthaltene Adreßfeld bei dem seriellen Transfer zu einem Serien/Parallel-Umsetzer 304 von einer Schaltung 303 überprüft. Falls die Adresse mit der lokalen Adresse dieser Station nicht übereinstimmt, wird das Datenpaket ignoriert. Andernfalls wird das Datenpaket vom Serien/Parallel-Umsetzer 304 in 8-Bit-Datenbytes umgesetzt, und diese Datenbytes werden im Empfangs-FIFO-Speicher 280 gespeichert. Die letzten beiden Bytes vor dem Abschlußkennzeichen des Pakets betreffen eine Blockendesicherungszahl oder CRC-Zahl (CRC = zyklische Blockprüfung), die mit der Zahl verglichen wird, welche ein CRC-Prüfer 305 erzeugt. Stimmen die Zahlen miteinander überein, wurde das Datenpaket richtig übertragen, und es wird weitergeleitet zum Empfangs-FIFO- Speicher 280. Eine Unterbrechung der Schnittstellensteuerung 222 (Fig. 4) wird hervorgerufen, um anzuzeigen, daß ein Datenpaket empfangen worden ist. Wenn die CRC-Bytes einen Übertragungsfehler anzeigen, erzeugt der CRC-Prüfer 305 eine an die Schnittstellensteuerung 222 gerichtete Unterbrechung, und es werden Fehlerbits in das Empfangssyndromregister gegeben, um die Schnittstellensteuerung 222 über das Problem zu informieren.
  • Der Sendeabschnitt wird von einer Sendesteuerung 306 betrieben, die mit allen seinen Funktionselementen verbunden ist. Der Sendeabschnitt erhält von der Schnittstellensteuerung 222 den Befehl, eine im Sende-FIFO-Speicher 281 gespeicherte Datennachricht auszusenden. Der Sender beginnt automatisch mit der Aussendung der Präambelbits des Datenpakets über den Manchester-Codierer 301, und Datenbytes werden dann aus dem Sende-FIFO-Speicher ausgelesen und einem Parallell/Serien-Umsetzer 307 zugeführt. Die Daten werden in einen seriellen Bitstrom überführt, der dem Manchester-Codierer 301 zum Aussenden zugeführt wird. Ein CRC-Generator 308 überwacht alle Bits in dem ausgesendeten Datenpaket, und sobald das letzte Datenbit ausgesendet worden ist, erzeugt der CRC- Generator 308 eine 16-Bit-CRC-Zahl, die in der oben beschriebenen Weise verwendet wird, um die Integrität des Datenpakets zu überprüfen, wenn es bei einer anderen Station empfangen wird.
  • Es gibt zahlreiche Architekturen, die man zum Implementieren der Serienprotokollmaschinen 251 und 253 verwenden kann, jedoch ist ihre genaue Konstruktion nicht Gegenstand dieser Erfindung. Viele ihrer Funktionen können beispielsweise von Universal-Asynchron-Empfänger/Sendern (UARTs) wahrgenommen werden, die in integrierter Schaltungsform im Handel erhältlich sind. Das Entsprechende gilt für die Manchester- Codierer und -Decodierer als auch die FIFO-Speicher. Wie es allerdings oben aufgezeigt worden ist, werden diese Funktionselemente der Serienprotokollmaschinen 251 und 253 bei dem bevorzugten Ausführungsbeispiel als Teil einer ASIC implementiert, die auch die anderen in Fig. 5 dargestellten Funktionselemente enthält. Es ist tatsächlich eines der Ziele der Erfindung, diese ASIC in die Lage zu versetzen, daß sie in einer weiten Vielfalt von Kommunikationsanwendungen so benutzt werden kann, daß ihre Konstruktions-, Entwicklungs- und Werkzeugkosten ökonomisch gerechtfertigt sind.
  • Wie es oben aufgezeigt worden ist, speichert der gemeinsame RAM 211 Datenstrukturen, die es der Kommunikationsschnittstellenschaltung ermöglichen, sich dem besonderen Hostprozessor anzupassen, mit dem sie verbunden ist, und Nachrichtendaten mit diesem Hostprozessor auszutauschen. Diese gespeicherten Datenstrukturen sind generell in Fig. 6 veranschaulicht und werden nachstehend im einzelnen diskutiert.
  • Wie es insbesondere aus Fig. 6 hervorgeht, speichert der gemeinsame RAM 211 Daten in Segmenten. Das erste Segment 350 ist ein Negotiationssegment, das 32 Bytes an Daten enthält, die beim Einschalten verwendet werden, um die Eigenschaften der Kommunikationen zwischen dem Host und der Kommunikationsschnittstellenschaltung aufeinander abzustimmen. Dieses Segment 350 wird weiter unten noch im einzelnen beschrieben.
  • Das zweite Segment ist ein Identifikationssegment 352, das Information enthält, das die Serien- und Revisionsnummer der Kommunikationsschnittstellenschaltung anzeigt.
  • Das dritte Segment 351 ist ein Inhaltsverzeichnissegment, das eine Anordnung Segmentdeskriptoren enthält, die die Startadresse jedes Segments im gemeinsamen RAM 211, die Größe jedes Segments, den Typ des Segments und die Instanz des Segments enthalten. Das Übersichts- oder Inhaltsverzeichnissegment 351 ist ein Index zu den anderen Segmenten im gemeinsamen RAM 211. Die Segmenttypen umfassen:
  • 0 - Negotiationssegment
  • 1 - Inhaltsverzeichnissegment
  • 2 - Identifikationssegment
  • 4 - Kanalsegment
  • 5- Zwischenprozessorquittungskennzeichen
  • 6 - Selektionssegment
  • Die Stelle gibt die Nummer des Segments einer besonderen Art an. Bei dem bevorzugten Ausführungsbeispiel gibt es beispielsweise zwei Kanalsegmente 355 und 356, die durch ihre Stellennummer "0" und "1" voneinander unterschieden werden.
  • Dem Verzeichnissegment 351 folgt ein Quittungssegment 354, das acht 8-Bit-Wörter pro Kanal im gemeinsamen RAM 211 einnimmt. Wie es aus Fig. 12 hervorgeht, enthält das Quittungssegment 354 vier Wörter 370-373, die Kennzeichen speichern, welche sich auf Unterbrechungen vom Host zur Schnittstellensteuerung 222 beziehen, und es enthält ferner vier Wörter 374-377, die Kennzeichen speichern, welche sich auf Unterbrechungen von der Schnittstellensteuerung 222 zum Host beziehen. Speziell wird im Wort 370 vom Hostprozessor ein Kennzeichen umgeschaltet, wenn dieser Prozessor die Schnittstellensteuerung 222 unterbricht. Die Schnittstellensteuerung 222 bedient diese Unterbrechung dadurch, daß sie diese Kennzeichen ausliest und feststellt, welches umgeschaltet worden ist. Das erste Kennzeichen zeigt an, daß der Kanal A zurückzusetzen ist, die nächsten vier Kennzeichen zeigen an, daß das jeweilige Register der vier Kanal-A-Zugriff-FIFO-Register bedient werden will, und die nächsten vier Kennzeichen zeigen an, daß das jeweilige Register der vier Kanal-A-Verwaltung- FIFO-Register bedient werden will. Die Schnittstellensteuerung 222 bestätigt die Unterbrechung durch Umschalten des entsprechenden Kennzeichens im Wort 371 und durch Ausführen der Routine, 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 allerdings auf den Kanal B.
  • Die letzten vier Wörter 374-377 im Quittungssegment 354 sind in der gleichen Weise organisiert, jedoch werden die Unterbrechungskennzeichen in den Wörtern 374 und 376 durch die Schnittstellensteuerung 222 umgeschaltet und die Unterbrechungen werden vom Host bedient. Der Host bestätigt die Unterbrechung durch Umschalten des entsprechenden Kennzeichens im Wort 375 oder 377, und er führt die geeignete Unterbrechungsbedienungs routine aus.
  • Zusammenfassend stellt somit der Betrieb des Quittungssegments 354 eine Maßnahme zum Multiplexen vieler Unterbrechungen entweder vom Host oder von der Schnittstellensteuerung 222 über ein Paar Unterbrechungsleitungen dar. Eine Unterbrechung wird signalisiert, wenn die entsprechenden Bits in Wortpaaren 370-371, 372-373, 374-375 und 376-377 einen voneinander entgegengesetzten Zustand aufweisen. Der Host kann lediglich seine eigenen Kennzeichen umschalten und gleichermaßen kann die Schnittstellensteuerung 222 ebenfalls nur ihre eigenen Kennzeichen umschalten. Beide können allerdings alle Kennzeichen lesen, so daß beide für sich feststellen können, ob eine Unterbrechung angefordert worden ist und ob eine angeforderte Unterbrechung bedient worden ist. Aufgrund dieser Technik ist keiner der Prozessoren zu irgendeiner Zeit vom gemeinsamen RAM 211 ausgeschlossen.
  • Es wird immer noch auf Fig. 5 Bezug genommen. Die nächsten beiden Segmente im gemeinsamen RAM 211 speichern Daten, denen Nachrichten zugeordnet sind, die über den Kanal A und den Kanal B der Schnittstellenschaltung 210 (Fig. 5) übermittelt werden. Speziell speichert das Segment 355 die FIFOs, Nachrichtenköpfe, Pufferköpfe und Puffer, die Kommunikationen über den Kanal A zugeordnet sind, und das Segment 356 speichert in ähnlicher Weise Datenstrukturen für Kommunikationen über den Kanal B. Da die beiden Segmente 355 und 356 einander ähnlich sind, wird nachstehend nur einer im einzelnen beschrieben.
  • Es wird jetzt insbesondere auf Fig. 13 Bezug genommen. Jede Nachricht, die zwischen dem Host und der Schnittstellensteuerung 222 über den gemeinsamen RAM 211 übermittelt wird, besteht aus einem Nachrichtenkopf, einem oder mehreren Pufferköpfen und einem jedem Pufferkopf zugeordneten Datenpuffer. Die Nachrichtenköpfe sind bei 378 dargestellt in Form einer verbundenen Gruppe aus Datenstrukturen, und jeder Nachrichtenkopf speichert die nachstehende Information:
  • NÄCHSTER - Zeiger zum nächsten Pufferkopf, der dieser Nachricht zugeordnet ist.
  • SERVICE - der Service oder Dienst, der durch diese Nachricht ausgeführt wird;
  • PRIORITÄT - die Prioritätsstufe dieser Nachricht, sofern das Protokoll verschiedene Prioritäten unterstützt;
  • STATUS - das Ergebnis der Übertragung
  • 0= bestätigte Auslieferung
  • 1 = bestätigte Nichtauslieferung
  • 2 = nichtbestätigte Auslieferung
  • 3 = nichtbestätigte Nichtauslieferung;
  • GRUND - Fehlercode, der den Grund eines Ausfalls anzeigt;
  • ZIELADRESSZÄHLUNG - Anzahl von Bytes, die von der Zieladresse benötigt werden;
  • ZIELNETZADRESSE - das Ziel dieser Nachricht;
  • QUELLENADRESSZÄHLUNG - Anzahl von Bytes, die zum Definieren der Quellenadresse benötigt werden;
  • QUELLENNETZADRESSE - die Quelle dieser Nachricht;
  • SAP-TYP - der Typ des Servicezugriffspunktes, der in dieser Nachricht verwendet wird;
  • DSAP - Zielservicezugriffspunktnummer;
  • SSAP - Quellenservicezugriffspunktnummer;
  • PUFFERKOPFZEIGER - Adresse des ersten Pufferkopfes, der dieser Nchricht zugeordnet ist; und
  • TAG - anwenderdefiniertes Feld.
  • Die Pufferköpfe sind bei 379 in Fig. 3 in Form einer Gruppe verbundener Datenstrukturen gezeigt. Jeder Pufferkopf speichert die nachstehende Information:
  • NÄCHSTER - Zeiger auf den nächsten Pufferkopf, der dieser Nachricht zugeordnet ist;
  • DATEN - Zeiger auf den Puffer, der diesem Pufferkopf zugeordnet ist; und
  • GRÖSSE - Anzahl von Datenbytes in dem zugeordneten Puffer.
  • Die Puffer sind bei 380 angegeben, und jeder stellt eine aufeinanderfolgende Sequenz von Bytes dar, die jeweils einem der Pufferköpfe 379 zugeordnet ist. Sowohl der Host als auch die Schnittstellensteuerung 222 können eine Nachricht bilden, die aus einer oder mehreren dieser Datenpuffer 380 besteht, und zwar dadurch, daß die Nachrichtendaten darin gespeichert werden und daß sie anschließend zusammen mit ihren zugeordneten Pufferköpfen 379 verbunden oder verkettet werden. Es wird dann ein Nachrichtenkopf 378 gebildet, der den ersten Pufferkopf in dieser verketteten Liste von Pufferköpfen 379 identifiziert.
  • Es wird immer noch auf Fig. 13 verwiesen. Wenn der Host eine Nachricht erzeugt, speichert er einen auf den Kopf dieser Nachricht hinweisenden Zeiger in einem Anforderungs-FIFO 381, wie es durch einen Pfeil 382 angegeben ist. Das Anforderungs-FIFO 381 ist eine Anordnung aus solchen Zeigern, denen die nachstehende gespeicherte Information vorangeht:
  • NÄCHSTER HEREIN - Hostindex auf den nächsten verfügbaren Platz im FIFO, in welchem ein Nachrichtenkopfzeiger gespeichert werden kann;
  • NÄCHSTER HERAUS - Schnittstellensteuerungsindex auf den nächsten Nachrichtenzeiger, der zu lesen und zu verarbeiten ist;
  • SPRUNGMASKE - die beiden Indizes springen unter Verwendung dieses Feldes; und
  • IFLAG-ZAHL - Unterbrechungskennzeichen-Bit-Anzahl, die in diesem FIFO verwendet wird.
  • Wenn die Schnittstellensteuerung 222 unterbrochen wird, liest sie den nächsten Nachrichtenzeiger aus dem Anforderungs-FIFO 381 aus, wie es durch einen Pfeil 383 angedeutet ist, und sie liest den angezeigten Nachrichtenkopf 378 und die zugehörigen Daten 380, die von den Pufferköpfen 379 angegeben werden, 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 Nachrichtenkopf in einen Bestätigungs-FIFO 384 eingeschrieben wird, wie es durch einen Pfeil 385 angezeigt wird. Der FIFO 384 ist hinsichtlich seiner Struktur dem FIFO 381 ähnlich, und wenn der Host unterbrochen wird, liest er den nächsten Nachrichtenkopfzeiger aus dem Bestatigungs-FIFO 384 aus, wie es durch einen Pfeil 386 angezeigt ist. Der Host liest dann den angezeigten Nachrichtenkopf aus dem gemeinsamen RAM 211, um zu bestatigten, daß die von ihm initiierte Nachricht verarbeitet worden ist.
  • Ähnliche Datenstrukturen existieren für Nachrichten, die durch die Schnittstellensteuerung 222 initiiert werden. Es wird immer noch auf Fig. 13 verwiesen. Wenn die Schnittstellensteuerung 222 eine Nachricht vom Netz empfängt, speichert sie die Nachrichtendaten in dem gemeinsamen RAM 211 in verfügbaren Puffern 380 und den Nachrichtenkopf in einem verfügbaren Nachrichtenkopf 378. Sie speichert dann einen Zeiger zum Nachrichtenkopf 378 in einem Anzeige-FIFO 387, wie es durch einen Fall 388 angezeigt ist, und unterbricht den Host. Der Hostprozessor liest den nächsten Zeiger im Anzeige-FIFO 387, wie es durch einen Pfeil 389 angezeigt ist, und der Kopf und die Nachrichtendaten werden aus dem gemeinsamen RAM 211 ausgelesen. Der Hostprozessor schreibt dann einen Zeiger in einen Annahme-FIFO 390, wie es durch einen Pfeil 391 angezeigt wird, und unterbricht die Schnittstellensteuerung 222. Die Schnittstellensteuerung 222 liest den Zeiger im Annahme- FIFO 390, um zu bestätigen, daß die Nachricht von dem Host angenommen worden ist, wie es durch einen Pfeil 392 angezeigt wird.
  • Es wird jetzt wieder auf Fig. 12 Bezug genommen. Das Quittungssegment enthält Unterbrechungskennzeichen für jeden der vier FIFOs 381, 384, 387 und 390. Speziell enthält die Hostunterbrechung im Wort 370 vier Zugriffskennzeichen, die den vier Kanal-A-FIFOs entsprechen, und das Wort 372 enthält vier Kanal-B-FIFOs. In ähnlicher Weise enthält das Schnittstellensteuerungswort 374 vier Zugriffskennzeichen, die den vier A-Kanal-FIFOs entsprechen, und das Schnittstellensteuerungswort 376 enthält vier Zugriffskennzeichen, die den vier B-Kanal-FIFOs entsprechen. Diese Kennzeichen ermöglichen es, dem unterbrochenen Prozessor, den geeigneten FIFO prompt zu lesen, wenn er vom anderen Prozessor unterbrochen wird.
  • Die Kanalsegmente 355 und 356 im gemeinsamen RAM 211 (Fig. 7) speichern auch Datenstrukturen, die Netzverwaltungsfunktionen zugeordnet sind. Diese umfassen vier Verwaltungs- FIFOs und zugeordnete Nachrichtenköpfe, Pufferköpfe und Puffer (in den Zeichnungen nicht dargestellt), die in der oben beschriebenen Weise arbeiten. Zusätzlich gibt es vier Verwaltungsunterbrechungskennzeichen in jedem der Wörter 370-377 des Quittungssegments 354 (Fig. 12), die es dem Host und der Schnittstellensteuerung 222 ermöglichen, die Verwaltungs-FIFOs prompt zu bedienen.
  • Die Erfindung ist insbesondere auf die Art und Weise gerichtet, in der sich die Kommunikationsschnittstellenschaltung an den besonderen Host anpaßt, mit dem sie verbunden ist. Wenn das System eingeschaltet wird, führt die Kommunikationsschnittstellenschaltung eine Anpassungs- oder Abstimmungsprozedur aus und anschließend eine Konfigurationsprozedur unter der Leitung eines Programms, das in der Schnittstellensteuerung 222 gespeichert ist. Bevor dieses Programm im einzelnen beschrieben wird, sollen die Abstimmungs- und Konfigurationsprozeduren allgemein erläutert werden.
  • Die Vereinbarung, Abstimmung oder Anpassung wird einmal durchgeführt, nach einer Rücksetzung oder nach dem Einschalten, und sie hat Auswirkungen auf alle Kanäle. Eine feststehende Liste von Parametern muß zwischen der Kommunikationsschnittstellenschaltung und dem Host ausgehandelt werden. Sobald ein Parameter erfolgreich ausgehandelt worden ist, hat er eine unmittelbare und bleibende Wirkung auf die Host/Kommunikationsschnittstellenschaltung-Schnittstelle. Alle Unterbrechungen von der Kommunikationsschnittstellenschaltung zum Host während der Vereinbarung oder Aushandlung sind kanalunabhangig. Während der Vereinbarungs- oder Abstimmungsphase greift der Host auch direkt auf den gemeinsamen RAM 211 zu und benutzt nicht die Segmenttabelle 351. Dies ist die einzige Zeit, zu der dies geschieht.
  • Jeder Parameter wird in der folgenden Weise vereinbart: die Kommunikationsschnittstellenschaltung initiiert eine Vereinbarung dadurch, daß sie ihren Vorzug für einen Parameter in einen definierten Platz im gemeinsamen RAM 211 plaziert; der Host wird dann dadurch unterbrochen, daß die UNTERBRE- CHUNG-ZUM-HOST-Leitung 230 gepulst wird. Unterbreitet der Host einen Gegenvorschlag, plaziert er diesen Vorschlag in denselben Speicherplatz und unterbricht die Kommunikationsschnittsttellenschaltung dadurch, daß er die UNTERBRECHUNGZUR-STEUERUNG-Leitung 231 pulst. Dadurch wird ein Zweiphasenzyklus vollendet. Die Kommunikationsschnittstellenschaltung initiiert dann einen anderen Vorschlag, und der Zyklus wird wiederholt. Der Host kann zu jeder Zeit den gerade unterbreiteten Vorschlag der Kommunikationsschnittstellenschaltung dadurch annehmen, daß er ohne Unterbreitung eines Gegenvorschlags die UNTERBRECHUNG-ZUR-STEUERUNG-Leitung 331 pulst. Mit Vollendung dieses letzten Quittungszyklus ist die Aushandlung oder Vereinbarung des Parameters vollendet. Wenn nach einigen Zyklen der Host zu der Feststellung kommt, daß die Kommunikationsschnittstellenschaltung nicht kompatibel ist, kann der die Verhandlungen oder Vereinbarungen abbrechen. Der Host geht dann in einen gestörten Zustand über und meldet den Fehler.
  • Es gibt eine feste Anzahl Vereinbarungen, die beim Einschalten von der Kommunikationsschnittstellenschaltung initiiert werden. Für jeden Parameter wird eine Sequenz vorgeschlagener Werte definiert, um zu verhindern, daß in eine Endlosschleife nicht passender Vorschläge eingetreten wird.
  • Die vereinbarten Parameter sind in Fig. 7 dargestellt. Jeder Parameter wird in einen eindeutigen Platz im Vereinbarungssegment 350 gebracht, und er hat eine vordefinierte Größe. Ein Parameterindex 360 des Vereinbarungssegments 350 ist ein Index, der den gerade in Vereinbarung oder Abstimmung befindlichen Parameter anzeigt. Der Platz dieses derzeitigen Parameters kann dadurch leicht berechnet werden, daß der Wert des Parameterindex 360 der Grundadresse des gemeinsamen RAM 211 hinzuaddiert wird.
  • Der erste zu vereinbarende Parameter ist die Breite des Hostdatenbusses und die Reihenfolge, in der Datenbytes höherer und niedrigerer Wertigkeit im Speicher des Host gespeichert werden sollen. Dieser Parameter ermöglicht es, der Kommunikationsschnittstellenschaltung sich an unterschiedliche Größen und Typen von Hostprozessoren anzupassen. Verwendet man beispielsweise für den Mikroprozessor 66 in der Systemsteuerung nach Fig. 2 einen Mikroprozessor vom Typ Motorola 68010, dann werden 16 Bits an Daten erzeugt, und es handelt sich um eine Höchstwert-Byte-Erstarchitektur, wohingegen bei Verwendung eines Zilog Z80 als Mikroprozessor 140 im E/A-Abtastmodul nach Fig. 3 8 Bits von Daten erzeugt werden, und es sich um eine Niedrigstwertigkeit-Byte-Erstarchitektur handelt. Zwei Bits in einem Datenbusbreiten- und Bytewertigkeitswort 361 bestimmen die Busgröße und zwei Bits bestimmen die Bytewertigkeit, und zwar wie folgt:
  • Busgrößenwerte
  • 00 - 8-Bit-Datenbus (Standard)
  • 01-16-Bit-Datenbus
  • 10 - 32-Bit-Datenbus
  • 11 - reserviert
  • Bytewertigkeitswerte
  • 00 - Niedrigwertigkeitsbyte gespeichert in niedrigster Adresse, Höchstwertigkeitsbyte gespeichert in höchster Adresse (Standardwert)
  • 01- Niedrigstwertigkeitsbyte gespeichert in höchster Adresse, Höchstwertigkeitsbyte gespeichert in niedrigster Adresse
  • 10 - reserviert
  • 11 - reserviert
  • Die Vereinbarung oder Abstimmung dieses Parameters unterscheidet sich gegenüber anderen dadurch, daß die Parameterwerte in das erste Byte des Schnittstellen-RAM 211 gegeben werden und daß der Parameterindex 360 nicht verwendet wird. Das erste Byte ist der Platz, der adressiert wird, wenn alle Adreßleitungen im Bus 206 auf niedrigem Pegel sind. Dies ist ein gemeinsamer oder gemeinschaftlicher Platz unabhängig von der vereinbarten Busbreite oder der vereinbarten Bytewertigkeit.
  • Die Kommunikationsschnittstellenschaltung initiiert diese Vereinbarung dadurch, daß sie ihre eigene Busgröße (8 Bits bei dem bevorzugten Ausführungsbeispiel) vorschlägt. Hat der Host eine geringere Datenbusbreite, macht er einen Gegenvorschlag mit seiner Busgröße. Ist der Bus des Host breiter, nimmt er den Vorschlag der Kommunikationsschnittstellenschaltung an. In jedem Falle wird nach Beendigung der Vereinbarung die kleinere der beiden Datenbusbreiten verwendet, und das Gerat mit der größeren Datenbusbreite muß sich an die kleinere Datenbusbreite anpassen. Wenn beispielsweise beim bevorzugten Ausführungsbeispiel die Kommunikationsschnittstellenschaltung mit einem Hostprozessor verwendet wird, der einen 16-Bit-Datenbus hat, muß sich der Hostprozessor an die kleinere Datenbusgröße dadurch anpassen, daß er nur seine acht niedrigstwertigen Datenbus leitungen mit Daten beaufschlagt, die mit den bidirektionalen Toren 202 (Fig. 4) verbunden sind.
  • Der nächste zu vereinbarende Parameter ist die DTACK- Zeitgabe. Dieser Parameter wird in Form eines einzigen Bit in einem DTACK-Zeitgabe-Wort 362 gespeichert, in welchem eine "0" anzeigt, daß die Kommunikationsschnittstellenschaltung ein DTACK-Signal kurz nach dem Anlegen von Daten an den gemeinsamen Datenbus 204 erzeugt, und eine "1" anzeigt, daß das DTACK-Signal früher angeboten wird, um eine Anpassung an Hosts vorzusehen, die Speicherlesezyklen schneller ausführen. Die Auswahl dieses Parameters ermöglicht es der Kommunikationsschnittstellenschaltung, eine Anpassung an Hostprozessoren mit verschiedenen Speicherlesezyklen vorzunehmen.
  • Der nächste abzustimmende oder zu vereinbarende Parameter ist eine Ein-Byte-Zahl, die die Version oder Generierungsnummer anzeigt, die von der Kommunikationsschnittstellenschaltung unterstützt wird. Die Kommunikationsschnittstellenschaltung schlägt die höchste von ihr unterstützte Generierung vor (0 ist die niedrigste). Der Host macht nur mit einer niedrigeren Generierungsnummer einen Gegenvorschlag. Es ist allerdings nicht erforderlich, daß die Kommunikationsschnittstellenschaltung irgendeine bisherige Generierung unterstützt, und falls der Host und die Kommunikationsschnittstellenschaltung eine Nichtkompatibilität feststellen, ist die Anpassung oder Vereinbarung beendet, und die Kommunikationsschnittstellenschaltung wartet darauf, daß sie zurückgesetzt wird. Die vereinbarte Generierungsnummer wird bei 363 im Vereinbarungssegment 350 gespeichert.
  • Der vierte zu vereinbarende Parameter zeigt die Größe von ganzen Zahlen und Zeigern an, die vom Hostprozessor erzeugt werden. Hierbei handelt es sich um ein einziges Bit, das bei 364 im Vereinbarungssegment 350 gespeichert wird, wobei eine "1" 32-Bit-Zeiger und -Zahlen anzeigt, und der Standardwert von "0" 16-Bit-Zeiger und -Zahlen anzeigt.
  • Der nächste Parameter gibt die Grund- oder Startadresse des gemeinsamen RAM 211 an. Er nimmt zwei Bytes im Vereinbarungssegment 350 bei 365 ein. Die Kommunikationsschnittstellenschaltung schlägt eine Grundadresse von 0000&sub1;&sub6; bis FF00&sub1;&sub6; vor. Irgendein Gegenvorschlag innerhalb dieses Bereiches wird angenommen. Irgendein Gegenvorschlag, der nicht innerhalb des annehmbaren Bereiches liegt, veranlaßt die Kommunikationsschnittstellenschaltung zum Durchführen einer neuen Vereinbarung. Benötigt ein Host eine Grundadresse, die größer als FF00&sub1;&sub6; ist, vereinbart er eine Grundadresse von 0000&sub1;&sub6; und sieht eine Grundlage oder Basis vor, die unabhängig von der Kommunikationsschnittstellenschaltung ist.
  • Der letzte zu vereinbarende Parameter ist die Klasse von Segmenttypen, die der Host und die Kommunikationsschnittstellenschaltung unterstützen. Wie oben aufgezeigt, gibt es gewisse Segmenttypen im gemeinsamen RAM 211, die vorhanden sein müssen, um einen richtigen Betrieb auszuführen, und es gibt gewisse Typen, die den besonderen Kommunikationsprotokollen zugeordnet sind. Die Kommunikationsschnittstellenschaltung schlägt die höchste Klasse des Segmentdeskriptors vor. Der Host kann einen Gegenvorschlag lediglich mit einer niedrigeren Klasse machen. Es ist allerdings möglich, daß eine Kommunikationsschnittstellenschaltung nur eine Untergruppe der definierten Klassen unterstützt, und wenn deshalb ein Host als Gegenvorschlag eine niedrigere Klasse des Segmentdeskripors vorschlägt, kann die Kommunikationsschnittstellenschaltung als Gegenvorschlag eine noch niedrigere Klasse unterbreiten. Die Anzahl von Iterationen zum Vollenden der Vereinbarung ist festgelegt, da von jeder Kommunikationsschnittstellenschaltung gefordert wird, daß sie die Klasse 0 unterstützt. Das Ergebnis wird bei 366 im Vereinbarungssegment 350 gespeichert.
  • Die Vereinbarung oder Anpassung wird dann durch einen Blindvereinbarungszyklus beendet. Die Kommunikationsschnittstellenschaltung setzt den Parameter auf FF&sub1;&sub6; und unterbricht den Host. Der Host unterbricht die Kommunikationsschnittstellenschaltung, und die Vereinbarung ist beendet. Während dieses letzten Zyklus werden tatsächlich keine Daten mehr transferiert.
  • Wie es oben ausgeführt worden ist, besteht die Hauptfunktion der Schnittstellensteuerung 222 darin, Nachrichten zwischen dem gemeinsamen RAM 211 und der Schnittstellenschaltung 210 (Fig. 4) zu übermitteln. Sie führt diese und ihre anderen Funktionen unter der Leitung von Programmen aus, die in ihrem internen Festwertspeicher (in den Zeichnungen nicht dargestellt) abgelegt sind. Einige dieser Programme sind unterbrechungsgesteuert und sie enthalten eine Serviceroutine, die ausgeführt wird, wenn eine Unterbrechung vom Host über die Leitung 231 empfangen wird, und Serviceroutinen, die ausgeführt werden, wenn eine Unterbrechung vom Kanal A oder vom Kanal B der Schnittstellenschaltung 210 empfangen wird. Das Hauptprogramm, das von der Schnittstellensteuerung 222 ausgeführt wird, ist allerdings in Fig. 8 veranschaulicht und wird nachstehend im einzelnen beschrieben.
  • Wenn insbesondere unter Bezugnahme auf Fig. 8 die Schnittstellensteuerung 222 eingeschaltet oder physisch zurückgesetzt wird, erfolgt die Ausführung einer Gruppe Anweisungen, die von einem Prozeßblock 400 angegeben sind, um Diagnosefunktionen auszuführen. So wird beispielsweise die Integrität des gemeinsamen RAM 211 eingehendst überprüft. Danach erfolgt die Ausführung einer Gruppe Anweisungen, wie es ein Prozeßblock 401 angibt, um eine Gruppe Parameter auszuhandeln oder zu vereinbaren, die festlegen, wie die Schnittstellensteuerung 222 und der Host miteinander über den gemeinsamen RAM 211 kommunizieren wollen. Dieser Abschnitt des Programms ist im einzelnen weiter unten unter Bezugnahme auf das Flußdiagramm nach Fig. 9 beschrieben.
  • Im Anschluß an die Vereinbarung wird jeder der beiden Kanäle konfiguriert, wie es ein Prozeßblock 402 anzeigt. Jeder physische Kanal hat als Vorgabe eine Gruppe vordefinierter Zugriffs- und Protokollselektionen, obgleich auch andere Selektionen vorgenommen werden können. Speziell sind innerhalb jedes Kanalsegments 355 und 356 des gemeinsamen RAM 211 (Fig. 6) Auswahlsegmente (nicht gezeigt), die vom Host gelesen werden können und die verwendet werden können, um Betriebsparameter auszuwählen, die von den vorgegebenen oder Standardwerten verschieden sind. So kann beispielsweise jeder Kanal auf irgendeinen von vier Zugriffstypen gesetzt werden: (1) einen aktiven Knoten an einem Lokalbereichsnetz; (2) einen inaktiven Knoten an einem Lokalbereichsnetzt; (3) einem Abtaster oder einem Adapter an einem Serien-E/A-Link; oder (4) einer Brücke zwischen zwei Lokalbereichsnetzen. Zu jedem dieser Zugriffstypen gehört ein Menü, das die verschiedenartigen Protokolle definiert, die vom Host ausgewählt werden können, und jedes auswählbare Protokoll kann Werte von Betriebsparametern für das Protokoll haben (wie beispielsweise Baudrate, Parität usw.). Wenn die Konfiguration jedes Kanals beendet ist, ist der Kanal betriebsbereit oder "on line".
  • Es wird immer noch auf Fig. 8 verwiesen. Nachdem die Konfiguration beendet ist, wird dann jeder physische Kanal abwechselnd bedient. Dies geschieht dadurch, daß eine bei 403 angegebene Subroutine aufgerufen wird, die den Kanalkontext schaltet. Dieser Kontextschalter umfaßt das Aufbewahren der Werte von Mikrocomputerregistern und das Laden der Registerwerte für den anderen Kanal. Es wird dann bei einem Entscheidungsblock 404 eine Überprüfung dahingehend vorgenommen, ob der Kanal betriebsbereit ist, und bei einem Entscheidungsblock 405 wird dann überprüft, ob irgendwelche ankommende Nachrichten im Empfangs-FIFO 280 (Fig. 5) des Kanals zur Verfügung stehen. Trifft dies zu, wird die Nachricht aus dem Empfangs-FIFO 280 ausgelesen und in einen nicht benutzten Puffer 380 im gemeinsamen RAM 211 geschrieben, wie es ein Prozeßblock 406 angibt. Die entsprechenden Pufferköpfe 379 und der Nachrichtenkopf 378 werden erzeugt, und ein Zeiger auf den Nachrichtenkopf 378 wird im nächsten Eintrag des Anzeige-FIFO 387 (Fig. 3) gespeichert. Wie es ein Prozeßblock 407 angibt, wird dann das geeignete Kennzeichen im Quittungssegment umgeschaltet, und der Host wird unterbrochen, um die ankommende Nachricht zu bedienen.
  • Ist eine ankommende Nachricht nicht vorhanden, wie es bei einem Entscheidungsblock 405 festgestellt wird, erfolgt bei einem Entscheidungsblock 408 eine Überprüfung dahingehend, ob Nachrichten zur Übermittlung in den gemeinsamen RAM 211 vom Host aufgegeben worden sind. Trifft dies zu, wird der Zeiger im Anforderungs-FIFO 381 gelesen, und der angezeigte Nachrichtenkopf 378, die Pufferköpfe 379 und die Puffer 380 (Fig. 13) werden vom gemeinsamen RAM 211 zum Sende-FIFO 281 (Fig. 5) des Kanals transferiert, wie es ein Prozeßblock 409 anzeigt. Derselbe Nachrichtenkopfzeiger wird dann in den Bestätigungs-FIFO im gemeinsamen RAM 211 geschrieben, und der Host wird bei einem Prozeßblock 410 unterbrochen, um anzuzeigen, daß die Nachricht verarbeitet worden ist.
  • Die Schnittstellensteuerung 22 läuft fortwährend zyklisch durch dieses Programm, wobei der Kontext zwischen den beiden Kanälen umgeschaltet wird. Folglich werden Nachrichten, die sowohl von dem einen als auch von dem anderen Kanal empfangen werden, zum Host weitergeleitet, und vom Host empfangene Nachrichten werden auf das geeignete Serienlink ausgesendet.
  • Es wird jetzt insbesondere auf Fig. 9 Bezug genommen. Der Vereinbarungsprozeß wird von der Kommunikationsschnittstellenschaltung unter der Leitung eines gespeicherten Programms initiiert, das von der Schnittstellensteuerung 222 ausgeführt wird. In dieses Programm wird bei 450 eingetreten, und ein Parameterindex und ein Auswählzähler werden bei einem Prozeßblock 451 zurückgesetzt. Wie es oben angegeben ist, zeigt der Parameterindex an, welcher von sechs Parametern im Vereinbarungssegment (Fig. 7) gerade vereinbart wird. Der Auswahlzähler zeigt an, welcher Parameter einer Gruppe von Parametern, die für die Vereinbarung zur Verfügung stehen, gerade vorgeschlagen wird.
  • Unter Verwendung des Parameterindex und des Auswahlzählers wird der Wert des nächsten vorzuschlagenden Parameters aus einer gespeicherten Tabelle 510 ausgelesen, wie es ein Prozeßblock 452 anzeigt. Die Tabelle 510 ist in Fig. 10 dargestellt. Der Parameterindex wählt eine Spalte in dieser Tabelle 510 aus, und der Auswahlzähler wählt einen Eintrag in dieser Spalte aus. Jede Spalte stellt eine Liste Parameterwerte dar, die von der Kommunikationsschnittstellenschaltung unterstützt werden, und zwar in einer Reihenfolge in der sie bevorzugt werden. Der ausgewählte Parameterwert wird in das Vereinbarungssegment 350 des gemeinsamen RAM 211 geschrieben, wie es ein Prozeßblock 453 anzeigt, und eine Unterbrechung des Host wird bei einem Prozeßblock 454 angefordert.
  • Die Kommunikationsschnittstellenschaltung wartet darauf, daß der Host den vorgeschlagenen Wert liest und entweder ihn akzeptiert oder einen Gegenvorschlag macht. Signalisiert der Host seine Antwort durch Unterbrechen der Schnittstellensteuerung 222, wird der vom Host vorgeschlagene Wert aus dem gemeinsamen RAM 211 gelesen, wie es bei 455 angezeigt wird. Stimmt dieser Wert mit dem von der Kommunikationsschnittstellenschaltung vorgeschlagenen Wert überein, zweigt das System bei einem Entscheidungsblock 456 ab, oder falls der als Gegenvorschlag unterbreitete Wert nicht annehmbar ist, zweigt das System bei einem Entscheidungsblock 462 ab, und der Parameterindex wird bei 457 inkrementiert, um den nächsten Parameter für den Vereinbarungsprozeß bereitzustellen. Falls der vorgeschlagene Wert und der als Gegenvorschlag unterbreitete Wert nicht annehmbar sind, tritt das System in eine Rückschleife ein, um den nächsten Parameterwert aus der Tabelle 510 auszulesen, und zwar im Anschluß an das Inkrementieren des Auswahlzählers bei einem Prozeßblock 463. Es wird somit eine Schleife erstellt, in der jeder Parameterwert vorgeschlagen wird, und wenn ein Parameterwert erfolgreich vereinbart worden ist, wird in eine zweite Schleife eingetreten, in der der Auswahlzähler bei einem Prozeßblock 458 zurückgesetzt wird und der nachfolgende Parameter zur Vereinbarung bereitgestellt wird, bis unter Bezugnahme auf einen Entscheidungsblock 459 der letzte Parameter vereinbart worden ist. Der Parameterindex wird dann bei 460 auf "FF" (hexadezimal) gesetzt, und der Host wird wieder bei 461 unterbrochen, um das Ende des Vereinbarungsprozesses zu signalisieren. Erwidert der Host mit einer Unterbrechung, ist die Vereinbarung vollendet, und der Prozeß tritt bei 464 aus.
  • Das Flußdiagramm nach Fig. 9 veranschaulicht ein verallgemeinertes Vereinbarungsprogramm, bei dem eine beliebige Anzahl Parameter und eine beliebige Anzahl von Auswahlen getroffen werden können. Ist die Anzahl der zu vereinbarenden Parameter und der zu vereinbarenden Auswahlen gering, kann man ein wesentlich einfacheres Programm benutzen. Ein Beispiel für ein solches Programm ist veranschaulicht durch die Quellenliste im Appendix A.
  • Der Hostprozessor spricht auf Unterbrechungen von der Schnittstellensteuerung 222 dadurch an, daß er ein Programm ausführt, das die Unterbrechung bedient. Ein Flußdiagramm für eine solche Unterbrechungsbedienungsroutine ist in Fig. 11 dargestellt. Dies ist ein verallgemeinertes Vereinbarungsprogramm, das mit dem verallgemeinerten Programm von Fig. 9 zusammenarbeitet, jedoch ist ein spezielleres Programm, das mit dem Programm im Appendix A zusammenarbeitet, als Quellenliste im Appendix B dargestellt. Es sei bemerkt, daß die in dieser Routine ausgeführten Funktionen auch vom Host als eine separate Task anstelle einer Unterbrechungsbedienungsroutine ausgeführt werden kann.
  • Wenn unter Bezugnahme auf Fig. 11 der Hostprozessor unterbrochen wird, überprüft er ein Vereinbarungskennzeichen, um festzustellen, ob die Vereinbarungsprozedur gerade im Gange ist. Trifft dies nicht zu, wie es bei einem Entscheidungsblock 500 festgestellt wird, zweigt das System ab, um Nachrichtendaten aus dem gemeinsamen RAM 211 zu lesen, wie es ein Prozeßblock 501 anzeigt. Andernfalls wird der Wert des Parameterindex aus dem gemeinsamen RAM 211 gelesen, um die Stufe oder den Zustand der Vereinbarung zu bestimmen. Ist die Vereinbarung vollendet, wie es ein Entscheidungsblock 502 feststellt, zweigt das System ab, und das Vereinbarungskennzeichen wird bei einem Prozeßblock 503 zurückgesetzt. Andernfalls wird der Wert des vorgeschlagenen Parameters aus dem Vereinbarungssegment des gemeinsamen RAM 211 gelesen, und er wird verglichen mit dem Parameterwert, der vom Hostprozessor bevorzugt wird, und zwar bei einem Entscheidungsblock 504. Wird der vorgeschlagene Wert akzeptiert, wird der Parameterwert vom Hostprozessor bei 505 zwecks späterer Verwendung aufbewahrt, und es wird bei einem Prozeßblock 506 eine Unterbrechung zur Schnittstellensteuerung 222 erzeugt, um die Annahme zu signalisieren.
  • Wird der von der Kommunikationsschnittstellenschaltung vorgeschlagene Parameter nicht akzeptiert, kann vom Hostprozessor ein Gegenvorschlag unterbreitet werden. Wie bei der Schnittstellensteuerung 222 werden die annehmbaren Parameterwerte in einer Parametertabelle 510 gespeichert, die in Fig. 10 dargestellt ist. Ein Auswahlzähler dient als Index in der Tabelle 510, um eine der möglichen Auswahlen für einen gegebenen, zu vereinbarenden Parameter auszuwählen, und der vom gemeinsamen RAM 211 ausgelesene Parameterindex zeigt an, welcher Parameter gerade im Vereinbarungsprozeß beurteilt wird, und er dient als ein Index in der richtigen Spalte dieser Tabelle. Das Format jedes Parameterwertes ist im einzelnen oben beschrieben worden, und wenigstens die erste Wahl jedes zu vereinbarenden Parameters muß auf einen Nichtnullwert gesetzt werden.
  • Es wird wieder auf Fig. 11 Bezug genommen. Ist der von der Kommunikationsschnittstellenschaltung vorgeschlagene Wert nicht annehmbar, liest der Hostprozessor aus der Tabelle 510 neue Werte, die er vorschlagen kann. Wenn alle verfügbaren Auswahlen vorgeschlagen worden sind, zweigt das System bei einem Entscheidungsblock 511 ab, und der Bedienung wird bei einem Prozeßblock 512 angezeigt, daß die Kommunikationsschnittstellenschaltung mit dem Hostprozessor nicht kompatibel ist. Andernfalls wird bei einem Prozeßblock 513 ein anderer Parameterwert aus der Tabelle 510 gelesen und in den gelesen und in den geeigneten Platz im Vereinbarungssegment des gemeinsamen RAM 211 geschrieben, wie es ein Prozeßblock 514 anzeigt. Der Auswahlzähler wird dann bei einem Prozeßblock 515 inkrementiert, so daß die nächste Auswahl des zu vereinbarenden Parameters während der nachfolgenden Unterbrechung vorgeschlagen wird. Die Schnittstellensteuerung 222 wird dann bei einem Prozeßblock 506 unterbrochen und der Host tritt bei 516 aus, um seine anderen programmierten Tasks auszuführen.

Claims (13)

1. Kommunikationsschnittstellenschaltung, enthaltend:
Eine Protokollmaschine (251, 253), die mit einem seriellen Kommunikationslink (200, 201) verbunden ist und zum Aussenden und Empfangen von Nachrichtendaten über das Kommunikationslink betreibbar ist;
eine Scbnittstellensteuerung (222), die mit der Protokollmaschine und einem Hostprozessor (66; 140) verbunden ist;
einen gemeinsamen Speicher (211), der mit dem Hostprozessor und der Schnittstellensteuerung verbunden ist, zum Speichern durch die Protokollmaschine vom Kommunikationslink empfangener Nachrichtendaten zum Auslesen durch den Hostprozessor und zum Speichern vom Hostprozessor empfangener Nachrichtendaten zum Aussenden auf das Kommunikationslink durch die Protokollmaschine,
dadurch gekennzeichnet, daß
der gemeinsame Speicher (211) einen Abschnitt zum Speichern von Abstimmungs- oder Vereinbarungsparameterwerten hat und daß
die Schnittstellensteuerung (222) eine Abstimmungs- oder Vereinbarungseinrichtung enthält, die während des Startens betreibbar ist, um mit dem Hostprozessor jeden der Vereinbarungsparameterwerte automatisch abzustimmen oder zu vereinbaren, und die enthält:
a) eine Einrichtung zum Speichern eines vorgeschlagenen Parameterwertes in dem Vereinbarungsparameterwerteabschnitt des gemeinsamen Speichers;
b) eine Einrichtung zum Signalisieren, wodurch der Hostprozessor zur Feststellung des Umstandes veranlaßt wird, ob der vorgeschlagene Parameterwert vom Hostprozessor annehmbar ist;
c) eine Einrichtung zum Erwidern auf ein Signal vom Hostprozessor durch Auslesen des Wertes in dem Vereinbarungsparameterwerteabschnitt des gemeinsamen Speichers,
d) eine Einrichtung zum Vergleichen dieses Wertes mit dem vorgeschlagenen Parameterwert und, wenn sie gleich sind, Beenden der Abstimmung oder Vereinbarung bezüglich dieses Parameterwertes; und wobei die Schnittstellensteuerung im Anschluß an die Abstimmung oder Vereinbarung aller Vereinbarungsparameterwerte derart betreibbar ist, daß die im Vereinbarungsparameterwerteabschnitt des gemeinsamen Speichers gespeicherten Vereinbarungsparameterwerte verwendet werden, um den Austausch von Nachrichtendaten zwischen dem gemeinsamen Speicher und dem Hostprozessor zu steuern.
2. Kommunikationsschnittstellenschaltung nach Anspruch 1, in der einer der Vereinbarungsparameter die Anzahl von Datenbits angibt, die zwischen dem Hostprozessor (66; 140) und dem gemeinsamen Speicher (211) während eines einzigen Lese- oder Schreibzyklus übermittelt werden.
3. Kommunikationsschnittstellenschaltung nach Anspruch 1, in der einer der Vereinbarungsparameter die Zeitsteuerung eines Steuersignals während eines Lese- oder Schreibzyklus des gemeinsamen Speichers (211) angibt, der vom Hostprozessor (66; 140) eingeleitet wird.
4. Kommunikationsschnittstellenschaltung nach Anspruch 1, in der die Schnittstellensteuerung (222) und der Hostprozessor (66; 140) durch Unterbrechungssteuerleitungen (230, 231) miteinander verbunden sind und die Schnittstellensteuerung (222) an den Hostprozessor (66; 140) dadurch eine Signalisierung gibt, daß der Betrieb des Hostprozessors durch eine Unterbrechungssteuerleitung (230) unterbrochen wird, und der Hostprozessor (66; 140) eine Signalisierung an die Schnittstellensteuerung (222) dadurch gibt, daß der Betrieb der Schnittstellensteuerung durch eine andere Unterbrechungssteuerleitung (231) unterbrochen wird.
5. Kommunikationsschnittstellenschaltung nach Anspruch 4, in der der Hostprozessor (66; 140) auf die Unterbrechung durch die Schnittstellensteuerung (222) dadurch anspricht, daß er den Wert des vorgeschlagenen Vereinbarungsparameters aus dem gemeinsamen Speicher (211) ausliest und, falls der vorgeschlagene Vereinbarungsparameterwert für den Hostprozessor nicht annehmbar ist, der Hostprozessor einen neuen Vereinbarungsparameterwert in den Vereinbarungsparameterwerteabschnitt des gemeinsamen Speichers (211) automatisch schreibt und der Hostprozessor den Betrieb der Schnittstellensteuerung durch die andere Unterbrechungssteuerleitung (231) unterbricht.
6. Kommunikationsschnittstellenschaltung nach Anspruch 1, in der einer der Vereinbarungsparameter anzeigt, ob der Hostprozessor von einer Niedrigstwert-Byte-Erstarchitektur oder einer Höchstwert-Byte-Erstarchitektur ist.
7. Digitales System, enthaltend:
einen Hostprozessor (66; 140), der aufgrund eines gespeicherten Programms betreibbar ist, um spezifische Tasks auszuführen;
einen Multi-Bit-Datenbus (203), der mit dem Hostprozessor verbunden ist, zum Übermitteln von Daten während eines Hostprozessor-Lesezyklus und eines Hostprozessor-Schreibzyklus;
eine Kommunikationsschnittstellenschaltung (141), die mit dem Multi-Bit-Host-Datenbus (203) und einem seriellen Kommunikationslink (200, 201) verbunden ist, welche Kommunikationsschnittstellenschaltung (141) betreibbar ist, um auf das Kommunikationslink Nachrichtendaten auszusenden, die vom Hostprozessor während einer der Schreibzyklen in die Kommunikationsschnittstellenschaltung geschrieben worden sind, und betreibbar ist, um vom Kommunikationslink Nachrichten zu empfangen, die vom Hostprozessor während einer der Lesezyklen ausgelesen werden können;
dadurch gekennzeichnet,
daß der Hostprozessor (66; 140) zum automatischen Abstimmen oder Vereinbaren während des Startens einer Gruppe von Parameterwerten eine Abstimmungs- oder Vereinbarungseinrichtung aufweist, die enthält:
a) eine Einrichtung zum Lesen eines vorgeschlagenen Parameterwertes von der Kommunikationsschnittstellenschaltung,
b) eine Einrichtung zum Vergleichen des vorgeschlagenen Parameterwertes mit einer Gruppe gespeicherter annehmbarer Parameterwerte,
c) eine Einrichtung zum Schreiben eines der gespeicherten annehmbaren Parameterwerte in die Kommunikationsschnittstellenschaltung, wenn der vorgeschlagene Parameterwert mit einem gespeicherten annehmbaren Parameterwert nicht übereinstimmt, und
d) eine Einrichtung zum Signalisieren an die Kommunkikationsschnittstellenschaltung, daß ein vorgeschlagener Parameterwert vom Hostprozessor angenommen worden ist, und
daß der Hostprozessor, nachdem die Abstimmungs- oder Vereinbarungseinrichtung die Abstimmung oder Vereinbarung der Gruppe von Parameterwerten beendet hat, betreibbar ist, um diese Parameterwerte zur Steuerung des Austausches von Nachrichtendaten zwischen sich selbst und der Kommunikationsschnittstellenschaltung zu verwenden.
8. Digitales System nach Anspruch 7, bei dem die Gruppe vereinbarter Parameter die Anzahl von Datenbits enthält, die zu und von der Kommunikationsschnittstellenschaltung (141) auf dem Hostdatenbus (203) während eines Lesezyklus und eines Schreibzyklus übermittelt werden.
9. Digitales System nach Anspruch 7, bei dem die Gruppe vereinbarter Parameter einen Parameter aufweist, der anzeigt, ob der Hostprozessor (66; 140) von einer Niedrigstwert-Byte- Erstarchitektur oder einer Höchstwert-Byte-Erstarchitektur ist.
10. Digitales System nach Anspruch 7, bei dem die Gruppe vereinbarter Parameter einen Parameter enthält, der die Zeitsteuerung eines Steuersignals während eines Lese- oder Schreibzyklus anzeigt, in welchem Daten zwischen dem Hostprozessor (66; 140) und der Kommunikationsschnittstellenschaltung (141) übermittelt werden.
11. Digitales System nach Anspruch 7, bei dem die Kommunikationsschnittstellenschaltung enthält:
eine Protokollmaschine (251, 253), die mit dem Kommunikationslink (200, 201) verbunden ist und betreibbar ist, um Nachrichtendaten über das Kommunikationslink auszusenden und zu empfangen;
eine Schnittstellensteuerung (222), die mit der Protokollmachine (251, 253) und dem Hostprozessor (66; 140) verbunden ist;
einen gemeinsamen Speicher (211), der mit dem Multi-Bit- Host-Datenbus (203) und der Schnittstellensteuerung (222) verbunden ist, zum Speichern von durch die Protokollmaschine vom Kommunikationslink empfangener Nachrichtendaten zum Auslesen durch den Hostprozessor, zum Speichern von durch den Hostprozessor darin eingeschriebener Nachrichtendaten zum Aussenden auf das Kommunikationslink durch die Protokollmaschine und zum Speichern der Gruppe vereinbarter Parameterwerte; und
welche Schnittstellensteuerung (222) eine Abstimmungsoder Vereinbarungseinrichtung enthält, die während des Startens betreibbar ist, um mit dem Hostprozessor jeden der Vereinbarungsparameterwerte abzustimmen oder zu vereinbaren, und die enthält:
e) eine Einrichtung zum Speichern des vorgeschlagenen Parameterwertes in dem gemeinsamen Speicher,
f) eine Einrichtung zum Signalisieren an den Hostprozessor, daß der vorgeschlagene Parameterwert aus dem gemeinsamen Speicher ausgelesen werden kann,
g) eine auf die Signalisierung durch den Hostprozessor ansprechende Einrichtung zum Auslesen des annehmbaren parameterwertes aus dem gemeinsamen Speicher, und
h) eine Einrichtung zum Vergleichen des annehmbaren Parameterwertes mit dem vorgeschlagenen Parameterwert und, wenn sie gleich sind, zum Beenden der Abstimmung oder Vereinbarung dieses Parameterwertes.
12. Digitales System nach Anspruch 11, bei dem einer der Vereinbarungsparameter die Zahl der Datenbits anzeigt, die zu und von dem gemeinsamen Speicher (211) auf dem Hostdatenbus (203) während eines Lesezyklus und eines Schreibzyklus übermittelt werden.
13. Digitales System nach Anspruch 11, bei dem einer der Vereinbarungsparameter die Zeitsteuerung eines Steuersignals während eines Lese- oder Schreibzyklus anzeigt, in welchem Daten zwischen dem Hostprozessor (66, 140) und dem gemeinsamen Speicher (211) übermittelt werden.
DE69028744T 1989-07-24 1990-07-20 Intelligente Netzwerkschnittstellenschaltung Expired - Fee Related DE69028744T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US38349289A 1989-07-24 1989-07-24

Publications (2)

Publication Number Publication Date
DE69028744D1 DE69028744D1 (de) 1996-11-07
DE69028744T2 true DE69028744T2 (de) 1997-05-07

Family

ID=23513417

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69028744T Expired - Fee Related DE69028744T2 (de) 1989-07-24 1990-07-20 Intelligente Netzwerkschnittstellenschaltung

Country Status (6)

Country Link
US (1) US5452420A (de)
EP (1) EP0410314B1 (de)
JP (1) JPH0360551A (de)
BR (1) BR9003523A (de)
CA (1) CA2017458C (de)
DE (1) DE69028744T2 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5634074A (en) * 1993-05-07 1997-05-27 Apple Computer, Inc. Serial I/O device identifies itself to a computer through a serial interface during power on reset then it is being configured by the computer
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
NL9301129A (nl) * 1993-06-29 1995-01-16 Nederland Ptt Processorcircuit omvattende een eerste processor, en systeem omvattende het processorcircuit en een tweede processor.
CA2109682C (en) * 1993-11-22 1998-11-03 Lee F. Hartley Multiple bus interface
JP3308386B2 (ja) * 1994-04-25 2002-07-29 ファナック株式会社 制御システム
US5805924A (en) * 1994-11-08 1998-09-08 Stoevhase; Bent Method and apparatus for configuring fabrics within a fibre channel system
US5574865A (en) * 1994-12-01 1996-11-12 Unisys Corporation System for data transfer protection during module connection/disconnection onto live bus
KR0140571B1 (ko) * 1995-01-19 1998-07-01 김광호 버스제어수단을 구비한 다중프로세서시스템
SE9500525L (sv) * 1995-02-13 1996-08-14 Essnet Ab Anordning för seriell dataöverföring
US5737543A (en) * 1995-02-23 1998-04-07 International Business Machines Corporation High performance communications path
US6083270A (en) * 1995-03-24 2000-07-04 The Board Of Trustees Of The Leland Stanford Junior University Devices and methods for interfacing human users with electronic devices
US5896292A (en) * 1995-06-05 1999-04-20 Canon Kabushiki Kaisha Automated system for production facility
JPH09214580A (ja) * 1996-02-06 1997-08-15 Canon Inc 通信システム
US5940600A (en) * 1996-04-01 1999-08-17 Apple Computer, Inc. Isochronous channel having a linked list of buffers
US5708778A (en) * 1996-05-09 1998-01-13 Sun Microsystems, Inc. Automatic configuration of protocol parameters in protocol layers for public area networks
US6125122A (en) 1997-01-21 2000-09-26 At&T Wireless Svcs. Inc. Dynamic protocol negotiation system
US6064649A (en) * 1997-01-31 2000-05-16 Nec Usa, Inc. Network interface card for wireless asynchronous transfer mode networks
DE69840972D1 (de) 1997-02-14 2009-08-27 Canon Kk Vorrichtung, System und Verfahren zur Datenübertragung und Vorrichtung zur Bildverarbeitung
EP0859326A3 (de) * 1997-02-14 1999-05-12 Canon Kabushiki Kaisha Vorrichtung, System und Verfahren zur Datenübertragung und Vorrichtung zur Bildverarbeitung
AU762552B2 (en) * 1997-02-14 2003-06-26 Canon Kabushiki Kaisha Data communication apparatus and method
SG74611A1 (en) * 1997-02-14 2000-08-22 Canon Kk Data communication apparatus and method
US6098146A (en) 1997-04-11 2000-08-01 Dell Usa, L. P. Intelligent backplane for collecting and reporting information in an SSA system
US6012105A (en) * 1997-05-01 2000-01-04 Telefonaktiebolaget L M Ericsson System for interfacing with an external accessory in one of two interface modes based on whether communication can be established with external accessory or not
AUPO856797A0 (en) * 1997-08-15 1997-09-04 AAV Australia Pty. Limited Computer system having fixed computers and mobile computers
US6349331B1 (en) * 1998-06-05 2002-02-19 Lsi Logic Corporation Multiple channel communication system with shared autonegotiation controller
US6434654B1 (en) 1999-03-26 2002-08-13 Koninklijke Philips Electronics N.V. System bus with a variable width selectivity configurable at initialization
ES2206264T3 (es) * 1999-05-25 2004-05-16 Siemens Aktiengesellschaft Procedimiento para la generacion de un bloque de control y bloque de control.
US6408423B1 (en) * 1999-12-29 2002-06-18 Advanced Micro Devices, Inc. Method for faster verification of a design for an integrated circuit
US7076551B2 (en) * 2000-04-03 2006-07-11 Texas Instruments Incorporated Using remote procedure calls to manage co-processor resources
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US6754717B1 (en) * 2000-10-23 2004-06-22 International Business Machines Corporation Establishing compatibility of messages for communicating between processing entities with continuous availability
KR20040008124A (ko) * 2001-01-31 2004-01-28 인터내셔널 비지네스 머신즈 코포레이션 제어 정보 제공 방법 및 통신 스위치 및 이를 포함하는호스트 컴퓨터 시스템
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US8234360B2 (en) * 2002-04-23 2012-07-31 Microsoft Corporation System for processing messages to support network telephony services
US7400714B2 (en) * 2002-12-09 2008-07-15 Murata Kikai Kabushiki Kaisha Communication device and management server
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
US8478945B2 (en) * 2010-02-01 2013-07-02 International Business Machines Corporation Dynamic management of destage tasks in a storage controller
US8874535B2 (en) * 2012-10-16 2014-10-28 International Business Machines Corporation Performance of RCU-based searches and updates of cyclic data structures
DE102018202615A1 (de) * 2018-02-21 2019-08-22 Robert Bosch Gmbh Teilnehmerstation für ein Bussystem und Verfahren zur Erhöhung der Datenrate eines Bussystems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3828325A (en) * 1973-02-05 1974-08-06 Honeywell Inf Systems Universal interface system using a controller to adapt to any connecting peripheral device
US4263650B1 (en) * 1974-10-30 1994-11-29 Motorola Inc Digital data processing system with interface adaptor having programmable monitorable control register therein
US4093981A (en) * 1976-01-28 1978-06-06 Burroughs Corporation Data communications preprocessor
US4441162A (en) * 1981-04-22 1984-04-03 Pitney Bowes Inc. Local network interface with control processor & DMA controller for coupling data processing stations to common serial communications medium
US4443850A (en) * 1981-12-01 1984-04-17 Burroughs Corporation Interface circuit for subsystem controller
US4500960A (en) * 1982-06-28 1985-02-19 At&T Bell Laboratories Geographically distributed multiprocessor time-shared communication processing system
AU606854B2 (en) * 1986-01-10 1991-02-21 Wyse Technology, Inc. Virtual peripheral controller
US4924456A (en) * 1986-09-18 1990-05-08 Racal Data Communications, Inc. High speed modem
US4942540A (en) * 1987-03-02 1990-07-17 Wang Laboratories, Inc. Method an apparatus for specification of communication parameters
US4933846A (en) * 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
US5063494A (en) * 1989-04-12 1991-11-05 Unisys Corporation Programmable data communications controller

Also Published As

Publication number Publication date
EP0410314A2 (de) 1991-01-30
US5452420A (en) 1995-09-19
BR9003523A (pt) 1991-08-27
DE69028744D1 (de) 1996-11-07
JPH0360551A (ja) 1991-03-15
CA2017458A1 (en) 1991-01-24
EP0410314B1 (de) 1996-10-02
CA2017458C (en) 2000-10-10
EP0410314A3 (en) 1992-04-01

Similar Documents

Publication Publication Date Title
DE69028744T2 (de) Intelligente Netzwerkschnittstellenschaltung
DE4023471C2 (de) Steuerungssystem mit Hostcomputer und Kommunikationsschnittstellenschaltung
DE3854594T2 (de) Programmierbare Steuerung mit parallelen Prozessoren.
DE3851928T2 (de) Steuerung von asynchron arbeitenden Peripheriegeräten.
DE60014938T2 (de) Skalierbares datenerfassungs-/ und rechengerät
DE4135749B4 (de) Prozessormodul für eine programmierbare Steuerung mit einer intelligenten Funktionsmodulschnittstelle
DE19904090C2 (de) Verfahren und Vorrichtung zur automatischen Steuerung und Verwaltung medizinischer Geräte und Anlagen
DE3854361T2 (de) Programmierbare Protokollvorrichtung.
DE69020306T2 (de) Programmierbare logische Steuerungseinheiten.
DE3855673T2 (de) Von Peripheriegeräten ausgelöste Systemsteilrekonfiguration
DE69030861T2 (de) Bus-Master-Steuerprotokoll
DE69029892T2 (de) Datendarstellung und Protokoll
DE69128133T2 (de) Fernmeldenetz
DE2908316C2 (de) Modular aufgebaute Multiprozessor-Datenverarbeitungsanlage
DE3855599T2 (de) System, das die Auswechselbarkeit der peripheren Einheiten ermöglicht
DE68920375T2 (de) Zeitmultiplex-Anordnung.
DE3820544C2 (de) Ortsbereichsnetzsystem mit einem hiermit gekoppelten Mehrcomputersystem und Verfahren zur Steuerung hiervon
DE3725343A1 (de) Vielzweck-kanalsteuersystem
WO2003054644A2 (de) Datenübertragungsverfahren, serielles bussystem und anschalteinheit für einen passiven busteilnehmer
DE68923864T2 (de) Anordnung zur Speicher- und Peripherie-Bausteinauswahl.
EP2825921B1 (de) Steuerungsvorrichtung zum steuern von sicherheitskritischen prozessen in einer automatisierten anlage und verfahren zur parameterierung der steuerungsvorrichtung
DE69122142T2 (de) Steuerungsanlage für ein Mehrprozessorsystem
DE3851676T2 (de) Datenpaketierungsverfahren.
DE69830680T2 (de) Verfahren und System zur Adresseneinstellung in einer Baumstruktur
DE60027941T2 (de) Paketübertragungsvorrichtung mit Verwaltungsmittel zur Packungsetikettenverwaltung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: HOLTZ MARTIN LIPPERT, 60322 FRANKFURT

8339 Ceased/non-payment of the annual fee