DE3586487T2 - Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern. - Google Patents

Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern.

Info

Publication number
DE3586487T2
DE3586487T2 DE8585630225T DE3586487T DE3586487T2 DE 3586487 T2 DE3586487 T2 DE 3586487T2 DE 8585630225 T DE8585630225 T DE 8585630225T DE 3586487 T DE3586487 T DE 3586487T DE 3586487 T2 DE3586487 T2 DE 3586487T2
Authority
DE
Germany
Prior art keywords
message
rti
data
memory
block
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
DE8585630225T
Other languages
English (en)
Other versions
DE3586487D1 (de
Inventor
Bhalchandra Ramchandra Tulpule
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.)
RTX Corp
Original Assignee
United Technologies Corp
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 United Technologies Corp filed Critical United Technologies Corp
Publication of DE3586487D1 publication Critical patent/DE3586487D1/de
Application granted granted Critical
Publication of DE3586487T2 publication Critical patent/DE3586487T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/423Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/562Attaching a time tag to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Communication Control (AREA)

Description

  • Die hierin beschriebene Erfindung kann einige Lehren einsetzen, die in den im gemeinschaftlichen Besitz befindlichen, ebenfalls anhängigen Anmeldungen offenbart und beansprucht sind, welche hiermit am gleichen Tag durch UNITED TECHNOLOGIES CORPORATION unter dem Titel INTERFACE-VORRICH- TUNG ZWISCHEN MINDESTENS EINEM KANAL UND MINDESTENS EINEM BUS, EP-A-0 184 976, bzw. KOHÄRENTES INTERFACE MIT ZURÜCK- GESCHLEIFTEM EMPFANGSSPEICHER, EP-A-0 188 990, eingereicht wurden.
  • Die Erfindung bezieht sich auf eine Fernterminalschnittstelle, welche die Kohärenz von Datenübertragungen zwischen einem asynchronen Bus und einem damit verbundenen Untersystem garantiert.
  • In einem System, das eine Vielzahl von Untersystemen aufweist, die über einen asynchron arbeitenden Bus funktionell integriert sind, ergibt sich eine Notwendigkeit für Datenkohärenz. In solch einem System kommuniziert ein Buscontroller normalerweise mit bis zu einer bestimmten Anzahl von Fernterminalschnittstellen, die den Bus einzeln mit einem zugehörenden Untersystem verbinden. Der Buscontroller kann z. B. im Rahmen von MIL-STD 1553 mit bis zu 31 Fernterminalschnittstellen kommunizieren. Die gesamten Fernterminalschnittstellen (RTI's) können auf Veranlassung des Buscontrollers miteinander kommunizieren. Es gibt ein potentielles Problem in solch einem System, wenn die CPUs der Untersysteme inkohärente Datenblöcke oder Nachrichten erhalten. Eine kohärente Nachricht ist eine Nachricht, in der sich die Daten oder Parameter auf eine einzige Berechnung beziehen, die anhand eines einzigen Datensatzes ausgeführt wird und zu einem einzigen Zeitrahmen gehört. Inkohärenz betrifft die Übertragung und/oder Anwendung von partiellen, d. h. inkohärenten Nachrichten, die sich aus Daten zusammensetzen, welche zu verschiedenen Zeitrahmen, Berechnungen oder Datensätzen gehören. Eine RTI kann z. B. eine aus vielen Wörtern bestehende Nachricht vom Bus empfangen, kann diese Nachricht speichern und kann damit beginnen, die gespeicherte Information zu überschreiben oder zu aktualisieren, während die Host-CPU noch damit beschäftigt ist, die zuvor geschriebene Nachricht zu lesen. Die RTI wird, in anderen Worten, mittendrin mit neuen Informationen aktualisiert, bevor die alte Information vollständig zur CPU übertragen werden kann. So kann die CPU z. B. die erste Hälfte der Nachricht aus einem Zeitrahmen empfangen, während die zweite Hälfte der Nachricht aus einem unterschiedlichen Zeitrahmen stammt. Wenn der Bus zum Verbinden von kritischen flugelektronischen Untersystemen verwendet wird, bei denen hochgenaue und kohärente Information kritisch ist, können solche Inkohärenzen katastrophale Konsequenzen haben.
  • Eine der Methoden im stand der Technik, dieses Problem anzugreifen, ist, eine Art Doppelpufferung zu schaffen, in der die empfangenen Nachrichten abwechselnd in einen von zwei Speicherpuffern eingebracht werden. Während eine erste Nachricht den ersten Speicherpuffer besetzt, kann eine zweite Nachricht im zweiten Speicherpuffer empfangen werden. Auf diese Weise wird einwenig zeit geopfert, um Kohärenz sicherzustellen. Allerdings kann es sein, daß die Doppelpufferungslösung, wenn ein Informationsbündel auf dem asynchronen Bus zur speziellen RTI gesendet wird, nicht erfolgreich ist, die gesamte gesendete Information zu behalten. Wenn die CPU rechtzeitig antworten kann, kann diese Methode Kohärenz sicherstellen. Allerdings ist die CPU beim Großteil von Hochleistungsuntersystemen, die mit einem Bus kommunizieren, ganz damit beschäftigt, andere Prozesse auszuführen, und kann nicht auf ein Nachrichtenbündel oder Blockübertragungen, die den gleichen Nachrichtenkennsatz verwenden, ansprechen. Somit werden einige Daten verlorengehen, wenn die Übertragungsgeschwindigkeit größer als die Übernahmegeschwindigkeit der Doppelpufferungsarchitektur ist. Natürlich ist es denkbar, daß ein Systemdesigner eine dreifache, vierfache, fünffache oder irgendeine andere Zahl von Pufferungsarchitekturen aufbaut. Dies würde jedoch extrem teuer sein wegen: (a) der Notwendigkeit, jeden Puffer derart zu konstruieren, daß er einen vollen Block (es gibt 32 Wörter im MIL-STD 1553 B-Block) übernehmen kann, so daß sich eine beträchtliche Verschwendung von Speichern für Nachrichten, die weniger als die volle Anzahl von Wörtern für einen Block enthalten, ergibt; (b) der Notwendigkeit, in schneller und geordneter Weise die "Adressen" der letzten "Inhalte" des ersten Puffers jedesmal zu aktualisieren, wenn eine neue Nachricht im ersten Puffer empfangen wird; (c) des großen Ausmaßes an Hardware und CPU-Durchlauf, das die Pufferungslösung erfordert, und (d) der Notwendigkeit, die CPU jedesmal zu unterbrechen, wenn neue Information in den letzten verfügbaren Puffer geschoben wird.
  • Eine zweite Stufe von Kohärenzproblemen existiert im Stand der Technik. Jedes Datenwort innerhalb einer Nachricht gehört zu einem einzigen Zeitrahmen. Wenn allerdings zwei oder mehr Nachrichten von der RTI zu unterschiedlichen Zeiten empfangen, aber zur gleichen Zeit von der Host-CPU gepuffert und ausgelesen werden, stellt sich das Problem der zeitlichen Übereinstimmung zwischen solchen kritischen Nachrichten.
  • Somit sind billige und einfache Mittel wünschenswert, um Datenkohärenz und zeitliche Übereinstimmung zu sichern.
  • Darstellung der Erfindung
  • Aufgabe der vorliegenden Erfindung ist es, eine Asynchronbus-Fernterminalschnittstelle zu schaffen, die sowohl Empfangs- als auch Sende-Umlaufspeicher hat und Datenkohärenz und zeitliche Übereinstimmung mit einem Minimum an zusätzlicher Hardware und Software in dem Host-Untersystem gewährleistet.
  • Diese Aufgabe wird durch eine Busschnittstellenschaltung, wie sie im Anspruch 1 beansprucht ist, gelöst. Eine Ausführungsform der Erfindung ist in dem abhängigen Anspruch beansprucht.
  • Gemäß der vorliegenden Erfindung speichert ein Speicherpuffer zum Speichern empfangener Nachrichtenblöcke, der eine viel größere Speicherkapazität aufweist, als das, was vorstellbar durch den Host während einer Folge von empfangenen Nachrichtenblöcken effektiv benutzt werden könnte, jedes empfangene Wort in der nächst folgenden freien Speicherstelle in einem "Stapel" von Speicherstellen, die nach "Kreispuffer-", "Umlauf-" oder "Pseudo-FIFO (first-in, first-out)"-Art organisiert sind. Wenn nachfolgende Nachrichtenwörter empfangen werden, werden sie ungeachtet der Unteradresse (Nachrichtennummer) seriell eingeschrieben oder gestapelt, wobei, ohne Platz zu verschwenden, mit der allernächsten freien Speicherzelle begonnen wird. In anderen Worten, wenn ein Befehlswort aus dem Buscontroller empfangen wird, das anzeigt, daß die folgende Nachricht zwei Datenwörter enthält, dann wird diese Nachricht insgesamt nur drei Wortstellen im Stapel besetzen (das Befehlswort und die beiden Datenwörter). Das unmittelbar nächste empfangene Befehlswort wird in die unmittelbar nächste freie benachbarte, d. h. die vierte Stelle geladen, und dessen Datenwörter werden sofort danach gespeichert. Jedesmal, wenn ein Nachrichtenblock komplett in den Stapel eingeschrieben worden ist, wird eine Stopmarke an der Speicheradresse des Stapels gesetzt, die durch das letzte Datenwort im Nachrichtenblock gefüllt wurde. Die Host-CPU ist über irgendwelche unvollständig gespeicherten Nachrichtenblöcke hinter der Stopmarke algorithmisch nicht unterrichtet. Somit empfängt die RTI der Reihe nach Nachrichtenblöcke und schreibt diese Blöcke der Reihe nach in die Stapel, bis der Speicher komplett aufgefüllt ist. An diesem Punkt "läuft" die RTI wieder an den Anfang des Speichers zurück, wobei der allererste Nachrichtenblock, der in den Stapel geschrieben wurde, überschrieben wird. Allerdings wird die Host-CPU zu dieser Zeit schon auf die überschriebenen Daten zugegriffen haben. Parallel dazu ist es der Host-CPU erlaubt, eine beliebige Anzahl von korrekt empfangenen Nachrichten auszulesen, beginnend mit der durch einen Startzeiger bezeichneten ersten Nachricht und endend mit irgendeinem Block bis zum RTI-kontrollierten Stopzeiger. Jede gespeicherte Nachricht bleibt an der gleichen Stelle, bis sie überschrieben wird. Kohärenz der empfangenen Nachricht wird somit wegen der dynamischen Trennung des Nachrichten-"Schreib"-Bereichs für die RTI vom " Lese" -Bereich für die CPU erzielt, ohne Rücksicht auf die Nachrichtenunteradresse. Die Ringspeichertechnik erlaubt auch das Speichern von Kettennachrichten oder Blockdatenübertragungen in sequentielle Slots. Die Notwendigkeit für ein schnelles Ansprechen der CPU, um ein Überschreiben zu verhindern, wird ausgeschlossen, solange die Größe des Speichers viel größer ist als das, was vorstellbar zu einer beliebigen Zeit von der Host-CPU effektiv benutzt werden könnte. Im Zusammenhang mit MIL-STD 1553 ergeben 1K Speicherwörter eine Speicherung für über 20 Millisekunden von empfangenen Daten bei ungünstigster Bündelübertragung. Dies stellt genügend Speicherung für 20 Millisekunden von kontinuierlicher 1553- Übertragung oder 32 Blöcken mit jeweils 32 Wörtern dar.
  • In weiterer Übereinstimmung mit der vorliegenden Erfindung wird ein Speicherpuffer zum Speichern von Nachrichtenblöcken für die Übertragung auf dem asynchronen Bus durch die Host-CPU benutzt, um jedes Wort zur Übertragung in einem vorgegebenen Nachrichtenblockbereich zu speichern. Jeder Nachrichtenblock hat die Kapazität, eine ausgewählte Anzahl von Wörtern zu speichern. Die ausgewählte Anzahl ist groß genug, um wenigstens mehrere Nachrichten zu enthalten. Jeder Nachrichtenblock ist nach Umlaufart ähnlich dem Empfangsspeicherpuffer organisiert, mit der Ausnahme, daß jeder Block eine kleinere Version des Empfangsspeicherpuffers ist. Kohärenz der Sendedaten wird dadurch sichergestellt, z. B., daß es der Host-CPU ermöglicht wird, das RTI-Statusregister zu lesen, um festzustellen, ob die RTI mit Übertragen beschäftigt ist, und, falls ja, um die Unteradresse des übertragenen Nachrichtenblockes zu bestimmen. Die Host-CPU wird die Übertragung der Daten zur RTI neu planen, wenn ein Konflikt angezeigt wird. Ein Semaphorflag wird gesetzt, wenn die CPU diesen Status liest, das ein Datenlesen durch die RT-Schnittstelle sperrt. Das Semaphorflag wird gelöscht, wenn die CPU die ersten Datenwörter in den Sende-RAM schreibt. Die CPU fährt dann durch den Block fort, mühelos vor der RTI bleibend, die mit nur 20 Mikrosekunden pro Wort liest. Diese Technik eliminiert die Notwendigkeit, das MIL-STD-1553 "Besetzt- Bit" zu verwenden, das eine verheerende Auswirkung auf den Busdurchsatz haben kann. Die CPU liefert einen neuen Startzeiger für die RTI, nachdem ein erstes Datenwort für eine neue Nachricht geschrieben worden ist, so daß jede neue RTI-Anforderung neue Daten lesen wird. Die RTI liest den Startzeiger nur einmal pro Busanforderung zum Senden. Sie speichert den Startzeiger in einem separaten internen Zähler und adressiert alle anschließenden Wörter in der Nachricht in Relation zu den Inhalten des Zählers. Nachdem die RTI den RTI-Startzeiger für die Nachricht in ihren Zähler kopiert hat, kann nun der RTI-Startzeiger durch die CPU nach Bedarf aktualisiert werden, ohne das zu beeinflussen, was die RTI sendet. Das heißt, die letzte vorherige Nachricht, auf die durch den vorherigen Wert des RTI-Startzeigers gezeigt worden ist, wird durch die RTI übertragen. Wenn es einen Konflikt gibt, d. h., wenn die RTI liest und die CPU gleichzeitig schreibt, dann wird in Abhängigkeit von den gewählten Prioritäten entweder die alte Nachricht (die RTI gewinnt) oder eine neue Nachricht (die CPU gewinnt) übertragen.
  • Gemäß einem zweiten Gesichtspunkt der vorliegenden Erfindung wird jede sowohl in Empfangs- als auch Sendespeicherpuffern gespeicherten Nachricht vor der Plazierung im Stapel wahlweise zeitetikettiert. Ein Zeitetikettakt wird verwendet, um ein Zeitetikett auf jede Empfangs- oder Sendenachricht zu setzen. Das Zeitetikett wird durch die Host- CPU oder die Destinations-CPU verwendet, um die verschiedenen Empfangszeiten von beliebigen zwei empfangenen Nachrichten zu vergleichen. Bei Verwendung von anderer Information, die für die besondere CPU verfügbar ist, können die Parameter dann interpoliert oder extrapoliert werden, um einen Zeitunterschied zu beseitigen und Zeitkohärenz sowie erhöhte Leistung hinsichtlich der Parametergenauigkeit und Integrität über viele Nachrichten hinweg zu erreichen.
  • Kohärenz der Empfangs- und Sendedaten wird durch die vorliegende Erfindung sichergestellt, in dem jeder einzelne über einen asynchronen Bus empfangene und übertragene Block auf einer Block-Zu-Block-Basis in einem Umlaufspeicher verwaltet und aufgenommen wird. Diese Technik vermeidet viele der Unzulänglichkeiten, die mit im Stand der Technik verwendeten Pufferungsarchitekturen und auch FIFO-Architekturen verbunden sind, die ähnliche Zugriffsunzulänglichkeiten haben. Zeitliche Übereinstimmung von empfangenen und gesendeten Nachrichtenblöcken wird durch Zeitetikettieren der Blöcke sichergestellt. So kann die vorliegende Erfindung dazu benutzt werden, kritische Untersystemintegration durch Gewährleisten von Datenkohärenz zu verbessern, ohne der Host-CPU bedeutende Software- oder Hardwarenachteile aufzuerlegen.
  • Diese und andere Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden angesichts der detaillierten Beschreibung ihrer besten Ausführungsform deutlicher werden, wie sie in der beigefügten Zeichnung dargestellt ist.
  • Kurze Beschreibung der Zeichnung
  • Fig. 1 ist ein vereinfachtes Funktionsblockschaltbild der gattungsgemäßen Fernterminalschnittstelle gemäß der vorliegenden Erfindung;
  • Fig. 2 ist eine Darstellung der Speicherorganisation des Empfangsdaten-RAM von Fig. 1;
  • Fig. 3 ist eine Flußdiagrammdarstellung einer Empfangsdatenroutine;
  • Fig. 4 ist eine Darstellung des Befehlswortformates;
  • Fig. 5A ist eine Flußdiagrammdarstellung einer RTI-Senderoutine für die Nachricht Nr. N;
  • Fig. 5B ist eine Flußdiagrammdarstellung einer CPU-Sende- RAM-Aktualisiersequenz für die Nachricht Nr. N;
  • Fig. 6 ist eine Darstellung der Speicherorganisation des Sendedaten-RAM;
  • Fig. 7 ist eine Darstellung eines Gate-Arrays, in das RTI- und TC-Funktionen eingebaut sind und das an verschiedene externe Vorrichtungen gekoppelt gezeigt ist;
  • Fig. 8 ist eine vereinfachte Darstellung eines schematischen Funktionsblockschaltbildes der Steuer- und Datenabschnitte des RTI- und TC-Gate-Arrays von Fig. 7;
  • Fig. 9 ist ähnlich wie Fig. 7, außer daß die einzelnen Signale außerhalb des Gate-Arrays detaillierter gezeigt sind; und
  • Fig. 10 zeigt die Beziehung zwischen vielen der Funktionsblöcke von Fig. 8 und den externen Vorrichtungen von Fig. 9.
  • Beste Ausführungsart der Erfindung
  • In Fig. 1, auf die Bezug benommen wird, ist ein Funktionsblockschaltbild einer gattungsgemäßen MIL-STD 1553 Fernterminalschnittstelle 10 (RTI) nach der vorliegenden Erfindung gezeigt. Die gattungsgemaße RTI 10 ist mit einer Busschnittstelleneinheit 12 und einer Host-CPU 14 verbunden gezeigt. Es versteht sich, daß die Busschnittstelleneinheit in die gattungsgemäße RTI 10 eingebaut sein könnte, statt separat vorgesehen zu sein. Die Busschnittstelleneinheit 12 steht mit einem Paar zweifach redundanten MIL-STD 1553-Bussen in Verbindung, die mit Bus A 16 und Bus B 18 bezeichnet sind. Die Busschnittstelleneinheit 12 enthält einen Übertrager A 20 und einen Sende-Empfänger A 22, die zusammen der Funktion des Verbindens der RTI-Digitallogik mit dem Datenbus dienen. Der Kopplungsübertrager 20 kann, wo es zur Verbindung an den Datenbus erforderlich ist, Störtrennwiderstände enthalten. Der Sende-Empfänger 22 hat einen Empfänger, der eine Niederpegelgeräuschunterdrückung bewirkt und einen digitalen Ausgang aufweist, der mit der digitalen Logik kompatibel ist. Der Sende-Empfänger 22 enthält auch einen Sender, der das zweiphasenmodulierte Signal steuert, um im militärischen Standard definierte Datenwortformate zu bilden. Sowohl der Übertrager- als auch der Sende-Empfängerteil sind entweder separat aufgebaut oder zusammengebaut ohne weiteres verfügbar.
  • Die Busschnittstelleneinheit 12 enthält auch einen Übertrager B 24 und eine Sende-Empfänger B 26, die den gleichen Funktionen für den Bus B 18 dienen wie es der Übertrager A 20 und der Sende-Empfänger A 22 für den Bus A 16 tun. Zweifach redundante Busschnittstelleneinheiten 12 sind auch kommerziell verfügbar. Obwohl die Erfindung in fig. 1 im Zusammenhang mit einem zweifach redundanten MIL-STD 1553 Bus gezeigt ist, versteht sich, daß die Erfindung im Zusammenhang mit jedem asynchronen Bussystem, einfach, zweifach, usw., ausgeführt werden kann.
  • Die gattungsgemäße RTI 10 enthält ein Fernterminalschnittstelle (RTI)-Gate-Array 28, einen Datenempfangs-RAM 30, einen Datensende-RAM 32, einen Abbildungs-RAM 34, einen Zeitetikettzähler 36, ein Terminalcontroller (TC)-Gate-Array 38, einen E/A- Teil 40, einen Taktgeber 42 und E/A- und Steuerbusse 44. Es versteht sich, daß das RTI-Gate-Array 28 und das TC-Gate-Array 38, obwohl getrennt gezeigt, genauso gut zu einem einzigen Gate-Array zusammengebaut sein könnten. Ebenso können viele der anderen einzelnen Blöcke, die in der gattungsgemäßen RTI 10 von Fig. 1 gezeigt sind, getrennt oder in der gattungsgemäßen RTI 10 von Fig. 1 enthaltend vorgesehen werden.
  • Das RTI-Gate-Array 28 kann als CMOS-Vorrichtung ausgebildet sein. Wie in der auch anhängigen Anmeldung USSN 635,944, mit dem Titel DUAL REDUNDANT BUS INTERFACE CIRCUIT ARCHI- TECTURE, Erfinder G. Howland, abgetreten auf den Abtretungsempfänger dieser Anmeldung und hiermit ausdrücklich durch Bezugnahme eingeführt, offenbart ist, wickelt das RTI-Gate-Array 28, wie hier betrachtet, das komplette MIL- STD-1553-Protokoll ab und erfordert keinen CPU-Eingriff für normale Übertragungen von Blöcken zwischen dem Betriebsbus und der Host-CPU. Die wesentlichen Merkmale des 1553-RTI- Gate-Arrays, wie sie in der Beschreibung von Howland offenbart sind, enthalten:
  • - Einzelgeräteaustattung für zweifach redundante 1553- Busse;
  • - minimale Steckkartenplatz- und Leistungsanforderungen;
  • - minimale Hardware- und Softwareausstattungsanforderungen;
  • - die Fähigkeit, den Betriebszustand zu melden und zu programmieren; und
  • - umfassende Selbsttestfähigkeit.
  • Der 2K Wortdaten-RAM ist in einen 1K Wortempfangsdaten-RAM 30 und einen 1K Wortsendedaten-RAM 32 unterteilt. Das RTI- Gate-Array 28 legt Befehlswörter, Moduswörter und Datenwörter in Blöcken im Empfangsdaten-RAM ab und ruft abgelegte Blöcke aus dem Sende-RAM 32 zum Übertragen auf dem aktiven Bus ab. Der Empfangsdaten-RAM 30 ist mittels Steuersignalen aus dem TC-Gate-Array 38 als ein "Umlauf"-RAM-Speicher organisiert. Diese in Fig. 2 gezeigte Umlauforganisation besteht aus Blöcken in der Reihenfolge, in der sie empfangen werden. Wenn jede Nachricht vom RTI-Gate-Array 28 empfangen wird, wird sie durch das TC-Gate-Array 38 paketiert und zeitmarkiert. Es gibt keine Nachrichtenzwischenräume für Nachrichten, selbst nicht für Nachrichten mit weniger als einer Länge von 32 Worten. Die Organisation des Sendedaten- RAM hat 32 Blöcke zu jeweils 256 Wörtern. Jeder Block ist nach Umlaufart ähnlich der Einrichtung des Empfangs-RAN eingerichtet, mit der Ausnahme, daß es 32 separate Umlauf- RAMs (vgl. Fig. 6) gibt.
  • Der Abbildungs-RAM 34 von Fig. 1 wird durch die Host-CPU 14 initialisiert und durch das RTI-Gate-Array 28 und das TC- Gate-Array 38 benutzt, um ankommende Sendungen für gültig zu erklären und die geeignete Antwort (z. B. Interrupts) an die Host-CPU 14 oder den Buscontroller (nicht gezeigt) festzulegen.
  • Der Zeitetikettzähler 36 ist ein freilautender Zeitzähler, der durch das TC-Gate-Array 38 bei Empfang der Synchronisiermoduscodes aus dem Buscontroller gelöscht oder voreingestellt wird. Der Zeitzähler wird vom TC-Gate-Array 38 benutzt, um alle ankommenden und abgehenden Blöcke zeitzuetikettieren.
  • Das TC-Gate-Array 38 ist das zentrale Element der gattungsgemäßen RTI-Schnittstelle 10. Die Funktionen des TC-Gate- Arrays 38 sind folgende:
  • - Datenkohärenzmanagement
  • - Formatierung und Paketierung
  • - CPU-Schnittstelle
  • - Moduscodeansprechen
  • - CPU-Interrupts.
  • Das TC-Gate-Array 38 erzeugt gemeinsam mit dem RTI-Gate-Array 28 sämtliche notwendigen Signale, um die obigen Funktionen, wie im einzelnen unten beschrieben, zu mechanisieren.
  • Um Datenkohärenz sicherzustellen, sieht das TC-Gate-Array 38 eine Logik vor, welche ankommende Blöcke testet. Die Übereinstimmung von ankommenden Blöcken wird leicht bestimmt und der Host-CPU wird es verwehrt, auf unvollständig empfangene Nachrichtenblöcke zuzugreifen. Für abgehende, für den aktiven Bus bestimmte Daten vermittelt das TC-Gate- Array 38 einen Zugriff auf den Sendedaten-RAM 32 zwischen dem RTI-Gatearray 28 und der Host-CPU 14. Das RTI-Gate-Array 28 hat auf den Sendedaten-RAM 32 eine höhere Zugriffspriorität als die CPU 14. Ausgangskohärenz wird mittels-eines Blockschreibsperrsignales, das durch das TC-Gate-Array (nicht gezeigt) generiert wird, und durch anfängliches Verwehren eines RTI-Lese-Zugriffs auf einen Block, der eingeschrieben wird, garantiert.
  • Das TC-Gate-Array 38 liefert die Steuersignale und hat die Fähigkeiten zur Hochgeschwindigkeitsverarbeitung einer Statusmaschine, die notwendig sind, um ankommende Blöcke in Echtzeit zu paketieren und zeitzumarkieren. Das Formatieren von kompletten empfangenen Blöcken und die Verwendung des Umlaufspeichers bringt folgende wichtige Vorteile:
  • - wirksames Ausnutzen des Daten-RAM
  • - erhöhte Datendurchsatzfähigkeit
  • - Flexibilität für variable oder Mehrraten-Nachrichtenblöcke
  • - reduzierte Softwarekomplexität.
  • Das TC-Gate-Array 38 liefert die notwendigen Signale und bewirkt E/A-Port-Decodierungen zum Verbinden mit der Host- CPU 14 mit einem minimalen Aufwand an Software. Das TC-Gate-Array 38 generiert auch die Adressen von Wörtern innerhalb jedes Blockes, um die Echtzeitanforderungen der CPU 14 zu minimieren.
  • Das TC-Gate-Array 38 spricht auf alle MIL-STD 1553B-Moduscodes an, ohne daß die CPU 14 eingreift, außer für die folgenden zwei Moduscodes, für die CPU-Aktionen wesentlich sind:
  • - RTI-Schnittstellenreset
  • - Selbsttest.
  • Es versteht sich von selbst, daß diese Codes implementiert sein können.
  • Jedesmal, wenn ein neuer vollständiger Block durch die RTI- Schnittstelle empfangen wird, benutzt das TC-Gate-Array den Abbildungs-RAM 34, um die Gültigkeit und den Interrupt-Status des Blockes zu bestimmen. Wenn ein gültiger Interrupt- Nachrichtenblock empfangen wird, wird die CPU unterbrochen. Die CPU kann dann auf diesen Block über einen speziellen E/A-Port im TC-Gate-Array zugreifen.
  • Der Betrieb des MIL-STD-1553B Fernterminalschnittstellen- Gate-Arrays 28 beinhaltet die Beteiligung sowohl der Schnittstellenhardwareelemente als auch der Host-CPU. Die funktionellen Merkmale der verschiedenen beteiligten Elemente wurden oben beschrieben. Einfache und wirkungsvolle Softwarealgorithmen und -verfahren können in der Host-CPU für die Akquisition, Übertragung und Aufnahme der aktiven Busdaten und für die Verwaltung der 1553B-RTI entwickelt werden.
  • Die durch die 1553B-RTI verrichteten Aufgaben bestehen aus den folgenden Operationen:
  • - Busdatenempfang
  • - CPU-Datensendung
  • - Initialisierung
  • - Selbsttest.
  • Empfang und Bearbeitung von Datenübertragungen durch das RTI-Gate-Array 28 hat den folgenden Ablauf von Operationen zur Folge (eine gleichwertige Flußdiagrammbeschreibung ist in Fig. 3 gezeigt):
  • a.) Das RTI-Gatearray fordert Schreibzugriff auf den Datenempfangs-RAM 30 an. (Siehe Schritt 10 in Fig. 3);
  • b.) das TC-Gate-Array 38 überprüft die Blockgültigkeit unter Verwendung des Abbildungs-RAM 34. (Siehe Schritt 102 in Fig. 3);
  • c.) das TC-Gate-Array 38 überprüft die Verfügbarkeit des Datenempfangs-RAM 30 (siehe Schritt 104 in Fig. 3) mit garantiertem, vor dem Empfang (alle zwanzig Mikrosekunden) des nächsten Wortes sichergestelltem Zugriff;
  • d.) wenn ein neuer Block in den Datenempfangs-RAM 30 geschrieben worden ist (siehe Schritt 106 in Fig. 3), schreibt das TC-Gate-Array 38 das Befehlswort in das Befehls/Statusregister (nicht gezeigt) und in den Empfangsdaten-RAM. (Siehe Schritt 108 in Fig. 3); wenn nicht, wird ein Datenwort geschrieben (siehe Schritt 109 in Fig. 3);
  • e.) wenn das Zeitetikettmerkmal freigegeben wird, lädt das TC-Gate-Array 38 das Zeitetikettwort nach dem Block und aktualisiert zum Umlaufspeicher gehörende Zeiger, die auf bestimmte Datenstücke zeigen, was unten detaillierter beschrieben wird. (Siehe Schritte 110 und 112 in Fig. 3). Wenn das Zeitetikett nicht freigegeben wird, oder nach dem Schreiben eines Zeitetiketts, wird die Nachricht geprüft, um festzustellen, ob das Ende des Blockes erreicht worden ist. (Siehe Schritt 114 in Fig. 3);
  • f.) die Schritte (c.) und (d.) werden, bis der Block komplett empfangen ist, alle zwanzig Mikrosekunden wiederholt. Der Nachrichtenblock ist nun, falls gültig, für die CPU verfügbar. (Siehe Schritte 114, 115, und 100 bis 112 in Fig. 3);
  • g.) das TC-Gate-Array 38 erzeugt den Interrupt für die Host-CPU 14, falls durch den Abbildungs-RAM 34 angegeben, und aktualisiert spezielle Zeiger zum Unterbrechungsblock (zu den Unterbrechungsblöcken). (Siehe Schritte 116 und 118 in Fig. 3).
  • Zurück zu Fig. 2, die eine Darstellung einer Speicherorganisation des Datenempfangs-RAM 30 zeigt. Unter der willkürlichen Annahme eines 1K-Speichers sind die Adressen 50 in einer Spalte neben dem Umlaufdatenempfangsspeicher 30 gezeigt. Jede Speicheradresse ist im Digitalformat bezeichnet, d. h., im ungünstigsten Fall Speicherung von über 20 Millisekunden. Nur ein kleiner Teil des gesamten Speichers ist in Fig. 2 dargestellt. Der Teil des Speichers 30, der aktiv zu der in Fig. 2 dargestellten Zeit benutzt wird, ist durch eine Klammer 52 gezeigt, die angibt, daß in Speicheradreßstellen 4 bis 27 abgelegte Wörter für CPU-Benutzung zur Verfügung stehen. Die Host-CPU kann dies durch Überprüfen eines Startzeigers 54 und eines Stopzeigers 56 feststellen, die auf den Beginn bzw. das Ende der verfügbaren Nachrichtenblöcke zeigen. Nur diejenigen Blöcke 57, die noch nicht gelesen worden sind und die komplett geschrieben worden sind, werden für CPU-Benutzung zur Verfügung gestellt.
  • Das Befehlswortformat ist in Fig. 4 dargestellt. Jedem RT im 1553-System ist eine eindeutige 5-Bit-Adresse zugeordnet, für die es verantwortlich ist zu antworten, wenn die Adresse als Teil eines Befehlswortes auf dem Datenbus durch den Buscontroller gesendet wird. Das nächste Bit zeigt die vom RT angeforderte Aktion an, d. h. Senden (T) oder Empfangen (R). Die nächsten 5 Bits zeigen entweder die Unteradreßkennung von speziellen Nachrichtenblöcken oder eine Anzeige an, daß gerade ein Modusbefehl gesendet wird. Die nächsten 5 Bits zeigen die Menge an Datenwörtern, die vom RT ausgesendet oder empfangen werden soll, oder einen wahlweisen Moduscode an.
  • Zurück zu Fig. 2, der nächste Block, der aufgefüllt wird, ist durch eine Klammer 58 angezeigt und enthält, in der augenblicklichen Zeitdarstellung, die Speicherstellenadressen 28 bis 30. Ein Nächstes-Wort-Zeiger 60 wird von dem TC-Gate-Array 38 von Fig. 1 verwendet, um zu bestimmen, wohin im Block das nächste Wort zu schreiben ist. In diesem Fall wird das nächste Wort in eine Speicherstellenadreßnummer 31 geschrieben werden, die ein altes oder "verbrauchtes" Informationsstück enthält, das früher in einem Block enthalten war, der bereits von der Host-CPU, wie durch eine Klammer 62 gezeigt, gelesen ist. Das TC-Gate-Array 38 wird fortfahren, in den nächsten verfügbaren Teil des Speichers gemäß dem nächsten Wortzeiger 60 Blöcke zu schreiben, und die Host-CPU 14 wird fortfahren, diese Blöcke nach ihrem Belieben entweder einzeln oder in Gruppen zu lesen. Das TC- Gate-Array 38 wird so immer etwas vor der Host-CPU bleiben und immer das Schreiben eines Blockes vervollständigen, somit dessen Kohärenz sicherstellen, bevor er von der Host- CPU gelesen wird. Auf diese Weise wird der Speicher in einer Umlaufart, wie durch einen Pfeil 64 gezeigt, beschrieben, bis die physikalischen Grenzen des Speichers erschöpft sind, wie durch einen Pfeil 66 gezeigt. An diesem Punkt ist die 1K-Kapazität des Speichers im Begriff erschöpft zu sein.
  • Nach einem Schreiben in die Speicherstelle bei Adresse 1023 springt der Nächstes-Wort-Zeiger 60 einfach wieder zur Speicheradreßnummer 0. Und der gerade geschriebene Block "umläuft" die physikalischen Grenzen des 1K-Speichers. Da die Speicherkapazität viel größer ist als das, was zu einer beliebigen Zeit beabsichtigt sein könnte, benutzt zu werden, tritt nie irgendein Kohärenzproblem auf.
  • Somit wird eine "Kreis-", "Umlauf" "Stapel-" oder "Pseudo-FIFO"-Art eines Speichers, der viel größer ist als das, was vorstellbar zu einer beliebigen Zeit effektiv benutzt werden könnte, verwendet, Nachrichtenkohärenz auf einer Block-zu-Block-Basis sicherzustellen. Dadurch, daß Blöcke sequentiell in ein paketiertes Format geschrieben werden und jedes Wort an seiner ursprünglichen Stelle bleibt, werden sehr wirksame Zugriffstechniken zur Verwendung verfügbar gemacht. Somit werden die alten Techniken der zweifachen, dreifachen, etc. Pufferung oder Speicherung nach Art eines FIFO-Speichers, bei dem Nachrichten durch den Stapel "rieseln", vermieden. Somit wird Datenkohärenz in einer sehr stabilen Weise sichergestellt, welche einen Zugriff mit minimalen Hardware- und Softwareanforderungen sicherstellt. Die CPU kann einen oder mehrere Blöcke entladen und die Blöcke entsprechend ihren Befehlswörtern aussortieren.
  • Die zweite Stufe von Kohärenzproblemen, die (aufgrund des Datenempfangs aus zwei verschiedenen Untersystemen) in einer Gruppe von empfangenen Nachrichten existieren, wird durch Zeitetikettieren jeder Nachricht gelöst. Somit kann die CPU präzise bestimmen, wann jede empfangen wurde. Somit können, wenn ein Flugregelcomputer ein Fluggeschwindigkeitssignal zu einer Zeit t = t&sub1; sendet und ein Kreiselcomputer Nick-, Roll- und Giersignale zu einer t = t&sub2; sendet, diese beiden Signale in einen Stapel geladen und so zeitmarkiert werden, daß es der CPU ermöglicht wird, diese zeitmäßig zu unterscheiden und diese nicht zu verwenden, als ob sie alle zur gleichen Zeit generiert worden wären. Da sie zeitmarkiert sind, werden potentielle katastrophale Zeitsteuerungsprobleme, die den Zeitrahmen, in welchem ein Datenwort empfangen wird, betreffen, vermieden. Die CPU vergleicht die verschiedenen Empfangszeiten von irgendwelchen zwei empfangenen Blöcken unter Verwendung anderer ihr bezüglich des Arbeitens des Flugzeugs verfügbarer Information und extrapoliert dann irgendein verzögertes Datenstück auf die aktualisierte Zeit des letzten Informationsstückes.
  • Fig. 5A ist eine Darstellung einer RTI-Sendesequenz für die Nachricht NR. N. Ab einem Startblock 200 geht diese Sequenz weiter zu einem Schritt 201, in welchem restgestellt wird, ob eine Busanforderung zum Senden der Nachricht N existiert oder nicht. Wenn nicht, erfolgt ein Austritt in einem Schritt 202. Wenn ja, wird ein Statuswort in einem Schritt 203 gesendet, und der RTI-Startzeiger wird in einem Schritt 204 in einen J-Zähler kopiert. Ein Wort wird dann an der Adresse J aus dem Sendebereich für die Nachricht N gesendet. In einem Schritt 206 wird J dann gleich J-1 gesetzt.
  • Dann wird in einem Schritt 207 eine Entscheidung getroffen, ob die verlangte Zahl von Wörtern in der Nachricht N gesendet worden ist. Wenn nicht, erfolgt eine Rückkehr zum Schritt 205 zum weiteren Senden von zusätzlichen Wörtern. Wenn ja, erfolgt ein Austritt in dem Schritt 202.
  • Kohärenz wird in der obigen Sequenz aufrechterhalten, weil die RTI den RTI-Startzeiger für eine Nachricht in einen Zähler kopiert. Der RTI-Startzeiger kann dann durch die CPU nach Bedarf aktualisiert werden, ohne das nachteilig zu beeinflussen, was die RTI sendet, d. h. die letzte vorherige Nachricht, auf die durch den vorherigen Wert des RTI-Startzeigers gezeigt worden ist. Wenn es einen Konflikt gibt, d. h., wenn die RTI liest und die CPU gleichzeitig schreibt, dann wird in Abhängigkeit davon, wer gewinnt (auf der Basis der gewählten Priorität), entweder die alte Nachricht (die RTI gewinnt) oder eine neue Nachricht (die CPU gewinnt) übertragen.
  • Fig. 5B ist eine Darstellung einer CPU-Sende-RAM-Aktualisiersequenz für die Nachricht Nr. N. Ab einem Startblock 208 wird eine Entscheidung in einem Schritt 209 darüber getroffen, ob neue Daten für die Nachricht Nr. & verfügbar sind. Wenn nicht, erfolgt ein Austritt in einem Schritt 210. Wenn ja, wird eine Variable K gleich dem CPU-Startzeiger für die Nachricht N in einem Schritt 211 gesetzt. Ein Nachrichtenwort wird dann an der Adresse K in dem Sende-Umlauf-RAM für die Nachricht N in einem Schritt 212 geschrieben. Ein Schritt 213 wird dann ausgeführt, n welchem die Variable K gleich K+1 gesetzt wird. Es wird dann in einem Schritt 214 bestimmt, ob alle Wörter in der Nachricht geschrieben worden sind. Wenn nicht, erfolgt eine Rückkehr zu den Schritten 211-213, bis alle Wörter geschrieben worden sind. Wenn ja, wird der RTI-Startzeiger mit dem CPU-Startzeiger in einem Schritt 215 aktualisiert. Der CPU-Startzeiger wird dann in einem Schritt 216 auf den Wert K+1 aktualisiert. Es erfolgt dann ein Austritt in dem Schritt 210.
  • Kohärenz wird in der obigen Sequenz, die in Fig. 5B dargestellt ist, aufrechterhalten, weil:
  • (a) der RTI-Startzeiger aktualisiert, nachdem die Daten geschrieben worden sind, so daß jede neue Anforderung neue Daten bedeuten wird;
  • (b) die RTI liest den Startzeiger nur einmal pro Busanforderung zum Senden und speichert diesen Wert in einem separaten internen Zähler. Sie liest dann alle Wörter in der Nachricht unter Verwendung dieses Zeigers als Referenz. Irgendwelche neuen Startzeiger werden bis zur nächsten Busanforderung ignoriert.
  • Fig. 6 ist eine Darstellung des Sende-RAM-Aufbaus. Üblicherweise wird es 30 Nachrichtenblöcke (im Zusammenhang mit MIL-STD-1553) geben, wobei jeder der Blöcke 256 Wörter enthalten könnte und wobei jeder Block einen separaten Umlaufspeicher Nr. 1 211 hat gemäß der Darstellung M&sub1; Wörter. Die neueste Nachricht innerhalb des Nachricht Nr. 1-Speicherbereiches beginnt an einer Adresse a&sub1;. Die CPU wird den Bereich 211 mit den letzten Daten aktualisiert halten, und der letzte Startzeiger wird auf die letzten Daten zur Übertragung zeigen. Auf ähnliche Weise wird die Nachricht Nr. 2, 3, 4, . . . , N Nachrichtenbereiche haben, die wie dargestellt begrenzt sind und von denen jede eine laufende Nachrichtenstartadresse hat, wie es in der Tabelle 215 in Fig. 6 gezeigt ist.
  • Fig. 7 ist eine Darstellung eines Gate-Arrays 300, in das sowohl die RTI. als auch die Funktionen eingebaut sind. Die physikalische Ausrichtung und Hauptverbindungen des Gate-Arrays sind gezeigt. Es versteht sich, daß die gezeigte Ausrichtung lediglich eine von einer großen Vielzahl von Ausrichtungen ist, die gewählt werden könnte. Es versteht sich auch, daß die Vorrichtungen und Hauptverbindungen, die durch das Gate-Array hergestellt sind, nicht alle notwendigerweise erforderlich sind, um die hierin offenbarten erfindungsgemäßen Konzepte auszuführen. Die Erfindung sollte auch nicht durch die physikalischen Beschränkungen der einzelnen Vorrichtungen beschränkt sein.
  • Fig. 7 zeigt einen 800-Mikrosekunden-Zeitgeber 302, der über drei Leitungen 303 mit dem Gate-Array 300 verbunden ist, einen Abbildungs-PROM 304, der über vierzehn Leitungen 305 mit dem Gate-Array 300 verbunden ist, einen Adreßbus 306, der über fünfzehn Leitungen 307 mit dem Gate-Array verbunden ist, einen Daten-RAM 308, einen Paritätsprüfungsteil 310 und einen Datenbus 312, die alle drei über sechzehn gemeinsame Leitungen 314 mit dem Gate-Array 300 verbunden sind, ein Schreib-Gate 316, das über drei Leitungen 318 mit dem Gate-Array 300 verbunden ist und Sende-Empfänger 320, die über acht Leitungen 322 mit dem Gate-Array 300 verbunden sind.
  • Der 800-Mikrosekunden-Zeitgeber 302 dient der Funktion, den Bus vor einer "gaunerhaften"-RTI zu schützen, die fortfährt, Signale auf dem Bus zu senden, nachdem ihre maximal zugewiesene Zeit schon abgelaufen ist. Deswegen kann die längste Übertragung nicht mehr als 800 Mikrosekunden je MIL-STD 1553 andauern, wenn diese Zeitgrenze gewählt war. Der Zeitgeber wird jedesmal gestartet, wenn der Bus die RTI "anspricht", und erlaubt der RTI, für maximal 800 Mikrosekunden auf dem Bus zu "sprechen", nachdem die Sende-Empfänger 320 abgeschaltet sind. Somit begrenzt der Zeitgeber 302 die maximale Übertragungszeit auf dem Bus auf 800 Mikrosekunden.
  • Der Abbildungs-PROM 304 dient der gleichen Funktion wie das Abbildungs-RAM 34 in Fig. 1. Zum Erfüllen dieser Funktion kann entweder ein RAM oder ein ROM verwendet werden. Bei einer Anwendung, in der der Host-Prozessor wünschen kann, eine Nachricht während des Betriebes als zulässig oder nicht zulässig, gültig zum Empfangen oder nicht gültig, gültig zum Unterbrechen oder nicht gültig und gültig zum Zeitmarkieren oder nicht neu zu definieren, sollte folglich ein RAM mit seinem zugehörigen Host-Prozessorzugriffspfad verwendet werden. In einem mehr typischen System, das keine Neudefinition dieser Parameter während des Betriebes erfordert, kann die einfachere PROM-Ausführung verwendet werden.
  • Der Adreßbus 306 dient der Funktion, die Adresse des Daten- RAMs zwischen dem RTI- und TC-Array und dem Host-Prozessor gemeinsam zu benutzen und auch die Adresse des Host-Prozessors zu decodieren, um ihm Zugriff auf die internen Register des RTI- und TC-Arrays zu ermöglichen.
  • Der Daten-RAM 308 dient einer ähnlichen Funktion wie der Datenempfangs-RAM 30 und der Datensende-RAM 32 in Fig. 1.
  • Der Paritätsprüfungsteil 310 ist vorgesehen, um das mit jedem Wort verbundene Paritätsbit im Daten-RAM während eines Daten-RAM-Schreibens zu generieren und erzeugen. Parität wird wieder während eines Daten-RAM-Lesens generiert und mit der während des Schreibens dieses gleichen Wortes gespeicherten verglichen. Eine Diskrepanz zwischen diesen beiden zeigt einen RAM-Fehler an und wird als solcher dem Host-Prozessor angezeigt. Die Paritätsprüfung verbessert eine Zuverlässigkeitsfehlererfassung, ohne die die Schnittstelle, allerdings mit niedrigerer Zuverlässigkeit, funktionieren wird.
  • Der Datenbus 312 dient der Funktion, einen Datenübertragungsweg zwischen dem Gate-Array 300 und einer daran angeschlossenen Host-CPU und auch zwischen jeder dieser Vorrichtungen und dem Daten-RAM 308 zu schaffen.
  • Das Schreib-Gate 316 ist vorgesehen, um die Zugriffe des RTI- und TC-Gate-Arrays auf den Daten-RAM mit denen des Host-Prozessors zu synchronisieren, wodurch eine transparente DMA-Betriebsart erzielt wird. Dies macht die gemeinsam genutzte Funktion des Daten-RAMs leistungsfähig wie einen Dual-Port-RAM.
  • Die Sende-Empfänger 320 erfüllen eine ähnliche Funktion wie die Sende-Empfänger 22, 26 in Fig. 1.
  • Fig. 8 ist eine vereinfachte Funktionsblockschaltbilddarstellung der Steuerungs- und Datenteile des RTI- und TC-Gate-Arrays 300 in Fig. 7. Jeder der in Fig. 8 gezeigten Blöcke zeigt in allgemeiner Form die Hardware, die im Gate- Array 300 eingebaut sein kann. Der Großteil der in Fig. 8 offenbarten Funktionen ist bereits in der auch anhängigen Anmeldung von Howland, die zuvor durch Bezugnahme engeführt wurde, beschrieben worden. Die Änderungen, die gemacht worden sind, sind Änderungen, welche die Leistungsfähigkeiten der RTI von Howland durch Einbau eines TC vergrößern, der hilft, die Datenkohärenz sicherzustellen, was das Hauptziel der vorliegenden Erfindung ist.
  • Fig. 8 ist durch eine gestrichelte Linie 330, welche die Funktionsblöcke in einen oberen Steuerteil und einen unteren "Daten"-Teil trennt, geteilt. Der obere Steuerteil zeigt sechs Funktionsblöcke, die Steuerlogik enthalten, welche die Gesamtsteuerung des im unteren Datenteil in Fig. 8 gezeigten Datenflusses hat. Ein CPU-Zugriffsteil 332 enthält Logik, die es der CPU erlaubt, mit dem Gate-Array zu kommunizieren. Diese Logik decodiert das geeignete Eingangssignal, das für die "Intentionen" der CPU bezeichnend ist, d. h., Adressen, Lesen/Schreiben, Chipauswahl und interne Auswahlen 1 und 2, und erlaubt der CPU, auf Register innerhalb des RTI- und TC-Gate-Arrays zuzugreifen, wie Zeitetikett-, Steuerungs- und Stopzeigerregister.
  • Ein Statusmaschinenteil 334 enthält die allerwichtigste Steuerlogik, die den Betrieb der gattungsgemäßen Schnittstelle verknüpft. Sie ist in ihrer Funktion ähnlich der Statusmaschine, die von Gary Howland in der oben in Bezug genommenen Offenbarung DUAL REDUNDANT BUS INTERFACE CIRCUIT ARCHITECTURE offenbart ist. Die Statusmaschine interpretiert die Aktion, die stattfinden muß, d. h., schreibe Befehlswort, schreibe Datenwort, lies Datenwort, schreibe Zeitetikett, etc., und bildet die notwendigen Steuersignale, die erforderlich sind, damit diese Aktion erfolgt.
  • Ein Abschaltlogikteil 336 ist vorgesehen, um Abschaltbefehle vom Bus zu erfassen und geeignete Aktionen zu ergreifen. Immer dann, wenn ein Abschaltbefehl erfaßt wird, wird der mit der gegenüberliegenden Hälfte des zweifach-redundanten 1553-Busses verbundene Sender gemäß der militärischen Spezifikation gesperrt.
  • Ein DMA-Teil 338 vermittelt auf Busebene den Zugriff auf den lokalen RAM zwischen der Host-CPU und der RTI, wobei die von der externen Schreib-Gate-Schaltung vorgesehenen Synchronisationssignale verwendet werden. Der DMA-Teil vermittelt den Zugriff auf die Daten-RAM-Adreß- und Datenleitungen und schafft dabei etwas, was für beide Anwender als ein Dual-Port-RAM erscheint.
  • Ein Fehlerlogikteil 340 ist zum Erfassen von Fehlern im 1553-Serienstrom enthalten. Alle die vom MIL-STD-1553 verlangten Überprüfungen werden verrichtet. Diese beinhalten Wortparität, fortlaufende Daten, Blocklückenzeiten, Wortzahlwerte, ungültige Moden, Synchronmuster, etc.
  • Ein Modusdecodierteil 342 ist vorgesehen, um Modusbefehle, die zur Ausführung in der besonderen Ausführungsform geeignet sind, zu erkennen. Alle 1553-definierten Moduscodes werden decodiert und im Inneren des Gate-Arrays realisiert, außer Fernterminal-Rücksetzen und Selbsttestausführen, die zur Ausführung zur CPU weitergeleitet werden müssen.
  • Der Datenteil in Fig. 8 unterhalb der gestrichelten Linie 330 enthält eine konzeptmäßige Darstellung des Datenflusses innerhalb des Gate-Arrays 300 in Fig. 7 gemaß der vorliegenden Erfindung.
  • Ein Frontende-Teil 344 umfaßt Pegelübersetzung, einen Entprellteil und sieht auch einen Testpfad vor, ähnlich zum Selbsttestaspekt, der in der zuvor durch Bezugnahme eingeführten Offenbarung von Howland offenbart ist. Der Frontende-Teil 344 empfängt auf Leitungen 322 Manchester-codierte Daten und liefert auch Manchester-codierte Ausgangssignale.
  • Nach Pegelübersetzung, Entprellung und anderen geeigneten Tests, werden die zweiphasigen Signale auf Leitungen 348 zu einem Decodierteil 350 gesendet, das das ankommende Manchester-Signal decodiert. Die Decodierer können Zweifachdecodierer in einer zweifach redundanten Ausführung sein. Die decodierten Signale werden auf Leitungen 352 zu einem Befehlsschiebe- und Multiplexer-Teil 354 gesendet. Der Schiebeteil formt die ankommenden seriellen Daten in eine parallele vorm um, und der Multiplexerteil wird in zweifach redundanter Ausführungen verwendet, um den geeigneten Eingangskanal auszuwählen.
  • Das multiplexierte parallele Befehlswort wird auf Leitungen 356 zu einem Befehls-Latch-Teil 358 gesendet, wo es für eine spätere Übertragung zwischengespeichert wird.
  • Das zwischengespeicherte Befehlswort wird auf Leitungen 360 zu einem Adressenausgangsteil 362 gesendet, das eine Adresse auf Leitungen 307 an den Adreßbus 306 in Fig. 7 liefert. Das Adressenausgangsteil 362 ist ein Multiplexer, der zwischen dem Befehls-Latch 358 und einem von einem Lade/Stop-Teil 364 bereitgestellten Ladezeiger auswählt. Wenn die Schnittstelle Daten sendet, werden die Daten im Daten- RAM 308 (siehe fig. 7) so formatiert, aß die Adresse zum RAM die niedrigsten elf Bits des Befehlswortes ist, welches im Befehls-Latch (vgl. Fig. 4) gespeichert worden ist. Die niedrigsten fünf Bit des Befehls-Latch bilden einen Zähler, der für jedes gesendete Wort um Eins verringert wird, wodurch das Datenformat von fig. 6 gebildet wird. Wenn die Schnittstelle Daten empfängt, wird der RAM durch den Ladezeiger auf den Leitungen 366 und 307 adressiert, wodurch das Empfangsdatenformat von Fig. 2 gebildet wird. Durch den Lade/Stop-Teil 364 wird auch ein Stopzeiger oder ein nächster Wortzeiger 60 in Fig. 2 geliefert. Nachdem ein Block empfangen worden ist und alle Gültigkeitsüberprüfungen passiert hat, wird der Ladezeiger in den Stopzeiger kopiert, wodurch der neue Block im gültigen Datenbereich 57 (siehe Fig. 2) der CPU aufgenommen wird. Wenn zu irgendeiner Zeit ein Fehler detektiert wird, wird der Stopzeiger in den Ladungszeiger kopiert, was den Ladungszeiger wirksam sichert und die ungültigen Daten aus dem zugreifbaren Bereich der CPU aussondert. Es ist nicht notwendig, die ungültigen Daten tatsächlich aus dem RAM zu löschen. Sie werden in der Tat durch den nächsten ankommenden Block überschrieben, und die CPU sieht nie die ungültigen Daten.
  • Alle Befehlswörter auf dem 1553-Bus werden, ungeachtet ihrer Bestimmung, in das Befehlsschieberegister 354 geschoben. Von hier aus wird ein Adressenvergleich durch eine RT/M-Erkennungslogik 368 durchgeführt. Dies ist einfach ein Vergleich der fünf höchstwertigen Bits (vgl. Fig. 4) des Befehlswortes mit Adressen, die die CPU in die RT/M-Erkennungslogik über Leitungen 370 geschrieben hat. Denn eine Adresse mit der RT-Adresse übereinstimmt, antwortet die Schnittstelle als ein Fernterminal. Wenn eine Adresse mit einer Monitoradresse übereinstimmt, empfängt die Schnittstelle Daten, antwortet aber nicht auf dem 1553-Bus. Somit wird sie sich als ein Bus-Monitor gemäß der militärischen Spezifikation verhalten. Wenn überhaupt keine Übereinstimmung hergestellt ist, macht die Schnittstelle nichts. Die CPU kann auch eine "Gesamtüberwachung" programmieren, wobei in diesem Fall die Schnittstelle beliebige und alle Busdaten ohne Rücksicht auf die Adresse empfangen wird.
  • Ein Steuerregister 372 ist innerhalb des Gate-Arrays vorgesehen, das es der CPU erlaubt, solche Funktionen wie Zurücksetzen, Freigeben eines Kanales A und/oder B, Freigeben eines Selbsttests, Freigeben eines Zeitetiketts, etc. durch Setzen der geeigneten Steuerregisterbits auszuführen.
  • Ein Neubefehlslogikteil 380 antwortet auf decodierte Befehle, Zustände und Datenwörter auf Leitungen 382 vom Decodiererteil 350. Ankommende serielle Daten werden von dem Neubefehlslogikteil 380 auf Leitungen 384 zu einem Eingangs/Ausgangs-Schieberegister 386 übertragen, wo sie in parallele Form zur Übertragung auf Leitungen 388 zu einem Empfangs-Multiplexer/Latch 390 zusammengesetzt werden. Das Empfangs-Multiplexer/Latch 390 reagiert auch auf zwischengespeicherte Befehlswörter, die aus dem Befehls-Latch 358 auf Leitungen 392 empfangen werden. Somit empfängt das Empfangs-Multiplexer/Latch 390 sowohl zwischengespeicherte Befehlswörter als auch Datenwörter in paralleler Form zur Übertragung auf Leitungen 394 zu einem Daten-Eingangs/Ausgangsteil 396, das eine bidirektionale Dreizustandsdatenbusschnittstelle sein kann, um über Leitungen 314 den Datenbus 312, den Paritätsprüfungsteil 310 und den Daten-RAM 308 von Fig. 7 anzukoppeln. Ein Zeitetikett/Synchronisier-Teil 398 liefert Zeitetikettwörter für jeden Nachrichtenblock zum Übertragen zu dem Empfangsteil des Daten-RAMs 308 in Fig. 7.
  • Der Zeitetikett/Synchronisierer enthält einen freilaufenden 16-Bit-Zähler, der alle 64 Mikrosekunden inkrementiert wird. Wenn das Zeitetikett freigegeben ist. Wird diese 16- Bit-Zählung in der in Fig. 2 gezeigten Position in den Daten-RAM geschrieben. Es ist natürlich notwendig, das Inkrementieren des Zeitetiketts mit dem Schreibzyklus so zu synchronisieren, daß ein stabiles Wort geschrieben wird. Dies wird durch Zurückstellen des Inkrementierens erreicht, bis das Schreiben vorüber ist. Der Zeitetikettzähler ist auch voreinstellbar und wird durch die CPU (aus Datenleitungen 314) oder bei Empfang eines "Synchronisiere mit Arbeit"-Moduscodes aus dem 1553-Bus (aus Leitungen J94) geladen. Oder der Zeitetikettzähler wird gelöscht, wenn die Modusdecodierlogik 342 einen "Synchronisier"-Moduscode vom 1553-Bus erkennt.
  • Somit werden im Empfangsmodus Nachrichtenblöcke, die ein Befehlswort haben, dem ein Zeitetikett mit einer Anzahl von Datenwörtern folgt, auf den Leitungen 314 zum Empfangs-Daten-RAM gesendet.
  • Als Reaktion auf einen Sendebefehl vom angekoppelten Bus werden die Decodierer 350, Befehlsschieber und Multiplexer 354, Befehls-Latch 358 und Adreßausgangsteil 362 alle in einer ähnlichen Weise funktionieren, um den passenden Befehl zur angekoppelten Hardware zu liefern. In diesem Fall werden Nachrichten, die im Sendeteil des Daten-RAMs 308 (siehe Fig. 7) gespeichert sind, auf Leitungen 314 zum Daten-Eingangs/Ausgangsteil 396 gesendet, um auf Leitungen 410 zu einem Sende-Multiplexer/Latch 412 übertragen zu werden. Das Sende-Multiplexer/Latch 412 spricht auch auf Statuswörter an, die von einem Sende-Multiplexer-Pegel-1 414 auf Leitungen 416 gesendet werden. Der Sende-Multiplexer- Pegel-1 414 empfängt auf Leitungen 418 Statuswörter, welche aus verschiedenen Quellen innerhalb des Gate-Arrays zusammengesetzt sind.
  • Ein Letzter-Befehl-Teil 420 liefert auf Leitungen 422 ein letztes Befehlssignal zum Sende-Multiplexer-Pegel-1 414.
  • Der Sende-Multiplexer-Pegel-1 414 multiplexiert die Inhalte der Information des Betzter-Befehl-Teils oder des Statuswortes in das Sende-Latch. Dies erbringt die Datenpfade zum Unterstützen der Moduscodes "sende letzten Befehl" und "sende Status" des militärischen Standards.
  • Nachdem ein Statuswort und die anschließenden Datenwörter durch das Sende-Multiplexer/Latch 412 empfangen worden sind, werden sie auf Leitungen 424 an das Eingangs/Ausgangs-Schieberegister 386 abgegeben zur seriellen Übertragung auf einer Leitung 426 zu einem Codierer 428. Der Codierer liefert Manchester-Zweiphasen-Signaie zur Übertragung auf Leitungen 430 zu dem Frontende 344. Vom Frontende 344 werden die Manchester-codierten Signale auf Leitungen 322 zum Sende-Empfänger 320 in Fig. 7 zur Übertragung auf dem zugeordneten asynchronen Datenbus geliefert.
  • Eine detailliertere Darstellung der die verschiedenen Teile der gattungsgemäßen Schnittstelle in Fig. 7 verbindenden Signale, einschließlich der Signale, die mit der Host-CPU in Verbindung stehen, ist in den Fig. 9 und 10 gezeigt. Es sind auch einige zusätzliche Signale, die für das hier vorgestellte erfinderische Konzept nicht wesentlich sind, gezeigt und werden einigermaßen detailliert beschrieben.
  • Fig. 10 dient dazu, die Beziehung zwischen vielen der Funktionsblöcke, die in Fig. 8 vorgestellt sind, und einer tatsächlichen Hardware-Ausführung, wie in Fig. 9 und 10 gezeigt, zu zeigen. Das Gate-Array 300 von Fig. 9 ist in Fig. 10 in einer Weise dargestellt, die mehrere der Funktionsblöcke von Fig. 8 an externe Signale von Fig. 9 angeschlossen darstellt. Nicht gezeigt sind in Fig. 10 diejenigen Blöcke von Fig. 8, welche allein ausschließlich einer internen Signalverarbeitung im Gate-Array zugeordnet sind.
  • Im einzelnen sind in den Fig. 9 und 10 die Signale auf den Leitungen 322 der beiden Fig. 7 und 8, welche an die Sende- Empfänger 320 von Fig. 7 angeschlossen sind, an das Frontende 344 über Klemmen 13-23 des Gate-Arrays 300 angeschlossen gezeigt. Der Adreßausgangsteil 362 von Fig. 8 ist in Fig. 10 mit Adreßausgangsleitungen an Klemmen 60-72 des Gate-Arrays 300 verbunden gezeigt. Der Daten-Eingangs/Ausgangsteil 396 von Fig. 8 ist in Fig. 10 zum Liefern und Empfangen von Daten an Klemmen 33-50 des Gate-Arrays 300 gezeigt.
  • In Fig. 10 sind verschiedene andere in Fig. 8 dargestellte Steuerungs- und Datenteile gezeigt. Obwohl in Fig. 8 nicht mit irgendwelchen Geräten extern an das Gate-Array angeschlossen gezeigt, kann aus Fig. 10 ersehen werden, daß diese verschiedenen in Fig. 8 dargestellten anderen internen Funktionsblöcke tatsächlich sowohl mit externen Einrichtungen als auch intern miteinander verbunden sind. Somit ist ersichtlich, daß das Modusdecodierteil 342, das Befehls-Latch-Teil 358, das RT/M-Erkennungsteil 368 und die Steuerregisterteile 372 alle externe Signale auf Leitungen 305 beitragen, welche an den Abbildungs-PROM 304 in den Fig. 7 und 9 abgegeben werden.
  • Der Modusdecodierteil 342 liefert MC/SA 0-4 und MC/SA-Signale zu dem Abbildungs-PROM 304 zum Zwecke der Identifizierung des einzelnen Moduscodes oder der Unteradresse, auf die eingewirkt wird. Dies erlaubt diesem Abbildungs-PROM 304, jeden einzelnen Befehl richtig zu klassifizieren.
  • Das Steuerregister 372 liefert ein PROM SEL 1 Signal und bin PROM SEL 2 Signal zum Abbildungs-PROM-Teil 304. Die Funktion dieser Signale liegt darin, der Host-CPU zu erlauben, den Abbildunas-PROM neu zu konfigurieren, um in irgendeinem von vier verschiedenen Quadranten zu funktionieren.
  • Der RT/M-Erkennungsteil 368 liefert ein RT/M-Signal an einem Anschluß 81 des Gate-Arrays, der der Funktion zur Identifizierung des Abbildungs-PROM 304 dient, ob der gerade getätigte Befehl das Ergebnis einer Fernterminaiadreßerkennung oder einer Monitoradreßerkennung war.
  • Sowohl der Modusdecodierer 342 als auch der DMA-Teil 338 sprechen auf ein DO RCV-Signal an, das am Anschluß 80 des Gate-Arrays vom Abbildungs-PROM 304 in den Fig. und 9 empfangen wird. Wenn der Befehl angezeigt hat, daß DO R-CV aktiv ist, wird die Schnittstelle den Befehl (und gegebenenfalls Daten) in den RAM schreiben. Wenn DO RCV inaktiv ist, wird die Schnittstelle die Nachricht nicht in den RAM schreiben.
  • Das Gate-Array spricht auch am Anschluß 79 auf ein DO INT- Signal an, welches innerhalb des Gate-Arrav zum LADE/STOP- Teil 364 geliefert wird. DO INT erteilt dem Gate-Array die Anweisung, die Host-CPU zu unterbrechen, wenn die Nachricht verarbeitet und in das RAM geschrieben worden ist. Dies gestattet eine sofortige Bedienung von Daten hoher Priorität.
  • Das Gate-Array spricht am Anschluß 78 auf ein DO T-T-Signal an, das zum Steuerregisterteil 372 geliefert wird. Die Funktion dieses Signales liegt darin, Nachrichten zu identifizieren, die eine einzufügende Zeitmarke erfordern, wenn sie in den RAM geschrieben werden.
  • Das Gate-Array 300 spricht auch am Anschluß 77 auf ein ILL CMD-Signal aus dem Abbildungs-PROM an. Das ILL CMD-Signal identifiziert Befehle, die im System als unzulässig definiert worden sind. Die Schnittstelle wird durch Setzen des geeigneten Fehlers in ihr Statuswort antworten. Das stellt einen Busfehler dar.
  • Das Gate-Array 300 liefert am Anschluß 74 ein DMA REQ-Signal aus dem DMA-Teil 338. Dieses Signal ist zur Verwendung als Testsignal vorgesehen und hat im Betriebssystem keine Funktion.
  • Ein ILL OUT-Signal ist am Anschluß 73 des Gate-Arrays als ein Ausgangssignal vom Modusdecodierteil 342 vorgesehen. Dieses Signal ist provisorisch und kann entweder dazu verwendet werden, die Host-CPU zu kennzeichnen oder zu unterbrechen, wenn die Host-CPU wissen muß, ob ein Busfehler aufgetreten war.
  • Der CPU-Zugriffsteil 332 spricht an Gate-Array-Anschlüssen 55-58 auf vier Signale vom Adreßbus und letztlich von der Host-CPU an. Ein PA 1- und ein PA 2-Signal werden an Anschlüssen 55 und 56 geliefert. Diese stammen vom Host-CPU- Adreßbus und erlauben der Host-CPU, auf die verschiedenen Register innerhalb des Gate-Arrays zuzugreifen.
  • Die INT SEL 1- und INT SEL 2-Signale werden an Anschlüssen 57 und 58 geliefert.
  • Ein PARITÄTSTEST-Signal wird am Anschluß 54 aus dem Steuerregister als ein Gate-Array-Ausgangssignal an den Paritätsprüfungsteil 310 in den Fig. 7 und 9 abgegeben. Die Host-CPU kann dieses Signal in dem Steuerregister setzen. Die Host-CPU kann den gesamten RAM beschreiben und dann den gesamten RAM lesen und überprüfen, daß keine Paritätsfehler aufgetreten sind. Die Host-CPU kann dann das Paritätstestbit ändern, das in die Parität-Erzeugungs/Überprüfungs- Schaltung geht. Wenn die Host-CPU dann den RAM liest, sollte sie feststellen, daß Parität bei jedem Wort fehlt. Dieser Test würde normalerweise beim Einschalten des Stroms durchgeführt werden.
  • Der CPU-Zugriffsteil 332 liefert drei Ausgangssignale an Gate-Array-Anschlüssen 51-53. Diese enthalten ein RWR-Signal, das sowohl zum Paritätsprüfungsteil 310 als auch zum Daten-RAM-Teil 308 in den Fig. 7 und 9 geliefert wird. Dies ist das Schreibsignal für den Daten-RAM 308.
  • Ein RRD-Signal wird am Anschluß 52 zum Paritätsprüfungsteil 310 als auch zum Daten-RAM-Teil 308 geliefert. Dies ist das Lesesignal für den Daten-RAM.
  • Zusätzlich wird ein RCS-Signal am Anschluß 53 sowohl zum Paritätsprüfungsteil 310 als auch zum Daten-RAM 308 geliefest. Dies ist das Chip-Auswahlsignal für den Daten-RAM.
  • Das Gate-Array 300 spricht am Anschluß 32 auf ein RESET- Signal aus der Host-CPU an. Dieses Signal wird in vielen verschiedenen Teilen überall im Gate-Array verwendet, um die internen Gate-Array-Speicherelemente zu initialisieren. RESET wird normalerweise beim Einschalten des Stroms ausgegeben.
  • Wie aus Fig. 9 ersehen werden kann, wird das RESET-Signal vom Schreib-Gate-Teil 316, vom Gate-Array 300 und vom Paritätsprüfungsteil 310 verwendet. Der Schreib-Gate-Teil 316 verwendet den Reset zur Initialisierung beim Einschalten des Stroms. Der Paritätsprüfungsteil 310 nutzt ebenfalls das Reset-Signal zur Initialisierung beim Einschalten des Stroms.
  • Ein W/R-Signal der Host-CPU ist am Anschluß 31 des Gate-Arrays vorgesehen und wird im CPU-Zugriffsteil 332 dazu benutzt, zu identifizieren, ob die CPU einen Lese- oder einen Schreibzyklus durchführt.
  • Von der Host-CPU wird ein CS-Signal am Anschluß 30 des Gate-Arrays geliefert und sowohl zum DMA-Teil 338 als auch zum CPU-Zugriffsteil 332 geleitet. Das CS-Signal wird im DMA-Teil 338 verwendet, um DMA-Zyklen mit den Host-CPU-Zyklen zum Zwecke des Ausführens von für die CPU transparenten DMA-Zyklen zu synchronisieren.
  • Das CS-Signal wird im CPU-Zugriffsteil 332 benutzt, um anzuzeigen, daß die CPU gerade entweder auf das Gate-Array oder auf den Daten-RAM zugreift.
  • Das Gate-Array liefert am Anschluß 29 ein MUX BUS INT-Signal aus dem Lade/Stop-Teil 364. Dieses Signal unterbricht die Host-CPU bei der Vollendung der Nachrichtenverarbeitung, wenn die Nachricht als eine Nachricht hoher Priorität durch den Abbildungs-PROM, wie durch das DO INT-Signal angezeigt, abgebildet worden ist.
  • Ein negiertes 800-Mikrosekunden-Ausgangssignal wird am Anschluß 28 aus dem 800-Mikrosekundenzeitgeber 302 von Fig. 7 bereitgestellt. Das negierte 800-Mikrosekunden-Ausgangssignal gelangt in das Gate-Array, wo es durch die Host-CPU gelesen werden kann. Die Host-CPU kann den 800-Mikrosekundenzeitgeber 302 triggern und dann das negierte 800-Mikrosekunden-Ausgangssignal aufrufen, um zu überprüfen, ob der Zeitgeber in Funktion ist. Dies wird normalerweise beim Einschalten des Stroms getan.
  • Der 12 MHz-Takt liefert den Grundsynchrontakt für das Gate- Array. Eine beste Ausführungsart der gattungsgemäßen asynchronen Busfernterminalschnittstelle nach der vorliegenden Erfindung ist in Verbindung mit den Fig. 7 bis 10 beschrieben worden, und zwar realisiert unter Verwendung eines kombinierten RTI- und TC-Gate-Arrays, das mit einer Vielfalt von externen Einrichtungen, die die Schnittstellenfunktion unterstützen, gekoppelt ist. Die gattungsgemäße RTI sorgt für eine garantierte Kohärenz von Nachrichten, die zwischen einem asynchronen seriellen Datenbus und einer Host-CPU übertragen werden. Es versteht sich, daß das RTI- und TC- Gate-Array, wie in Fig. 1 gezeigt, mit separaten Gate-Arrays realisiert werden könnte. Ihre Funktionen könnten auch mit diskreten Bauelementen realisiert werden.
  • Obwohl die Erfindung im sehr speziellen Zusammenhang eines MIL-STD-1553-Busses beschrieben worden ist, versteht es sich, daß die Erfindung genausogut in irgendeinem asynchronen Buszusammenhang in die Praxis umgesetzt werden kann.

Claims (2)

1. Busschnittstellenschaltung zum kohärenten Übertragen von Digitalsignalen als Wörter aus einer bestimmten Anzahl von Bits, die als Nachrichten formatiert sind, wobei jede Nachricht eine bestimmte maximale Anzahl von Wörtern hat, zwischen einem Signalprozessor (14) und einem asynchronen seriellen Datenbus (16, 18), mit:
einer Fernterminalschnittstelle (RTI) -Einrichtung (28), die auf in serieller Form aus dem seriellen Datenbus (16) ankommende Digitalsignale anspricht, um die ankommenden seriellen Signale in paralleler Form zu übertragen, und auf in paralleler Form aus dem Signalprozessor (14) abgehende Signale anspricht, um die abgehenden parallelen Signale in serieller Form zu dem seriellen Datenbus (18) zu übertragen;
einer Umlaufempfangsspeichereinrichtung (30), die auf die in paralleler Form aus der RTI (28) übertragenen ankommenden seriellen Signale anspricht, um empfangene Nachrichten an aufeinanderfolgenden Speicheradressen sequentiell zu speichern, startend am Beginn des Umlaufspeichers (30) und dann fortfahrend, ungeachtet der Nachrichtenzahl, bis das Ende des Umlaufspeichers erreicht ist, und dann fortfahrend mit dem sequentiellen Speichern wieder am Beginn des Umlaufspeichers, wobei der Umlaufspeicher (30) dem Signalprozessor (14) Lesezugriff auf gespeicherte Wörter gewährt; einer Sendespeichereinrichtung (32), deren Speicheradressen in vorbestimmten Nachrichtenblöcken organisiert sind, wobei jeder Block eine ausgewählte Zahl von Wortspeicheradressen hat, die größer als die bestimmte maximale Zahl in einer Nachricht ist, wobei jeder Block zum Speichern von mehr als einer Nachricht dient, wobei jeder Block organisiert ist zur Benutzung als ein separater Umlaufsendespeicher, der auf die abgehenden parallelen Signale aus dem Signalprozessor anspricht, um Nachrichtenwörter an aufeinanderfolgenden Speicheradressen sequentiell zu speichern, startend am Beginn eines Umlaufsendespeicherblockes und dann fortfahrend, bis das Ende des Blockes erreicht ist, und dann fortfahrend mit dem sequentiellen Speichern wieder am Beginn des Blockes, wobei der Lesezugriff auf jeden der Blöcke für die RTI auf eine durch den Signalprozessor angegebene, vervollständigte Nachricht in dem Block beschränkt ist; und
einer Terminalcontroller(TC)-Einrichtung (38), welche auf die in paralleler Form aus der RTI (28) übertragenen ankommenden seriellen Signale anspricht, um dem Signalprozessor (14) Start- und Stopadressen zu liefern, welche in der Empfangsspeichereinrichtung (30) den Teil angeben, der Nachrichten enthält, die durch eine Gültigerklärungseinrichtung (34, 38) als vollständig und gültig anerkannt worden sind, aber noch nicht durch den Signalprozessor (14) gelesen worden sind, um den Signalprozessorlesezugriff auf eine einzelne Nachricht, die in dem Umlaufempfangsspeicher (30) gespeichert ist, algorithmisch zu verhindern, bis die einzelne Nachricht gänzlich und korrekt empfangen worden ist, wobei der TC (38) auf die abgehenden Signale in paralleler Form anspricht und wobei der TC (38) eine Semaphor- und Zeigereinrichtung bildet, um der RTI (28) Lesezugriff auf den Sendespeicher (32) zu gewähren, aber nur auf die von dem Signalprozessor angegebene Nachricht in einem Block, und zum algorithmischen Verhindern des Signalprozessorschreibzugriffes auf die letzte Nachricht in einem einzelnen Block in den Sendespeicher (32), wenn die RTI (28) Lesezugriff auf die letzte Nachricht hat, und um ansonsten auf das Speichern eines Wortes einer neuen Nachricht durch den Signalprozessor anzusprechen, zur Übertragung in den einzelnen Block und zum Verhindern des RTI-Lesezugriffes auf die neue Nachricht, bis das erste Wort zur Übertragung durch den Signalprozessor in dem einzelnen Block gespeichert ist.
2. Vorrichtung nach Anspruch 1, weiter mit:
einer Takteinrichtung (42) zum Liefern von zeitgerechten Taktimpulsen; und
einer Zeitetikettzählereinrichtung (36), die auf die aus dem asynchronen Bus ankommenden Signale und auf Befehlssignale aus dem Signalprozessor (14) anspricht, um die zeitgerechten Taktimpulse auf die Befehlssignale hin zu zählen und den laufenden Wert der Zählung des Zeitetikettzählers (36) zur Einfügung in eine Nachricht im Speicher zu liefern.
DE8585630225T 1984-12-13 1985-12-13 Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern. Expired - Fee Related DE3586487T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/681,166 US4623997A (en) 1984-12-13 1984-12-13 Coherent interface with wraparound receive and transmit memories

Publications (2)

Publication Number Publication Date
DE3586487D1 DE3586487D1 (de) 1992-09-17
DE3586487T2 true DE3586487T2 (de) 1993-03-18

Family

ID=24734121

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8585630225T Expired - Fee Related DE3586487T2 (de) 1984-12-13 1985-12-13 Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern.

Country Status (3)

Country Link
US (1) US4623997A (de)
EP (1) EP0185609B1 (de)
DE (1) DE3586487T2 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4715030A (en) * 1986-08-04 1987-12-22 General Electric Company Local area network bridge
US5012404A (en) * 1988-10-28 1991-04-30 United Technologies Corporation Integrated circuit remote terminal stores interface for communication between CPU and serial bus
US5023891A (en) * 1989-07-25 1991-06-11 Sf2 Corporation Method and circuit for decoding a Manchester code signal
EP0412269A3 (en) * 1989-08-11 1992-02-26 International Business Machines Corporation Channel and extender unit operable with byte mode or non-byte mode control units
US5247616A (en) * 1989-10-23 1993-09-21 International Business Machines Corporation Computer system having different communications facilities and data transfer processes between different computers
US5151895A (en) * 1990-06-29 1992-09-29 Digital Equipment Corporation Terminal server architecture
FR2665810B1 (fr) * 1990-08-09 1993-06-18 Bull Sa Controleur de communication entre un ordinateur et une pluralite de terminaux de type rnis.
US5260576A (en) * 1990-10-29 1993-11-09 National Recovery Technologies, Inc. Method and apparatus for the separation of materials using penetrating electromagnetic radiation
USRE36537E (en) * 1990-10-29 2000-02-01 National Recovery Technologies, Inc. Method and apparatus for sorting materials using electromagnetic sensing
US5623621A (en) * 1990-11-02 1997-04-22 Analog Devices, Inc. Apparatus for generating target addresses within a circular buffer including a register for storing position and size of the circular buffer
DE69118392T2 (de) * 1990-11-02 1996-08-14 Analog Devices Inc Adressengenerator für einen ringpuffer
US5566301A (en) * 1992-02-11 1996-10-15 Futuretel, Inc. ISDN audiovisual teleservices interface subsystem
WO1993022857A1 (en) * 1992-05-04 1993-11-11 Ford Motor Company Limited Slave bus controller circuit for class a motor vehicle data communications
US5617544A (en) * 1994-12-23 1997-04-01 United Technologies Corporation Interface having receive and transmit message label memories for providing communication between a host computer and a bus
US5870631A (en) * 1995-12-15 1999-02-09 International Business Machines Corporation System for operating system software providing input buffer for receiving variable-length bit stream with a header containing synchronization data recognized by universal serial controller
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5881063A (en) * 1996-04-08 1999-03-09 Ford Motor Company Half-message based multiplex communication interface circuit which uses a main microcontroller to detect a match in addresses and generate a qualified signal
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
EP1329816B1 (de) 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
FR2770952B1 (fr) 1997-11-12 2000-01-21 Adl Systeme Sa Dispositif de tele-ecriture
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
JP2003505753A (ja) 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
US6802066B1 (en) * 1999-07-22 2004-10-05 Unisys Corporation Method and system to share circular buffer without using locking mechanism
US6694417B1 (en) 2000-04-10 2004-02-17 International Business Machines Corporation Write pipeline and method of data transfer that sequentially accumulate a plurality of data granules for transfer in association with a single address
EP2226732A3 (de) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cachehierarchie für einen Multicore-Prozessor
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US20040260888A1 (en) * 2001-11-13 2004-12-23 Jan Hoogerbrugge Efficient fifo communication using semaphores
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
WO2005010632A2 (en) * 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
WO2004038599A1 (de) 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Rekonfigurierbare sequenzerstruktur
DE602004029664D1 (de) * 2003-04-16 2010-12-02 Nxp Bv Datenverarbeitung wobei gleichzeitig ausgeführte prozesse durch einen fifo-puffer kommunizieren
US7304586B2 (en) 2004-10-20 2007-12-04 Electro Industries / Gauge Tech On-line web accessed energy meter
US9080894B2 (en) * 2004-10-20 2015-07-14 Electro Industries/Gauge Tech Intelligent electronic device for receiving and sending data at high speeds over a network
US7747733B2 (en) 2004-10-25 2010-06-29 Electro Industries/Gauge Tech Power meter having multiple ethernet ports
US10845399B2 (en) 2007-04-03 2020-11-24 Electro Industries/Gaugetech System and method for performing data transfers in an intelligent electronic device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2714106C3 (de) * 1977-03-30 1982-01-14 Telefonbau Und Normalzeit Gmbh, 6000 Frankfurt Verfahren zum Zwischenspeichern von Informationen in einem FIFO-Speicher
US4259719A (en) * 1979-06-13 1981-03-31 Ford Motor Company Binary input processing in a computer using a stack

Also Published As

Publication number Publication date
US4623997A (en) 1986-11-18
DE3586487D1 (de) 1992-09-17
EP0185609B1 (de) 1992-08-12
EP0185609A2 (de) 1986-06-25
EP0185609A3 (en) 1989-01-18

Similar Documents

Publication Publication Date Title
DE3586487T2 (de) Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern.
DE3586486T2 (de) Interface-vorrichtung zwischen mindestens einem kanal und mindestens einem bus.
DE69505871T2 (de) Taktfehlererkennungsschaltung
DE3855630T2 (de) Hybrider Übertragungsverbindungsadapter mit Ein-/Ausgabe- und Datenübertragungstechnologie
DE69323290T2 (de) Netzwerkanpassungseinrichtung mit Hauptrechnerindikationoptimierung
DE69329684T2 (de) Vorrichtung mit hauptrechnerindikationssignalen
DE69326429T2 (de) Netzwerkschnittstelle mit unabhängiger pufferverwaltung
DE69329904T2 (de) Echtzeitverarbeitungssystem
DE69229473T2 (de) Verfahren und vorrichtung zum puffern von daten in nachrichtennetzwerkstationen
DE3382592T2 (de) Zweifachbusstruktur fuer die rechnerverbindung.
EP1846827B1 (de) Verfahren zum übertragen von daten in botschaften über eine kommunikationsverbindung eines kommunikationssystems, sowie kommunikationsbaustein, teilnehmer eines kommunikationssystems und kommunikationssystem zur realisierung dieses verfahrens
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE69334165T2 (de) Netzwerkanpassungseinrichtung mit hauptrechnerunterbrechung und indikationsverwaltung
DE102012209016B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE69413740T2 (de) Arbitrierungsverfahren zur Datenflusssteuerung durch ein E/A-Steuergerät
DE3586491T2 (de) Kohaerentes interface mit zurueckgeschleiftem empfangsspeicher.
DE3855599T2 (de) System, das die Auswechselbarkeit der peripheren Einheiten ermöglicht
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE69131840T2 (de) Verfahren zur Vervielfältigung eines geteilten Speichers
DE3650092T2 (de) E/a-steuerung mit zwei funktionen.
DE69613056T2 (de) Schnittstelleneinrichtung zwischen einem Rechner redundanter Architektur und einem Kommunikationsmittel
DE69230656T2 (de) Universelle Koppeleinrichtung zwischen einem Rechnerbus und einer Steuereinheit einer Gruppe von Periphergeräten
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE3851676T2 (de) Datenpaketierungsverfahren.
DE69227996T2 (de) Vorrichtung und verfahren zur vermittlung von datenblöcken

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee