-
Stand der Technik
-
Die
vorliegende Erfindung betrifft ein Verfahren zur Ermittlung der
Taktrate eines Datensignals, das in einem Kommunikationssystem umfassend
einen Datenbus und mehrere daran angeschlossene Teilnehmer von einem
sendenden Teilnehmer über den Datenbus an einen empfangenden
Teilnehmer übertragenen wird. Die Erfindung betrifft außerdem
ein Kommunikationssystem zur Ausführung des Verfahrens
sowie einen aktiven Sternkoppler als empfangenden Teilnehmer des
Kommunikationssystems.
-
Sternkoppler
sind beispielsweise für FlexRay-Kommunikationssysteme aus
der FlexRay-Spezifikation v2.1 bekannt. Der Aufbau und die Funktionsweise
gehören zu der spezifizierten physikalischen Schicht (sogenannter
Physical Layer) des FlexRay-Kommunikationssystems. Aktive Sternkoppler
sind in Kommunikationsnetzen von Bedeutung, in denen sich die Kommunikationsverbindung
(zum Beispiel ein Datenbus) aufspaltet, also eine Sterntopologie
hat, und ein Datensignal auf mehrere Zweige des Datenbusses aufgeteilt
werden soll. Außerdem sind aktive Sternkoppler von Bedeutung,
wenn es um die Übertragung von Datensignalen über komplexe
Netztopologien und längere Strecken geht, da sie zusätzlich
oder alternativ zur Aufteilung des Datensignals auf mehrere Zweige
das Signal auch verstärken können.
-
Elektrische
und elektronische Bauteile (das heißt die entsprechenden
ICs) für einen aktiven Sternkoppler (einen sogenannten
Active Star) für den Einsatz in einem FlexRay-Kommunikationssystem
werden von der Firma Philips Semiconductors (heute NXP) angeboten.
In einem Sternkoppler können FlexRay-Kommunikations-Controller
vom Typ "SJA 2510" gemäß der Spezifikation v2.1
und ein ARM9-Mikrocontroller integriert sein. An einem bekannten
aktiven Sternkoppler sind mehrere Anschlüsse vorgesehen,
an die mehrere Zweige der Kommunikationsverbindung angeschlossen
sind. Die Anschlüsse können entweder als Eingang für
eingehende Datensignale und/oder als Ausgang für abgehende
Datensignale konfiguriert werden. Der Sternkoppler weist an jedem
Anschluss einen Bus-Treiber, zum Beispiel vom Typ „NXP
TJA 1080" zum Verstärken eines ausgehenden Datensignals
auf. Ein über einen der Anschlüsse eingehendes
analoges Datensignal wird digital an eine zentrale Verarbeitungslogik
des Sternkopplers weitergeleitet, die ein Rechengerät, bspw.
in Form eines Field Programmable Gate Arrays (FPGA), eines Mikrocontrollers
oder eines digitalen Signalprozessors (DSP), aufweist. Entsprechende
komplette aktive Sternkoppler werden zum Beispiel von TZM (Transferzentrum
Mikroelektronik, Göppingen) mit Halbleitern der Firma NXP
(ehemals Philips Semiconductors) angeboten.
-
Die
zentrale Verarbeitungslogik ermöglicht eine Weiterverarbeitung
des Datensignals (z. B. Überwachungs- und/oder Routerfunktion)
in dem aktiven Sternkoppler. Falls in dem Sternkoppler ein Kommunikations-Controller
vorgesehen ist, kann dieser in Abhängigkeit von dem Inhalt
des in der zentralen Verarbeitungslogik dekodierten eingehenden
Datensignals eine Überwachungs- und/oder Routerfunktion übernehmen.
Ein ebenfalls optional vorgesehener Bus-Guardian kann den Zugriff
des Sternkopplers auf den Datenbus überwachen und/oder
steuern. Das in der zentralen Verarbeitungslogik vorhandene eingegangene
digitale Datensignal wird über Bus-Treiber (sogenannter
Bus Driver), welche die Bitfolge des digitalen Signals in eines
oder mehrere analoge Signale zurückwandeln und verstärken,
an die Kommunikationsverbindung angelegt.
-
Die
aus dem Stand der Technik von TZM bekannten aktiven Sternkoppler
umfassen Bustreiber vom Typ „NXP TJA 1080", die denen von
FlexRay-Transceivereinheiten entsprechen. Der bekannte Sternkoppler ist
somit nichts anderes als eine Verknüpfung mehrerer Transceiver
zu einem Hub. Ein Hub leitet von einem Teilnehmer (oder Knoten)
eines Kommunikationsnetzwerks über einen Zweig der Kommunikationsverbindung eingehende
Daten an alle übrigen Teilnehmer des Kommunikationssystems
weiter und verstärkt gleichzeitig das weiter zu leitende
Signal.
-
In
der Entwicklung der physikalischen Schicht für FlexRay
stellt der Bustreiber vom Typ „NXP TJA 1080" den Stand
der Technik dar. Zudem wird derzeit der Einsatz einer integrierten
Energie- und Datenübertragung angestrebt (FlexRay-PLC;
Power Line Communications). Unter Beachtung der FlexRay-Spezifikation wurde
ein FlexRay-PLC-System auf Basis eines konditionierten Bordnetzes
in einem Kraftfahrzeug aufgebaut. Gemäß Kapitel
2.1 der FlexRay-Spezifikation "Electrical Physical Layer Specification",
Version 2.1 kann jede beliebige physikalische Schicht als FlexRay-Kommunikationskanal
eingesetzt werden, so lange die spezifizierten grundlegenden Anforderungen
erfüllt werden.
-
Bei
der FlexRay-PLC werden mittels einer DBPSK (Differential Binary
Phase Shift Keying)-Modulation die Daten auf einen hochfrequenten
Träger aufmoduliert und über das Energiebordnetz übertragen.
Das konditionierte Bordnetz ermöglicht eine simple Gestaltung
des Übertragungssystems, da keine aufwendigen Entzerrer
erforderlich sind. Insofern hält sich die digitale Signalverarbeitung
in Grenzen, weshalb eine schnelle Datenübertragung von
10 MBit/sec mit einer Übertragungsverzögerung
(Propagation Delay) von maximal 2,5 μsec (wie in der FlexRay-Spezifikation
gefordert) erzielt werden kann.
-
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 bzw. in ein statisches
und ein dynamisches Segment. 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 tatsächlich ein Buszugriff
erfolgt, wird der Zeitschlitz um die für den Zugriff benötigte
Zeit verlängert. Damit wird Bandbreite also nur verbraucht,
wenn sie auch tatsächlich benötigt wird. In FlexRay
sind zwei Kanäle vorgesehen. Dabei kommuniziert FlexRay über
eine oder zwei physikalisch getrennte Leitungen je Kanal mit einer
Datenrate von jeweils maximal 10 Mbit/sec. Selbstverständlich
kann FlexRay aber auch mit niedrigeren Datenraten betrieben werden.
Die Leitungen der beiden Kanäle entsprechen dabei der physikalischen
Schicht, insbesondere des sogenannten OSI (Open System Architecture)
Schichtenmodells. Die beiden Kanäle dienen hauptsächlich
der redundanten und damit fehlertoleranten Übertragung
von Botschaften, wobei die gleichen Daten über beide Kanäle übertragen
werden. Alternativ können jedoch über die beiden
Kanäle auch unterschiedliche Botschaften übertragen
werden, wodurch sich dann die Datenrate in dem FlexRay-Kommunikationssystem
verdoppeln könnte. Es ist auch denkbar, dass sich das über
die Verbindungsleitungen übertragene Signal aus der Differenz
von über die beiden Leitungen übertragenen Signalen ergibt.
Schließlich kann für die Datenübertragung
auch lediglich ein Kanal genutzt werden, wobei der andere Kanal
dann ungenutzt und frei ist. Die physikalische Schicht ist derart
ausgestaltet, dass sie eine elektrische aber auch optische Übertragung
des oder der Signale über die Leitung(en) oder eine Übertragung
auf anderem Wege ermöglicht.
-
Um
synchrone Funktionen zu realisieren und die Bandbreite 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 Synchronisation von
lokalen Uhren der Teilnehmer werden Synchronisationsnachrichten
im statischen Teil des Zyklus übertragen, wobei mit Hilfe
eines speziellen Algorithmus entsprechend der FlexRay-Spezifikation
die lokale Uhrzeit eines Teilnehmers so korrigiert wird, dass alle lokalen
Uhren zu einer globalen Uhr synchron laufen.
-
Bei
der Übertragung von Daten oder Botschaften über
ein solches Bussystem werden Impulse verzerrt, weil High-to-Low
bzw. Low-to-High-Flanken auf dem Übertragungsweg unterschiedlich
stark verzögert werden. Wird der gesendete Impuls im Empfänger
mit dem dort vorliegenden Abtasttakt (der sogenannter Sampling Rate)
mehrfach (zum Beispiel n-mal pro Bit, insbesondere 8-mal pro Bit)
abgetastet, so entscheidet die Lage des Abtastpunktes, d. h. die
Auswahl genau eines dieser n Abtastwerte, ob das Datum richtig oder falsch
abgetastet wird. Das ist insbesondere dann schwierig, wenn der Abtastzeitpunkt
auf eine Flanke des Signals Bezug nimmt und relativ dazu auch über
viele Perioden des Abtasttaktes mehrere binäre Datenwerte (Bits)
des Senders auswertet. Hier wirkt sich zusätzlich zu einer
Impulsverzerrung (laut Spezifikation: asymmetrische Verzögerung)
auch noch die Taktfrequenzabweichung zwischen Sender und Empfänger
aus. Dabei kann das abzutastende Signal vorbehandelt sein, um zum
Beispiel kurzzeitige Störungen auszufiltern. Ein solches
Filter kann durch das Auswerten mehrerer Abtastsignale in der zeitlichen
Reihenfolge mit einer Mehrheitsentscheidung (sog. Voting) realisiert
sein. Insbesondere bei der Spezifikation des FlexRay-Protokolls,
in dem es bei n Netzwerkknoten
unterschiedliche Übertragungswege
geben kann (jeder denkbare Pfad hat 2 Sender-Empfänger-Kombinationen),
hat es sich gezeigt, dass die auftretenden asymmetrischen Verzögerungen
(das heißt steigende und fallende Flanken breiten sich
mit unterschiedlichen Verzögerungen im Netzwerk aus) auf
den unterschiedlichen Übertragungswegen zu Problemen beim
Timing führen können. Die Verzögerung
zwischen steigender und fallender Flanke eines Signals wird auch
als Impulsverzerrung bezeichnet.
-
Asymmetrische
Verzögerungen können sowohl systematische als
auch stochastische Ursachen haben. Beim FlexRay-Protokoll wirken
sich systematische Verzögerungen nur auf die steigenden
Flanken aus, da auf die fallenden Flanken synchronisiert wird. Stochastische
Verzögerungen haben Auswirkungen sowohl auf die steigenden
als auch auf die fallenden Flanken und sind durch Rauschvorgänge
oder EMV-Jitter verursacht. Jede Komponente des Netzwerks muss bezüglich
der durch sie verursachten asymmetrischen Verzögerung separat
untersucht werden, wobei nach dem Stand der Technik die in den einzelnen
Komponenten auftretenden Verzögerungen addiert werden müssen,
um die maximale asymmetrische Verzögerung des gewählten Übertragungspfads
zu erhalten (sogenannte Worst-Case Analyse).
-
Bei
der Realisierung von FlexRay-Datenübertragungssystemen,
insbesondere bei komplexen Systemen umfassend mehrere aktive Sternkoppler
und passive Netzwerke, hat sich zudem gezeigt, dass die theoretisch
ermittelten worst-case asymmetrischen Verzögerungszeiten
so groß sind, dass sie ein durch das FlexRay-Protokoll
vorgegebenes Zeitbudget übersteigen. Gemäß FlexRay-Protokoll
wird mit fallender BSS (Byte Start Sequence)-Flanke ein Abtastzähler
synchronisiert, d. h. zurück auf 1 gesetzt. Bei einem Zählerstand
von 5 wird abgetastet. Bei einer 8-fachen Überabtastung
(sogenanntes Oversampling), wie sie derzeit in FlexRay vorgesehen
ist, verbleiben zwischen dem Abtastzeitpunkt (5. Abtastwert) und
dem 8. Abtastwert also noch 3 Abtasttakte die bei einem Kommunikationscontroller-Takt
von 80 MHz jeweils 12,5 ns, in der Summe also einem Zeitbudget von
37,5 ns entsprechen. Dieses Zeitbudget dient eigentlich zum Ausgleich
von asymmetrischen Verzögerungen aufgrund der Differenz
von fallender zu steigender Flankensteilheit und der Abweichungen
der lokalen Uhren zwischen Sender und Empfänger. Falls
jedoch – wie dies bei komplexen Netztopologien der Fall
sein kann – die asymmetrische Verzögerung das
vorgesehene Zeitbudget übersteigt, führt dies
dazu, dass bei einer Abtastung zum 5. Abtasttakt (Zählerstand
des Abtastzählers auf 5) ein falscher Wert ermittelt wird,
weil dasjenige Bit, das eigentlich hätte abgetastet werden
sollen, auf Grund der asymmetrischen Verzögerung schon
zu einem früheren Zeitpunkt anlag und durch den frühen
Flankenwechsel nicht mehr anliegt. Eine entsprechende Behandlung
gilt für eine asymmetrische Verzögerung nach spät.
Dann steht ein Zeitbudget von 4 Abtasttakten entsprechend 50 ns
zur Verfügung. Die Folge eines Übersteigens des
Zeitbudgets nach früh oder spät sind Decodierungsfehler,
es werden also falsche Daten empfangen.
-
Diese
Decodierungsfehler können zwar durch geeignete Fehlererkennungsalgorithmen
erkannt werden, so dass eine erneute Übertragung des Bits
oder des gesamten Datenrahmens veranlasst werden kann. Als Fehlererkennungsalgorithmus
kann beispielsweise ein sog. Parity Bit oder ein sog. Cyclic Redundancy Check
(CRC) eingesetzt werden. Der Nachteil eines häufigen Ansprechens
des Fehlererkennungsalgorithmus liegt jedoch in der damit verbundenen
schlechteren Verfügbarkeit des Datenübertragungssystems,
da die fehlerhaften Daten bspw. erneut übertragen oder
verworfen werden.
-
Zusammenfassend
kann gesagt werden, dass durch das FlexRay-Protokoll Vorgaben gemacht
werden, die der Physical Layer – zumindest bei komplexen
Netztopologien – nicht halten kann. Es hat sich gezeigt, dass
die auftretenden asymmetrischen Verzögerungen den Aufbau
von komplexen Netzwerkstrukturen verbieten, da diese dann nicht
mehr den Timing-Anforderungen der FlexRay-Spezifikation entsprechen.
Aus diesem Grund ist es erforderlich, neben der bereits in FlexRay
implementierten Taktregelung (Senden einer Binärfolge zur
Synchronisation durch Korrelationsmessung), zusätzliche
Vorkehrungen zur Verbesserung der Taktregelung und zur Verringerung
der asymmetrischen Verzögerungen zu treffen. Dies kann
es erforderlich machen, dass bei einem empfangenden Teilnehmer Informationen
bezüglich der genauen Taktrate eines empfangenen Datensignals,
mit der das Datensignal gesendet wurde, zur Verfügung stehen,
was in FlexRay derzeit nicht der Fall ist.
-
Offenbarung der Erfindung
-
Der
vorliegenden Erfindung liegt deshalb die Aufgabe zugrunde, eine
Datenübertragung im Rahmen einer vorgegebenen Protokollspezifikation,
insbesondere hinsichtlich der auftretenden asymmetrischen Verzögerungen,
auch über komplexe Netzwerkstrukturen zu ermöglichen.
Insbesondere soll mit der vorliegenden Erfindung eine Möglichkeit
geschaffen werden, beim Empfänger auf eine einfache und
effiziente Weise die tatsächliche Taktrate des übertragenen
Datensignals zu ermitteln.
-
Zur
Lösung dieser Aufgabe wird ausgehend von dem Verfahren
der eingangs genannten Art vorgeschlagen, dass zur Überlagerung
des Datensignals mit einer zusätzlichen Information bezüglich
der Taktrate das Datensignal beim sendenden Teilnehmer transformiert,
das transformierte Datensignal über den Datenbus übertragen
und beim empfangenden Teilnehmer rücktransformiert wird,
wobei im Rahmen der Rücktransformation die zusätzliche
Information bezüglich der Taktrate zurückgewonnen
wird.
-
Erfindungsgemäß wird
also vorgeschlagen, das Datensignal im Sender mit zusätzlichen
Informationen bezüglich die Taktrate der Signalübertragung
zu überlagern. Das Datensignal wird dann zusammen mit der überlagerten
Information über den Datenbus übertragen. Beim
Empfänger wird das Datensignal dann wieder zurück
transformiert, um die Information bezüglich der Taktrate
zurückzugewinnen. Diese Information wird zur Ermittlung
der Taktrate des übertragenen Datensignals herangezogen.
Die ermittelte Taktrate kann zur Korrektur der Abtastung des empfangenen
Signals im Empfänger herangezogen werden, insbesondere
im Rahmen einer Taktregelung im Empfänger.
-
Die
Information bezüglich der Taktrate kann dem Datensignal
bspw. in Form mindestens eines Sollflankenwechsels an einer definierten
Position innerhalb der Datenbits des Datensignals überlagert
werden. Ein solcher Sollflankenwechsel lässt sich bspw.
mittels einer Basisbandkodierung beim Sender erzeugen. Beim Empfänger
müssen dann entsprechende Mittel zur Basisbanddekodierung
vorgesehen werden. Als Basisbandkodierung wird vorzugsweise eine
Manchester Codierung, eine Biphase-Mark Codierung oder eine Miller-Codierung
verwendet. Theoretisch denkbar wäre auch eine Codierung
mittels Barker-Folgen, mittels eines Bipolar-Codes, mittels eines
AMI-Codes oder mittels eines HDBn-Codes. Alternativ ist es denkbar,
dass ein Sollflankenwechsel an einer definierten Position innerhalb
der Datenbits des Datensignals als Information über die
Taktrate des übertragenen Datensignals auch durch einen
Scrambler beim sendenden Teilnehmer erzeugt wird. Beim Empfänger
muss dann ein entsprechender Descrambler vorgesehen werden. Beim
Einsatz eines Scramblers bzw. Descrambler müssen allerdings
die dadurch verursachten Verzögerungen berücksichtigt
werden.
-
Der
Empfänger ist vorzugsweise Teil eines aktiven Sternkopplers
eines Kommunikationssystems mit Sterntopologie ausgebildet, in dem
das eingehende Datensignal hinsichtlich einer asymmetrischen Verzögerung
von dem übertragenen Datensignal entkoppelt und die asymmetrische
Verzögerung des eingehenden Datensignals reduziert wird,
so dass das vom Sternkoppler abgehende Datensignal eine geringere
asymmetrische Verzögerung aufweist als das eingehende Datensignal.
Zur Verringerung der asymmetrischen Verzögerung wird die
im Empfänger des Sternkopplers zurückgewonnene
Information bezüglich der Taktrate der Signalübertragung
herangezogen. Dazu wird im Sternkoppler am Übergang zwischen
Empfänger und Sender ein asynchrones FIFO-Speicherelement
eingesetzt, welches von zwei (nicht synchronen) Takten gespeist
wird, nämlich zum einen dem anhand der extrahierten Information
bezüglich der Taktrate synchronisierten Takt des Kommunikationssystems,
mit dem das Datensignal vom Empfänger empfangen wird, und
dem davon unabhängigen lokalen Takt des Senders, mit dem
das Datensignal vom Sternkoppler wieder ausgesandt wird. Das synchronisierte
Taktsignal wird also im Empfänger (bzw. am Eingang) des
Sternkopplers genutzt, während das lokale Signal im Sender
(bzw. am Ausgang) des Sternkopplers zum Einsatz kommt. Das Taktsignal
im Empfänger wird mit Hilfe der übertragenen Information bezüglich
der Taktrate der Übertragung des am Eingang anliegenden
Datensignals synchronisiert, so dass die asymmetrische Verzögerung
reduziert und zum Abtastzeitpunkt stets das richtige Datenbit abgetastet
wird.
-
Bei
der Übertragung eines Datensignals von einem sendenden
Teilnehmer zu einem empfangenden Teilnehmer über eine komplexe
Netzwerktopologie mit mindestens einem aktiven Sternkoppler, wird
der aktive Sternkoppler also dahingehend erweitert, dass eine deutliche
Verringerung, nach Möglichkeit sogar eine Eliminierung
der asymmetrischen Verzögerung, welche dem Datensignal
auf der Übertragungsstrecke vom Sender bis zum Empfänger
des Sternkopplers aufgeprägt wurde, vorgenommen werden
kann. Dies bezieht sich nur auf die Strecke zwischen dem sendenden
Teilnehmer des Kommunikationssystems und dem Empfänger des
aktiven Sternpunkts. Ausgehend von einer deutlich reduzierten asymmetrischen
Verzögerung am Ausgang des aktiven Sternkopplers kann dem
Datensignal auf der letzten Teilstrecke des Übertragungspfads
zwischen dem aktiven Sternkoppler und einem empfangenden Teilnehmer
zwar ein neuer Anteil der asymmetrischen Verzögerung aufgeprägt
werden. In der Summe über den gesamten Übertragungspfad
betrachtet kann der Einsatz der beschriebenen aktiven Sternkoppler
die asymmetrische Verzögerung des beim Empfänger
eingehenden Datensignals jedoch deutlich reduzieren. In einer worst
case Betrachtung, die für die Klassifizierung eines Kommunikationssystems
erforderlich ist, kann durch die vorliegende Erfindung an jedem
in der beschriebenen Weise ausgebildeten Sternkoppler eine Entkopplung
hinsichtlich der Berechnung der maximalen asymmetrischen Verzögerung
des Gesamtnetzwerks erzielt werden.
-
Dadurch
ist es möglich, eine einfache, sehr effiziente und kostengünstige
Reduktion der asymmetrischen Verzögerung auf der Übertragungsstrecke
zu erzielen. Dazu ist es bereits ausreichend, wenn nicht alle, sondern
nur einige Sternkoppler in einem Kommunikationsnetzwerk in der vorgeschlagenen
Weise ausgebildet werden. Vorzugsweise werden jedoch alle Sternkoppler
in einem Kommunikationsnetzwerk in der vorgeschlagenen Weise ausgebildet,
sofern dies nicht in Konflikt mit der maximal zulässigen
Ausbreitungsverzögerung steht. Insgesamt kann dadurch die
Akzeptanz von FlexRay erhöht werden, da FlexRay-Kommunikationssysteme
bisher auf relativ einfache Netztopologien beschränkt waren,
was nunmehr nicht mehr der Fall ist. Mit dem beschriebenen Sternkoppler können
auch sehr komplexe Topologien realisiert werden, ohne dass die asymmetrische
Verzögerung auf den Übertragungspfaden Werte jenseits
des gemäß FlexRay-Spezifikation erlaubten Toleranzfensters
erreicht. Die vorliegende Erfindung bildet dafür die Voraussetzung,
indem dem Sternkoppler die zusätzliche Information bezüglich
der Taktrate der Signalübertragung zur Verfügung
gestellt wird, wobei der lokale Takt des Sternkopplers auf diese
Taktrate schnellstmöglich synchronisiert werden kann.
-
Die
Unteransprüche haben vorteilhafte Ausgestaltungen der Erfindung
zum Gegenstand. Ihre Vorteile und weitere Ausführungsbeispiele
der Erfindung können im einzelnen der nachfolgenden Figurenbeschreibung
entnommen werden.
-
Kurze Beschreibung der Zeichnungen
-
1 einen
erfindungsgemäßen aktiven Sternkoppler;
-
2 eine
zentrale Verarbeitungslogik des aktiven Sternkopplers auf 1;
-
3 Signalverläufe
eines gesendeten Datensignals und eines empfangenen Datensignals
zur Erläuterung der asymmetrischen Verzögerung;
-
4 ein
Schaltbild eines Zwischenspeichers zum Einsatz in einer zentralen
Verarbeitungslogik aus 2 des aktiven Sternkopplers
aus 1;
-
5 Signalverläufe
des Zwischenspeichers aus 4;
-
6 ein
Kommunikationssystem mit einer komplexen Netztopologie;
-
7 ein
Beispiel zur Erläuterung einer Manchester Kodierung; und
-
8 ein
Beispiel zur Erläuterung einer BMC-Kodierung.
-
Ausführungsform(en) der Erfindung.
-
In 2 ist
ein erfindungsgemäßer aktiver Sternkoppler für
ein FlexRay-Kommunikationssystem in seiner Gesamtheit mit dem Bezugszeichen 100 bezeichnet.
Der Sternkoppler 100 wird in der FlexRay-Protokollspezifikation
auch als aktiver Sternpunkt (Active Star) bezeichnet. Der in 2 dargestellte
Sternkoppler 100 kann an bis zu vier Zweige einer Kommunikationsverbindung
(z. B. eines Datenbusses) angeschlossen werden. Die Kommunikationsverbindung
kann eine oder mehrere elektrische Leitungen, eine oder mehrere optische
Leitungen oder andersartig ausgebildete Übertragungskanäle,
beispielsweise Funkverbindungen, aufweisen.
-
Der
in 2 dargestellte Sternkoppler 100 ist über
einen ersten Anschluss 101 und einen zweiten Anschluss 102 jeweils
an eine Leitung eines ersten Zweiges der Kommunikationsverbindung
(nicht dargestellt) angeschlossen. Über weitere Anschlüsse 103, 104; 105, 106 und 107, 108 kann
der aktive Sternkoppler 100 in entsprechender Weise an
jeweils zwei Leitungen von weiteren Zweigen der Kommunikationsverbindung
angeschlossen werden. Der Sternkoppler 100 könnte
also in einem FlexRay-Kommunikationssystem mit einer Kommunikationsverbindung
mit Sterntopologie und bis zu vier Zweigen (oder Armen) eingesetzt
werden.
-
Der
aktive Sternkoppler 100 weist für jeden der vier
Zweige einen eigenen Bus-Treiber (sogenannten Bus Driver, BD) 109, 110, 111, 112 auf.
Die Bus-Treiber 109–112 entsprechen von
ihrer Funktion her einer Sende-Empfangs-Einheit (sogenannter Transceiver).
In den Bus-Treibern 109–112 wird (zum
Empfangen) die Differenz der über die beiden Leitungen
der Zweige der Kommunikationsverbindung übertragenen und
an den Anschlüssen 101, 102; 103, 104; 105, 106 oder 107, 108 anliegenden
Signale gebildet und (zum Senden) für jeden Zweig ein Differenzsignal
generiert. Des weiteren wandeln die Bus-Treiber 109–112 ein über
einen der Zweige eingehendes analoges Datensignal bzw. Differenzsignal
in ein digitales Signal zur Weiterverarbeitung in dem Sternkoppler 100 um.
Die Bitfolge des empfangenen digitalen Signals wird von den Bus-Treibern 109–112 an
eine zentrale Verarbeitungslogik 113 weitergeleitet, die
ein Rechengerät zur Verarbeitung des eingehenden digitalen
Datensignals umfasst, das bspw. als ein FPGA (Field Programmable
Gate Array), ein Mikrocontroller, ein DSP (Digital Signal Processor),
ein CPLD (Complex Programmable Logic Device) oder einfach als eine
diskrete Logikschaltung ausgebildet ist.
-
Wahlweise
und deshalb gestrichelt dargestellt umfasst der Sternkoppler 100 einen
Kommunikations-Controller (Communication Controller, CC) 114,
der die über einen der Bus-Treiber 109–112 eingehenden und
in der zentralen Verarbeitungslogik 113 vorverarbeiteten
Daten weiter verarbeitet und/oder auswertet, um eine Überwachungs-
und/oder Routerfunktionalität zu realisieren. Zur Realisierung
der Routerfunktion wäre es denkbar, die eingehenden und
vorverarbeiteten Daten inhaltlich zu analysieren, um zu ermitteln,
für welchen der an den Sternkoppler 100 angeschlossenen
Zweige bzw. für welchen der Teilnehmer die über
einen der Kanäle eingegangenen Daten bestimmt sind. Diese
Information könnte einem Kopf-Segment (sog. Header) der eingehenden
Datenpakete entnommen werden. Eine derartige Realisierung einer
Routerfunktionalität ist jedoch gemäß derzeit
aktueller FlexRay-Spezifikation jedoch (noch) nicht vorgesehen.
Falls ein Kommunikations-Controller 114 in dem Sternkoppler 100 vorgesehen
ist, sind an dem Sternkoppler 100 ein Empfangs-Anschluss
(Receive, RxD) 115, ein Sendeanschluss (Transmit, TxD) 116 und
ein Übertragungs-Auslöseanschluss (Transmit Enable,
TxEN) 117 vorgesehen, welche an den Kommunikations-Controller 114 geführt
sind.
-
Ebenfalls
optional und deshalb gestrichelt dargestellt, umfasst der Sternkoppler 100 eine Überwachungseinheit
in Form eines Bus-Guardian 118, welche den Zugriff des
Kommunikations-Controllers 114 auf die Kommunikationsverbindung überwacht
und/oder steuert. Der Bus-Guardian 118 ist über
einen Bus-Guardian-Auslöseanschluss (Bus Guardian Enable
BGE) 119 und einen Empfangs-Auslöseanschluss (Receive
Enable, RxEN) 120 von außerhalb des Sternkopplers 100 ansteuerbar.
-
Schließlich
umfasst der aktive Sternkoppler 100 auch eine Versorgungsspannungsquelle 121,
an der über einen Anschluss (Vcc) 125 eine
Betriebsspannung und aber einen weiteren Anschluss 123 (GND)
Masse anliegt. Zusätzlich kann ein Batterie-Spannungsunterbrechungs-Anschluss
(Inhibit, INH) 124 und ein Klemme 30/15-Anschluss 122 (VBat) vorgesehen sein, an dem eine Bordnetzspannung
eines Kraftfahrzeugs, z. B. je nach Auslegung eine Batteriespannung
von 6 V, 12 V oder 24 V, anliegt.
-
Der
Sternkoppler 100 ist Teil eines Kommunikationssystems,
wie es bspw. in 6 in seiner Gesamtheit mit dem
Bezugszeichen 200 bezeichnet ist. Das Kommunikationssystem 200 umfasst
einen physikalischen Datenbus 202 sowie mehrere daran angeschlossene
Teilnehmer 204. Darüber hinaus verfügt
das Kommunikationssystem 200 über zwei Sternkoppler 100.
Ein Sternkoppler 100 empfängt und versendet – ähnlich einem
Teilnehmer 204 – Datensignale. Aus diesem Grund
ist von dem Begriff „Teilnehmer” in den Ansprüchen auch
ein Sternkoppler mit umfasst. Um in dem Kommunikationssystem synchrone
Funktionen zu realisieren und die Bandbreite durch kleine Abstände
zwischen zwei Botschaften zu optimieren, benötigen die
Teilnehmer 204 in dem Kommunikationsnetzwerk 200 eine
gemeinsame Zeitbasis, die sogenannte globale Zeit. Für
die Synchronisation von lokalen Uhren der Teilnehmer 204 werden
Synchronisationsnachrichten im statischen Teil des Zyklus übertragen,
wobei mit Hilfe eines speziellen Algorithmus entsprechend der FlexRay-Spezifikation die
lokale Uhrzeit eines Teilnehmers 204 so korrigiert wird,
dass alle lokalen Uhren zu einer globalen Uhr synchron laufen. So
verhält es sich auch bei dem Sternkoppler 100,
dessen lokales Taktsignal von einer lokalen Uhr ebenfalls auf den
globalen Zeittakt des Kommunikationssystems synchronisiert ist.
-
Bei
der Realisierung von FlexRay-Datenübertragungssystemen,
insbesondere bei komplexen Netzwerktopologien mit mehreren Sternkopplern
und passiven Netzwerken, hat sich gezeigt, dass die in dem System
auftretenden asymmetrischen Verzögerungszeiten so groß sind,
dass sie ein durch das FlexRay-Protokoll vorgegebenes Zeitbudget übersteigen.
Gemäß FlexRay-Protokoll v.2.1 wird ein Datenbit
des empfangenen Signals 8-fach überabgetastet. Etwa in
der Mitte des Datenbits wird zu einem Abtastzeitpunkt das Datenbit
abgetastet. Dies wird dadurch realisiert, dass mit fallender BSS
(Byte Start Sequence)-Flanke ein Abtastzähler synchronisiert,
d. h. zurück auf 1 gesetzt und gestartet wird. Bei einem
Zählerstand von 5 wird abgetastet. Bei einer 8-fachen Überabtastung
(sogenanntes Oversampling), wie sie derzeit in FlexRay vorgesehen
ist, verbleiben zwischen dem Abtastzeitpunkt (5. Abtastwert) und
dem 8. Abtastwert also noch 3 Abtasttakte die bei einem Kommunikationscontroller-Takt
von 80 MHz jeweils 12,5 ns, in der Summe also einem Zeitbudget von 37,5
ns entsprechen. Dieses Zeitbudget dient eigentlich zum Ausgleich
von asymmetrischen Verzögerungen aufgrund der Differenz
von fallender zu steigender Flankensteilheit und der Abweichungen
der lokalen Uhren bzw. Taktsignale/Quarztoleranzen zwischen Sender
und Empfänger. Falls jedoch – wie dies bei komplexen Netztopologien
der Fall sein kann – die asymmetrische Verzögerung
das vorgesehene Zeitbudget übersteigt, führt dies
dazu, dass bei einer Abtastung beim 5. Abtasttakt (Zählerstand
des Abtastzählers auf 5) ein falscher Wert ermittelt wird,
weil dasjenige Bit, das eigentlich hätte abgetastet werden
sollen, auf Grund der asymmetrischen Verzögerung schon
zu einem früheren Zeitpunkt anlag und durch den frühen
Flankenwechsel nicht mehr anliegt. Eine analoge Behandlung gilt
für eine asymmetrische Verzögerung nach spät.
Dann steht ein Zeitbudget von 4 Abtasttakten entsprechend 50 ns
zur Verfügung. Die Folge eines Übersteigens des
Zeitbudgets nach früh oder spät sind Decodierungsfehler,
es werden also falsche Daten empfangen.
-
Zur
Erläuterung des Begriffs der asymmetrischen Verzögerung
wird auf 3 verwiesen. Dort ist ein von
einem sendenden Teilnehmer des Kommunikationssystems mit dem Bezugszeichen 10 bezeichnetes
Signal (TxD) und das entsprechende Signal (RxD), wie es bei einem
empfangenden Teilnehmer empfangen wird, dargestellt. Die Verzögerung
für steigende Flanken ist mit dem Bezugszeichen 16 und
die Verzögerung für fallende Flanken mit dem Bezugszeichen 18 bezeichnet.
Abhängig von der Differenz der Verzögerungen für
steigende Flanken 16 und fallende Flanken 18 ergibt
sich eine asymmetrische Verzögerung 20 des übertragenen Datensignals 10 auf
dem betrachteten Übertragungspfad. Bei der Übertragung
von Daten oder Botschaften über ein Bussystem mit solchen
Verzögerungen 16, 18, werden Impulse
verzerrt, weil High-to-Low- bzw. Low-to-High-Flanken auf dem Übertragungsweg
unterschiedlich stark verzögert werden. Das führt
dann letzten Endes zu der asymmetrischen Verzögerung 20.
-
Jede
Komponente auf einem bestimmten Übertragungsweg über
das Kommunikationssystem trägt zur gesamten asymmetrischen
Verzögerung bei. Jede Komponente muss separat betrachtet
und die jeweils in den Komponenten auftretenden asymmetrischen Verzögerungen
(sog. Slewrates) addiert werden, wodurch sich dann ein worst-case
Szenario für die asymmetrische Verzögerung des
Kommunikationskanals ergibt. Das FlexRay-System muss entsprechende
Vorkehrungen treffen, um bezüglich der asymmetrischen Verzögerung innerhalb
vorgegebener Grenzwerte zu bleiben. Ziel ist es, durch geeignete
Verringerung bzw. Kompensation der asymmetrischen Verzögerung
auch in Kommunikationssystemen 200 mit komplexen Topologien
die Anforderungen an eine sichere und zuverlässige Datenübertragung
einhalten zu können. Wichtig für die Verringerung
bzw. Kompensation der asymmetrischen Verzögerung ist eine
möglichst genaue Ermittlung der Taktrate der empfangen
Signale, bspw. durch Messung der Bit- bzw. Symboldauer der Signale.
-
Um
auf der Empfängerseite die Taktrate einer Signalübertragung
zur Verfügung stellen zu können, wird erfindungsgemäß vorgeschlagen,
dass das Datensignal im sendenden Teilnehmer mit zusätzlichen
Informationen bezüglich der Taktrate des Datensignals überlagert
wird. Diese zusätzliche Information kann dem Datensignal
bspw. in Form mindestens eines Sollflankenwechsels an einer definierten
Position innerhalb der Datenbits des Datensignals überlagert
werden. Ein solcher Sollflankenwechsel lässt sich bspw.
mittels einer Basisbandkodierung beim Sender erzeugen. Das Datensignal
wird dann zusammen mit der überlagerten Information über
den Datenbus übertragen. Beim Empfänger wird das
Datensignal dann wieder zurück transformiert (bspw. mittels
einer der Basisbandkodierung entsprechenden Basisbanddekodierung),
um die übertragene Information bezüglich der Taktrate
zurückzugewinnen. Diese Information wird zur Ermittlung
der Taktrate des übertragenen Datensignals herangezogen.
Die ermittelte Taktrate kann zur Korrektur der Abtastung des empfangenen
Signals im Empfänger herangezogen werden, insbesondere
im Rahmen einer Taktregelung im Empfänger. Als Basisbandkodierung
wird vorzugsweise eine Manchester Codierung (MC), eine Eiphase-Mark Codierung
(BMC) oder eine Miller-Codierung verwendet.
-
In 7 ist
ein Manchester kodiertes Signal mit dem Bezugszeichen 11,
und der entsprechende dekodierte Wert der Datenbits des Signals 11 ist
darunter angegeben und mit dem Bezugszeichen 12 bezeichnet. Bei
der Manchester Codierung werden die Datenbits in die Flanken des
Signals codiert. Der informationstragende Flankenwechsel tritt immer
zur Bitmitte auf. Eine fallende Flanke bedeutet zum Beispiel eine
logische 1, eine steigende Flanke eine logische 0 (bzw. je nach
Definition auch umgekehrt). Daher gibt es mindestens eine Flanke
pro Datenbit. Für die Übertragung des Manchester
kodierten Signals wird die doppelte Bitrate des eigentlichen Nutzsignals
benötigt. Der Code ist definitionsgemäß nicht
invertierbar. Daneben gibt es noch den Differentiellen Manchester
Code, bei dem im Gegensatz zur Manchester Codierung am Bitanfang
nur bei Nullen ein Flankenwechsel stattfindet. Dadurch geht die
feste Zuordnung zwischen Richtung des Flankenwechsels und logischem
Signalzustand verloren.
-
Die
Miller Codierung ist auch unter dem Begriff Delay Codierung bekannt.
Mittels dieser Kodierung wird jede logische 1 im seriellen Datenstrom
mit einer Taktflanke in der Bitmitte kodiert, während eine
logische 0 entweder keine Flanke besitzt (sofern sie von einer 1
gefolgt wird) oder sie wird mit einer Flanke zum Bitbeginn kodiert.
Als Ergebnis treten Flankenwechsel in den Vielfachen 1.0, 1.5, und
2.0 der Bitzeiten auf.
-
In 8 ist
ein Taktsignal für die Kodierung mit dem Bezugszeichen 13,
das zu kodierende Datensignal mit dem Bezugszeichen 14 und
das BMC kodierte Signal mit dem Bezugszeichen 15 bezeichnet.
Bei der BM Codierung entsprechen zwei Nulldurchgänge des
BMC-Signals 15 pro zwei Taktzyklen logisch 1 und ein Nulldurchgang
des BMC-Signals pro zwei Taktzyklen entsprechen logisch O. Mit anderen
Worten beginnt jedes Bit mit einer Flanke, im Falle einer logischen
1 erfolgt in der Mitte des Bits eine weitere Flanke, während für
die 0 die Flanke ausbleibt. Die Bitrate des Datensignals 14 entspricht
der halben Frequenz des Taktsignals 13. Der Code ist invertierbar,
da keine genaue Zuordnung der Flanken existiert.
-
Ansonsten
gibt es noch eine Reihe von weiteren Codes, bspw. den kBnT-Code
(k Binärzeichen, n Ternärzeichen), die jeweils
mehrere Bits zusammenfassen und dafür sorgen, dass genügend
Flankenwechsel innerhalb dieser Pakete auftreten und eine Synchronisation
des Abtasttaktes beim Empfänger ermöglichen. Auf diese
Weise kann der Bandbreitenbedarf sehr gering gehalten werden (d.
h. eine Erhöhung von ca. 25% ist bei Wahl eines geeigneten
Codes ausreichend, die zusätzliche Information bezüglich
der Taktrate zu übertragen). Ausschlaggebend für
die Güte eines Codes ist immer die Effektivität
bzw. das Redundanzmaß. So gesehen ist ein kBnT-Code natürlich
eher empfehlenswert, jedoch hat dieser Auswirkungen auf die Übertragungsverzögerung
(sog. Propagation Delay). Natürlich gibt es noch eine Reihe
weiterer Codes, die sich speziell für die Synchronisation
sehr gut eignen, z. B. Barker-Folgen, jedoch ist deren Einsatz mit
einem sehr viel größeren Bandbreitenbedarf verbunden.
Wenn jedoch genug Bandbreite zur Verfügung steht, weil
bspw. das Datensignal die in dem Kommunikationssystem verfügbare
Bandbreite nur teilweise nutzt, stellt dies keine bzw. lediglich
eine unerhebliche Einschränkung dar. Besonders gut geeignet
ist der Einsatz eines Barker-Codes zur groben Synchronisation des
Empfängers zu Beginn der Übertragung. Da hier
die Daten aufgrund der Verkürzung des Datenrahmens (sog.
Truncation) ohnehin verworfen werden, kann dieser Zeitraum genutzt werden,
um den Empfänger zu konfigurieren. Truncation ist der Teil
der Nachricht, der eigentlich keine Informationen enthält.
Es geht darum, dass ein physikalisches Signal auf dem Kanal liegt
und sich das System darauf „einstellen" kann, dass gleich „nützliche"
Informationen kommen. Dieser Teil des Frames, d. h. in der Regel die
ersten 14 Bit, dürfen auch verloren gehen oder verfälscht
ankommen, da sie keine Informationen für den Empfänger
beinhalten.
-
Weitere
Codes, wie bspw. der Bipolar- oder Alternate Mark Inversion (AMI)-Code,
erlauben ebenfalls eine Rückgewinnung des Takts (besser
ist hier jedoch der HDBn (High Density Bipolar)-Code). Sie beinhalten jedoch
auch ein Auslöschen des Signals, was in diesem Fall mit
einer Amplitudenmodulation gleichgesetzt werden kann.
-
Alternativ
könnten auch Scrambler (selbstsynchronisierende Verwürfler)
eingesetzt werden, welche die Datenbits nach einem bestimmten Algorithmus
verwürfeln. Diese sorgen für eine Transformation
des Datensignals, um unabhängig vom Quellensignal häufigere
Nulldurchgänge zu erzwingen. Im Gegensatz zu den obigen
Codes wird hierfür keine höhere Bandbreite, sowie
keine zusätzliche Redundanz benötigt.
-
Um
eine sichere Rückgewinnung der Bitdauer gewährleisten
zu können, muss das eingesetzte Kodierverfahren einen Sollflankenwechsel
an einer definierten Position innerhalb des Datenbits besitzen.
Hierfür ist zum einen die Manchester-Codierung und zum
anderen die BMC-Codierung besonders gut geeignet.
-
Zur Übertragung
der Daten in einem FlexRay-PLC-System wird eine Kombination aus
dem DBPSK-Verfahren und einer entsprechenden Basisbandkodierung
mit Sollflankenwechsel verwendet. Im Falle eines reinen FlexRay-Kommunikationssystems
(nicht Energieversorgungsleitungen bilden die physikalische Ebene,
sondern ein herkömmlicher Datenbus), genügt das
Einfügen einer Basisbandkodierung. In beiden Fällen
ergibt sich somit ein Übertragungsverfahren mit einem bis
zum zweifachen erhöhten Bandbreitenbedarf, welches in bestimmten
Datenbits, vorzugsweise in jedem Datenbit, eine definierte Rückgewinnung
der Taktinformation aus den Sollflankenwechseln an einer definierten
Position innerhalb des Datenbits zulässt. Dies ist erforderlich,
um die Forderung eines definierten asymmetrischen Delays des Kommunikationssystems
zu jedem Zeitpunkt der Kommunikation sicherstellen zu können.
-
Die
im Empfänger, insbesondere im Sternpunkt 100,
ermittelte Taktrate des übertragenen Datensignals, kann
zur Realisierung einer Taktregelung herangezogen werden. Das Konzept
einer Taktregelung ist an sich bspw. auf S. 233 in Kroschel,
Kristian: Datenübertragung, ISBN 3-540-53746-5, Springer
Verlag, 1991 ausführlich beschrieben. Für
gewöhnlich erfolgt die Taktregelung in zwei Stufen: in
einer Initialisierungsphase nach dem Einschalten des Modems wird
eine bekannte Binärfolge, die sog. Präambel gesendet,
die zur groben Synchronisation des Empfängers durch Korrelationsmessung
verwendet wird. Dieser Zeitraum muss innerhalb der Truncation Periode
liegen und könnte beispielsweise eine Barkerfolge sein.
Wenn in der zweiten Stufe die eigentlichen Daten übertragen
werden, erfolgt die Feinregelung in der nachfolgend im Detail beschriebenen Weise
unter Ausnutzung der zusammen mit dem Datensignal zusätzlich übertragenen
Informationen bezüglich der Taktrate der Übertragung.
-
Durch
den Einsatz der überlagerten Basisbandkodierung mit Sollflankenwechsel
kann ein langer Synchronisierungsvorgang umgangen werden, da die
Sollflanken zweier aufeinander folgender Bits des Datensignals sofort
eine Aussage über die aktuelle Taktrate des Datensignals
liefern. Dadurch wird die Rückgewinnung des Taktes sehr
einfach, beinhaltet jedoch einen limitierten Fangbereich auf dem
die Frequenz "einrasten" kann, weshalb stets ein kleiner, praktisch
vernachlässigbarer Fehler vorhanden sein wird. Dieser Fehler
ergibt sich wie folgt.
-
Der
Empfänger (z. B. der Sternkoppler 100) überabtastet
das eingehende Datensignal gemäß der FlexRay-Spezifikation
mit der 8-fachen Frequenz der Bitdauer bzw. Symbolrate. Die Abtastfrequenz
im Empfänger muss somit mindestens 80 MHz betragen. Somit
ergibt sich alle 12,5 ns ein neuer Abtastwert. Zur Kompensation
des Versatzes zwischen Sender und Empfänger und Abweichungen,
die durch den Kanal entstehen, adaptiert der Empfänger
die Datenperiode durch Variation der Taktfrequenz. Somit verwendet
der Empfänger nicht immer 8 Taktzyklen, um das eingehende
kodierte und abgetastete Signal zurück zu gewinnen, sondern wahlweise
7, 8 (ideal) oder 9 Taktzyklen.
-
Durch
Begrenzung der maximalen Phasenkorrektur auf 1/8 der gesamten Datenperiode,
ergibt sich der theoretische Fehler bei der Detektion einer Sollflanke
ebenfalls zu 1/8 der Bitdauer. Bei der Berechnung des asymmetrischen
Delays eines FlexRay-Kommunikationssystems muss dieser Fehler berücksichtigt
werden, was auf einen maximalen Delay von 12,5 ns bei einer Abtastfrequenz
von 80 MHz führt. Dieser Fehler wird zwar am Eingang des
aktiven Sternkopplers 100 durch das vorgeschlagene Konzept
herbeigeführt (wie dies übrigens auch in jedem
FlexRax-Knoten der Fall ist), jedoch durch das vorgestellte Konzept
nicht auf den Sendepfad weitergegeben.
-
Der
Empfänger, in dem die Taktrate des übertragenen
Datensignals zurück gewonnen wird, ist vorzugsweise als
ein aktiver Sternkoppler 100 des Kommunikationssystems
ausgebildet, in dem das eingehende Datensignal hinsichtlich einer
asymmetrischen Verzögerung von dem übertragenen
Datensignal entkoppelt und die asymmetrische Verzögerung
des eingehenden Datensignals reduziert wird, so dass das vom Sternkoppler
abgehende Datensignal eine geringere asymmetrische Verzögerung
aufweist als das eingehende Datensignal. Um die asymmetrischen Verzögerungen 20 in
einem Kommunikationsnetzwerk reduzieren zu können, wird
eine Erweiterung des Sternkopplers 100 dahingehend vorgeschlagen,
dass eine Reduzierung bzw. sogar Eliminierung der asymmetrischen
Verzögerung, die bis zum Erreichen des Sternkopplers 100 dem
Datensignal aufgeprägt wurde, vorgenommen wird. Dies bezieht
sich nur auf die Strecke zwischen dem sendenden Teilnehmer und dem
Sternkoppler 100, während auf der letzten Teilstrecke
des Übertragungspfads zwischen aktivem Sternkoppler 100 und
dem empfangenden Teilnehmer ein neuer Anteil an asymmetrischer Verzögerung
auf das Datensignal aufgeprägt werden kann.
-
Insbesondere
wird eine Erweiterung des Sternkopplers 100 vorgeschlagen,
die zu einer Entkopplung der asymmetrischen Verzögerung
auf der Übertragungsstrecke führt. Somit muss
für eine worst-case Betrachtung des asymmetrischen Delays
nur noch der Pfad zwischen einem Knoten (bzw. Teilnehmer) und einem
erfindungsgemäßen aktiven Sternkoppler, sowie
zwischen zwei erfindungsgemäßen aktiven Sternkopplern
untersucht werden. Das bedeutet, dass, sofern die Summe aller auf
diesen beiden Teil-Übertragungsstrecken maximal auftretenden
asymmetrischen Verzögerungen je Komponente den Grenzwert
des maximal zulässigen asymmetrischen Delays nicht verletzt,
keine weitere Analyse des späteren Gesamtaufbaus des Kommunikationsnetzwerks
erforderlich ist. Selbstverständlich muss noch die Laufzeit
(Propagation Delay) eingehalten werden.
-
Die
erfindungsgemäß vorgeschlagene Erweiterung des
Sternkopplers 100 wird in der zentralen Verarbeitungseinheit 113 implementiert.
Ein Beispiel für eine erweiterte Verarbeitungseinheit 113 ist
in 1 dargestellt. Anstelle einer simplen Verzweigungsmatrix
zum Steuern der ein- und ausgehenden Signale innerhalb der zentralen
Verarbeitungslogik 113, sowie der Überwachung
durch den optionalen Bus Guardian 118, wird im erfindungsgemäßen
aktiven Sternkoppler 100 eine komplette Knotenfunktion
implementiert. Der Sternkoppler 100 ist also ein echter
Teilnehmer des Kommunikationssystems mit einer eigenen lokalen Uhr
(Oscillator 132), dessen lokales Taktsignal 134 in
einer Synchronisationseinheit 136 auf das Taktsignal 138 des
sendenden Teilnehmers synchronisiert wird. Die nach dem erfindungsgemäßen
Verfahren zurück gewonnene Taktrate des eingehenden Datensignals
wird der Synchronisationseinheit 136 zugeführt,
damit diese das lokale Taktsignal 134 auf das globale Taktsignal 138 synchronisieren
kann.
-
Einer
der Bustreiber 109–112 des erfindungsgemäßen
Sternkopplers 100 ist als Empfänger konfiguriert
und mindestens ein anderer Bustreiber 109–112 als
Sender. In dem Ausführungsbeispiel aus 1 wird das
eingehende Signal bspw. von dem Bustreiber 110 empfangen
und über den Bustreiber 112 wieder aus dem Sternkoppler 100 ausgesandt.
Die zentrale Verarbeitungseinheit 113 des Sternkopplers
weist Mittel zum Entkoppeln des asymmetrischen Delays auf der Übertragungsstrecke
auf. Diese Mittel bewirken eine physikalische Trennung des Eingangs
(Bustreiber 110) von dem Ausgang (Bustreiber 112)
des Sternkopplers, so dass ein über den Sternkoppler zu übertragendes
Datensignal 40 nicht mehr direkt von dem empfangenden Bustreiber 110 des
Sternkopplers zu dem sendenden Bustreiber 112 übertragen
werden kann. Außerdem weist der Sternkoppler 100 Mittel
zum Reduzieren der asymmetrische Verzögerung des eingehenden
Datensignals 40 auf, so dass das abgehende Datensignal 41 eine
geringere asymmetrische Verzögerung aufweist als das eingehende
Datensignal 40.
-
Gemäß der
in 1 dargestellten Ausführungsform der Erfindung
umfassen sowohl die Mittel zum Reduzieren der asymmetrische Verzögerung
als auch die Mittel zum Entkoppeln des asymmetrischen Delays ein
Speicherelement 130, das beispielsweise als ein asynchroner
FIFO-Speicher realisiert ist. Ein FIFO ist eine besondere Form eines
Schieberegisters. Das gemeinsame Merkmal ist, dass die Daten in
der gleichen Reihenfolge am Ausgang des FIFO-Speichers erscheinen,
wie sie eingegeben wurden. Das zuerst geschriebene Datenwort (First
In) wird als erstes ausgelesen (First Out). Bei einem FIFO-Speicher
kann dieser Vorgang im Unterschied zu einem Schieberegister völlig
asynchron erfolgen, das heißt der Auslesetakt ist unabhängig
vom Eingabetakt.
-
Zur
Realisierung des erfindungsgemäßen Verfahrens
wird das eingehende Datensignal 40 zunächst mit
dem global synchronisierten Taktsignal 138 in einer Dekodiereinheit 140 dekodiert.
Das Dekodieren des empfangenen Signals 40 umfasst zum einen
eine Basisbanddekodierung, mit der das basisbandkodierte Signal 40 wieder
dekodiert werden kann. Aus den im Wege der Basisbandkodierung in
das Datensignal eingebrachten zusätzlichen Flankenwechsel
zu definierten Zeitpunkten kann im Dekodierer 140 die Taktrate
der Datenübertragung zurückgewonnen werden. Diese
im Empfänger des Sternkopplers 100 ermittelte
Taktrate der Datenübertragung wird zur Synchronisation
des Taktsignals im Empfänger genutzt. Des weiteren wird
zum Dekodieren des eingehenden Signals 40 im Dekodierer 140 das
Signal 40 Bit für Bit jeweils mehrfach, bspw. 8-fach, überabgetastet.
Durch eine Mehrheitsentscheidung über die abgetasteten
Signalwerte eines zu verschiedenen Abtastzeitpunkten abgetasteten
Datenbits wird der Wert des Datenbits ermittelt. Falls bspw. bei einer
8-fachen Überabtastung sechs Abtastungen den Wert "1" ergeben
und lediglich zwei Abtastungen den Wert "0", wird davon ausgegangen,
dass die Abtastwerte "0" fehlerhaft sind (bspw. als Folge des asymmetrischen
Delays) und dass das Datenbit tatsächlich den Wert "1"
hat. Das Datenbit wird mit dem Wert "1" in dem Speicher 130 abgespeichert.
-
Wie
bereits erwähnt, entspricht der Empfangsteil des Sternkopplers 100 dem
eines herkömmlichen Knotens, das heißt der Takt
wird auf die Empfangsfolge und somit auf den Takt des sendenden
Knotens synchronisiert. Aufgrund der im Signal 40 vorkommenden
asymmetrischen Verzögerung kann es zu Verschiebungen im
Rahmen der Synchronisation kommen. Bevor die Daten in dieser Form
wieder auf den Kanal gegeben werden, wird deshalb der asymmetrische
Delay aus dem Signal 40 entfernt. Dazu werden die Daten
in dem asynchronen FIFO-Speicher 130 zwischengespeichert
und anschließend in einer Kodiereinheit 142 mit
dem lokalen Systemtakt 134 des aktiven Sternkopplers 100,
das heißt nicht mit dem synchronisierten Taktsignal 138 des
Kommunikationssystems, erneut kodiert. Der Ausgang des aktiven Sternkopplers
entspricht dann wiederum einem sendenden Knoten, der die Daten des
Kommunikations-Controllers (CC), in diesem Fall aus dem Zwischenspeicher 130 liest
und diese gegebenenfalls verstärkt über die physikalische
Schicht (physical layer) versendet. Die Berechnung des asymmetrischen
Delays kann nun wiederum von neuem beginnen, da durch das Auslesen
der Sendedaten aus dem Speicher 130 nur noch das asymmetrische
Delay des Oszillators 132, das heißt des aktiven
Sternkopplers 100 selbst, einen Einfluss auf das Datensignal 41 am
Ausgang des Sterns besitzt.
-
Der
Einsatz des asynchronen FIFO-Speichers 130 ist erforderlich,
da aufgrund des Frequenzversatzes zwischen dem synchronisierten
Takt 138 bzw. dem Takt des sendenden Teilnehmers und dem
Takt 134 des aktiven Sterns 100 keine direkte
Verbindung von Datenleitungen zulässig ist. Ansonsten könnten
bei längeren Datenrahmen aufgrund der beiden asynchron
laufenden Taktsignale 134, 138 Übertragungsfehler
auftreten. Aus diesem Grund wird der asynchrone FIFO-Speicher 130 als
Schnittstelle zwischen den beiden Taktebenen eingesetzt. Der asynchrone
FIFO-Speicher 130 kann zum Datenaustausch zwischen komplett
unabhängigen Taktdomänen eingesetzt werden. Die
Beseitigung des asymmetrischen Delays aus dem Datensignal 40 erkauft
man sich durch eine Zwischenspeicherung der Daten und somit durch
eine geringfügige Erhöhung der Übertragungsverzögerung
(des Propagation Delays). Gemäß der FlexRay-Spezifikation
V.2.1 muss darauf geachtet werden, dass die maximale Verzögerung
eines aktiven Sternkopplers zwei Bitzeiten nicht überschreitet.
Für das Timing eines aktiven Sternkopplers 100 gelten
gemäß Spezifikation folgende Grenzwerte:
- – Übertragungsverzögerung
(sog. Propagation Delay) über einen aktiven Sternkoppler:
max. 250 ns
- – Asymmetrische Verzögerung (sog. Asymmetric
Propagation Delay): max. 8 ns
- – Zusätzliche Verkürzung des Datenrahmens
(sog. Truncation) durch Einfügen eines aktiven Sternkopplers in
einen Übertragungspfad zwischen Knoten M und Knoten N:
max. 450 ns
-
Für
die worst case Betrachtung wird eine 10 MBit/sec-Verbindung betrachtet,
da bei niedrigeren Datenraten größere asymmetrische
Verzögerungen auftreten dürfen, um trotzdem noch
einen fehlerfreien Empfang der übertragenen Daten zu gewährleisten.
Wenn man die Übertragungsverzögerung in Bitzeiten
für eine 10 MBit/sec-Verbindung ausdrückt, kommt
man auf eine maximal zulässige Verzögerung von
kleiner oder gleich 2,5 Bitzeiten. Ein Datenbit darf somit für
maximal 2 Bitzeiten in dem FIFO-Speicher 130 gespeichert
werden, da 3 Bitzeiten bereits zu lang wären. Zu Beginn
der Übertragung bzw. des Datenrahmens (sog. Frames) werden
4,5 Bits verloren gehen (sog. Truncation).
-
Herkömmliche
FIFO-Speicher dienen zum Speichern von 8 Bit-Datenworten, wobei
auch andere Varianten erhältlich sind (vgl. Datenblätter
der Hersteller von FIFO-Speichern, bspw.
-
Texas
Instruments, Inc.). Generell erfolgt das Ablegen der Informationen
in einem Speicher mit wahlfreiem Zugriff (sog. Random Access Memory;
RAM). Für den Einsatz in einem erfindungsgemäßen
aktiven Sternkoppler 100 ist die Speicherung kompletter
Datenworte nicht erforderlich. Es reicht aus, jeweils nur ein Bit
in einen Speicher abzulegen. Die "Haltbarkeit" der abgelegten Informationen
muss ebenfalls nicht sehr lange sein, das heißt der Speicher
kann aufgrund der maximal zulässigen Übertragungsverzögerung
kurz ausgelegt werden. In dem vorliegenden Fall genügt
ein 4 Bit FIFO-Speicher.
-
Im
Rahmen der vorlegenden Erfindung wird ein spezielles Speicherkonzept
eingeführt. 4 zeigt einen 1-Bit asynchronen
FIFO-Speicher 130 in Ringstruktur der Länge 4.
Der FIFO-Speicher 130 wurde bewusst als Ringstruktur programmiert,
da bei diesem Typ die Durchlaufzeiten im Vergleich zu einem herkömmlichen Schieberegister
eine geringere Rolle spielen. Denn bei dieser Art von FIFOs werden
nicht die Daten verschoben, sondern lediglich Pointer, die auf die
abgelegten Daten zeigen. Somit wird allerdings ein Speicher mit
separatem Lese- und Schreibtakt benötigt. Der Name Ringspeicher
ist auf den Überlauf der Pointer zurück zu führen,
da dadurch quasi ein Ring des Speichers entsteht. Die jeweiligen
Pointer werden durch Taktteiler 150 bis 154 gewonnen.
Die eingehenden Datenbits der dekodierten Empfangsdaten 160 werden
nacheinander in den vier D-Flip-Flops 162 bis 168 abgespeichert.
Die Speicherung erfolgt synchron zum synchronisierten Takt 138 mit
den Taktsignalen T1 bis T4. Die Auswahl des Flip-Flops 162 bis 168 erfolgt
durch eine Vierteilung des synchronisierten Takts 138 um
den Faktor vier und eine um eine Taktzeit verschobenen Ausgabe.
-
Die
Ausgabe der Daten bzw. das erneute versenden und kodieren mit der
Kodiereinheit 142 erfolgt dagegen mit dem lokalen Systemtakt 134 des
Sternkopplers 100, wie der 4 entnommen
werden kann. Die Auswahl der entsprechenden Speicherstelle für
den Lesevorgang erfolgt ähnlich der des Schreibvorgangs. Ebenfalls
durch eine Teilung des Systemtakts 134 mittels Taktteiler 156 und 158 wird
die jeweilig folgende Speicherstelle durch einen Schalter (sog Switch) 170 ausgewählt.
Je mehr Speicherzellen der Ringspeicher beinhalten würde,
umso größer könnte der zulässige
Unterschied in den Taktfrequenzen zwischen synchronisiertem Takt 138 und
lokalem Systemtakt 134 ausfallen. Allerdings nimmt mit
der Anzahl der Speicherzellen auch die Übertragungsverzögerung
zu.
-
5 zeigt
den zeitlichen Verlauf der Signale des 1-Bit asynchronen FIFO-Speichers 130 in Ringstruktur
der Länge vier aus 4, beim
Eintreffen eines Datensignals (SOF; Start of Frame), nach vorheriger
Initialisierung und der nachfolgend beginnenden Zwischenspeicherung
der Datenbits.
-
Das
System befindet sich zu Beginn der Signalverläufe aus 5 in
einem Standby-Zustand. In diesem Zeitraum werden die Flip-Flops
entsprechend der Werte unter der Bezeichnung INIT initialisiert.
Danach erfolgt dann der Beginn des Datenrahmens (sog. Datenframe),
welcher in der 5 mit SOF (Start of Frame) bezeichnet
wurde. In der Zeile "Data In" sind die eingehenden Daten zu erkennen,
während zu diesem Zeitpunkt ein synchronisierter Takt ("Clk
syn") vorliegt. Zudem besteht hier gemäß der FlexRay-Spezifikation
V.2.1 ein zusätzlicher Spielraum von ca. 4 Bits (siehe 3).
Durch die Taktteiler werden daraus die entsprechenden Trigger bzw.
verzögerten Taktsignale T1 bis T4 gewonnen. In der darauf
folgenden Zeile ist mit Pfeilen bezeichnet, welches Bit in welchem
positiv flankengetriggertem Register D0 bis D3 abgespeichert wird.
-
Parallel
zur Detektion des Beginns des Datenrahmens (SOF) wird auch der Systemtakt 134 ("Sys-Clk")
auf den Ausgang des asynchronen FIFO-Speichers 130 geschaltet.
Aufgrund der Initialisierung beginnt dieser die Datenbits um zwei
Registerwerte versetzt aus dem Ringspeicher zu lesen. Somit müssen
die ersten beiden am Ausgang ("Output") anliegenden Bits (D2, D3)
verworfen werden, bevor die ersten Nutzdaten (D0, D1,...) aus dem
FIFO-Speicher 130 ausgelesen werden. Anhand der 5 lässt
sich gut erkennen, dass die Übertragungsverzögerung
(Propagation Delay) durch Einsatz der vorliegenden Erfindung zwar
erhöht wurde, jedoch mit einer Dauer von 2 Bitzeiten genau
im Bereich des zulässigen Grenzwerts gemäß FlexRay-Spezifikation
liegt.
-
Setzt
man weiter als maximal zulässigen Frequenzoffset der beiden
Taktfrequenzen den Versatz um maximal eine Bitdauer an (wobei durch
die Ringstruktur der Länge vier mit Startversatz um zwei
Speicherstellen nach der Initialisierung in positiver wie negativer
Versatzrichtung genügend Spielraum für diese Annahme besteht),
so ergibt sich die Quarzgüte zu:
mit r
b als
Datenrate und N
Frame als Anzahl an Bits
pro Datenrahmen (sog. Frame). Ein FlexRay-Datenrahmen beinhaltet
laut der Spezifikation maximal 2096 Bits. Für eine worst
case Betrachtung ist eben diese maximale Framelänge von
Bedeutung wodurch sich eine maximale Frequenztoleranz von
ergibt.
Herkömmliche Quarzoszillatoren haben sogar nur einen Toleranzbereich
von 100 ppm.
-
Zusammenfassend
ergibt sich durch die vorliegende Erfindung also eine besonders
vorteilhafte Möglichkeit, die asymmetrische Verzögerung
selbst in komplexen Netzwerkstrukturen auf einen sehr niedrigen Wert
zu reduzieren, der problemlos innerhalb des gemäß Protokollspezifikation
zulässigen Toleranzfensters für die asymmetrische
Verzögerung liegt. Zum Reduzieren der asymmetrischen Verzögerung
beim Empfänger wird die zusammen mit dem Datensignal übertragene
Information bzgl. der Taktrate der Signalübertragung herangezogen.
Diese Information wird in Form eines vorgegebenen Flankenwechsels
zu einem definierten Zeitpunkt innerhalb eines Datenbits des Datensignals übertragen.
Der Sollflankenwechsel wird im Sender in das Datensignal eingebracht
und beim Empfänger aus dem empfangenen Datensignal wieder
extrahiert, um die Taktrate der Signalübertragung zu ermitteln.
Die vorliegende Erfindung kann problemlos mit weiteren Maßnahmen
zur Reduzierung der asymmetrischen Verzögerung oder zur
anderweitigen Verbesserung des Datenübertragungsverhaltens
in der Netzwerkstruktur, bspw. einer variablen Adaption des Abtastzeitpunktes,
kombiniert werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - S. 233 in
Kroschel, Kristian: Datenübertragung, ISBN 3-540-53746-5,
Springer Verlag, 1991 [0051]