-
Die
Erfindung betrifft eine Buswächtereinheit für einen
Netzknoten eines Datenbussystems mit synchroner Datenübertragung,
welche das Auftreten von Nachrichten auf dem Datenbus während einer Zeitdauer überwacht
und Mittel zum Bereitstellen eines Freigabesignals für Sendevorgänge von
am Datenbus angekoppelten Netzknoten innerhalb eines Zeitschlitzes
in jedem Netzzugriffszyklus umfasst.
-
Im
Gegensatz zu asynchronen Datenbussystemen, bspw. dem CAN-Datenbus, bei denen
jeder Netzknoten Nachrichten zu jedem Zeitpunkt nach Bedarf auf
den Datenbus einkoppelt, weisen zeitgesteuerte Datenbussysteme,
wie z.B. der FlexRay-Datenbus, den einzelnen Netzknoten feste Zeitschlitze zu,
in welchen die Netzknoten ihre Nachrichten exklusiv übertragen.
Die einzelnen Netzknoten müssen dabei
lediglich die ihnen zugewiesenen Zeitschlitze kennen, sowie wissen,
wann andere Netzknoten senden, von denen sie Daten empfangen. Die
Netzknoten benötigen
aber kein Wissen über
die Zuordnung aller Zeitschlitze zu den einzelnen Netzknoten. Die Kommunikation
auf dem Datenbus erfolgt in Form von Kommunikationszyklen, wobei
alle Netzknoten in sequentiellen Zeitschlitzen auf dem Datenbus
ihre Nachrichten übertragen
können.
-
Trotz
dieser exklusiven Zuordnung der Zeitschlitze kann es zu Konflikten
auf dem Datenbus kommen, wenn Netzknoten Signale in falschen Zeitschlitzen übertragen.
Um dem entgegenzuwirken, wird ein sogenannter Buswächter oder
auch Bus Guardian als unabhängige Überwachungseinheit
eingesetzt, der den Zugriff der einzelnen Netzknoten auf den Datenbus überwacht,
freigibt und ungewollte Kommunikationszugriffe der Netzknoten auf
den Datenbus verhindert.
-
Die
Netzknoten können
entweder linear oder ringförmig über den
Datenbus miteinander verbunden sein oder unter Zwischenschaltung
eines Sternkopplers in sternförmiger
Anordnung vernetzt sein. Über
den Sternkoppler werden die durchlaufenden Nachricht eines Knotens
an alle anderen Knoten ohne Zwischenspeicherung oder Veränderung
weitergeleitet. An Sternkoppler können neben Knoten auch andere
Sternkoppler angeschlossen werden.
-
Eine
Buswächtereinheit
dieser Art, auch "Bus
Guardian" genannt,
ist in dem Konferenzbeitrag C. Temple, Avoiding the Babbling-Idiot Failure in
a Time-Triggered Communication System, FTCS-28, München 1998 beschrieben. Die
dortige Buswächtereinheit
bildet neben einem Verarbeitungs- bzw. Prozessorsystem, das auch
als Kommunikationssteuereinheit oder Kommunikationscontroller fungiert,
und einer Treiberstufe, über
die das Prozessorsystem an einen die Netzknoten koppelnden Datenbus
angekoppelt ist, eine eigenständige
Einheit. Das Prozessorsystem umfasst einen oder mehrere Prozessoreinheiten,
ein statisches TDMA-Schema, eine synchronisierte Zeitbasis, einen
Sendeempfänger
und einen Fehlerdetektionsmechanismus. Die Buswächtereinheit empfängt vom
Prozessorsystem ein Auslöse-
bzw. Triggersignal, das den Beginn eines jeweiligen Buszugriffszyklus
triggert, sowie ein Sendeausführungssignal
("transmission-inprogress-Signal"), das die Dauer
eines jeweiligen Sendevorgangs anzeigt und dazu dient, innerhalb
der Buswächtereinheit
ein rudimentäres
Fehlerdetektionsschema zu implementieren, indem anhand dieses Signals
festgestellt wird, ob ein Sendevorgang den Buszugriffszyklus verletzt.
Im Fehlerfall gibt die Buswächtereinheit ein
Fehlersignal an das Prozessorsystem ab. Das Triggersignal dient
gleichzeitig zur Synchronisation der eigenen, z.B. von einem Quarzoszillator
gelieferten Zeitbasis der Buswächtereinheit
mit derjenigen des Prozessorsystems. Während eines jeden Buszugriffszyklus
gibt die Buswächtereinheit
ein Bustreiber-Freigabesignal gemäß einem abgelegten Freigabesignalmuster
an die Treiberstufe ab, wobei das Freigabesignalmuster so gewählt ist,
dass es den Buszugriff zum Senden einer einzelnen Botschaft durch
das zugehörige
Prozessorsystem zum Datenbus zu einem bestimmten Zeitpunkt während eines Sendezeitfensters
ermöglicht,
dessen Länge
derjenigen einer Einzelbotschaft entspricht. Dem Sendezeitfenster
ist innerhalb des Buszugriffzyklus eine Vorphase vorgeschaltet und
eine Nachphase nachgeschaltet, während
denen der Buszugriff jeweils gesperrt bleibt.
-
In
dem Zeitschriftenaufsatz S. Poledna und G. Kroiss, TTP: "Drive by Wire" in greifbarer Nähe, Elektronik
14/1999, Seite 36 ist eine Buswächtereinheit
für ein
TTP/C-Datenkommunikationsnetz beschrieben, wie es insbesondere in
Kraftfahrzeugen verwendet wird, wobei dort die Buswächtereinheit
in die Kommunikationssteuereinheit des Netzknotens integriert ist.
Die dortige Buswächtereinheit
verwendet keine eigene Zeitbasis, sondern diejenige der Kommunikationssteuereinheit,
und soll mit einer eigenen Takterzeugung in der TTP/C-Kommunikationssteuereinheit
dafür sorgen,
dass der Netzknoten nur im jeweils richtigen Zeitfenster bzw. Zeitschlitz auf
den Bus zugreifen kann. Eine Schwierigkeit solcher Buswächtereinheiten
besteht darin, dass im Fall eines Fehlers der Kommunikationssteuereinheit
und insbesondere von deren Zeittakterzeugungsmitteln unter Umständen fehlerhafte
Zugriffe auf den Bus erfolgen.
-
Die
DE 3726742 A1 zeigt
bereits eine Buswächtereinheit,
die den Buszugriff unterbindet, wenn nach einer Zeitdauer, die durch
das Aufladen eines Kondenstors vorgegeben wird, ein Sendesignal
auf dem Bus vorliegt. Die Zeiterfassung erfolgt dabei durch den
Kondensator, der das Ende eines Sendezyklus vorgibt. Der Buszugriff
durch das Sendemittel eines Netzknotens wird unterbrochen, wenn
nach der Zeitdauer weitergesendet wird.
-
Der
Erfindung liegt als Aufgabe die Bereitstellung einer Buswächtereinheit
der eingangs genannten Art zugrunde, die gegenüber herkömmlichen Buswächtereinheiten
verbesserte Funktionalitäten
aufweist und die ohne a-priori-Wissen, d.h. ohne vorab programmierte
Zuordnung der Zeitschlitze zu den Netzknoten arbeitet.
-
Die
Erfindung löst
dieses Problem durch die Bereitstellung einer Buswächtereinheit
mit den Merkmalen des Anspruchs 1. Danach ist in einem Netzknoten
mit einer Recheneinheit und einer Kommunikationsschnittstelle (Communication
Controller) eine Buswächtereinheit
vorgesehen, die aus dem auf dem Datenbus anliegenden Nachrichten
lernt, welcher Netzknoten in welchem Zeitschlitz seine Nachrichten sendet.
Die Buswächtereinheit
weist ein Mittel zum Erkennen der Datenbusbelegung auf, welches
aufgrund der über
den Datenbus eingehenden Nachrichten erkennt, zu welcher Zeitdauer
innerhalb eines vollständigen Übertragungszyklus
ein bestimmter Netzknoten sendet. Ferner erlernt das Mittel während einer
Initialisierungsphase aufgrund des Buszugriffs der Netzknoten den
zugehörenden
Zeitschlitz für
alle Netzknoten und nach der Initialisierungsphase gibt der Buswächter die
Zeitschlitze für
einen Netzknoten frei, die das Mittel während der Initialisierungsphase erlernt
hat.
-
Bei
einer Weiterbildung der Erfindung ist ein Sternkoppler mit einem
zentralen Buswächter
und einem Netzknoten in einem Gehäuse zusammengefasst. Ferner
kann der Sternkoppler eine Diagnoseeinheit aufweisen, welche das
Verhalten des Buswächters
und die von diesem registrierten Zugriffsverletzungen sowie andere
Betriebszustände
erfasst und ausgibt. Ein in dieser Art ausgestalteter Sternknoten
weist vorteilhafter Weise eine gemeinsame Stromversorgung und kein
extra Gehäuse
für den Sternkoppler
auf. Außerdem
kann die Rechnerleistung des Netzknotens durch den Buswächter eingesetzt
werden. Das Mittel zum Erkennen der Datenbusbelegung erkennt mittels
eines Watchdogs die auf dem Datenbus eingehenden Nachrichten und ordnet
nacheinander den angeschlossenen Netzknoten die Zeitschlitze in
ihrer sequentiellen Abfolge innerhalb eines gesamten Kommunikationszyklus
zu. Der Buswächtereinheit
kann mit einem Sternknoten mit sternförmig angeordneten Datenbusleitungen
in Verbindung sehen und es ist ein Mittel zum Erkennen der Datenbusbelegung
vorgesehen, welches aufgrund der auf den einzelnen Sternleitungen
eingehenden Nachrichten Zeitschlitze den übertragenden Netzknoten zuordnet.
Im Normalbetrieb des Datenbus gibt der Buswächter dann für jeden
Netzknoten einen Zeitschlitz zum Senden von Nachrichten frei.
-
Das
herausragende Merkmal des erfindungsgemäßen Konzepts ist die Funktionsweise
des Buswächters,
der ohne ein a-priori-Wissen
die Netzkoten zu den entsprechenden Zeitschlitze zuordnet, indem
der Buswächter
beim Hochfahren des Systems den Datenbus abhört und jedem Netzknoten den
Zeitschlitz freigibt, den er durch senden einer Nachricht zu Anfang
beansprucht hat. Soweit die Zeitschlitze beim Hochfahren des Systems
nicht kollidieren, werden diese Zeitschlitze in ihrer sequentiellen
Abfolge auch in den folgenden Übertragungszyklen
auf dem Datenbus so freigegeben. Dadurch können die Knotenrechner nur
in ihren statisch zugewiesenen Zeitschlitzen an die anderen Netzknoten
senden. Dadurch ist es nicht notwendig, das im ganzen System verteilte
Wissen im Sternknoten verfügbar
zu halten, da dieser die Zuordnung zu den Zeitschlitzen lernt. Erweiterungen
des Systems um weitere Knoten führen
damit nicht zu der Notwendigkeit, den Buswächter an den neuen Kommunikationszeitplan
anzupassen.
-
Die
Buswächtereinheit
funktioniert folgendermaßen.
Nach dem Anlegen der Versorgungsspannung an die Netzknoten des Systems
dauert es unterschiedlich lange, bis diese bereit sind, mit der Kommunikation
zu beginnen. Dies liegt an der unterschiedlichen Hardware der Knoten
sowie an der unterschiedlichen Software, welche z.B. verschieden lange
Initialisierungsphasen durchläuft.
-
Damit
ergeben sich mindestens drei Phasen bis zur Herstellung einer vollständigen Kommunikation
innerhalb des Systems. In der ersten Phase versuchen ein oder mehrere
Netzknoten nach einem protokollspezifischen Verfahren die Kommunikation aufzubauen.
In dieser Phase kann es zu Neustarts von Knoten kommen, es findet
kein Datenaustausch statt. In der zweiten Phase kommunizieren mehrere Netzknoten
miteinander, während
sich hinzukommende Netzknoten in den bestehenden Kommunikationszeitplan
einordnen, um danach ebenfalls an der Kommunikation teilzunehmen.
In der dritten Phase nehmen dann alle Netzknoten an der regulären Kommunikation
teil. Die Buswächtereinheit
verhält
sich in diesen Phasen folgendermaßen: Während der ersten Phase lässt die
Buswächtereinheit
alle Zugriffe der Netzknoten auf den Datenbus zu. Während der
zweiten und dritten Phase wird der Zugriff der Netzknoten kontrolliert
und reglementiert. Der Buswächter
lässt dann
nur einen Buszugriff eines Netzknotens in dem durch den Lernvorgang
bestimmten Zeitschlitz zu. Dabei können bspw. an jeden Netzknoten
Prioritäten vergeben
und die Zeitschlitze entsprechend dieser Prioritäten entsprechend freigehalten.
-
Es
ist optional möglich,
dass die dynamischen Anpassung der Überwachungseinheit an den Kommunikationszeitplan
auf Veranlassung des Kommunikationseinheit des Knotens beendet wird
und danach der Zugriff nur noch den in der Liste eingetragenen Netzknoten
erlaubt wird. Falls das Kommunikationssystem innerhalb eines Kommunikationszyklus über Phasen
verfügt,
in welcher die Netzknoten dynamisch den Datenbus verwenden dürfen, so muss
die Kommunikationseinheit des Netzknotens dies dem Buswächter auf
geeignete Art und Weise signalisieren.
-
Der Übergang
von der ersten Phase zur zweiten Phase erfolgt auf Veranlassung
der Kommunikationseinheit des Netzknotens, welcher den Betriebszustand
des Systems kennt. Die folgenden Ausführun gen gelten für die zweite
und dritte Phase. In diesen Phasen passt sich die Überwachungseinheit
an den Kommunikationszeitplan an, d.h. sie lernt, welche Knoten
in welchen Zeitschlitzen Daten übertragen
und gewährt
diesen, und nur diesen, den Zugriff auf den Datenbus. Dabei erfasst
der Buswächter nicht
die Kennung eines Knotens sondern unterscheidet sie bezüglich des
Anschlusses an die verschiedenen Anschlüsse des Sternkopplers. Dazu verfügt die Überwachungseinheit über eine
Liste, welche die Zuordnung von Zeitschlitzen zu sendeberechtigten
Knoten, d.h. Anschlüssen
am Sternkoppler herstellt. Zu Beginn der zweiten Phase ist diese Liste
leer. Die Kommunikationseinheit des Knotens signalisiert der Überwachungseinheit
regelmäßig den
Beginn eines Kommunikationszyklus sowie den Beginn jedes Zeitschlitzes.
-
Falls
nach dem Beginn eines Zeitschlitzes ein Knoten versucht, Daten zu übertragen,
so verfährt
die Buswächtereinheit
wie folgt: Falls dieser Sendeschlitz bisher keinem Knoten zugewiesen
wurde, so wird in der Liste diese Zuweisung durchgeführt. Der
Zugriff des Knotens wird gewährt.
Falls dieser Sendeschlitz bereits diesem Knoten zugewiesen wurde,
so wird der Zugriff gewährt.
Falls dieser Sendeschlitz einem anderen Knoten zugewiesen wurde, so
wird der Zugriff verhindert. Der fehlerhafte Zugriff wird registriert
und kann über
die Diagnoseeinheit weitergemeldet werden.
-
Es
könnte
sein, dass ein fehlerhafter Netzknoten versucht, in einem falschen,
bisher nicht zugewiesenen Sendeschlitz Nachrichten mit Daten zu übertragen.
Dieser Fehler kann von der Kommunikationseinheit des Netzknotens
erkannt und dem Buswächter
signalisiert werden. Abhängig
von der Art des Kommunikationssystems kann diese Erkennung allerdings
erst nach dem Ende der Datenübertragung erfolgen.
Der Buswächter
macht daraufhin die fehlerhafte Zuweisung in der Liste rückgängig. Zusätzlich könnte in
der Liste der fehlerhafte Netzknoten vermerkt werden, damit in der
nächsten
Runde ein Sendeversuch dieses Knotens von vornherein unterbunden
wird, damit der korrekte Netzknoten nicht am Senden gehindert wird.
-
In
einer Weiterbildung der Erfindung beinhaltet die Buswächtereinheit
eine Diagnoseeinheit, mit der die Funktion der Buswächtereinheit
und/oder einer vom Freigabesignalmuster gesteuerten Sendetreibereinheit
diagnostiziert werden kann.
-
Die
Buswächtereinheit
kann zusätzlich
eine Zugriffsabsicherungseinheit aufweisen, die sicherstellt, dass
Betriebsparameter korrekt eingelesen werden, insbesondere ein jeweils
gewünschtes,
in einen Zeitmusterspeicher einzulesendes Triggersignal für das Freigabesignal
des Buswächters.
-
Eine
vorteilhafte Ausführungsform
der Erfindung ist in den Zeichnungen dargestellt und wird nachfolgend
beschrieben. Hierbei zeigt:
-
1 ein Blockdiagramm einer
Buswächtereinheit
und einer zugeordneten Treiberstufe eines Netzknotens eines Datenkommunikationsnetzes.
-
1 zeigt eine Buswächtereinheit 1,
die als eigenständige
Einheit auf Höhe
einer Bustreibereinheit 2 zwischen einem Kommunikationscontroller 3 und
einem Kommunikationsmedium 4, wie einem Datenbus, angeordnet
ist, wobei über
das Kommunikationsmedium 4 in üblicher Weise mehrere Netzknoten
eines entsprechenden Datenkommunikationsnetzes miteinander in Datenaustauschverbindung
stehen. Die Buswächtereinheit 1 ist über eine entsprechende
Schnittstellenebene, wie in 1 punktiert
symbolisiert, mit der "Außenwelt" verbunden, insbesondere
mit dem Kommunikationscontroller 3, einer vom Kommunikationscontroller 3 zum Kommunikationsmedium 4 führenden
Sendeleitung 5, einer vom Kommunikationsmedium 4 zum
Kommunikationscontroller 3 führenden Empfangsleitung 6,
in welcher sich eine zugehörige
Emp fängereinheit 18 befindet,
und einer in der Sendeleitung 5 angeordneten Sendetreibereinheit 7.
-
Vom
Netzknoten auf das Kommunikationsmedium 4 auszugebende
Daten werden vom Kommunikationscontroller 3 in einer herkömmlichen
Weise aufbereitet und der Sendetreibereinheit 7 zugeführt, die
sie zeitgetriggert als Datenpaket-Botschaften innerhalb von Zeitfenstern
auf den Datenbus 4 gibt, wenn und soweit die Sendetreibereinheit 7 hierfür von der
Buswächtereinheit 1 freigegeben
wird.
-
Zur
zeitgetriggerten Steuerung der Sendetreibereinheit 7 beinhaltet
die Buswächtereinheit 1 eine
Ablaufsteuerungseinheit 8, der eine Treiberfreigabeeinheit 9 nachgeschaltet
ist, die ein Treiberfreigabesignal 10 erzeugt, das als
Ansteuersignal für
die Sendetreibereinheit 7 dient. Das Treiberfreigabesignal 10 definiert
gewisse Zeitfenster innerhalb eines jeweiligen Netzzugriffszyklus,
während
denen die Sendetreibereinheit 7 aktiviert wird, so dass
sie das Senden von Daten vom Kommunikationscontroller 3 auf
das Kommunikationsmedium 4 zulässt, während sie ansonsten derartige
Sendevorgänge
nicht unterstützt,
d.h. den Netzzugriff für
den Kommunikationscontroller 3 auf das Kommunikationsmedium 4 sperrt.
Lage und Dauer der Zeitfenster sind durch ein entsprechendes Freigabesignal-Zeitmuster
definiert, das in einem zugehörigen
Zeitmusterspeicher 11 der Buswächtereinheit 1 abgelegt
ist. Erfindungsgemäß lernt
der Buswächter
diese Freigabe-Zeitmuster während
der Initialisierungsphase des Datenbussystems, die aus den drei
bereits beschriebenen einzelnen Phasen besteht.
-
Zur
Festlegung eines jeweiligen Netzzugriffszyklus empfängt die
Buswächtereinheit 1 ein Triggersignal 12 vom
Kommunikationscontroller 3, welches je einen Triggerimpuls
am Anfang und Ende des so definierten Netzzugriffszyklus beinhaltet. Durch
das Triggersignal 12 erhält die Ablaufsteuerung 8 somit
vom Kommunikationscontroller 3 die Information über Beginn
und Ende des Netzzugriffszyklus. Sie steuert darauf zeitlich abgestimmt
die Treiberfreigabeeinheit 9 zur Abgabe des Treiberfreigabesignals 10 an,
wobei sie ein Taktsignal 15 benutzt, das von einem eigens
für die
Buswächtereinheit 1 vorgesehenen
Zeittaktgenerator 13 erzeugt wird, durch den somit der
Buswächtereinheit 1 eine
eigene Zeitbasis getrennt von derjenigen des Kommunikationscontrollers 3 bereitgestellt
wird. Die Synchronisation der beiden Zeitbasen erfolgt vorzugsweise
mit Hilfe des Triggersignals 12, so dass kein zusätzliches Synchronisationssignal
notwendig ist.
-
Die
Buswächtereinheit 1 weist
des weiteren eine Watchdog-Einheit 14 auf,
welche die fehlerfreie zeitliche Abstimmung der erwähnten Signale überwacht,
wozu ihr das Taktsignal 15, das Triggersignal 12 und
das im Zeitmusterspeicher 11 abgelegte Treiberfreigabesignalmuster
zugeführt
werden. Speziell überwacht
die Watchdog-Einheit 14 das Triggersignal 12 daraufhin,
ob die einzelnen Triggerimpulse im richtigen Abstand aufeinanderfolgen,
d.h. die einzelnen Netzzugriffszyklen die richtige zeitliche Länge haben.
Dabei lässt
sie eine vorgebbare "Triggerjitter"-Toleranz zu, indem
sie auf ein fehlerhaftes Triggersignal erst schließt, wenn
der festgestellte Triggerimpulsabstand kleiner als ein vorgebbarer
unterer Grenzwert oder größer als
ein vorgebbarer oberer Grenzwert ist, der um die gewünschte Toleranzlänge über dem
unteren Grenzwert liegt, wobei vorzugsweise der Normal- oder Sollabstand
für die
Triggerimpulse in der Mitte zwischen dem unteren und dem oberen
Grenzwert liegt. Bei erkanntem Fehler steuert die Watchdog-Einheit 14 die
Treiberfreigabeeinheit 9 an, um die Treiberfreigabe und
damit den Netzzugriff zum Senden von Daten für den betreffenden Netzknoten
temporär
zu sperren.
-
Über eine
Zugriffsabsicherungseinheit 16 können die benötigten Betriebsparameterdaten
in die Buswächtereinheit 1 eingelesen
und aus dieser ausgelesen werden. Zudem verfügt die Buswächtereinheit 1 über eine
Diagnoseeinheit 17, die eingangsseitig mit der Sendeleitung 5,
der Empfangsleitung 6, der Ablaufsteuerungseinheit 8,
der Treiberfreigabeeinheit 9 und der Watchdog-Einheit 14 verbunden
ist und eine Funktionsdiagnose dieser Systemkomponenten ermöglicht.
Wird hierbei eine Fehlfunktion diagnostiziert, kann über die
Diagnoseeinheit 17 wiederum die Treiberfreigabeeinheit 9 angesteuert
werden, um den Netzzugriff für
den zugehörigen
Netzknoten zu sperren. Im übrigen
kann das Diagnoseresultat über
die Zugriffsabsicherungseinheit 16 ausgelesen werden.
-
Alternativ
zu der im Zusammenhang mit 1 beschriebenen
Ausführung
kann die Buswächtereinheit
im Sternknoten eines Datenbussystems umgesetzt werden und aufgrund
der während
einer Initialisierungsphase über
den Datenbus laufenden Nachrichten können den einzelnen Netzknoten
durch einen Anpassungsvorgang die entsprechenden Zeitschlitze zugeordnet
werden. Welche Nachrichten von welchem Netzknoten stammen, erkennt
der Buswächter
aufgrund der den sternförmigen
Datenleitungen zugeordneten Steckerbelegungen, von denen jeweils
der Datenbus genau zu einem Netzknoten verläuft.