DE3586486T2 - Interface-vorrichtung zwischen mindestens einem kanal und mindestens einem bus. - Google Patents
Interface-vorrichtung zwischen mindestens einem kanal und mindestens einem bus.Info
- Publication number
- DE3586486T2 DE3586486T2 DE8585630226T DE3586486T DE3586486T2 DE 3586486 T2 DE3586486 T2 DE 3586486T2 DE 8585630226 T DE8585630226 T DE 8585630226T DE 3586486 T DE3586486 T DE 3586486T DE 3586486 T2 DE3586486 T2 DE 3586486T2
- Authority
- DE
- Germany
- Prior art keywords
- bus
- signals
- channel
- message
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2005—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2007—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
Description
- Die hierin beschriebene Erfindung kann einige der 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 KOHÄRENTES INTER- FACE MIT ZURÜCKGESCHLEIFTEM EMPFANGSSPEICHER, EP-A-O Y88 990, bzw. KOHÄRENTES INTERFACE MIT ZURÜCKGESCHLEIFTEN ENP- FANGS- UND SENDESPEICHERN, EP-A-0 185 609, eingereicht wurden.
- Die Erfindung bezieht sich auf eine Mehrkanal- und Mehrbusschnittstelle, die die Kohärenz von Datenübertragungen zwischen mindestens einem asynchronen Bus und mindestens einem daran angeschlossenen Kanal 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.
- Die beiden oben beschriebenen ersten und zweiten Stufen von Kohärenzproblemen sind in den im gemeinschaftlichen Besitz befindlichen, ebenfalls anhängigen Anmeldungen mit den Titeln KOHÄRENTES INTERFACE MIT ZURÜCKGESCHLEIFTEN EMPFANGS- SPEICHER und KOHÄRENTES INTERFACE MIT ZURÜCKGESCHLEIFTEN EMPFANGS- UND SENDESPEICHERN angesprochen worden.
- Eine dritte Stufe von Kohärenzproblemen existiert im Stand der Technik. Das ist das Problem der wirksamen Übertragung von Daten zwischen einem oder mehreren Simplexbussen wie dem MIL-STD-1553 und einem oder mehreren Untersystemen, typischerweise einem Satz von redundaten synchronen Untersystemen. Im allgemeinen kann ein Simplexbus zu einer gegebenen Zeit nur mit einem Kanal kommunizieren. Bei MIL- STD-1553 wird jedem Untersystem eine einzige Terminaladresse auf dem Bus zur Verfügung gestellt. Die elektrischen und Betriebskennwerte dieser Schnittstelle lassen keine variable Anzahl von redundanten Kanälen zu, um Daten, die dieselbe RTI-Adresse verwenden, zu empfangen und zum und vom Bus zu senden. Deswegen kann der Bus in einem redundanten Untersystem mit einer RTI mit einer RTI-Adresse an einen und nur einen redundanten Kanal zu beliebiger Zeit angeschlossen werden, und die Daten müssen intern verteilt und durch die anderen redundanten Kanäle kohärent verwendet werden. Dies erfordert, daß der die Busnachrichten empfangende Kanal die Daten an alle redundanten Kanäle in einer wirksamen Weise über Interkanalabschnitte senden muß. Diese Abschnitte werden im allgemeinen auch für andere Daten verwendet, und an sich sind die Bandbreiten dieser Abschnitte gewöhnlich begrenzt.
- Somit sind billige und einfache Mittel wünschenswert, um Datenkohärenz und zeitliche Übereinstimmung für redundante synchrone Untersysteme zu sichern.
- Ziel der vorliegenden Erfindung ist es, eine Mehrkanal- Schnittstelle für ein redundantes System zu schaffen, die Datenkohärenz und zeitliche Übereinstimmung mit minimaler Hardware sicherstellt und die Softwarenachteile des Host- Untersystems minimiert, die mit der Verteilung der Daten von einem oder mehreren Bussen auf redundante Kanäle verbunden sind.
- Diese Ziel wird durch die Schnittstellenvorrichtung erreicht, die im Anspruch 1 beschrieben ist. Ausbildungen davon sind in den abhängigen Ansprüchen beschrieben.
- Gemäß der vorliegenden Erfindung werden Nachrichtenblöcke, die von eine m einzelnen Bus durch einen einzelnen Kanal empfangen werden und die in mit diesem Kanal verbundenen Speicherplätzen gespeichert worden sind, in einem paketierten Format, das eine daran angefügte Datenendeanweisung hat, über Interkanalabschnitte zu redundanten Kanälen oder Untersystem synchron übertragen.
- In weiterer Übereinstimmung mit der vorliegenden Erfindung wird jeder Nachrichtenblock vor dem Paketieren für eine Übertragung über die Interkanalabschnitte mit einem Zeitetikettwort zeitetiketiert.
- In einer noch weiteren Übereinstimmung mit der vorliegenden Erfindung ist jeder Kanal zur Kommunikation mit einem oder mehreren asynchronen Bussen fähig, und jeder Kanal kann gegemäß einem detektierten Fehler von beliebigen anderen Bussen gelöst oder abgetrennt werden.
- In einer noch weiteren Übereinstimmung mit der vorliegenden Erfindung wird Kohärenz der Empfangsdaten im Empfangskanal sichergestellt, indem jeder einzelne über einen asynchronen Bus empfangene Block auf einer Block-zu-Block-Basis in einem Umlaufspeicher verwaltet und aufgenommen wird. Diese Technik vermeidet viele der Unzulässichkeiten, die mit im Stand der Technik verwendeten Pufferungsarchitekturen und auch FIFO-Architekturen verbunden sind, die ähnliche Zugriffsunzulänglichkeiten haben. Zeitliche Übereinstimmung von empfangenen Nachrichtenblöcken wird durch Zeitetikettieren der empfangenen Blöcke sichergestellt. Kohärenz und Übereinstimmung von empfangenen Nachrichtenblöcken, die zwischen den redundanten Kanälen synchron übertragen werden, wird dadurch sichergestellt. Natürlich könnte die Aufgabe des Verwaltens und Aufnehmens gänzlich durch Softwaretechniken bewältigt werden, und der Umlaufspeicher würde dann unnötig sein.
- Datenkohärenz und zeitliche Übereinstimmung der vom asynchronen Bus ankommenden Nachrichten wird im Empfangskanal durch Verwendung eines Pufferspeichers zum Speichern empfangener Nachrichtenblöcke erreicht. Der Puffer weist eine viel größere Speicherkapazität auf, als das, was vorstellbar durch die Host-CPU während einer Folge von empfangenen Nachrichtenblöcken effektiv benutzt werden könnte. Die ankommenden Nachrichtenwörter werden aufeinanderfolgend in der nächsten freien Speicherstelle in einem "Stapel" von Speicherstellen, die als ein "Kreispuffer" organisiert sind, gespeichert. Wenn nachfolgende Nachrichtenwörter empfangen werden, werden sie ungeachtet der Unteradresse, ohne Platz zu verschwenden, seriell eingeschrieben oder gestapelt. Jedesmal, wenn ein Nachrichtenblock komplett in den Stapel eingeschrieben worden ist, wird ein Stopzeiger 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 dem Stopzeiger algorithmisch nicht unterrichtet. Die RTI empfängt 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 wird die RTI wieder an den Anfang des Speichers "zurücklaufen", wobei der allererste Nachrichtenblock, der in den Stapel geschrieben wurde, nicht berücksichtigt 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-gesteuerten 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.
- Kohärenz der Sendedaten wird innerhalb des Übertragungskanales dadurch sichergestellt, daß ein Pufferspeicher zum Speichern von Nachrichtenblöcken zur Übertragung in vorgegebenen Nachrichtenblockbereichen verwendet wird. Der Host- CPU wird ermöglicht, das RTI-Statusregister zu lesen, um festzustellen, ob die RTI mit Übertragen beschäftigt ist, und, falls ja, um die Unteradresse des Sendeadreßblockes 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 RTI 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 zwanzig 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.
- Als andere Möglichkeit ist jeder Nachrichtenblock in einer Umlaufart organisiert, mit der Ausnahme, daß jeder Block eine kleinere Version des Empfangspufferspeichers ist.
- Die vorliegende Erfindung kann dazu benutzt werden, wirksame und kohärente Kommunikation zwischen einem oder mehreren asynchronen Bussen und einer beliebigen Anzahl von Kanälen zur erlauben, wenn es dem Bus nur erlaubt ist, mit einem Kanal gleichzeitig zu kommunizieren.
- Diese und andere Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden angesichts der detaillierten Beschreibung ihrer besten Ausführungsform deutlicher werden, wie sie in den beigefügten Zeichnungen dargestellt ist.
- Fig. 1 ist ein vereinfachtes Funktionsblockschaltbild der gattungsgemäßen Fernterminalschnittstelle;
- 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. 5 ist eine Flußdiagrammdarstellung einer Senderoutine;
- 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.
- Fig. 11 ist eine Darstellung der Schnittstelle zwischen zwei redundanten Mux-Bussen und einem mehrkanaligen, redundanten System;
- Fig. 12 ist eine Darstellung eines Zeitrahmens, während welchem Daten durch einen lokalen RAM der CPU beschafft und in Blöcken zum Abschnitt-RAM gesendet werden;
- Fig. 13 zeigt die Organisation eines Nachrichtenblockes sowohl im lokalen RAM als auch im Abschnitt-RAM;
- Fig. 14 ist eine Flußdiagrammdarstellung einer Prozedur zum Bewegen von empfangenen Nachrichten vom Empfangs-RAM zum lokalen RAM,
- Fig. 15 ist eine Darstellung eines Übertragers zum Verbinden eines 1553-Busses mit einem Untersystem;
- Fig. 16 ist eine Ausgangsfächerungsdarstellung der in Fig. 11 dargestellten Übertrager;
- Fig. 17 ist ein detailliertes schematisches Blockschaltbild einer Ausführung der Bus-Auswahl- und Abtrenn-Relais von Fig. 11;
- Fig. 18 ist ein Gesamtblockschaltbild der Schnittstelle zwischen den Übertragern, Relais, Sende-Empfängern und dem 800-Mikrosekunden-Zeitgeber in einem Kanal von Fig. 11;
- Fig. 19 ist ein Schaltbild einer Ausführung eines 800-Mikrosekunden-Zeitgebers; und
- Fig. 20 ist ein Schaltbild der Zusammenschaltung von zwei typischen Sende-Empfängern.
- In Fig. 1, auf die Bezug benommen wird, ist ein Funktionsblockschaltbild einer gattungsgemäßen MIL-STD 1553 Fernterminalschnittstelle 10 (RTI) gezeigt. Die gattungsgemäß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;
- - 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 folgt andererseits dem normalen 1553-Blockformat mit 32 Blöcken zu 32 Wörtern, die sich jeweils an festgelegten Stellen zum Übertragen durch das RTI-Gate-Array 28 befinden.
- 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 freilaufender 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 Blöcke zeitzumarkieren.
- 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-Nachrichtenblock des Blockes zu bestimmen. Wenn ein gültiger Interrupt-Nachrichtblock 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 Jen 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 der Datentenempfangs-RAM 30 an. (Siehe Schritt 100 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 Einlaufspeicher gehörende Zeiger, die auf bestimmte Datenstücke zeigen, was unten detaillierter beschrieben wird. (Siehe Schritte 110 und 112 in Fig. 3) denn 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 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 IK-Speichers sind die Adressen 50 in einer Spalte neben dem Umlaufdatenempfangsspeicher 30 gezeigt. Jede Speicheradresse ist im Digitalformat bezeichnet, d. h. 0 bis 1023. Der Speicher 30 hat viel mehr Speicheradreßstellen zum Speichern von Wörtern, als möglicherweise nutzvoll zu irgendeiner Zeit benötigt werden könnten, 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 verrü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 fit 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- LPU 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 IK-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 IK-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, Nachrichtenköhä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.
- Die Übertragung von in der Host-CPU 14 abgelegten Blöcken zum aktiven Bus 16 oder 18 beinhaltet die folgenden Schritte (eine gleichwertige Flußdiagrammbeschreibung ist in Fig. 5 gezeigt):
- a.) Das TC-Gate-Array 38 vermittelt RTI- und CPU-Zugriff auf den Sendedaten-RAM 32 (siehe Schritt 201 in Fig. 5);
- b.) das TC vermittelt und gewährt sofort RAM-Zugriff auf das RTI-Lesen (siehe Schritt 201b in Fig. 5), außer wenn die Host-CPU 14 gerade in den genau gleichen Block schreibt, der vom RTI-Gate-Array benötigt wird (siehe Schritt 202);
- c.) wenn die CPU damit beginnt, in den gleichen Block zu schreiben, bleibt sie wegen ihrer höheren Geschwindigkeit immer vor den Leseanforderungen des RTI-Gate-Arrays (siehe Schritte 204-212 in Fig. 5);
- d.) die CPU schreibt ein neues Wort schneller als die RTI lesen kann, bis der komplette Block in den Sende-RAM geschrieben worden ist (Siehe Schritte 212-220 in Fig. 5).
- Die Initialisierung des 1553-RTI-Gate-Arrays 28 erfolgt unter der Steuerung der Host-CPU 14 und beinhaltet eine oder mehrere der folgenden individuellen Aufgaben:
- - Initialisierung des RTI-Gate-Array-Status;
- - Abschaltung oder Initialisierung von Sendern und/oder Empfängern;
- - Initialisierung des TC-Gate-Array-Status;
- - Initialisierung des Abbildungs-RAMs.
- Ein Selbsttest des RTI-Gate-Arrays 28 wird, wenn vom Buscontroller angewiesen, unter Kontrolle der CPU verrichtet. Diese Aufgabe basiert auf der internen Umlauf-BIT-(builtin-test)-Fähigkeit des RTI-Gate-Arrays und dem Testen der Betriebssicherheitsfähigkeit der Schnittstelle. Der letztgenannte Test umfaßt ein Ausprobieren der Senderhardware im TC-Gate-Array.
- Fig. 6 stellt die Organisation des IK-Sendedaten-RAMs 32 von Fig. 1 dar. Wie in Fig. 6 gezeigt ist, gibt es 30 Nachrichtenblöcke mit jeweils bis zu 32 Wörtern. Der Raum für die Nachrichtenblöcke ist dauernd reserviert. Anders ausgedrückt, die Speicheradreßstellen 1056 bis 1087 werden immer eine einzelne Nachricht enthalten, die als Nachrichtenblock 1 in Fig. 6 bezeichnet ist. In ähnlicher Weise enthält der verbleibende Sendespeicherraum 29 feste Nachrichtenblockräume, die jeweils bis zu 32 Wörter enthalten. Jedes Wort ist 16 Bit breit. Wie oben beschrieben, wird Kohärenz durch Neuplanen von Blockschreibaktionen der Host-CPU, wenn ein Nachrichtenblock von der RTI gelesen wird und kurzes Abriegeln der RTI vom Sende-RAM erreicht, wenn die Host-CPU in den zuzugreifenden Block schreibt, bis die Host zumindest ein Wort in den Block schreibt, d. h., die RTI wird kurz warten gelassen, bis die Host-CPU das Schreiben eines Wortes in den Nachrichtenblock beendet, und erhält dann Lesezugriff.
- Fig. 7 ist eine Darstellung eines Gate-Arrays 300, in das sowohl die RTI- als auch die TC-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 eingefü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 aecodiert 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. Die 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, Wortzählwerte, 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 gemäß 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 Form 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, daß 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 Lade- Zeiger 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 seit 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. Wenn 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 394) geladen. Oder der Zeitetikettzähler wird gelöscht, wenn die Modusdecodierlogik 342 einen "Synchronisier" Moduscode von 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 Letzter-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-Signale 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-{2 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 ein PROM SEL 2 Signal zum Abbildungs-PROM-Teil 304. Die Funktion dieser Signale liegt darin, der Host-CPU zu erlauben, den Abbildungs-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-PROMs 304 dient, ob der gerade getätigte Befehl das Ergebnis einer Fernterminaladreß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. 7 und 9 empfangen wird. Wenn der Befehl angezeigt hat, daß DO RdV 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-Array 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 geliefert. Dies ist das Chip-Auswahlsignal für den Daten-RAM.
- Das Gate Array 300 speichert 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.
- Fig. 11 ist ein schematisches Blockschaltbild der Schnittstelle zwischen zwei 300, 302 zweifach redundanten MIL-STD- 1553 Mux Bussen 304a, 304b, 306a, 306b und vier redundanten Kanälen 308, 310, 312 und 314 eines Digitalen Flug-Steuerungs-Computer (DFLCC). Eine Host-CPU 316, 318, 320 und 322 in jedem Kanal kann entweder mit einem der Busse 300, 302, der ein Flugelektronikbus sein kann und nachfolgend mit Mux Bus A bezeichnet wird, oder dem Bus 302 verbunden sein, der ein Anzeige-Bus sein und nachfolgend mit Mux Bus B bezeichnet wird. Alternativ kann die Schnittstelle für einen gegebenen Kanal durch die Host-CPU abgeschaltet werden. In der in Fig. 11 dargestellten Anordnung ist jeder Mux aus nur an einen Kanal angeschlossen, um sicherzustellen, daß die elektrischen Anforderungen der MIL-STD-1553 erfüllt werden. In einem vorgegebenen Kanal empfangene Daten werden an die anderen Kanäle über separate Synchronabschnitte 324 übertragen, wodurch die Möglichkeit für gewöhnliche Modusfehler eliminiert wird.
- Die Fähigkeit der Host-CPU, in einem Kanal die Schnittstellenkonfiguration unabhängig auszuwählen, ermöglicht es der DFLCC-RT-Schnittstelle, für die ersten beiden Kanalausfälle volle Betriebsfähigkeit und im Falle eines dritten Kanalausfalls die Möglichkeit einer einzelnen, wählbaren Mux- Bus-Schnittstelle bereitzustellen. Die in Fig. 11 gezeigte Hardware zur Kanalabtrennung sorgt für einen ausfallgeschützten Betrieb der Mux-Busse ungeachtet der DFLCC-Ausfälle.
- Die Aufgaben der Empfangsdatenverwaltung der Host-CPU sind in Fig. 12a in sequentieller Form dargestellt. Der Ablauf besteht aus der Akquisition und Plazierung von 1553-Nachrichten in den (nicht gezeigten) lokalen RAM der Host-CPU, von dem aus sie unter Steuerung des Eingangs-/Ausgangs-Controllers (IOC) zu den anderen Kanälen über Interkanalabschnitte 324 von Fig. II, wie in Fig. 12(b) gezeigt, gesendet werden.
- In Fig. 12(a) ist die Zeitsteuerung der Datenakquisition durch den lokalen RAM auf einer Zeitgeraden 400 während eines sich wiederholenden Zeitrahmens 402 gezeigt. Der Zeitrahmen 402 ist lediglich ein einziger Rahmen einer Aufeinanderfolge von ähnlichen Zeitrahmen, von denen jedoch jeder durch Synchronisierungsimpulse 404a, 404b, markiert sein kann. Ein 1553-Nachrichtenblock wird während einer Zeitspanne t=t&sub1; bis t=t&sub2; in den lokalen RAM gefüllt. Somit werden die 1553-Blöcke im lokalen RAM durch die Host-CPU zu bestimmten geplanten Zeiten gefüllt. Zusätzliche Blöcke können z. B. während eines Intervalles 408 zwischen Zeiten t=t&sub5; bis t=t&sub6; gefüllt werden. Die aufgefüllten 1553-Blöcke werden dann zu allen Kanälen über die Interkanalabschnitte übertragen, wobei zu bestimmten Zeiten, die durch den Eingangs-/Ausgangs-Controller (IOC), wie in Fig. 12(b) gezeigt, festgelegt werden, begonnen wird. In einer besten Ausführungsart sind die Beginnzeiten dieser Übertragungen vollständig definierbar, und eine Modifizierung erfordert nur eine PROM-Änderung. In ähnlicher Weise sind die Größe und Anzahl der Blöcke softwaremäßig festgelegt und auch leicht änderbar. In Fig. 12(b) zeigt eine Zeitgerade 409 für Datenübertragung während des gleichen wie auf der Zeitgeraden 400 gezeigten Zeitrahmens Datenübertragung vom lokalen RAM 450 zum Abschnitt-RAM 530. Ein 1553-Block 410 wird von einer Zeit t=t&sub3; bis t=t&sub4; übertragen. Ebenso können zusätzliche Daten während eines Intervalles 412 von t=t&sub7; bis t=t&sub8; übertragen werden.
- Die Organisation des lokalen RAM 450 und Abschnitt-RAM 530 in jedem Kanal ist in Fig. 13 schematisch gezeigt. Wie Fig. 13 zeigt, werden die 1553-Blöcke im lokalen RAM 450, wie auf einer Linie 452 gezeigt, durch die Host-CPU zu bestimmten geplanten Zeiten gefüllt. Diese 1553-Blöcke werden dann wiederum, wie durch die Linie 454 gezeigt, zu allen Kanälen über die Interkanalabschnitte übertragen, wobei zu bestimmten, durch den IOC (nicht gezeigt) festgelegten Zeiten begonnen wird.
- Die Prozedur zum Füllen eines 1553-Blockes in dem lokalen RAM der Host-CPU ist in Fig. 14 gezeigt. Sie umfaßt Füllen des zugeteilten 1553-Blockes in dem lokalen RAM mit möglichst vielen vollständigen 1553-Empfangs-Nachrichtenblöcken einschließlich zugeordneten Kennungen und Zeitetiketts. Nach Eintritt in die dargestellte Unterroutine in einem Schritt 500 werden die Datenblockzeiger zuerst in einem Schritt 502 geprüft. Dann wird in einem Schritt 504 eine Bestimmung vorgenommen, ob ein neuer Datenblock angezeigt wird. Falls nein, wird in Schritt 506 ein Ausgang vorgenommen. Falls ja, wird die Kopfkennzeichnung des Datenblockes in einem Schritt 508 gelesen, und eine Bestimmung wird in einem Schritt 510 vorgenommen, ob der Block in den lokalen RAM passen wird. Falls nicht, wird eine EOD-Kennzeichnung am Ende des Blockes im lokalen RAM der CPU in einem Schritt 512 gespeichert und ein Ausgang im Schritt 506 vorgenommen. Wenn der Block in den lokalen RAM passen wird, wird der Nachrichtenblock in einem Schritt 514 zum lokalen RAM bewegt und der Block in einem Schritt 516 zeitetikettiert. Ein Schritt 518 bestimmt, ob irgendwelche weiteren Blöcke verfügbar sind. Falls ja, werden die Schritte 508-518 nochmals wiederholt. Falls nicht, wird eine EOD-Kennzeichnung am Ende der Daten im Schritt 512 gespeichert und im Schritt 506 ein Ausgang vorgenommen.
- Der gesamte 1553-Block kann dann durch den IOC zu allen Kanälen übertragen werden und wird im Abschnitt-RAM 530 abgelegt. Blöcke, die beispielsweise vom lokalen RAM 450 im Kanal Nr.1 308 von Fig. 11 stammen, werden im Abschnitt-RAM der anderen Kanäle, wie in Fig. 13 gezeigt, abgelegt werden. (Die 1553 relevanten Inhalte des Abschnitt-RAMs werden für alle Kanäle verfügbar gemacht). Die 1553 relevanten Daten sind bei Verwendung dieser Technik synchron an allen Kanälen im Abschnitt-RAM verfügbar.
- Das Verfahren der Verwaltung von empfangenen Daten ist im Falle von unterbrechenden Nachrichtenblöcken von den erforderlichen Aktionen abhängig, die durch die Host-CPU durchzuführen sind. Somit kann der unterbrechende Nachrichtenblock durch alle Kanäle angefordert werden oder nicht. Das Zugriffsverfahren für unterbrechende Nachrichten ist im Grunde das gleiche wie für nichtunterbrechende Blöcke (Fig. 13), mit Ausnahme der Verwendung eines unterschiedlichen E/A-Ports, der durch das TC-Gate-Array bereitgestellt wird.
- Es versteht sich, daß die Übertragung von Daten vom lokalen RAM der Host-CPU zum Abschnitt-RAM nicht notwendigerweise unter der Steuerung eines IOC steht. Ebenso wenig steht die Übertragung der Daten von der 1553-RTI zum lokalen RAM der Host-CPU notwendigerweise unter der Steuerung der Host-CPU. Jede dieser Funktionen könnte auf andere Art gesteuert werden. Z.B. könnte der IOC Übertragungen von einer 1553-RTI des Host zu dessen lokalem RAM steuern. Ebenso könnte eine Host-CPU Übertragungen aus ihrem lokalen RAM zu sich selbst und dem Abschnitt-RAM steuern.
- Zurück zu Fig. 11, jeder der Busse 304a, 304b, 306a, 3O6b speist einen zugehörigen Übertrager 304c, 304d, 306c, 306d. Diese können Übertrager mit Mittelanzapfung sein, wie in Fig. 15 detaillierter gezeigt. Der in Fig. 15 gezeigte Übertrager ist ein Aufwärtstransformator, der ein Aufwärtsverhältnis von 1 zu 2 aufweist und ein DDC mit der Teilenummer BUS-25679 5E5630/04-0001 sein kann. Wie in Fig. 15 gezeigt, ist der 1553-Bus an den Anschlüssen 7 und 5 befestigt, und die DFLCCs 308, 310, 312, 314 sind an den Anschlüssen l, 2 und 3 befestigt.
- In Fig. 16, auf die nun Bezug genommen wird, sind die Übertrager 304c, 304d, 306c, 306d von Fig. 11 detaillierter gezeigt. Jeder Übertrager ist an jeden der anderen Kanäle angeschlossen, wie es durch die Übertragerausgangsfächerung in Fig. 16 gezeigt ist. Die Übertrager können auf einer Übertragerkarte 530, wie gezeigt, montiert sein.
- In Fig. 17, auf die nun Bezug genommen wird, ist eine bestimmte Ausführung eines der Relaissätze 532, 534, 536, 538 von Fig. 11 gezeigt. Obwohl jedes Relais in Fig. 11 ein einpoliger Umschalter mit einer Aus-Position ist, verwendet die in Fig. 17 gezeigte Ausführung eine etwas andere Anordnung, um die gleiche Funktion zu erfüllen. Ein Relais 550 weist ein Paar einpoliger Umschalter mit Ruhe-Arbeitskontakten auf. Jeder dieser Schalter ist sowohl an einen Flugelektronik- als auch einen Anzeige-Mux-Bus, wie gezeigt, angeschlossen. Das Relais 550 ist an Bus 304a und 306a von Fig. 11 angeschlossen, wogegen das Relais 552 an Bus 304b und 306b angeschlossen ist. Die Schalter werden, abhängig vom Erregungspegel der Spulen in den Relais, entweder den Flugelektronik- oder den Anzeige-Bus für den Kanal auswählen. Ein zweiter Satz von Relais 554, 556 ist in der Schaltung angeschlossen, um die Aus- (N/C) -Funktion, die Z.B. im Relais 532 von Fig. 11 gezeigt ist, auszuführen. Abhängig vom Erregungspegel der Spulen innerhalb jedes der Relais, kann der ausgewählte Mux-Bus vom Kanal abgetrennt werden. Eine Steuerschaltung ist unterhalb der Relais in Fig. 17 gezeigt, die dazu vorgesehen ist, die Auswahl entweder des Flugelektronik- oder des Anzeige-Busses zu steuern und ein Abtrennen eines Mux-Busses vom einem Kanal zu erlauben. Die niederwertigsten Bits auf dem Datenbus (negiertes D14-D15) werden zur Ausführung dieser Funktion verwendet. Das niederwertigste Bit (negiertes D15) auf einer Leitung 560 steuert die Relais 554, 556, um den ausgewählten Mux-Bus vom Kanal abzutrennen. Das nächstniederwertigste Bit (negiertes D14) wird auf einer Leitung 562 geliefert, um die Auswahl entweder des Flugelektronik-Mux- Busses oder des Anzeige-Mux-Busses zu steuern. Diese beiden Signale werden unter der CPU-Steuerung des besonderen Kanals geliefert.
- Fig. 18, auf die nun Bezug genommen wird, zeigt eine Darstellung der Relais 532, der Sende-Empfänger 564, der Übertrager 304c, 3o4d, 306c, 306d von Fig. 11 und des 800-Mikrosekunden-Zeitgebers 302 von Fig. 7. Die Sende-Empfänger 564 werden nicht im Detail beschrieben, können aber von einer im Stand der Technik bekannten Bauart sein, wie z. B. die CT 1487 Sende-Empfänger, und können wie in Fig. 20 gezeigt angeschlossen werden.
- Der 800-Mikrosekunden-Zeitgeber 302 von Fig. 7 und 18 ist in Fig. 19 detaillierter gezeigt. Er enthält einen Dekaden- Zähler 580, einen Vier-Bit-Synchronzähler 582 und Zwei ODER-Gatter 584, 586. Der Zeitgeber spricht auf ein Signal auf der Leitung 588 zu Beginn einer Übertragung zum oder vom Bus an durch Zählen von Taktimpulsen auf der Leitung 590 und Liefern eines 800-Mikrosekunden-Ausgangssignals auf einer Leitung 592, nachdem 800 Mikrosekunden verstrichen sind. Dieses Signal wird durch die ODER-Gatter 584, 586 dazu verwendet, die Sende-Empfänger 564 von Fig. 18 immer dann abzuschalten, wenn die Kommunikation zu lange dauert. Die ODER-Gatter sprechen, wie oben beschrieben, auch auf Signale auf Leitungen 303 aus dem Gate-Array 300 an.
- 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 ausgeführt werden kann.
Claims (4)
1. Schnittstellenvorrichtung für ein Mehrkanal(308-314)-
Mehrasynchronbus (300-306)-System zur Kopplung zwischen
wenigstens einem oder einem unter den asynchronen Bussen
auswahlbaren asynchronen Bus und einem wählbaren von Kanälen
oder wenigstens einem Kanal, wobei jeder Bus ein
identisches Protokoll hat, das eine Kommunikation zwischen einem
Bus und nur einem Kanal gleichzeitig gestattet, wobei das
Protokoll weiter legale und illegale
Nachrichtensignalkennwerte festlegt, die in jedem Kanal gespeichert sind, wobei
die Signale als Wörter aus einer bestimmten Anzahl von Bits
in Nachrichten formatiert sind, die eine bestimmte maximale
Zahl von Wörtern haben, wobei jedes Kanalteil der
Schnittstellenvorrichtung aufweist:
eine Nachrichtengültigerklärungseinrichtung (34, 38), die
auf an dem Kanal aus einem asynchronen Bus ankommende
Signale und auf aus dem Kanal zur Übertragung auf dem Bus
abgehende Signale anspricht, um die aus dem Bus ankommenden
Signale mit gespeicherten legalen und illegalen
Signalkennwerten zu vergleichen, um, wenn ein Vergleich einen
illegalen ankommenden Signalkennwert ergibt, für die
Schnittstellenvorrichtung, die mit nur einem Asynchronbus gekoppelt
ist, ein Kanalabtrennsignal zu liefern, und um ebenso ein
kanalerzeugtes Buswählsignal auf den Vergleich hin zu
liefern, wenn die Schnittstellenvorrichtung mit mehr als einem
Asynchronbus gekoppelt ist, wobei die
Gültigerklärungseinrichtung die abgehenden Signale mit legalen und illegalen
Signalkennwerten vergleicht und ein Kanalabtrennsignal
liefert, wenn ein Vergleich einen illegalen abgehenden
Signalkennwert ergibt;
einer Umschaltschaltungsanordnung (532, 534, 536 oder 538),
die auf ankommende Signale an dem Kanal aus einem
ausgewählten Asynchronbus einer Anzahl von Asynchronbussen und
auf abgehende Signale
aus dem Kanal an dem ausgewählten Asynchronbus anspricht,
um wählbare Signalwege zwischen dem Kanal und wenigstens
einem Asynchronbus auf das kanalerzeugte Buswählsignal hin
zu schaffen und den Signalweg zwischen dem Kanal und
irgendeinem und allen anderen wählbaren Asynchronbussen auf
das Kanalabtrennsignal hin abzutrennen;
eine Busschnittstellenschaltung (28, 30, 32, 38), die auf
ankommende Signale aus dem ausgewählten Asynchronbus und
auf abgehende Signale aus dem Kanal an dem Bus anspricht,
um gültigerklärte ankommende und abgehende Signale zwischen
dem Kanal und dem Asynchronbus zu paketieren und kohärent
zu übertragen;
einen lokalen RAM (450), der auf kohärente ankommende
Signale anspricht, um die kohärenten ankommenden Signale in
paketierter Form zu speichern;
einen unabhängigen Interkanalkommunikationsabschnitt (324),
der auf die kohärenten Signale, die in dem lokalen RAM
(450) des Kanals gespeichert sind, anspricht, um die
Signale in paketierter Form zu anderen Kanälen synchron zu
übertragen;
einen Abschnitt-RAM (530), der auf die paketierten Signale
anspricht, die aus einem weiteren Kanal auf dem
Interkanalabschnitt übertragen werden, um die übertragenen
paketierten Signale zu speichern; und
eine Signalprozessoreinrichtung (14; 316, 318, 320 oder
322), die auf ankommende Signale anspricht, welche durch
die Busschnittstellenschaltung verarbeitet werden, um
paketierte Nachrichten zu liefern, die
Datenendeidentifizierungsetiketten haben, zur Speicherung in einem Vorgewählten
Bereich des lokalen RAM (450) und zur Übertragung und zum
Entpaketieren durch andere Kanäle über den
Interkanalabschnitt und zum Speichern von Nachrichten, die aus anderen
Kanälen über den Interkanalabschnitt empfangen werden, in
dem Abschnitt-RAM (530).
2. Schnittstellenvorrichtung nach Anspruch 1, wobei die
Busschnittstellenschaltung weiter aufweist:
eine Fernterminalschnittstelle (RTI) -Einrichtung (28), die
auf in serieller Form aus dem seriellen Datenbus ankommende
Digitalsignale anspricht, um die ankommenden seriellen
Signale in paralleler Form zu übertragen, und auf in paralleler
Form aus dem Signalprozessor abgehende Digitalsignale
anspricht, um die abgehenden parallelen Signale in serieller
Form zu dem seriellen Datenbus zu übertragen;
eine Umlaufempfangsspeichereinrichtung (30), welche auf in
paralleler Form übertragene ankommende serielle Signale aus
der RTI (28) anspricht, um empfangene Nachrichtenwörter an
aufeinanderfolgenden Speicheradressen sequentiell zu
speichern, startend am Beginn des Umlaufspeichers 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, und um dem Signalprozessor Lesezugriff auf
gespeicherte Wörter zu gewähren;
eine Sendespeichereinrichtung (32), deren Speicheradressen
in vorbestimmten Nachrichtenblöcken fester Größe
organisiert sind und die auf die abgehenden parallelen Signale
aus dem Signalprozessor anspricht, um Nachrichtenwörter an
den vorbestimmten Nachrichtenadressen zur anschließenden
Übertragung zu speichern; und
eine Terminalcontroller(TC)-Einrichtung (38), die 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 die
Nachrichtengültigerklärrungseinrichtung (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 in dem Umlaufempfangsspeicher (30)
gespeicherte einzelne Nachricht algorithmisch zu verhindern, bis
die einzelne Nachricht gänzlich und korrekt empfangen
worden ist, wobei der TC (38) auf die abgehenden Signale
anspricht und wobei der TC (38) eine Semaphor- und
Zeigereinrichtung bildet, um den Signalprozessorschreibzugriff auf
einen einzelnen Block in dem Sendespeicher (32)
algorithmisch
zu verhindern, wenn der RTI Lesezugriff auf den
einzelnen Block hat, und ansonsten auf das Speichern eines
ersten Wortes durch den Signalprozessor anspricht zur
Übertragung in den einzelnen Block und den RTI-Lesezugriff auf
den einzelnen Block verhindert, bis das erste Wort zur
Übertragung durch den Signalprozessor (14) in dem einzelnen
Block gespeichert worden ist.
3. Vorrichtung nach Anspruch 1, weiter mit:
einer Takteinrichtung (42) zum Liefern von zeitgerechten
Taktimpulsen; und
einer Zeitetikettzählereinrichtung (36) für jeden Kanal,
die auf die ankommenden Asynchronbussignale und
Befehlssignale aus der Signalprozessoreinrichtung (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.
4. Schnittstellenvorrichtung nach Anspruch 1, wobei die
Busschnittstellenschaltung weiter aufweist:
eine Fernterminalschnittstelle (RTI)-Einrichtung (28), die
auf in serieller Form aus dem seriellen Datenbus ankommende
Digitalsignale anspricht, um die ankommenden seriellen
Signale in paralleler Form zu übertragen, und auf in
paralleler Form aus dem Signalprozessor abgehende Digitalsignale
anspricht, um die abgehenden parallelen Signale in
serieller Form zu dem seriellen Datenbus zu übertragen;
eine 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, bis das Ende des Umlaufspeichers erreicht ist,
und dann erneut fortfahrend mit dem sequentiellen Speichern
am Beginn des Umlaufspeichers, wobei der Umlaufspeicher
(30) dem Signalprozessor den Lesezugriff auf gespeicherte
Wörter gewährt;
eine Sendespeichereinrichtung (32), deren Speicheradressen
in vorbestimmten Nachrichtenblöcken organisiert sind, wobei
jeder Block eine ausgewählte Zahl von Wortspeicheradressen
hat, die größer ist als die bestimmte maximale Zahl in
einer Nachricht, um mehr als eine Nachricht zu speichern,
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 weiter, bis das Ende des Blockes
erreicht ist, und dann das sequentielle Speichern wieder am
Beginn des Blockes fortsetzend, wobei der Lesezugriff auf
jeden der Blöcke für den RTI auf eine vom Signalprozessor
angegebene vervollständigte Nachricht in dem Block
beschränkt ist;
eine Terminalcontroller(TC)-Einrichtung (38), die 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 die
Nachrichtengültigerklärrungseinrichtung (34, 38) als vollständig und gültig
anerkannt worden sind, aber durch den Signalprozessor (14) noch
nicht gelesen worden sind, um den
Signalprozessorlesezugriff auf eine in dem Umlaufempfangsspeicher (30)
gespeicherte einzelne Nachricht 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 (38) den
Lesezugriff nur auf die vom Signalprozessor angegebene
Nachricht in einem Block zu gewähren und um den
Signalprozessorschreibzugriff auf die letzte Nachricht in einem
einzelnen Block in dem Sendespeicher (32) algorithmisch zu
verhindern, wenn der RTI (38) Lesezugriff auf die letzte
Nachricht in dem einzelnen Block hat, und um ansonsten auf
das Speichern eines ersten Wortes einer neuen Nachricht
durch den Signalprozessor zur Übertragung in den einzelnen
Block anzusprechen und den RTI-Lesezugriff auf die neue
Nachricht zu verhindern, bis das erste Wort zur Übertragung
durch den Signalprozessor in dem einzelnen Block
gespeichert ist.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/681,172 US4625307A (en) | 1984-12-13 | 1984-12-13 | Apparatus for interfacing between at least one channel and at least one bus |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE3586486D1 DE3586486D1 (de) | 1992-09-17 |
| DE3586486T2 true DE3586486T2 (de) | 1993-03-18 |
Family
ID=24734140
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE8585630226T Expired - Fee Related DE3586486T2 (de) | 1984-12-13 | 1985-12-13 | Interface-vorrichtung zwischen mindestens einem kanal und mindestens einem bus. |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US4625307A (de) |
| EP (1) | EP0184976B1 (de) |
| DE (1) | DE3586486T2 (de) |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| NL8500571A (nl) * | 1985-03-01 | 1986-10-01 | Hollandse Signaalapparaten Bv | Locaal data-communicatienetwerk volgens het multiple-bus-systeem. |
| US4987530A (en) * | 1985-11-15 | 1991-01-22 | Data General Corp. | Input/output controller for a data processing system |
| US5093910A (en) * | 1986-10-29 | 1992-03-03 | United Technologies Corporation | Serial data transmission between redundant channels |
| US4878197A (en) * | 1987-08-17 | 1989-10-31 | Control Data Corporation | Data communication apparatus |
| US4935894A (en) * | 1987-08-31 | 1990-06-19 | Motorola, Inc. | Multi-processor, multi-bus system with bus interface comprising FIFO register stocks for receiving and transmitting data and control information |
| 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 |
| JP2814132B2 (ja) * | 1990-03-15 | 1998-10-22 | 株式会社日立製作所 | マルチチャネル通信処理装置 |
| US6324120B2 (en) | 1990-04-18 | 2001-11-27 | Rambus Inc. | Memory device having a variable data output length |
| US6751696B2 (en) | 1990-04-18 | 2004-06-15 | Rambus Inc. | Memory device having a programmable register |
| IL96808A (en) | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
| US5457786A (en) * | 1990-07-03 | 1995-10-10 | Texas Instruments Incorporated | Serial data interface with circular buffer |
| US5136584A (en) * | 1990-07-11 | 1992-08-04 | At&T Bell Laboratories | Hardware interface to a high-speed multiplexed link |
| DE4035459C1 (de) * | 1990-11-08 | 1992-05-14 | Messerschmitt-Boelkow-Blohm Gmbh, 8012 Ottobrunn, De | |
| US5566301A (en) * | 1992-02-11 | 1996-10-15 | Futuretel, Inc. | ISDN audiovisual teleservices interface subsystem |
| CA2128322A1 (en) * | 1992-02-11 | 1993-08-19 | Mark C. Koz | An audiovisual teleservices interface subsystem |
| US5414814A (en) * | 1992-05-08 | 1995-05-09 | The United States Of America As Represented By The Secretary Of The Navy | I/O interface between VME bus and asynchronous serial data computer |
| US5335326A (en) * | 1992-10-01 | 1994-08-02 | Xerox Corporation | Multichannel FIFO device channel sequencer |
| 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 |
| FR2737029B1 (fr) * | 1995-07-19 | 1997-09-26 | Sextant Avionique | Dispositif d'interface entre un calculateur a architecture redondante et un moyen de communication |
| US6314481B1 (en) * | 1999-01-19 | 2001-11-06 | Phoenix Logistics, Inc. | Resistance integrated coupler between databus and terminal device having databus windings with high resistance wire with resistance being 1.5 times databus cable nominal characteristic impedance |
| US6360290B1 (en) | 1999-06-23 | 2002-03-19 | United Technologies Corporation | Commercial standard digital bus interface circuit |
| US7684383B1 (en) * | 2002-01-30 | 2010-03-23 | 3Com Corporation | Method and system for dynamic call type detection for circuit and packet switched networks |
| US7541697B2 (en) * | 2005-10-14 | 2009-06-02 | The Boeing Company | Systems and methods for lighting control in flight deck devices |
| WO2009086277A1 (en) | 2007-12-20 | 2009-07-09 | Envivo Pharmaceuticals, Inc. | Tetrasubstituted benzenes |
| CN116305060A (zh) * | 2021-12-20 | 2023-06-23 | 戴尔产品有限公司 | 用于对管理控制器的os访问的安全通信通道 |
| CN116016708A (zh) * | 2023-02-17 | 2023-04-25 | 浙江中控研究院有限公司 | 一种1553b总线与blvds总线转换方法及装置 |
| US12204485B2 (en) | 2023-04-27 | 2025-01-21 | Hamilton Sundstrand Corporation | Data refresh cycle for asynchronous device communication |
Family Cites Families (4)
| 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 |
| US4516239A (en) * | 1982-03-15 | 1985-05-07 | At&T Bell Laboratories | System, apparatus and method for controlling a multiple access data communications system including variable length data packets and fixed length collision-free voice packets |
| US4569041A (en) * | 1983-03-17 | 1986-02-04 | Nec Corporation | Integrated circuit/packet switching system |
-
1984
- 1984-12-13 US US06/681,172 patent/US4625307A/en not_active Expired - Lifetime
-
1985
- 1985-12-13 DE DE8585630226T patent/DE3586486T2/de not_active Expired - Fee Related
- 1985-12-13 EP EP85630226A patent/EP0184976B1/de not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| US4625307A (en) | 1986-11-25 |
| EP0184976B1 (de) | 1992-08-12 |
| EP0184976A2 (de) | 1986-06-18 |
| EP0184976A3 (en) | 1989-01-25 |
| DE3586486D1 (de) | 1992-09-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3586486T2 (de) | Interface-vorrichtung zwischen mindestens einem kanal und mindestens einem bus. | |
| DE3586487T2 (de) | Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern. | |
| DE69505871T2 (de) | Taktfehlererkennungsschaltung | |
| DE69329904T2 (de) | Echtzeitverarbeitungssystem | |
| DE3688722T2 (de) | Datensteuersystem für Systemkanal zur digitalen automatischen Flugsteuerung mit mehreren verschiedenen Datenverarbeitungen. | |
| DE3382592T2 (de) | Zweifachbusstruktur fuer die rechnerverbindung. | |
| DE69108434T2 (de) | Mehrgruppen-Signalprozessor. | |
| DE69326429T2 (de) | Netzwerkschnittstelle mit unabhängiger pufferverwaltung | |
| DE3586491T2 (de) | Kohaerentes interface mit zurueckgeschleiftem empfangsspeicher. | |
| DE69521549T2 (de) | Verfahren zur Verwaltung gemeinsamer Mittel mehrerer Verarbeitungseinheiten | |
| DE3689087T2 (de) | Modularer Mehrfachportdatenknoten. | |
| DE69323861T2 (de) | Multiprozessorsystem mit gemeinsamem Speicher | |
| DE3650092T2 (de) | E/a-steuerung mit zwei funktionen. | |
| DE69114961T2 (de) | Vorrichtung für Zusammenschaltungskanäle. | |
| 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 | |
| DE69029755T2 (de) | Zellenvermittlungssystem für Zeitmultiplexkommunikation | |
| DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
| CH634940A5 (en) | Channel-adapter arrangement | |
| CH656728A5 (de) | Schnittstellenschaltungsanordnung zur verbindung eines prozessors mit einem nachrichtenkanal. | |
| EP2030116A1 (de) | Kommunikationsbaustein | |
| DE69227996T2 (de) | Vorrichtung und verfahren zur vermittlung von datenblöcken | |
| DE69030066T2 (de) | Rechner ausgestattet mit mehreren Prozessoren | |
| DE69033412T2 (de) | Datenübertragungssteuervorrichtung für Parallelverarbeitungssysteme | |
| DE60305560T2 (de) | Eingebettetes System für die Überlastregelung von Rundfunkverkehr in einem Kommunikationsnetzwerk |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |