-
Die
vorliegende Erfindung betrifft ein Verfahren zur Übergabe
von Daten zwischen einem zeitgesteuerten Datenübertragungssystem und einem
Prozessor eines Teilnehmers des Datenübertragungssystems. Dabei werden
alle Komponenten des Datenübertragungssystems
auf eine gemeinsame globale Zeitbasis synchronisiert. Der Teilnehmer-Prozessor
hat eine eigene Zeitbasis, die auch von einem auf dem Teilnehmer-Prozessor
ablaufenden Betriebssystem benutzt wird. Die Erfindung betrifft
außerdem
ein Datenübertragungssystem
mit mehreren Teilnehmern und einer Netzwerkstruktur zur Datenübertragung
zwischen den Teilnehmern gemäß dem Oberbegriff
des Anspruchs 10. Des Weiteren betrifft die vorliegende Erfindung
einen Teilnehmer eines Datenübertragungssystems
gemäß dem Oberbegriff des
Anspruchs 14. Schließlich
betrifft die Erfindung auch einen Kommunikations-Controller eines
Teilnehmers eines Datenübertragungssystems
gemäß dem Oberbegriff
des Anspruchs 16.
-
Stand
der Technik
-
Die
Vernetzung von Steuergeräten,
Sensorik und Aktuatorik mit Hilfe eines Kommunikationssystems und
einer Kommunikationsverbindung bspw. in Form eines Bussystems hat
in den letzten Jahren beim Bau von modernen Kraftfahrzeugen oder
auch im Maschinenbau, insbesondere im Werkzeugmaschinenbereich,
als auch in der Automatisierung drastisch zugenommen. Synergieeffekte
durch Verteilung von Funktionen auf mehrere Steuergeräte können dabei
erzielt werden. Man spricht hierbei von verteilten Systemen.
-
Die
Kommunikation zwischen verschiedenen Teilnehmern eines solchen Datenübertragungssystems
findet mehr und mehr über
ein Bussystems statt. Der Kommunikationsverkehr auf dem Bussystem,
Zugriffs- und Empfangsmechanismen, sowie Fehlerbehandlung werden über ein
Protokoll geregelt. Ein bekanntes Protokoll ist beispielsweise das FlexRay-Protokoll,
wobei derzeit die FlexRay-Protokollspezifikation v2.1 zu Grunde
liegt. Bei FlexRay handelt es sich um ein schnelles, deterministisches und
fehlertolerantes Bussystem, insbesondere für den Einsatz in Kraftfahrzeugen.
Das FlexRay-Protokoll arbeitet nach dem Prinzip des Time Division
Multiple Access (TDMA), wobei den Teilnehmern bzw. den zu übertragenden
Botschaften feste Zeitschlitze zugewiesen werden, in denen sie einen
exklusiven Zugriff auf die Kommunikationsverbindung haben. Die Zeitschlitze
wiederholen sich dabei in einem festgelegten Zyklus, so dass der
Zeitpunkt, zu dem eine Botschaft über den Bus übertragen
wird, exakt vorausgesagt werden kann und der Buszugriff deterministisch
erfolgt.
-
Um
die Bandbreite für
die Übertragung
von Botschaften auf dem Bussystem optimal zu nutzen, unterteilt
FlexRay den Zyklus in einen statischen und einen dynamischen Teil.
Die festen Zeitschlitze befinden sich dabei im statischen Teil am
Anfang eines Buszyklusses. Im dynamischen Teil werden die Zeitschlitze
dynamisch vorgegeben. Darin wird nun der exklusive Buszugriff jeweils
nur für
eine kurze Zeit, für
die Dauer mindestens eines sogenannten Minislots, ermöglicht.
Nur wenn innerhalb eines Minislots ein Buszugriff erfolgt, wird
der Zeitschlitz um die benötigte
Zeit verlängert.
Damit wird Bandbreite also nur verbraucht, wenn sie auch tatsächlich benötigt wird.
Dabei kommuniziert FlexRay über
eine oder zwei physikalisch getrennte Leitungen mit einer Datenrate
von jeweils maximal 10 Mbit/sec. Selbstverständlich kann FlexRay aber auch
mit niedrigeren Datenraten betrieben werden. Die beiden Kanäle entsprechen
dabei der physikalischen Schicht, insbesondere des sogenannten OSI
(Open System Interconnection) Schichtenmodells. Diese dienen hauptsächlich der
redundanten und damit fehlertoleranten Übertragung von Botschaften,
können
jedoch auch unterschiedliche Botschaften übertragen, wodurch sich dann
die Datenrate verdoppeln würde.
Es ist auch denkbar, dass sich das über die Verbindungsleitungen übertragene
Signal aus der Differenz von über
die beiden Leitungen übertragenen
Signalen ergibt. Die physikalische Schicht ist derart ausgestaltet, dass
sie entweder eine elektrische oder eine optische Übertragung
des oder der Signale über
die Leitung(en) oder eine Übertragung
auf anderem Wege ermöglicht.
-
Um
synchrone Funktionen zu realisieren und den Datendurchsatz durch
kleine Abstände
zwischen zwei Botschaften zu optimieren, benötigen die Teilnehmer in dem
Kommunikationsnetzwerk eine gemeinsame Zeitbasis, die sogenannte
globale Zeit. Für
die Uhrensynchronisation werden Synchronisationsnachrichten im statischen
Teil des Zyklus übertragen,
wobei mit Hilfe eines speziellen Algorithmus entsprechend der FlexRay-Spezifikation die
lokale Uhrzeit der Teilnehmer so korrigiert wird, dass alle lokalen
Uhren zu einer virtuellen globalen Uhr synchron laufen.
-
Den
Teilnehmern des Datenübertragungssystems
sind Prozessoren zugeordnet, die als Teilnehmer- oder Host-Prozessoren
bezeichnet werden. Auf diesen Prozessoren läuft ein Computerprogramm ab,
durch das es dem Teilnehmer möglich wird,
eine ihm zugeordnete Funktionalität, beispielsweise eine Steuer-
und/oder Regelungsfunktion, zu erfüllen. Zur Erfüllung seiner
Funktionalität
kann der Host-Prozessor von anderen Teilnehmern des Datenübertragungssystems,
beispielsweise von Sensoren, über
die Netzwerkstruktur empfangene Daten weiter verarbeiten. Ebenso
kann der Host-Prozessor ein Versenden von Daten, die er im Rahmen
der Erfüllung
seiner Funktionalität
generiert, beispielsweise von Ansteuerdaten für Aktoren, über die Netzwerkstruktur des
Datenübertragungssystems
an andere Teilnehmer des Datenübertragungssystems
veranlassen.
-
Auf
den Host-Prozessoren läuft
ein Betriebssystem ab, das die Abläufe verschiedener Prozesse und
Tasks des Computerprogramms zur Realisierung der Funktionalität des Teilnehmers
koordiniert und steuert. Nach dem Stand der Technik verfügen die
bekannten Host-Prozessoren üblicherweise über einen
eigenen internen oder externen Taktgeber, der beispielsweise als
ein Quarz ausgebildet ist und der ein Taktsignal für den Host-Prozessor
zur Verfügung stellt.
Das Taktsignal ist unabhängig
von anderen externen Taktsignalen, die beispielsweise zur Synchronisation
des Datenübertragungssystems
auf die globale Zeitbasis benutzt werden. Das Betriebssystem und
das auf dem Host-Prozessor ablaufende Computerprogramm beziehungsweise
die Prozesse und Tasks des Computerprogramms sind auf das Taktsignal
des internen oder externen Taktgenerators synchronisiert.
-
Sowohl
der interne als auch der externe Taktgenerator des Host-Prozessors
sind eigenständige Taktsignale
mit einer eigenen Zeitbasis, die unabhängig von der globalen Zeitbasis
ist, auf die sämtliche Komponenten
des Datenübertragungssystems
synchronisiert sind. Das bedeutet also, dass die Host-Prozessoren
der Teilnehmer eines Datenübertragungssystems
sowohl zueinander als auch bezüglich
des Datenübertragungssystems
nicht synchronisiert arbeiten. Aus diesem Grund sind zur Übergabe von
Daten zwischen einem Datenübertragungssystem
und einem Host-Prozessor üblicherweise
Speicherelemente vorgesehen, in die Daten geschrieben werden, die
entweder über
das Datenübertragungssystem
zur Weiterverarbeitung durch den Host-Prozessor angekommen sind oder die von
dem Host-Prozessor zur Übermittlung über das
Datenübertragungssystem
zur Verfügung
gestellt wurden. Aus dem Speicherelement werden die dort abgelegten
Daten dann bei Bedarf von dem Host-Prozessor zur Weiterverarbeitung
beziehungsweise von einem Kommunikations-Controller des Datenübertragungssystems
zur Übermittlung über die
Netzwerkstruktur abgeholt. Da das Ablegen der Daten in den Speicherelementen
und das Abholen der Daten aus den Speicherelementen auf Grundlage
unterschiedlicher Taktzeiten erfolgt, kann es auf Grund der fehlenden
Synchronisation zwischen Datenübertragungssystem und
Host-Prozessor zu relativ langen Latenzzeiten kommen. Darüber hinaus
sind Rechtzeitigkeit der Datenübertragung
sowie Gleichzeitigkeit oder Quasi-Gleichzeitigkeit der Datenablage in
dem Speicherelement und der Datenentnahme aus dem Speicherelement
in keinster Weise gewährleistet.
-
Die
Zeitverzögerungen
in der Übergabe
von Daten zwischen dem Host-Prozessor und dem Datenübertragungssystem
ist insbesondere für
eine ereignisgesteuerte Datenübertragung
von Nachteil, da die Datenübertragung
und die anschließende
Verarbeitung der übertragenden
Daten in dem Host-Prozessor in diesem Fall das Ergebnis eines bestimmten Ereignisses
ist und in der Regel als Reaktion auf dieses Ereignis innerhalb
einer bestimmten Zeitdauer eine bestimmte Funktion auslösen sollte.
Auf Grund der fehlenden Synchronisation zwischen Host-Prozessor
und Datenübertragungssystem
kann es zu einem verspäteten
oder gar zu einem zu späten
Auslösen
der Funktion des Teilnehmers als Reaktion auf das Ereignis kommen.
-
Aus
dem Stand der Technik ist es auch bekannt, vor jeder Datenübergabe
zwischen dem Datenübertragungssystem
und dem Host-Prozessor eines Teilnehmers, die Betriebssystem-Zeitbasis vorzugsweise
jedes Mal auf die globale Zeitbasis des Datenübertragungssystems zu synchronisieren,
indem die nachfolgenden Schritte durchlaufen werden:
- a) Abfrage zwischen dem Host-Prozessor und dem Kommunikations-Controller
bezüglich
des aktuellen Bustaktes des Datenübertragungssystems;
- b) Ermittlung der Abweichung zur Betriebssystem-Zeitbasis und
der erforderlichen Korrekturwerte; und
- c) Korrektur der Zeitbasis.
-
Die
Synchronisation der Betriebssystems-Zeitbasis jedes Mal vor einer
Datenübergabe ist
zeit- und rechenintensiv.
Insbesondere führen
die o.g. Schritte a) und b) zu einem erheblichen Zeit- und Rechenaufwand
für die
Synchronisation.
-
Aus
der
DE 103 40 165
A1 ist ein Verfahren und eine Vorrichtung zur Anbindung
von Sensoren oder Aktoren an ein Bus-System bekannt. Dabei wird vorgeschlagen,
mindestens eine von mehreren Phasen einer Signalverarbeitung in
dem Sensor beziehungsweise dem Aktor mit dem Zeittakt des Bus-Systems
zu synchronisieren. Insbesondere wird vorgeschlagen, dass der Sensor
oder Aktor auf eine globale Zeitbasis des Bus-Systems synchronisiert
wird. Die aus dieser Druckschrift bekannten Sensoren und Aktoren
verfügen über eine
Logik, über
die sie am Busverkehr teilnehmen können. Darüber hinaus verfügen die
bekannten Sensoren und Aktoren über
Mittel zur Sensorsignalverarbeitung in unterschiedlich schnellen
Takten. Die Sensoren und Aktoren weisen jedoch keinen Prozessor
mit einem darauf ablaufenden Betriebssystem zur Realisierung der
ihnen zugedachten Funktionalität
auf. Bei den Sensoren und Aktoren handelt es sich um die einfachste
und primitivste Form von Teilnehmern eines Datenübertragungssystems, die auf
relativ einfache Weise an das Datenübertragungssystem angeschlossen
und auf die globale Zeitbasis synchronisiert werden können.
-
Bei
komplexeren Teilnehmern, die beispielsweise über einen Host-Prozessor verfügen, auf
dem ein Betriebssystem, vorzugsweise eine multitaskingfähiges Betriebssystem,
abläuft,
ist das Anbinden des Host-Prozessors an das Datenübertragungssystem
und die Synchronisation der Betriebssystem-Zeitbasis und der globalen
Zeitbasis des Datenübertragungssystems
wesentlich aufwändiger
und komplizierter.
-
Offenbarung
der Erfindung
-
Ausgehend
von dem beschriebenen Stand der Technik liegt der vorliegenden Erfindung
die Aufgabe zu Grunde, die Übergabe
von Daten zwischen einem Prozessor eines Teilnehmers eines Datenübertragungssystems
und dem Datenübertragungssystem
derart auszugestalten und weiterzubilden, dass selbst in Fällen, in
denen der Teilnehmer relativ aufwändig und komplex aufgebaut
ist, in denen der Teilnehmer insbesondere einen Prozessor aufweist, auf
dem ein Betriebssystem ablauffähig
ist, eine einfache und zuverlässige
Synchronisation der Betriebssystem-Zeitbasis auf die globale Zeitbasis
des Datenübertragungssystems
möglich
ist. Insgesamt soll mit der vorliegenden Erfindung die Latenzzeit
bei der Datenübergabe
zwischen Host-Prozessor und Datenübertragungssystem verringert
und die Rechtzeitigkeit sowie die Gleichzeitigkeit der Datenübergabe
deutlich erhöht
werden.
-
Zur
Lösung
dieser Aufgabe wird ausgehend von dem Verfahren der eingangs genannten
Art vorgeschlagen, dass die Betriebssystem-Zeitbasis des Teilnehmer-Prozessors
zumindest vor einer Datenübergabe
auf die globale Zeitbasis des Datenübertragungssystems synchronisiert
wird und von einem Kommunikations-Controller des Teilnehmers ein
zu der globalen Zeitbasis des Datenübertragungssystems synchroner
Synchronisationstakt für
die Synchronisation der Betriebssystem-Zeitbasis bereitgestellt
wird.
-
Die
vorliegende Erfindung geht also von einem zeitgesteuerten Datenübertragungssystem
aus, in dem Daten beispielsweise nach dem FlexRay-Protokoll, nach
dem TTCAN (Time Triggered Controller Area Network)-Protokoll, nach
dem TTP/C (Time Triggered Protocol Class C)-Protokoll oder einem beliebig anderen
zeitgesteuerten Protokoll übertragen werden.
Obwohl die Erfindung im Folgenden beispielhaft anhand des FlexRay-Protokolls
erläutert wird,
ist sie auf das FlexRay-Protokoll beziehungsweise ein FlexRay-Datenübertragungssystem
nicht beschränkt,
sondern kann ohne weiteres auch in anderen zeitgesteuerten Protokollen
beziehungsweise zeitgesteuerten Datenübertragungssystemen eingesetzt
werden.
-
Ein
wichtiger Aspekt der Erfindung besteht darin, dass die Zeitbasis
des Betriebssystems der Host-Prozessoren durch eine externe Hardware-Einheit
und nicht wie üblich über die
Abarbeitung von Software auf die globale Zeitbasis des Datenübertragungssystems synchronisiert
wird. Dies erfolgt in der Regel über
das Auslesen von Zeitinformationen in Registern, dem Vergleichen
der Zeitinformationen mit der aktuellen Zeitbasis, dem Ermitteln
von Korrekturwerten und dem Schreiben der Korrekturwerte in entsprechende
Register für
die eigentliche Anpassung der Zeitbasis des Betriebssystems. Dadurch
erübrigt
sich ein sich im Stand der Technik zyklisch zu wiederholender Aufwand
für die
Abfrage der aktuellen Zeitbasis und die Überprüfung, ob überhaupt eine Synchronisation
der Betriebssystem-Zeitbasis auf die Zeitbasis des Datenübertragungssystems
erforderlich ist. Vielmehr wird bei der Erfindung auf jeden Fall
zu regelmäßigen Zeitpunkten
synchronisiert.
-
Das
Datenübertragungssystem
umfasst mehrere Teilnehmer, die über
Kommunikations-Controller
an eine Kommunikationsverbindung einer Netzwerkstruktur des Datenübertragungssystems angeschlossen
sind. Der Begriff der Netzwerkstruktur umfasst sowohl passive als
auch aktive Bauelemente. Beispiele hierfür sind: Verbindungsleitungen,
passive Sterne, aktive Sterne, Pegelwandler, Sende-Empfangs-Einheiten
(sogenannte Transceiver), etc. Die Netzwerkstruktur erstreckt sich
zwischen einer Kodiereinheit eines sendenden Teilnehmers, der in
einem Signal codierte Daten an den Datenbus zur Übermittlung an einen anderen
Teilnehmer übergibt, und
einer Dekodiereinheit eines empfangenden Teilnehmers, der das übermittelte
Signal von der Netzwerkstruktur beziehungsweise der Verbindungsleitung
nimmt.
-
Einigen
der Teilnehmern des Datenübertragungssystems
ist jeweils mindestens ein Teilnehmer-Prozessor zugeordnet, der auch als Host-Prozessor
bezeichnet wird. Auf dem Host-Prozessor läuft ein Betriebssystem ab,
das insbesondere als ein multitaskingfähiges Betriebssystem ausgebildet
ist.
-
Erfindungsgemäß wird nun
vorgeschlagen, nicht nur einen Teil der Verarbeitungsfunktionen
des Teilnehmers auf die globale Zeitbasis des Datenübertragungssystems
zu synchronisieren, sondern die gesamte Betriebssystem-Zeitbasis
und damit auch alle auf dem Host-Prozessor ablaufenden Verarbeitungsfunktionen,
Prozesse und Tasks auf die globale Zeitbasis des Datenübertragungssystems
zu synchronisieren. Die Synchronisation zwischen Betriebssystem-Zeitbasis des Host-Prozessors
und der globalen Zeitbasis des Datenübertragungssystems erfolgt
zumindest vor einer Datenübergabe
zwischen Host-Prozessor und Datenübertragungssystem.
-
Schließlich wird
erfindungsgemäß vorgeschlagen,
dass der Kommunikations-Controller des Teilnehmers ein zu der globalen
Zeitbasis des Datenübertragungssystems
synchrones Synchronisationstaktsignal bereitstellt. Der Kommunikations-Controller
als Bestandteil des Datenübertragungssystems verfügt also über Mittel,
durch die ein Synchronisationstakt für die Synchronisation der Betriebssystem-Zeitbasis
bereitgestellt werden kann. Selbstverständlich können die Mittel zur Erzeugung
des Synchronisationstaktes auch an einer beliebigen Stelle außerhalb
des Kommunikations-Controllers angeordnet sein. Denkbar ist bspw.
eine Anordnung der Mittel in einem Mikrocontroller des Teilnehmers.
Der Synchronisationstakt ist synchron zu der globalen Zeitbasis
des Datenübertragungssystems,
auf die der Kommunikations-Controller als Bestandteil des Datenübertragungssystems
sowieso synchronisiert ist. Die Betriebssystem-Zeitbasis wird dann auf den Synchronisationstakt
des Kommunikations-Controllers synchronisiert. Auf diese Weise kann
selbst bei relativ kompliziert und komplex aufgebauten Teilnehmern
mit einem Host-Prozessors und einem darauf ablaufenden Betriebssystem
die Betriebssystem-Zeitbasis auf einfache und zuverlässige Weise auf
die globale Zeitbasis des Datenübertragungssystem
synchronisiert werden. Der Verarbeitungstakt des Host-Prozessors,
insbesondere aber der Arbeitstakt, mit dem Daten von dem Host-Prozessor
für das Datenübertragungssystem
zur Verfügung
gestellt und von dem Datenübertragungssystem
abgeholt werden, kann somit an den Takt des Datenübertragungssystems
angepasst werden. Auf diese Weise können Latenzzeiten reduziert
und die Rechzeitigkeit und Gleichzeitigkeit in dem Datenübertragungssystem
erhöht
werden.
-
Die
Synchronisation der Betriebssystem-Zeitbasis auf die globale Zeitbasis
des Datenübertagungssystems
erfolgt durch Triggerung eines Schedulers mit dem vom Kommunikations-Controller bereitgestellten
Synchronisationstakt. Dies geschieht vorzugsweise durch das Auslösen eines
Interrupts für
den Aufruf des Schedulers für
die bussynchronen Tasks des auf dem Host-Prozessor ablaufenden Betriebssystems.
Auf eine Entscheidung, ob überhaupt eine
Korrektur der Zeitbasis des Betriebssystems erforderlich ist oder
nicht, wie dies im Stand der Technik erforderlich ist, kann bei
der Erfindung verzichtet werden.
-
Durch
die am Kommunikations-Controller des Teilnehmers vorgesehenen Mittel
zur Bereitstellung des Synchronisationstaktes wird ein datenbus-synchroner
Takt für
die Synchronisation des Betriebssystems bereitgestellt. Dadurch
wird der erforderliche Aufwand für
die Synchroni sation erheblich reduziert und es ist auch möglich, komplexe
und aufwändige
Teilnehmer, beispielsweise mit einem Host-Prozessor und einem darauf
ablaufenden Betriebssystem, auf die globale Zeitbasis des Datenübertragungssystems
zu synchronisieren. Durch die Erfindung ergeben sich gegenüber dem
Stand der Technik insbesondere die folgenden Vorteile:
- a) Wegfall des erforderlichen Softwareanteils zur Synchronisation
der Betriebssystem-Zeitbasis
auf die globale Zeitbasis;
- b) Erhöhung
der Genauigkeit der Synchronisation;
- c) Verringerung der Nachführzeit
(größere Anpassungen
der Zeitbasis können
nicht auf einmal ausgeführt
werden, sondern müssen
auf mehrere Takte aufgeteilt werden, wobei erfindungsgemäße die Anzahl
der Takte verringert werden kann); und
- d) Wegfall der erforderlichen Kommunikation zwischen Host-Prozessor
und Kommunikations-Controller zur Abfrage der globalen Zeitbasis.
-
Zeichnungen
-
Weitere
Vorteile und vorteilhafte Ausgestaltungen der Erfindung ergeben
sich aus der nachfolgenden Figurenbeschreibung und den dazugehörigen Figuren.
Es zeigen:
-
1 ein
erfindungsgemäßes Datenübertragungssystem
gemäß einer
bevorzugten Ausführungsform;
-
2 das
Grundprinzip zur Aktivierung von Tasks durch ein Betriebssystem
auf einem Host-Prozessor eines Teilnehmers nach dem Stand der Technik;
-
3 das
Grundprinzip zur Aktivierung von Tasks durch ein Betriebssystem
auf einem Host-Prozessor eines Teilnehmers nach dem Stand der Technik
gemäß einer
ersten bevorzugten Ausführungsform
der vorliegenden Erfindung; und
-
4 das
Grundprinzip zur Aktivierung von Tasks durch ein Betriebssystem
auf einem Host-Prozessor eines Teilnehmers nach dem Stand der Technik
gemäß einer
zweiten bevorzugten Ausführungsform
der vorliegenden Erfindung.
-
Beschreibung
der Ausführungsbeispiele
-
Die
Vernetzung von Steuergeräten,
Sensorik und Aktuatorik mit Hilfe eines Kommunikationssystems und
einer Kommunikationsverbindung bspw. in Form eines Bussystems hat
in den letzten Jahren beim Bau von modernen Kraftfahrzeugen oder
auch im Maschinenbau, insbesondere im Werkzeugmaschinenbereich,
als auch in der Automatisierung drastisch zugenommen. Synergieeffekte
durch Verteilung von Funktionen auf mehrere Steuergeräte können dabei
erzielt werden. Man spricht hierbei von verteilten Systemen.
-
Die
Kommunikation zwischen verschiedenen Teilnehmern eines solchen Datenübertragungssystems
findet mehr und mehr über
ein Bussystems statt. Der Kommunikationsverkehr auf dem Bussystem,
Zugriffs- und Empfangsmechanismen, sowie Fehlerbehandlung werden über ein
Protokoll geregelt. Ein bekanntes Protokoll ist beispielsweise das FlexRay-Protokoll,
wobei derzeit die FlexRay-Protokollspezifikation v2.1 zu Grunde
liegt. Bei FlexRay handelt es sich um ein schnelles, deterministisches und
fehlertolerantes Bussystem, insbesondere für den Einsatz in Kraftfahrzeugen.
Das FlexRay-Protokoll arbeitet nach dem Prinzip des Time Division
Multiple Access (TDMA), wobei den Teilnehmern bzw. den zu übertragenden
Botschaften feste Zeitschlitze zugewiesen werden, in denen sie einen
exklusiven Zugriff auf die Kommunikationsverbindung haben. Die Zeitschlitze
wiederholen sich dabei in einem festgelegten Zyklus, so dass der
Zeitpunkt, zu dem eine Botschaft über den Bus übertragen
wird, exakt vorausgesagt werden kann und der Buszugriff deterministisch
erfolgt. FlexRay kommuniziert über
eine oder zwei physikalisch getrennte Leitungen mit einer Datenrate
von jeweils maximal 10 Mbit/sec. Selbstverständlich kann FlexRay aber auch
mit niedrigeren Datenraten betrieben werden. Die beiden Kanäle entsprechen
dabei der physikalischen Schicht, insbesondere des sogenannten OSI
(Open System Architecture) Schichtenmodells. Diese dienen hauptsächlich der
redundanten und damit fehlertoleranten Übertragung von Botschaften,
können
jedoch auch unterschiedliche Botschaften übertragen, wodurch sich dann
die Datenrate verdoppeln würde.
Es ist ebenfalls denkbar, dass sich das übertragene Signal aus der Differenz
der beiden über
die Leitungen übertragenen
Signale als ein Differenzsignal ergibt. Die Signalübertragung über die
physikalische Schicht kann elektrisch, optisch oder auf eine beliebig
andere Art erfolgen.
-
Um
synchrone Funktionen zu realisieren und den Datendurchsatz durch
kleine Abstände
zwischen zwei Botschaften zu optimieren, benötigen die Teilnehmer in dem
Kommunikationsnetzwerk eine gemeinsame Zeitbasis, die sogenannte
globale Zeit. Für
die Uhrensynchronisation werden Synchronisationsnachrichten im statischen
Teil des Zyklus übertragen,
wobei mit Hilfe eines speziellen Algorithmus entsprechend der FlexRay-Spezifikation die
lokale Uhrzeit der Teilnehmer so korrigiert wird, dass alle lokalen
Uhren zu einer virtuellen globalen Uhr synchron laufen.
-
Die
vorliegende Erfindung wird nachfolgend anhand des FlexRay-Protokolls
näher erläutert. Selbstverständlich kann
das Verfahren auch für
beliebig andere Protokolle zur zeitgesteuerten Datenübertragung,
beispielsweise TTCAN (Time Triggered Controller Area Network), oder
TTP/C (Time Triggered Protocol Class C) eingesetzt werden.
-
In 1 ist
ein erfindungsgemäßes Datenübertragungssystem
zur Übertragung
von in Signalen codierten Daten nach dem FlexRay-Protokoll, insbesondere
nach der FlexRay-Spezifikation
v2.1, in seiner Gesamtheit mit dem Bezugszeichen 1 bezeichnet.
Das Datenübertragungssystem 1 umfasst
eine Netzwerkstruktur 2, die mehr oder weniger komplex ausgebildet
sein kann und passive Bauelemente (zum Beispiel Versorgungsleitungen,
Drosseln, Widerstände,
passive Sterne, etc.) und/oder aktive Bauelemente (zum Beispiel
Sende-Empfangs-Einheit (sogenannte
Transceiver), Kommunikations-Controller, aktive Sterne, etc.) umfassen
kann. An die Netzwerkstruktur sind mehrere Teilnehmer 3, 4, 5 angeschlossen,
wobei die Teilnehmer 3, 4, 5 gemäß der der
vorliegenden Erfindung zugrundeliegenden Definition des Begriffes „Datenübertragungssystem" teilweise zum Datenübertragungssystem 1 gehören und teilweise
außerhalb
des Datenübertragungssystems 1 liegen.
Letzteres gilt insbesondere für
Prozessoren 6 der Teilnehmer 3, 4, 5,
die auch als Host-Prozessoren 6 bezeichnet werden. Auf
den Host-Prozessoren 6 läuft jeweils ein Betriebssystem
ab, welches Prozesse und/oder Tasks von ebenfalls auf den Prozessoren 6 ablaufenden
Computerprogrammen koordiniert.
-
Durch
die Abarbeitung des Computerprogramms auf dem Host-Prozessor 6 kann
der entsprechende Teilnehmer 3, 4, 5 die
ihm zugedachte Funktionalität
erfüllen.
Diese Funktionalität
kann beispielsweise die Steuerung eines Bremseingriffes an einem Rad
eines Kraftfahrzeuges sein. Zur Steuerung und/oder Regelung des
Bremseingriffes werden dem Host-Prozessor 6 verschiedene
Betriebsgrößen, beispielsweise
eine Raddrehzahl, eine Fahrzeuggeschwindigkeit, eine Gierrate des
Fahrzeugs oder andere, über
Eingangsanschlüsse 7 der
Teilnehmer 3, 4, 5 zur Verfügung gestellt.
Im Rahmen der Abarbeitung des Computerprogramms auf dem Host-Prozessor 6 zur
Erfüllung
der dem Teilnehmer 3, 4, 5 zugeordneten
Funktionalität
werden Ansteuersignale, beispielsweise für einen hydraulischen Bremszylinder oder
einen Elektromotor zur Aktivierung der Radbremse, generiert und
den Stellgliedern über
Ausgangs-Anschlüsse 8 der
Teilnehmer 3, 4, 5 zur Verfügung gestellt.
-
Anders
als der Host-Prozessor 6, ist ein Kommunikations-Controller 9 der
Teilnehmer 3, 4, 5 dem Datenübertragungssystem 1 gemäß der vorliegenden
Erfindung zuzuordnen. Über
die Kommunikations-Controller 9 werden von dem Host-Prozessor 6 im
Rahmen der Abarbeitung des Computerprogramms bereitgestellte Daten
an die Netzwerkstruktur 2 zur Datenübertragung an andere Teilnehmer weitergeleitet.
Zu diesem Zweck müssen
die von dem Host-Prozessor 6 über eine Datenleitung 10 erhaltenen
Daten erst in das richtige Format gemäß verwendeter Protokollspezifikation,
beispielsweise der FlexRay-Protokollspezifikation v2.1, gebracht werden. Über einen
Bustreiber (nicht dargestellt) werden die formatierten Daten dann
an die Netzwerkstruktur 2 zur Datenübertragung übergeben. Ebenso können durch
den Kommunikations-Controller 9 über die Netzwerkstruktur 2 übertragene
Daten abgeholt und über
die Datenleitung 10 an den Host-Prozessor 6 zur
Weiterverarbeitung übergeben
werden.
-
Sämtliche
Komponenten des Datenübertragungssystems 1 sind – wie bereits
oben erwähnt – auf eine
gemeinsame Zeitbasis, die sogenannte globale Zeitbasis des Datenübertragungssystems 1, synchronisiert.
Das ist erforderlich, um deterministische Zugriffe auf die Netzwerkstruktur 2 zur
Datenübertragung
durch die verschiedenen Teilnehmer 3, 4, 5 ohne
Kollisionen und Latenzzeiten zu ermöglichen.
-
Die
Host-Prozessoren 6 arbeiten ebenfalls nach vorgegebenen
Taktraten. Die Taktraten der Host-Prozessoren 6 der verschiedenen
Teilnehmer 3, 4, 5 sind bei aus dem Stand
der Technik bekannten Datenübertragungssystemen
völlig
unabhängig
untereinander und auch unabhängig
gegenüber
der Taktrate des Datenübertragungssystems 1.
Diese Unabhängigkeit
der Host-Prozessoren 6 beziehungsweise
der Zeitbasis der auf den Host-Prozessoren 6 ablaufenden
Betriebssysteme von der globalen Zeitbasis des Datenübertragungssystems 1 ist
unerheblich, solange das Betriebssystem einerseits und das Datenübertragungssystem 1 andererseits
parallel, ohne Berührungspunkte
nebeneinander her arbeiten. In dem Moment, wo es jedoch Berührungspunkte zwischen
dem Datenübertragungssystem 1 und
dem Betriebssystem der Host-Prozessoren 6 gibt,
beispielsweise bei der Datenübergabe
zwischen dem Kommunikations-Controller 9 und
dem Host-Prozessor 6, führt
die fehlende Synchronisation zu erheblichen Nachteilen. Insbesondere
ist das Bereitstellen von Daten durch den Kommunikations-Controller 9 oder
den Host-Prozessor 6 und das Abholen der Daten durch den
Host-Prozessor 6 beziehungsweise den Kommunikations-Controller 9 nicht
aufeinander abgestimmt. Dadurch kann es zu Latenzzeiten in dem Gesamtsystem
kommen. Außerdem
können Anforderungen
an die Rechtzeitigkeit und der Gleichzeitigkeit der Datenübertragung
zwischen den Host-Prozessoren 6 zweier
verschiedener Teilnehmer des Datenübertragungssystems 1 nicht
gewährleistet
werden.
-
Aus
diesem Grund wird erfindungsgemäß vorgeschlagen,
dass die Zeitbasis des Betriebssystems des Host-Prozessors 6 der
Teilnehmer 3, 4, 5 auf die globale Zeitbasis
des Datenübertragungssystems 1 synchronisiert
wird. Zu diesem Zweck sind in den Kommunikations-Controllern 9 der
Teilnehmer 3, 4, 5 Mittel 11 zum
Bereitstellen eines zu der globalen Zeitbasis des Datenübertragungssystems 1 synchronen
Synchronisationstaktes vorgesehen. Der Synchronisationstakt wird über eine
Synchronisationsleitung 12 an den Host-Prozessor 6 angelegt.
Die Host-Prozessoren 6 verfügen über einen Eingangspin 13,
an den die Synchronisationsleitung 12 angeschlossen ist
und der Synchronisationstakt der Mittel 11 des Kommunikations-Controller 9 anliegt.
-
Anders
als bisher erhalten die Host-Prozessoren 6 ihr Taktsignal,
auf Grundlage dessen die Zeitbasis des Betriebssystems definiert
wird, nicht mehr von einem internen oder externen Taktgeber, dessen Taktsignal
völlig
unabhängig
von der Zeitbasis des Datenübertragungs systems 1 ist,
sondern vielmehr von den zusätzlich
vorgesehenen Mitteln 11 der Kommunikations-Controller 9.
Dabei fungieren die Mittel 11 als Taktgeber für die Host-Prozessoren 6 und
stellen den Host-Prozessoren 6 einen Synchronisationstakt
für die
Synchronisation der Betriebssystem-Zeitbasis zur Verfügung, der
zu der globalen Zeitbasis des Datenübertragungssystems 1 synchron
läuft.
-
Das
erfindungsgemäße Datenübertragungssystem 1 hat
den Vorteil, dass Latenzzeiten bei der Übergabe von Daten zwischen
dem Host-Prozessor 6 und dem Kommunikations-Controller 9 eines
Teilnehmers 3, 4, 5 auf ein Minimum reduziert
werden können.
Außerdem
können
die Daten rechtzeitig und gleichzeitig, zumindest aber quasi-gleichzeitig, übergeben
werden. Die Einzelheiten der Synchronisation der Betriebssystem-Zeitbasis
auf die globale Zeitbasis des Datenübertragungssystems 1 werden
nachfolgend anhand der 2 bis 4 näher erläutert.
-
Bei
modernen Betriebssystemen wird eine Anwendung beziehungsweise ein
Computerprogramm auf mehrere Tasks aufgeteilt. Diese Tasks laufen
dann später
auf dem Host-Prozessor 6 quasi-gleichzeitig ab. Dabei kann
jede Task zumindest die verschiedenen Zustände „suspend", „ready" und „active" annehmen. „Ready" bedeutet, dass diese Task
zur Abarbeitung bereit ist. „Suspend" dagegen bedeutet,
dass diese Task momentan nicht zur Abarbeitung freigegeben ist.
Im Zustand „active" ist die Task die
vollständige
Rechenleistung des Host-Prozessors 6 exklusiv zugeordnet. 2 zeigt
ein an sich aus dem Stand der Technik bekanntes Grundkonzept zur
Taskaktivierung. In der Regel werden die Tasks durch einen oder
mehrere Scheduler 20, 21 in den Zustand „ready" versetzt. In dem
dargestellten Ausführungsbeispiel
ist ein Zeit-Scheduler (sogenannter Timer-Scheduler) 20 für die periodisch
zu aktivierenden Tasks des Computerprogramms, sowie ein Ereignis-Scheduler
(sogenannter Event-Scheduler) 21 für die Aktivierung der ereignisgesteuerten Tasks
vorgesehen. Welcher der Tasks die Rechenleistung des Host-Prozessors 6 dann
zugeordnet wird, entscheidet ein Dispatcher 22. Jedem Schedulerlauf
schließt
sich ein Dispatcherlauf an. Der Dispatcher 22 bestimmt
also, welche der Tasks zu welchem Zeitpunkt in den Zustand „active" gebracht werden.
-
Mit
dem Bezugszeichen 23 ist ein Zeitgeber (sogenannter Timer)
eines aus dem Stand der Technik bekannten Host-Prozessors 6 bezeichnet.
Der Timer 23 stellt dem Zeit-Scheduler 20 ein
Triggersignal 24 zur Verfügung. Darüber hinaus weist der bekannte Host-Prozessor 6 verschiedene
Eingangsanschlüsse 7 in
Form eines „Port
A"-Anschlusses 25 und
eines „A/D"-Anschlusses 26 eines Analog/Digital-Wandlers auf.
An diesen Eingangsanschlüssen 25, 26 können Ereignisse 27, 28 auftreten
beziehungsweise angelegt werden, die zu einem bestimmten Zeitpunkt
t auftreten. Den Ereignissen 27, 28 sind bestimmte
Tasks zugeordnet, die durch den Ereignis-Scheduler 21 in den
Zustand „ready" gebracht werden.
Der Dispatcher 22 schaltet die anstehenden ereignisgesteuerten
Tasks dann zu gegebener Zeit ebenfalls in den Zustand „active". Am Ausgang des
Dispatchers 22 ist erkennbar, wie die Rechenleistung des
Host-Prozessors
den verschiedenen Tasks zugeordnet wird.
-
In 3 ist
das Grundkonzept zur Taskaktivierung in einem Host-Prozessor 6 gemäß einem
ersten Ausführungsbeispiel
der vorliegenden Erfindung dargestellt. Ein wesentlicher Unterschied
zu dem bekannten Grundkonzept besteht darin, dass die Mittel 11 des
Kommunikations-Controllers 9 als
Zeitgeber dienen und über
die Synchronisationsleitung 12 dem Zeit-Scheduler 20 den
Synchronisationstakt 24 bereitstellen, der zu der globalen
Zeitbasis des Datenübertragungssystems 1 (auf
die auch der Kommunikations-Controller 9 synchronisiert
ist) synchron ist. Das führt
dazu, dass der Zeit-Scheduler 20 in dem Zeitraster der
sich in dem Betriebssystem am schnellsten wiederholenden Taks (zum
Beispiel 2 ms) die verschiedenen Tasks in den Zustand „ready" schaltet. Selbst
ereignisgesteuerte Tasks, die in 3 mit „nach dynamisch" beziehungsweise „nach statisch" bezeichnet sind,
können
durch den Zeit-Scheduler 20 in dem vorgegebenen Zeittakt
der sich am häufigsten
in dem Betriebssystem wiederholenden Task (zum Beispiel 2 ms) in
den Zustand „ready" geschaltet werden.
Von besonderer Bedeutung ist dabei, dass sämtliche anstehenden Tasks anschließend von
dem Dispatcher 22 in einem Zeittakt in den Zustand „active" umgeschaltet werden,
der der Wiederholungsrate der sich am häufigsten wiederholenden Task
(zum Beispiel 2 ms) entspricht und somit synchron zu dem Taktsignal 24 beziehungsweise
zu der globalen Zeitbasis des Datenübertragungssystems ist. Bei
dem in 3 dargestellten Ausführungsbeispiel dient der Ereignis-Scheduler 21 lediglich
zum Umschalten der ereignisgesteuerten Tasks in den Zustand „ready".
-
Im
Gegensatz dazu werden bei dem in 4 dargestellten
Ausführungsbeispiel
periodische Tasks über
den Zeit-Scheduler 20 und bussynchrone Tasks über den
Ereignis-Scheduler 21 koordiniert. In diesem Ausführungsbeispiel
ist eine zusätzliche
Verbindungsleitung 29 zwischen dem Kommunikations-Controller 9 und
dem Ereignis-Scheduler 21 des Host-Prozessors 6 vorgesehen. Über die
Leitung 29 teilt der Kommunikations-Controller 9 dem
Ereignis-Scheduler 21 die
Zeitpunkte t mit, zu denen ereignisgesteuerte Tasks z.B. „nach dynamisch" beziehungsweise
z.B. „nach
statisch" gestartet
werden sollen. Dies sind die bussynchronen Tasks, die synchron zu
dem Synchronisierungstakt 24 starten. Die bussynchronen
Taks „nach
dynamisch" entsprechen beispielsweise
einer Task zum Einlesen und Weiterleiten einer Raddrehzahl, beispielsweise
alle 210 μs, also
beispielsweise auch zwischen dem der kürzesten Wiederholungsrate der
Tasks in dem Betriebssystem entsprechenden Zeittakt (zum Beispiel
2 ms), aber jedenfalls synchron zu der globalen Zeitbasis des Datenübertragungssystems 1.
Bei dem in 4 dargestellten Ausführungsbeispiel
können
die bussynchronen ereignisgesteuerten Tasks also nicht nur in dem
Zeittakt der kürzesten
Wiederholungsraten der periodischen Tasks (zum Beispiels 2 ms),
sondern auch dazwischen (beispielsweise nach 210 μs) gestartet
werden.
-
Mit
der vorliegenden Erfindung ist gewährleistet, dass die Zugriffe
des Host-Prozessors 6 beziehungsweise der Anwendung in
Form des auf dem Host-Prozessor 6 ablaufenden Computerprogramms deterministisch
erfolgen. Erfindungsgemäß wird die Zeitbasis
der Betriebssysteme der Host-Prozessoren 6 der an die Netzwerkstruktur 2 (beziehungsweise den
Datenbus) angeschlossenen Teilnehmer 3, 4, 5 (beziehungsweise
Steuergeräte)
auf die Zeitbasis des Datenbusses synchronisiert. Die Synchronisation
erfolgt hierbei durch das Bereitstellen eines bussynchronen Taktes
des Kommunikations-Controllers zur Triggerung des Betriebssystems
(Scheduler). Insbesondere ist kein zusätzlicher Software-Aufwand mehr
erforderlich und es kann auf Abfragen, wie sie im Stand der Technik
erforderlich waren, der nachfolgenden Art völlig verzichtet werden:
- – Abfrage
der Zeitbasis des Datenübertragungssystems.
- – Läuft das
Betriebssystem des Teilnehmer-Prozessors synchron zu der Zeitbasis
des Datenübertragungssystems?
- – Um
wie viel muss die Zeitbasis des Teilnehmer-Prozessors korrigiert
werden, um mit der Zeitbasis des Datenübertragungssystems synchron
zu laufen?
-
Über das
zusätzliche
Schaltungsteil 11 des Kommunikations-Controller 9 wird
der Takt für
den Zeit-Scheduler 20 zur Verfügung gestellt. Durch den internen
Aufbau des Schaltungsteils 11 wird sichergestellt, dass
der Takt synchron zum Takt des Datenbuses ist. Der Schaltungsteil 11 verfügt über die
Möglichkeit,
per Software oder Hardware oder in Kombination von Software und
Hardware in dem Kommunikations-Controller 9 beziehungsweise
einem Prozessor, z.B. in Form einer Zustandsmaschine (sogenannte
state machine) des Kommunikations-Controllers 9 realisiert
zu werden. Dadurch ist es zum Beispiel möglich, das Verhältnis zwischen
dem Takt des Datenbuses und dem Synchronisationstakt 24 zur Steuerung
des Schedulers 20, 21 zu variieren und beliebig
vorzugeben. Das Einstellen des Verhältnisses kann z.B. über das
Beschreiben von Registern im Kommunikations-Controller 9 erfolgen
oder in einer anderen geeigneten Art und Weise.
-
Üblicherweise
erfolgt der Aufruf des Zeit-Schedulers 20 in einer periodischen
Interrupt-Routine eines Zeitgebers 23 (vergleiche 2). Dieser
Aufruf erfolgt nunmehr (vergleiche 3 und 4)
in der Interruut-Routine, welche durch den Synchronisierungstakt 24 des
zusätzlichen
Schaltungsteils 11 initiiert wird. Zur Realisierung des
erfindungsgemäßen Verfahrens
sind unter anderem die nachfolgenden Schritte erforderlich:
- – Initialisierung
des Schaltungsteils 11 zur Bestimmung des Verhältnisses
des Synchronisationstaktes 24 zum Takt des Datenbuses.
- – Initialisierung
des Host-Prozessors 6 für
die Interruut-Routine,
- – Start
der Takterzeugung im Schaltungsteil 11; und
- – Aufruf
des Schedulers 20, 21 in der Interrput-Routine.
-
Falls
erforderlich, kann ein gemeinsamer Startzeitpunkt des Zeit-Schedulers 20 und
des Buszykluses entweder mittels Software oder über einen Kommunikations-Controller-Interrupt
erzielt werden. Bei der Realisierung mittels Software wird der Umstand
ausgenutzt, dass eine Standard-Schnittstelle des Host-Prozessors 6 zum
Kommunikations-Controller 9 Informationen zur Buszeit zur
Verfügung stellt.
Der Vorteil besteht darin, dass keine hardwaremäßige Erweiterung des Host-Prozessors 6 erforderlich
ist. Nachteilig ist jedoch ein erhöhter Kommunikationsaufwand
zwischen dem Kommunikations-Controller 9 und dem Host-Prozessor 6.
Bei der Realisierung mittels Kommunikations-Controller-Interrupt, der
durch den Start des Buszykluses ausgelöst wird, ist es ebenfalls vorteilhaft,
dass keine hardwaremäßige Erweiterung
des Host-Prozessors 6 erforderlich ist. Nachteilig ist
jedoch, dass die zusätzliche
Interrupt-Routine verarbeitet werden muss.
-
Falls
der Kommunikations-Controller 9 den Takt des Datenbuses
zur Verfügung
stellt, so könnte der
zusätzliche
Schaltungsteil 11 auch außerhalb des Kommunikations-Controllers 9 angeordnet
werden. Der Schaltungsteil 11 kann auch einen weiteren
Zeitgeber (nicht dargestellt) beinhalten, der den Synchronisationstakt
dann ersatzweise zur Verfügung
stellt, falls der Datenbus und somit die globale Zeitbasis vorübergehend
nicht verfügbar
ist. Der Schaltungsteil 11 muss hierfür einen sicheren Wechsel zwischen bussynchronen
und Zeitgeber-gesteuertem Takt sicherstellen. Es ist auch denkbar,
den Schaltungsteil 11 so zu erweitern, dass Informationen
(zum Beispiel Registerwerte, Eingangspin 13, etc.) zur
Sicherstellung eines gemeinsamen Startzeitpunktes des Schedulers 20, 21 und
eines Buszykluses zusätzlich
zur Verfügung
stehen. Der Start der bussynchronen Tasks kann entweder über den
Zeit-Scheduler 20 oder über
den Ereignis-Scheduler 21 erfolgen. Falls er über den
Zeit-Scheduler 20 erfolgt, hat dies den Vorteil, dass die
Planung der Tasks über
das Betriebssystem erfolgt. Außerdem
ist kein weiterer Code und kein zusätzlicher Interruptaufruf erforderlich.
Nachteilig ist jedoch, dass die Startzeitpunkte der Tasks nicht
beliebig wählbar
sind (das Zeitraster ist durch den Takt der Tasks vorgegeben). Außerdem ist
ein zusätzlicher
Aufwand erforderlich, um den Zeit-Scheduler 20 auf den
Buszyklus zu synchronisieren (Startzeitpunkt). Falls der Start der
bussynchronen Tasks durch den Event-Scheduler erfolgt, hat dies
den Vorteil, dass die Startzeitpunkte der Tasks beliebig gewählt werden
können
(auch zwischen dem Takt der Tasks). Nachteilig ist jedoch, dass
eine zusätzliche
Interrupt-Routine erforderlich ist.
-
Zur
Realisierung der Erfindung ist eine Änderung der Initialisierungssoftware
erforderlich. Diese Änderung
ist durch Analyse des Initialisierungscodes erkennbar und am Produkt
nachweisbar. Ebenso muss das Design eines Host-Prozessors 6 und/oder eines
Kommunikations-Controllers 9 in der oben beschriebenen
Weise abgeändert
werden.