-
ERFINDUNGSGEBIET
-
Die
Erfindung betrifft im allgemeinen ein Verfahren zum Entfernen unerwünschter
Paketheader- und -trailerinformationen. Genauer gesagt betrifft
die vorliegende Erfindung ein Verfahren zum Übertragen großer Datenmeldungen über Übertragungsfenster, die
kleiner sind als die Datenmeldung.
-
HINTERGRUND
UND VERWANDTE TECHNIK
-
Beim
Design von Avioniksystemen für
den kommerziellen Lufttransport spielt sich eine Revolution ab.
Das klassische Avioniksystem weist eine verteilte Struktur auf.
Es besteht aus einer Menge von Funktionen, die jeweils in einer
oder mehreren auswechselbaren Einheiten (LRU – Line Replaceable Units) implementiert
sind. Diese verteilte Architektur wird durch eine integrierte Architektur
ersetzt, die viele Funktionen in weniger LRUs kombiniert. Die Integration
bietet viele Vorzüge,
unter anderem: niedrigeres Gewicht, niedrigerer Stromverbrauch,
erhöhte Zuverlässigkeit,
weniger häufige
Wartung und größere Flexibilität. Doch
genau weil sich diese Funktionen Hardwareressourcen teilen, muß stärker aufgepaßt werden,
um sicherzustellen, daß sie
selbst dann korrekt arbeiten, wenn coresidente Funktionen versagen.
Dies ist die technische Herausforderung integrierter Architekturen.
-
Wenngleich
Medienzugriffsprotokolle nach dem Stand der Technik strenge Vielfachzugriffsprotokolle
und tabellengesteuerte Proportionalzugriffsprotokolle enthalten
haben, haben sich diese Systeme als unzufriedenstellend herausgestellt,
da über
den Bus verlaufende Funktionen einen Konflikt erleben können. Dies
ist in der Regel dadurch gelöst
worden, daß die
Funktionen über
ihre Priorität „verhandeln" können. Um
die Priorität
zu bestimmen, müssen
die Funktionen jedoch Prioritätsinformationen
zusammen mit Zeitfenster- und Speicherungsspeicheradressinformationen
zusammen mit der eigentlichen Datenmeldung übertragen. Dies erhöht die von
jeder einzelnen Funktion erforderliche Meldungsgröße. Es wäre nützlich,
ein Protokollsystem zu haben, das die Aufnahme zusätzlicher
Adreß-,
Zeitfenster- oder Prioritätsinformationen
nicht erfordert.
-
Aus
US 5,602,995 sind ein Verfahren
und eine Vorrichtung zum Puffern von Daten innerhalb von Stationen
eines Kommunikationsnetzes durch Abbilden von Paketzahlen auf physische
Adressen des Puffers bekannt.
-
KURZE DARSTELLUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung liefert ein Verfahren wie in Anspruch 1 definiert.
-
Das
Verfahren kann die Merkmale eines beliebigen oder mehrerer der abhängigen Ansprüche 2 bis
4 enthalten.
-
Die
vorliegende Erfindung liefert außerdem ein Signalprotokoll
wie in Anspruch 5 definiert.
-
Das
Protokoll kann die Merkmale eines beliebigen oder mehrerer der abhängigen Ansprüche 6 und
9 enthalten.
-
Die
vorliegende Erfindung stellt auch ein System wie in Anspruch 10
definiert bereit.
-
Das
System kann die Merkmale eines beliebigen der Ansprüche 11 bis
13 enthalten.
-
Eine
Aufgabe der vorliegenden Erfindung besteht in der Bereitstellung
eines neuartigen Verfahrens zum Entfernen unerwünschter Datenpaketheader- oder
-trailerinformationen.
-
Eine
weitere Aufgabe der vorliegenden Erfindung besteht in der Bereitstellung
eines Verfahrens zum Übertragen
großer
Datenmeldung über
Zeitfenster, die kleiner sind als die übertragene Datenmeldung. Dies
wird bewerkstelligt durch Partitionieren der großen Datenmeldung in kleinere
Pakete. Paketsteuerinformationen werden an die Pakete angehängt, und
sie werden über
das Übertragungsfenster in
umgekehrter sequentieller Reihenfolge von dem zuletzt erzeugten
Paket zum zuerst erzeugten Paket übertragen. Unmittelbar nach
der Übertragung
jedes Pakets wird es an eine im voraus Speicher-zugewiesene Speicherstelle
geschrieben. Danach übertragene
Pakete werden an eine benachbarte Stelle geschrieben, sie werden
jedoch hinsichtlich der Position so verschoben, daß sie die
Paketsteuerinformationen überschreiben,
die an das zuvor geschriebene Paket angehängt waren. Dies wird wiederholt,
bis alle die Pakete übertragen
und geschrieben worden sind und die große Datenmeldung reintegriert
und kohärent
ist.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
eine Schnittstellenlogik.
-
2 ist
eine einfache Struktur von grundlegenden Meldungen.
-
3 zeigt
Beispiele von Haupt-(a) oder dritten Schatten-(b)-Übertragungen.
-
4 ist
ein Beispiel einer beim Systemzurücksetzen verwendeten Anfangssynchronisierungsmeldung.
-
5 ist
ein Beispiel einer langen Resynchronisierungsmeldung, die ausreichende
Informationen enthält,
damit ein „verlorenes" LRM die Synchronisierung
mit einem aktiven Bus wiederherstellen kann.
-
6 ist
ein Beispiel für
eine zum Korrigieren einer Oszillatordrift verwendeten kurzen Resynchronisierungsmeldung.
-
7 ist
ein Beispiel für
das Codieren von Daten zur verbesserten Fehlerdetektion.
-
AUSFÜHRLICHE
BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
-
Die
vorliegende Erfindung ist ein Protokoll, das die Bandbreitenübertragungseffizienz
erhöht,
indem große
Datenmeldungsübertragungen
verbessert werden.
-
Das
Verfahren gemäß der vorliegenden
Erfindung wird bevorzugt in einem Integrated Modular Avionics System
verwendet, das sich dadurch von einem verteilten System unterscheidet,
daß mehrere Funktionen
in einem einzelnen integrierten Schrank implementiert werden anstelle
in mehreren getrennten selbständigen
Boxen. Das von dem integrierten Schrank beanspruchte Raumvolumen
ist in der Regel größer als
das Raumvolumen, das ein einzelner verteilter selbständiger LRU-Kasten
beansprucht, aber kleiner als die Summe der Volumina aller LRU-Kästen, die
der integrierte Schrank ersetzt. Deshalb wird durch die Verwendung
der vorliegenden Erfindung eine Einsparung beim in Anspruch genommenen
Gesamtraum und den Konstruktionsmaterialien realisiert.
-
Mindestens
eine austauschbare Einheit, ein LRM, das aus einer oder mehreren
Schaltungskarten besteht, wird in den integrierten Schrank, gesteckt. Jedes
LRM kann mehrere unabhängige
Funktionen verarbeiten. Deshalb teilen sich alle unabhängigen Funktionen
innerhalb des integrierten Schranks eine gemeinsame Stromversorgung,
Verarbeitungsressourcen und E/A-Einheiten. Um die Datenverfügbarkeit
oder Integrität
zu erhöhen,
können
Funktionen in mehreren LRMs innerhalb eines einzelnen Schranks oder
in mehreren Schränken
kopiert werden.
-
Die
in den LRMs verwendete Schnittstellenlogik, die in 1 dargestellt
ist, umfaßt
eine Bus Interface Unit Application Specific Integrated Circuit, die
mit dem Host in elektrischer Verbindung steht, einen Table Memory,
der mit der Bus Interface Unit in elektrischer Verbindung steht,
ein Intermodule Memory, das mit der Bus Interface Unit und dem Host
in elektrischer Verbindung steht, und ein Paar Backplane Transceivers,
die Datenleitungen zwischen der Bus Interface Unit und den zwei
Self-Checking-Bus-Paaren bereitstellt. Jede Bus Interface Unit in
dem Modul weist eine angebrachte Uhr zur Zeitsteuerung und Synchronisierung
auf. Der durch dieses Verfahren erzeugte schmale Übertragungsdatenweg
reduziert die Gesamtpinzahl für
das LRM drastisch, wodurch die inhärente Zuverlässigkeit
des Systems erhöht
wird.
-
In
jedem LRM liegt die Schnittstellenlogik paarweise vor, um sofortige
Fehlerdetektion und -einschränkung
bereitzustellen, und ist in einer einzigartigen Form einer dual-dual-Redundanz
konfiguriert, die gleichzeitig für
hohe Integrität
und Verfügbarkeit sorgt.
Eine Empfangsschaltung in dem übertragenden
LRM prüft
die Übertragung
auf Fehler. Wenn ein babbelndes LRM, nämlich eines, das ständig Fehler überträgt, detektiert
wird, entfernt sich das fehlerhafte Modul selbst aus der Leitung.
Indem jede Bus Interface Unit eines LRM die Treiber der anderen
Bus Interface Unit steuert, erzwingt dies das Entfernen. Wenn jede
der beiden Bus Interface Units denkt, sie sollte nicht übertragen,
dann überträgt keine
Bus Interface Unit.
-
Zusätzlich weist
der Rückwandbus
zwei Self-Checking-Busse
auf, allgemein mit A und B bezeichnet, die die verschiedenen LRMs
in oder zwischen den Schränken
miteinander verbinden. Siehe 1. Jeder
Self-Checking-Bus
besteht selbst aus zwei Teil-Bussen x und y. Eine der Bus Interface
Units eines LRM überträgt Daten
auf einen der Teil-Bus-Paare in einem Self-Checking-Bus-Paar, beispielsweise Ax
und Bx, und sein Partner überträgt auf dem
anderen Teil-Bus-Paar, Ay und By. Die Daten auf beliebigen zwei
Self-Checking-Bus- Paaren,
die von verschiedenen Bus Interface Units kommen, werden von dem
empfangenden LRM verglichen. Nur Bit für Bit identische Daten werden
akzeptiert und in die Intermodule Memories geschrieben.
-
Wenn
zwei Self-Checking-Busse verwendet werden, sorgt dies für eine sofortige
Fehlerkorrektur für
vorrübergehende
Fehler auf einem einzelnen Self-Checking-Bus. Die vorliegende Erfindung
ist betriebssicher/ausfallunempfindlich; wenn ein Self-Checking-Bus
ausfällt,
bleibt der Schrank in Betrieb; wenn beide ausfallen, verstummt der
Schrank.
-
Die
Integration mehrerer unabhängiger Funktionen
zu einem einzelnen LRM erhöht
das Risiko, daß unerwünschte Wechselwirkungen
zwischen den unabhängigen
Funktionen, die sich auf der gemeinsamen Hardware befinden, zu unvorhergesehenen
Ausfällen
führen.
Um eine integrierte Architektur erfolgreich zu implementieren, wird
in dem integrierten Schrank eine Ausführungsumgebung für jede unabhängige Funktion
bereitgestellt, die die Umgebung einer diskreten LRU gut emuliert.
Mit anderen Worten „sieht" jede unabhängige Funktion
in dem integrierten Schrank eine virtuelle selbständige LRU-Umgebung.
Bewerkstelligt wird dies durch starres Partitionieren aller gemeinsamen
Ressourcen in dem integrierten Schrank. Die starre Partitionierung
stellt sicher, daß eine
unabhängige
Funktion in jedem möglichen
Betriebszustand eine andere nicht beeinträchtigten kann, einschließlich des
Auftretens von Störungen
und Designfehlern in den Funktionen.
-
Eine
etwaige „Vermittlung" zwischen Funktionen
für die
verschiedenen Partitionen tritt zum Zeitpunkt des Designs, nicht
des Laufens auf. Eine Datenbank aus Interface-Control-Document-Informationen
wird in Tabellen zerlegt, die für
jede Bus Interface Unit auf dem Bus verwendet wird. Diese Tabellen werden
unter Verwendung eines Testbusses IEEE 1149.1 in die Table Memories
jeder Bus Interface Unit geladen.
-
Eine
strenge deterministische Steuerung der Partitionierung bedeutet,
daß die
Funktionen sowohl hinsichtlich des Raums als auch der Zeit partitioniert werden
müssen.
Erreicht wird dies dadurch, daß alle Meldungsort-
und Buszeitsteuerinformationen in den Tabellenspeichern abgelegt
werden.
-
Eine
Speichervorzuweisung oder feste Abbildung von Meldungen auf eindeutige
Orte in dem Intermodule Memory garantiert einen Raumdeterminismus
und wird durch Speicherschutzmechanismen auf Hardwarebasis wie etwa
Prozessorspeichermanagementeinheiten geschützt. Eine derartige Vorzuweisung
von Speicherbereichen verhindert eine Auseinandersetzung zwischen
den Funktionen nach Speicherplatz und garantiert, daß keine
Funktion eine andere daran hindern kann, adäquaten Speicherplatz zu erlangen.
Da die Intermodule-Memory-Abbildungsinformation in den Table Memory
der Bus Interface Unit geladen wird, kann sie durch keinerlei Software-
oder Kommunikationsfehler verfälscht
werden.
-
Eine
deterministische Steuerung über
die Partitionierung der Zeit bedeutet im voraus zugewiesene Zeit-„Fenster". Die Buszeit wird
in eine Menge von „Fenstern" unterteilt, die
jeweils eine einzelne Meldung im Bereich zwischen 32 Bit und 8192
Bit enthalten. Die Meldung wird synchron innerhalb des Fensters übertragen,
und zwar jeweils immer zwei Bit (Zwei-Bit-parallel), was für die Übertragung
zwischen 16 und 4096 Taktperioden benötigt. Meldungen, die übertragen
werden sollen oder über
die Rückwand empfangen
worden sind, werden in Puffern in den Intermodule Memories abgelegt.
Diese Organisation gestattet den Einsatz einer einfachen Hostschnittstelle,
weil die Hosts den Rückwandbus
als einen Mehrfachportspeicher ansehen.
-
Die
verschiedenen Fenster sind durch einen kleinen festen zeitlichen
Abstand getrennt, der eine programmierbare Länge aufweist, um unterschiedliche
LRM-Abstände
und die Gesamtbuslänge
zu berücksichtigen.
Zwei bis vier Taktperioden sind für den Zwischenmeldungsabstand
bevorzugt.
-
Ein
Zeitdeterminismus garantiert auch, daß eine Funktion mit einer variablen
oder aperiodischen Nachfrage nach Hardwareressourcen niemals verhindert,
daß eine
andere Funktion eine spezifizierte Mindestdienstebene erreicht und
daß, was
noch wichtiger ist, die zeitliche Steuerung des Zugriffs einer Funktion
auf diese Ressourcen nicht durch den Ausfall oder verschiedene Anforderungen
einer anderen Funktion beeinflußt
werden. Wenn das Design eines integrierten Systems keinen Zeitdeterminismus enthält, kann
eine Funktion erst dann zertifiziert werden, nachdem alle möglichen
Kombinationen von Ereignissen einschließlich aller möglichen
Kombinationen des Ausfalls aller Funktionen berücksichtigt worden sind. Durch
den Mangel an Zeitdeterminismus nehmen eindeutig die Kosten der
Zertifizierung und Softwarewartung drastisch zu.
-
Das
Protokoll des LRM wird durch Sequenzen von Befehlen angesteuert,
die im Table Memory der Bus Interface Unit gespeichert sind. Jeder
individuelle Befehl entspricht einem individuellen Zeitfenster oder
bildet darauf ab, das in der Lage ist, eine Meldung oder Daten zu
enthalten, und zeigt an, ob die Bus Interface Unit die Meldung während der
diesem Fenster zugewiesenen Zeit übertragen oder empfangen sollte.
Jeder im Table Memory enthaltene Befehl weist auch auf die im voraus
zugeordnete Intermodule-Memory-Stelle, die die Daten enthält oder
empfängt.
-
Die
Befehle sind zu als Bereiche [„Frames"] bezeichneten zyklischen
Schleifen organisiert. Die Länge
jedes Bereichs wird durch die Summe der individuellen Fensterlängen in
einer einzelnen Iteration der Schleife bestimmt. Die Befehle in
jeder Bus-Interface-Unit-Tabelle können zu mehreren Bereichen
organisiert werden. Jeder unterschiedliche Bereich steuert eine
repetitive Sequenz von Fenstern, die eine feste Gesamtperiode aufweist.
Unter enggesteuerten Bedingungen können die Bus Interface Units
von der Verwendung eines Bereichs zu der Verwendung eines anderen
umschalten.
-
Das
Protokoll der vorliegenden Erfindung enthält einen Mechanismus um sicherzustellen,
daß nur
LRMs mit kompatiblen Tabellen für
normale Operationen miteinander synchronisieren. Bei diesem Protokoll
werden zwei Arten von Bereichen unterstützt. Versionslose Bereiche
gestatten, daß LRMs einer
beliebigen Version der vorliegenden Erfindung kommunizieren. Solche
Bereiche arbeiten immer mit der maximalen programmierbaren Abstandsgröße zwischen
Meldungen, damit LRMs von komplett anderen Applikationen ihre Versionsinformationen
miteinander kommunizieren können.
Nach dem Einschalten treten alle LRMs in einen standardmäßigen versionslosen
Initialisierungsbereich ein, in dem sie ihre Versionen an eine Schranksoftwarefunktion übertragen,
um die korrekte Konfiguration zu bestimmen.
-
Versionsbehaftete
Bereiche erfordern, daß alle
LRMs sich auf der gleichen versionsbehafteten Ebene befinden. Frame
Change Table Commands werden bereitgestellt, um zwischen Bereichen
umzuschalten. Diese Befehle informell alle Bus Interface Units der
Zielbereichsversion oder falls der Bereich versionslos ist. Der
Mechanismus, der gestattet, daß Bus
Interface Units die Synchronisierung wiedererlangen, liefert auch
Versionsinformationen. Jede mit einer Tabelle einer anderen Version
arbeitende Bus Interface Unit wirft den Bus der vorliegenden Erfindung
ab, wenn eine Frame- Change-
oder Synchronisierungswiederherstellungsmeldung ihr sagt, daß der Bus
den versionsbehafteten Bereich verwendet, der von seinem eigenen
verschieden ist. Alle normalen Flugoperationen werden in einem versionsbehafteten
Bereich ausgeführt.
-
Einsteckplatzstelleninformationen
werden von einem Rückwandverbinder
in jede Bus Interface Unit hereingebracht, damit die Bus Interface
Unit verifizieren kann, daß die
Tabelle, die sie verwendet, für die
physische Stelle des LRM korrekt ist. Wenngleich jede Tabelle einen
Befehl für
jedes Fenster am Bus der vorliegenden Erfindung enthält, sind
diese Befehle nicht Bit für
Bit identisch. Es ist wesentlich, daß ein LRM nur innerhalb einer
Tabelle arbeitet, die für
den Steckplatz spezifisch ist, in dem es gegenwärtig eingesetzt ist.
-
Einer
der Vorzüge
eines tabellengesteuerten Protokolls ist die extrem hohe Effizienz.
Avionikapplikationen erzeugen in der Regel kurze Rückwandmeldungen,
und die meisten seriellen Protokolle arbeiten bei kurzen Meldungen
schlecht. Effizienzen von zwischen 10 Prozent und 30 Prozent sind
typisch. Das Protokoll der vorliegenden Erfindung ist für einen kontinuierlichen
Strom von 32-Bit-Meldungen 89 Prozent effizient. Weil Pufferadressen
in Tabellen gehalten werden, brauchen sie nicht auf den Bus übertragen
zu werden. Durch die Verwendung von Sende- und Empfangsbefehlen
in den individuellen Tabellen erübrigt
sich die Notwendigkeit, Quellen- oder Ziel-LRM-Adressen zu senden.
Und weil Übertragungen
geplant werden, wird keine Übertragungszeit
mit dem Vermitteln zwischen streitenden Bus Interface Units verbraucht.
Mit Ausnahme des Zwischenmeldungsabstands und der gelegentlichen
Synchronisierungsmeldung enthalten fast alle Taktperioden Daten.
Somit weist ein 60-Megabit-pro-Sekunde-Bus gemäß der vorliegenden Erfindung
einen Durchsatz von über
54 Megabit pro Sekunde auf. Die Rückwand kann schmal sein anstatt
der breiteren parallelen Konfiguration der meisten Rückwandbusse,
weil das Protokoll so effizient ist.
-
Um
obiges zu erreichen, sind Meldungen so ausgelegt worden, daß sie die
Anforderung hoher Effizienz unterstützen. Weil das Protokoll tabellengesteuert
ist, enthalten Meldungen nur Daten und enthalten keine Adreß- und Steuerinformationen.
Es gibt zwei Datenmeldungsarten: Basismeldungen und Haupt-/Schattenmeldungen.
Die Basismeldungsstruktur ist so gewählt worden, daß die Effizienz
periodischer Datenübertragungen
maximiert wird. Die Haupt-/Schattenstruktur unterstützt Datenübertragungen
durch redundante oder aperiodische Funktionen. Jede Meldung besteht
aus einer Kette aus einem bis 256 32-Bit-Datenwörtern gefolgt von einer Zwischenmeldungslücke, die
im Bereich zwischen zwei und neun Bitzeiten liegt.
-
Mit
zunehmender Integrierung des schnellen Ethernets in elektronische
Applikationen gibt es Fälle,
wo die Datenmeldung, die übertragen
werden muß,
länger
ist als 256 32-Bit-Datenwörter.
Wenn gemäß der vorliegenden
Erfindung dieser Zustand auftritt, werden die Datenmeldungen in
mehrere kleinere Pakete zerlegt. Diese kleineren Pakete, Pakete
mit Längen
von unter 256 32-Bit-Datenwörtern, werden dann über das
Netz zu mindestens einem Empfänger übertragen,
in der Regel durch mehrere benachbarte Fenster in dem Bereich.
-
Das
erste übertragene
Paket wird in eine höhere
Adresse der IMM-Raumzuordnung für
die jeweilige Meldung geschrieben. Es ist für die Erfindung kritisch, daß nachfolgende
Pakete in einer fortlaufenden umgekehrten Reihenfolge gesendet und
in nachfolgend niedrigere Positionen des im voraus zugewiesenen
Speicherraums geschrieben werden. Dies wird so lange wiederholt,
bis alle Pakete der Datenmeldung übertragen und von dem mindestens
einen Empfänger
empfangen worden sind. Damit jedoch die übertragenen Daten in eine kohärente Datenmeldung
wiederhergestellt werden, müssen
die angehängten
Paketheader entfernt werden. Dies geschieht normalerweise unter
Verwendung von Software.
-
Die
vorliegende Erfindung reintegriert die Paketinformationen ohne die
Anforderung von Software oder sogar zusätzlicher Hardware. Bewerkstelligt
wird dies durch Verschieben des Meldungsspeicherungsplatzbereichs
eines später übertragenen und
empfangenen Pakete um die Länge
etwaiger Paketsteuerinformationen, ob Header oder Trailer, und Überschreiben
der Paketsteuerinformationen mit einem Abschnitt des danach übertragenen
und geschriebenen Pakets. Da beispielsweise der Header des ersten
Pakets zuletzt in den Speicherbereich geschrieben wird, überschreibt
ein Abschnitt des nächsten
geschriebenen Pakets (verschoben) die Headerinformationen, wodurch
die Datenmeldung reintegriert wird.
-
Alternativ
kann dieses Verfahren zum Verwenden von Pakettrailern verwendet
werden, aber nicht Header und Trailer gleichzeitig, indem die Sequenzierung
und Anordnung der Pakete und das Schreiben der Pakete in den Speicher
vom unteren Speicherende nach oben umgekehrt wird.
-
Gegebenenfalls
kann die Zwischenpaketzeit von dem Host dazu verwendet werden, die
Paketheader- oder -trailerinformationen nach zusätzlichen Pakethandhabungsinformationen
zu untersuchen, bevor es überschrieben
wird.
-
Basismeldungen
weisen eine einfache Struktur auf, die in 2 dargestellt
ist, und werden verwendet, wenn es eine einzelne Quelle und ein
einzelnes oder mehrere Ziele gibt. Der Haupt-/Schattenmechanismus
wird immer dann verwendet, wenn es mehrere alternative Quellen und
einzelne oder mehrere Ziele gibt, und gestattet LRMs oder Applikationen,
rekonfiguriert oder zerlegt zu werden, ohne das Verkehrsmuster auf
dem Bus zu stören.
-
Haupt-/Schattenfenster
werden durch ein Feld in dem assoziierten Tabellenbefehl identifiziert. Bis
zu vier Sender können
einem Haupt-/Schattenfenster zugewiesen werden. Zeitschlitzvermittlung bestimmt,
welcher der Sender tatsächlich
die Kontrolle über
das Fenster erhält.
Wenn das Hauptfenster aktiv ist und frische Daten zum Senden besitzt, beginnt
es mit dem Übertragen
zu Beginn des Fensters. Das erste Schattenfenster beginnt mit dem Übertragen
von „Delta"-Bitzeiten in das
Fenster, aber nur wenn das Hauptfenster nicht seine Gelegenheit zum Übertragen
genutzt hat. Das zweite Schattenfenster beginnt mit dem Übertragen
von zwei Delta-Bitzeiten in das Fenster hinein, aber nur wenn das Hauptfenster
und das erste Schattenfenster nicht ihre Gelegenheiten zum Übertragen
genutzt haben. Schließlich
beginnt das dritte Schattenfenster mit dem Übertragen von drei Delta-Bitzeiten
in das Fenster, aber nur wenn keiner der anderen Kandidatensender
ihre Gelegenheiten zum Übertragen
genutzt haben. Delta ist ein programmierbarer Wert, der in der Regel
um eine Bitzeit größer gesetzt
ist als die ausgewählte
Zwischenmeldungslücke
(bevorzugt werden Werte von drei bis zehn Bitzeiten gewählt). Der
gewählte
Wert hängt
von den Ausbreitungscharakteristiken der Rückwand ab. Versionslose Bereiche
verwenden die maximale Deltazeit von zehn Bitzeiten. Beispiele der Übertragung über die
vorliegende Erfindung, wenn das Haupt- oder dritte Schattenfenster überträgt, sind
in 3 gezeigt.
-
Die
Zeitschlitzvermittlung der Haupt-/Schattenfenster könnte einen
Nichtdeterminismus einführen,
doch sind strenge Maßnahmen
ergriffen worden, um diese Gefahr zu eliminieren. Zuerst garantieren zusätzliche
Bitzeiten in dem Fenster und eine Einschränkung hinsichtlich der Größe der Meldung,
daß die
Meldungsübertragung
innerhalb des zugewiesenen Zeitfensters ungeachtet dessen fertiggestellt wird,
was während
der Vermittlung geschieht. Somit behält das Zeitfenster die gleiche
Größe ungeachtet dessen
bei, welcher Sender die Vermittlung „gewinnt". Somit plazieren Empfänger einer Haupt-/Schattenmeldung
die Daten immer an die gleiche im voraus zugewiesene Speicherstelle,
ungeachtet dessen, welcher Sender die Vermittlung gewinnt. Somit
kann Delta groß genug
gemacht werden, um zu garantieren, daß die Kandidatensender niemals
einen belegten Bus fälschlicherweise
für einen
unbelegten Bus halten und irrtümlich
zu übertragen
beginnen.
-
Die
verschiedenen Bus Interface Units sind aufeinander synchronisiert,
so daß sich
zu einem beliebigen gegebenen Zeitpunkt alle Bus Interface Units
an gleichwertigen Punkten in ihren jeweiligen Tabellen befinden.
Synchronisierungsmeldungen sind so ausgelegt worden, daß sie die
Anforderungen hinsichtlich Datenintegrität und Zeitdeterminismus unterstützen. Schranksynchronisierung
wird im Fall jedes mäßigen Ausfallsszenariums
garantiert, und Synchronisierung erfordert keinerlei zentralisierte Ressource,
die die Integrität
des Systems verringern könnte.
-
Drei
Arten von Synchronisierungsmeldungen werden bereitgestellt, um die
Bus Interface Units unter drei Umständen gleichzuschalten: erstens
eine anfängliche
Synchronisierungsmeldung, die in 4 dargestellt
ist, wird beim Rücksetzen
des Systems verwendet; zweitens wird eine lange Resynchronisierungsmeldung,
die in 5 dargestellt ist, verwendet, wenn ein LRM „verloren
geht" und ausreichend Informationen
enthält,
damit das „verlorene" LRM die Synchronisation
mit einem aktiven Bus wiedererlangen kann; und drittens wird eine
kurze Resynchronisierungsmeldung, die in 6 dargestellt
ist, zum Korrigieren eines Oszillatordrifts verwendet. Die lange
Resynchronisierungsmeldung enthält
einen Resynchronisierungscode, der gestattet, daß eine „verlorene" Bus Interface Unit bestimmt, zu welcher
von 256 Stellen in ihrem Table Memory sie springen sollte, um die
andere Bus Interface Unit einzuholen. Um für zusätzliche Fehlertoleranz zu sorgen, übertragen alle
Bus Interface Units den Synchronisierungsimpulsabschnitt jeder Synchronisierungsmeldung.
Die mehreren Synchronisierungsimpulse werden durch einen BTL-Treiber
mit offenem Kollektor zu einem einzelnen Impuls kombiniert. Zudem
kann jedes LRM einen anfänglichen
Synchronisierungsimpuls erzeugen. Da der Synchronisierungsmechanismus
dezentralisiert ist, muß kein
bestimmtes LRM betriebsbereit sein, um die Rückwand hochzufahren oder Synchronisierung
beizubehalten.
-
Nach
dem Empfangen irgendeiner Synchronisierungsmeldung sollten alle
Bus Interface Units streng synchronisiert sein, bevorzugt mit einer
Genauigkeit innerhalb einer Bitzeit. Da Oszillatoren schließlich jedoch
driften, kann sich die Zwischenmeldungslücke schließen. Deshalb werden die kurzen
Resynchronisierungsmeldungen mit ausreichender Frequenz in die Befehltabellen
programmiert, um ein signifikantes Schließen der Lücken zu verhindern.
-
Jede
Bus Interface Unit pflegt einen Zähler, der von ihrem synchronisierungskorrigierten
Oszillator angesteuert wird. Die Synchronisierungsmechanismen machen
die Werte in diesen Zählern
für alle Bus
Interface Units identisch. Dieser Zeitwert kann dazu verwendet werden,
Daten zeitlich abzustempeln.
-
Um
das System noch vorhersagbarer zu machen, wird die Ausführung der
Software in den verarbeitenden LRMs auf die Ausführung der Befehle in der Verwendungstabelle
synchronisiert. Somit befindet sich die Applikationssoftware während des
gleichen Busübertragungsfensters
in jedem Bereich am gleichen Punkt. Ein Vorzug ist, daß Meldungslatenzen
reduziert werden. Ergebnisse können
zur Übertragung
eingeplant werden, direkt nachdem sie erzeugt worden sind und Daten
können
von den Ein/Aus- Leitungen
des LRM hereingebracht werden, direkt bevor sie benötigt werden.
Ein zweiter Vorzug ist, daß es
weniger Latenzjitter an Schrankausgängen gibt, was bedeutet, daß das Integrated
Modular Avionics System in engeren Steuerungsschleifen genutzt werden
kann. Ein dritter Vorzug ist, daß eine doppelte Pufferung kaum
erforderlich ist, da es möglich
ist, die Übertragung
eines Datenblocks für
eine Zeit zu planen, wenn es bekannt ist, daß die Funktionssoftware nicht
auf ihn zugreift oder ihn modifiziert. Die Eliminierung von doppelten
Puffern bedeutet, daß Intermodule
Memories kleiner sein können
und der Speicherzugriff schneller sein kann.
-
Um
die Fehlerdetektionsabdeckung zu verbessern, werden Daten auf den
vier seriellen Leitungen, die in den beiden Self-Checking-Bus-Paaren verwendet
werden, auf vier unterschiedliche Weisen codiert, was in 7 dargestellt
ist: die Daten auf Bus Ax weisen normale Polarität auf; die Daten auf Bus Bx
sind invertiert; für
die Daten auf Bus Ay ist jedes zweite Bit umgeschaltet, beginnend
mit dem zweiten Bit; und die Daten für Bus By sind das Inverse des
Busses Ay.
-
Dieses
Codierverfahren gestattet, daß Buskurzschlüsse oder
Transientenstörungen,
die mehrere Datenleitungen gleichzeitig beeinflussen, detektiert
werden. Es gestattet auch eine schnelle Detektierung von Buskollisionen,
die durch falsch funktionierende Bus Interface Units verursacht
werden. Weil Busleitungen „verdrahtet
OR" sind, wenn ein
Bus-Interface-Unit-Paar falsch funktioniert und versucht, zur gleichen
Zeit wie ein anderes Bus-Interface-Unit-Paar zu übertragen, erscheinen illegale Codierungen,
sobald Bus-Interface-Unit-Paare
differierende Daten übertragen.
Ein zusätzlicher
Vorzug dieses Codierverfahrens besteht darin, daß der Leistungsverbrauch von
den übertragenen
Daten unabhängig
ist. Zwei Busleitungen sind immer auf H und zwei sind immer auf
L; wenn sich die Daten ändern, ändern zwei
der Busse ihren Zustand und zwei nicht. Weil der Leistungsverbrauch
konstant ist, braucht die Stromversorgung nicht für ein Worst-Case-Datenmuster ausgelegt
zu werden.