-
Gebiet der
Erfindung
-
Die
Erfindung betrifft Bitcodierverfahren für Mikrocontroller-basierte
verteilte Systeme und insbesondere, aber nicht ausschließlich, derartige
Verfahren, die eine Zeitsynchronisation ohne einen Bushauptcontroller
benötigen.
-
Hintergrund
der Erfindung
-
Es
sind verschiedene Bitcodiersysteme bekannt, die serielle Kommunikationsprotokolle
für Datenverkehr
auf verteilten Mikrocontrollersystemen ermöglichen, bei denen kein Bushauptcontroller
vorhanden ist. Diese suchen üblicherweise
den besten Kompromiss zwischen Synchronisation (um eine fehlerfreie
Datenübertragung
sicherzustellen), einer effektiven Verwendung der verfügbaren Bandbreite und
niedrigst möglichen
EMI-Emissionen ("EMI
= Electro-Magnetic-Interference"/Elektromagnetische Interferenz).
-
Beispielsweise
stellt ein übertragender
Mikrocontrollerknoten, der das CAN-Protokoll ("CAN = Controller Area Network") verwendet, sicher,
dass Synchronisation innerhalb eines Netzwerkes dadurch aufrechterhalten
wird, dass zusätzliche
Bits in eine Nachricht "eingefügt" werden, nachdem
fünf aufeinander
folgende High- oder Low-Bits übertragen worden
sind. Das eingefügte
("stuffed") Bit weist die gegensätzliche
Polarität
verglichen mit fünf
vorausgehenden Bits auf und der Empfänger ist in der Lage, auch
die zusätzliche
Flanke beziehungsweise die zusätzlichen
Flanken in der Nachricht zu synchronisieren. Demnach wird die Synchronisation
auf Kosten eines Bandbreitenverlustes und eines geringen Anstiegs
der EMI-Emissionen erreicht.
-
Ein
weiteres Beispiel, das eine Manchester-Codierung verwendet, teilt
jede Bitzeit in zwei Teile, einen Taktteil und einen Datenteil.
In diesem Fall wird die Synchronisation aufrechterhalten und die
EMI-Emissionen bleiben durch die Codierung zufriedenstellend, die
eine mittlere Flanke pro Bitzahl von ungefähr 0,75 erzeugt, allerdings
auf Kosten der Bandbreite, die effektiv halbiert wird.
-
Die
EP-A-0 110 427 (Erfinder – Josef
Dirr) offenbart den prinzipiellen Betrieb eines PAM-Systems ("PAM = Pulse Amplitude
Modulated"/Puls-Amplituden-moduliert),
bei dem eine Anzahl von sinusförmigen
Wellenformen zur "Darstellung" von Daten verwendet
und kombiniert werden kann. Demnach kann in Abhängigkeit davon, welche Kombination
von sinusförmigen
Wellen zusammengefügt
wird, ein bestimmter Code erzeugt und am Empfangsende decodiert
werden.
-
Die
GB-A-2 314 432 von Motorola, Inc. offenbart ein Bussystem zur Verwendung
in einer Kraftfahrzeugumgebung, wobei AC-Signale mit Diagnose-Rückkopplungsdaten
moduliert werden, um die Rauschimmunität zu verbessern.
-
Demnach
wird ein neues Bitcodierverfahren für serielle Kommunikationen
benötigt,
das Probleme der Synchronisation innerhalb einer verteilten Systemarchitektur
und EMI-Emissionen behebt, während die
Bandbreite vollständig
genützt
wird.
-
Diese
Erfindung ist bestrebt, ein Bitcodiersystem und ein Verfahren zur
Verfügung
zu stellen, die die oben erwähnten
Nachteile mildern.
-
Zusammenfassung
der Erfindung
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung wird ein Bitcodiersystem
zur Verfügung
gestellt, das auf einem Bus eines verteilten Mikrocontrollernetzwerkes
verwendet wird, das Mittel zum Bereitstellen einer ersten im Wesentlichen
sinusförmigen
Wellenform umfasst, die zwischen ersten und zweiten Amplituden amplitudenmoduliert
ist, um erste und zweite Bitwerte zu definieren, sowie Mittel zum
selektiven Wechseln zwischen den ersten und zweiten Bitwerten im
Wesentlichen bei einem Auftreten eines vorherbestimmten Periodenparameters
für ein
Definieren von Zeitinformationen für den Bus.
-
Gemäß einem
zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren zum
Bitcodieren eines Bus eines verteilten Mikrocontrollernetzwerkes zur
Verfügung
gestellt, wobei das Verfahren umfasst: Amplitudenmodulieren einer
ersten im Wesentlichen sinusförmigen
Wellenform zwischen ersten und zweiten Amplituden, um erste und
zweite Bitwerte zu definieren; sowie selektives Wechseln zwischen
den ersten und zweiten Bitwerten im Wesentlichen bei einem Auftreten
eines vorherbestimmten Periodenparameters, um Zeitinformationen
für den
Bus zu definieren.
-
Der
vorherbestimmte Periodenparameter ist vorzugsweise eine Nullstelle
der ersten sinusförmigen
Wellenform. Vorzugsweise ist der vorherbestimmte Periodenparameter
die Negativ-zu-positiv-Nullstelle der sinusförmigen Wellenform.
-
Das
System beziehungsweise das Verfahren umfasst weiterhin vorzugsweise
eine zweite sinusförmige
Wellenform, die auf einem zweiten Bus zur Verfügung gestellt wird, wobei die
weitere Wellenform gegenphasig zu der ersten Wellenform amplitudenmoduliert
ist und einen vorherbestimmten Periodenparameter zum Definieren
von Zeitinformationen für den
zweiten Bus aufweist.
-
Vorzugsweise
ist der vorherbestimmte Periodenparameter der zweiten Wellenlänge um eine
halbe Wellenlänge
von dem vorherbestimmten Periodenparameter der ersten Wellenform
phasenverschoben.
-
Auf
diese Weise werden ein neuartiges Bitcodiersystem und Verfahren
für serielle
Kommunikationen zur Verfügung
gestellt, die die Probleme des Erreichens von Synchronisation während des
Aufrechterhaltens niedriger EMI-Emissionen beheben und eine effiziente
Verwendung der Bandbreite aufweisen.
-
Kurze Beschreibung
der Zeichnungen
-
Eine
beispielhafte Ausführungsform
dieser Erfindung wird jetzt unter Bezugnahme auf die Zeichnungen
beschrieben, in denen:
-
1 eine
Wellenform zeigt, die ein Bitcodierverfahren gemäß der Erfindung darstellt;
-
2 einen
Abschnitt eines verteilten Mikrocontrollersystems zeigt, dass das
Bitcodierverfahren der 1 verwendet.
-
Detaillierte Beschreibung
einer bevorzugten Ausführungsform
-
Unter
Bezugnahme auf 1 ist ein im Wesentlichen sinusförmiges Wellenformsignal 10 gezeigt,
das das Ergebnis einer Datenmodulation ist und das dazu verwendet
wird, Dateninformationen auf einem Kommunikationsbus zu befördern (was unten
stehend näher
zu beschreiben ist). Jeder Bitwert 40 wird durch die Amplitude
des Signals bestimmt, wie sie während
eines Bitlese-"Fensters" gemessen wird. In
einem ersten Bitlesefenster 31 wird die Amplitude des Signals 10 mit
einem positiven Grenzwertspannungspegel +Vref2 (Bezugszeichen 21)
verglichen. In einem zweiten Bitlesefenster 32 wird die
Amplitude des Signals 10 mit einem negativen Grenzwertspannungspegel
-Vref2 (Bezugszeichen 22) verglichen.
-
In
diesem Beispiel wird, wenn die Amplitude des Signals größer als
+Vref2 (21) während
des ersten Bitlesefensters 31 und kleiner als –Vref2 (22) während des
zweiten Bitlesefensters 32 ist, dem Bit der logische Wert "1" zugewiesen. Alternativ wird, wenn die
Amplitude des Signals kleiner als +Vref2 (21) während des ersten Bitlesefensters 31 und
größer als –Vref2 (22)
während
des zweiten Bitlesefensters 32 ist, dem Bit der logische
Wert "0" gegeben.
-
Der
Anfang und das Ende jedes Bits wird als der Punkt definiert, bei
dem das Signal 10 einen Mittelpunkt-Grenzwertpegel Vrefl 20 mit
einer positiven Steigung kreuzt. Dieser Bitsynchronisationszeitgebungspunkt
wird in 1 durch die Linie 30 gezeigt.
-
Unter
Bezugnahme auf 2 ist eine bevorzugte Ausführungsform
eines Systems gezeigt, das eine Sendereinheit 300 und eine
Empfängereinheit 200 aufweist,
die so angeordnet sind, dass sie über einen Bus 7 unter
Verwendung eines Protokolls gemäß dem oben
beschriebenen datenmodulierten Signal 10 kommunizieren.
-
Ein
Trägergenerator 100 ist
an den Bus über einen
Widerstand 121 gekoppelt und umfasst einen Sinuswellengenerator 110 sowie
eine Verstärker- und
Pegelverschiebestufe 120. Der Sinuswellengenerator 110 ist
so gekoppelt, dass er den Pegelverschieber einer Sinuswelle zur
Verfügung
stellt, der wiederum dem Bus über
den Widerstand 121 eine im Wesentlichen gleichförmige Sinuswelle
zur Verfügung
stellt.
-
Der
Empfänger 200 enthält einen
ersten Komparator 210, der so angeordnet ist, dass er den Bitsynchronisationspunkt 30 des
Signals 10 erfasst und einen zweiten Komparator 220,
der so angeordnet ist, dass er die Amplitude des Signals 10 während des
ersten Bitlesefensters 31 erfasst. Ein weiterer Komparator
kann dazu verwendet werden, die Amplitude des Signals während des
zweiten Bitlesefensters zu erfassen, aus Gründen der Klarheit ist dies
allerdings nicht gezeigt.
-
Die
Ausgabe des Komparators 210 ist mit einem Zähler/Vergleichsblock 230 verbunden,
der durch ein Aktivierungs signal 231 von einem Controller
(nicht abgebildet) aktiviert werden kann, der so angeordnet ist,
dass er die Netzwerkkommunikationen steuern kann. Wenn der Empfang
aktiviert ist, wird das Bitsynchronisationssignal von dem Komparator 210 über einen
Verzögerungsblock 240 zu
der Taktung eines Schieberegisters 250 weitergeleitet, so
dass das Taktsignal während
des ersten Bitlesefensters ankommt. Die Dateneingabe des Schieberegisters 250 kommt
von dem Komparator 220, die entweder eine logische "1" oder "0" in
Abhängigkeit
von der Amplitude des Signals 10 ist. Die empfangenen Daten 251 werden
mit dem Kommunikationscontroller verbunden, um diesem die Daten
zur Verfügung zu
stellen.
-
Der
Sender 300 enthält
einen Komparator 310, der den Bitsynchronisationspunkt 30 des
Signals 10 erfasst. Die Ausgabe des Komparators 310 ist
mit einem Zähler-Vergleichsblock 320 verbunden, der
durch ein Aktiviersignal 321 von einem Controller (nicht
abgebildet) aktiviert werden kann, der die Netzwerkkommunikationen
des Senders 300 steuert. Wenn das Senden aktiviert ist,
wird das Bitsynchronisatiossignal von dem Komparator 310 direkt
zu dem Takteingang des Schieberegisters 330 weitergeleitet. Die
Eingabe zu dem Schieberegister 330 kommt von dem Kommunikationscontroller
(nicht abgebildet).
-
Die
Ausgabe des Schieberegisters 330 ist mit dem Schalter 340 verbunden.
Der logische Pegel der Schieberegister-330-Ausgabe öffnet oder schließt den Schalter 340.
Wenn der Schalter 340 offen ist, ist das Trägersignal
im Wesentlichen in der gleichen Form, wie es von dem Trägergenerator 100 erzeugt
wurde. Dies führt
dazu, dass das Signal 10 eine Amplitude aufweist, die größer als
+Vref2 für den
positiven Abschnitt des Signals 10 ist und kleiner als –Vref2 für den negativen
Abschnitt des Signals 10 (äquivalent einer logischen "1") ist. Wenn der Schalter 340 geschlossen
wird, wird das Trägersignal durch
die serielle Impedanz 341 gedämpft, die einen beliebigen
Wert erhält,
der das Zweifache des Wertes des Widerstandes 121 in Serie
mit dem Trägergenerator
ist. Diese Dämpfung
führt dazu,
dass das Signal 10 auf eine Amplitude amplitudenmoduliert
wird, die geringer als +Vref2 für
den positiven Abschnitt des Signals 10 und größer als –Vref2 für den negativen
Abschnitt des Signals 10 (äquivalent einer logischen "0") ist.
-
Auf
diese Weise schlägt
das obige Verfahren die Verwendung eines Sinuswellenträgersignals
auf einem Bus vor, wobei die Amplitude der Sinuswelle bestimmt,
ob das Bit logisch high "1" oder logisch low "0" ist. Das Trägersignal weist im Wesentlichen
null EMI-Emissionen auf und die Nulldurchgänge können dazu verwendet werden,
jedes Datenbit in der Nachricht zwischen dem Sender und den Empfängern auf den
Bus 7 zu synchronisieren. Es ist ohne Probleme möglich, beide
Zyklen der Sinuswelle zu verwenden, um Daten zu übertragen und die gesamte verfügbare Bandbreite
auszunutzen.
-
Zusätzlich vereinfacht
die Verwendung eines Sinuswellenträgers mit einer festen Frequenz
die Implementation eines Filters, um zu verhindern, dass externes
Rauschen die Bussynchronisation beeinflusst.
-
In
Systemen, die Zeit-Mehrfachzugriffsschemata bei ihren seriellen
Kommunikationsprotokollen einsetzen, werden bei Verwendung dieses
Verfahrens die Anforderung einer komplexen und teuren Taktsynchronisation
zwischen den einzelnen Knoten beseitigt. Es ist dann für einen
Knoten lediglich notwendig, die Nulldurchgänge auf dem Bus zu zählen, bis
der Zähler
den Schlitz in dem Kommunikationszyklus erreicht, der diesem Knoten
zugewiesen ist. An dieser Stelle wird ein Gate geöffnet, das
es dem Knoten ermöglicht,
Daten auf den Bus zu übertragen.
Alle Knoten zählen
die gleichen Nulldurchgänge
und sind auf diese Weise untereinander perfekt synchronisiert. Wenn
die Kommunikationsrunde ihr Ende erreicht, setzen alle Knoten ihre
Zähler
auf Null und die nächste
Runde kann beginnen.
-
Es
sollte klar sein, dass alternative Ausführungsformen zu der oben beschriebenen
möglich sind.
Beispielsweise kann der Bitsynchronisationszeitgebungspunkt als
der Punkt definiert werden, an dem der Vref1-Wert eine negative
Steigung kreuzt.
-
Darüber hinaus
kann es in hochgradig abhängigen
Systemen vorteilhaft sein, doppelt redundante Busse zu haben, um
die Sinuswellen auf zwei parallelen Bussen zu übertragen, die außer Phase sind,
die aber die gleichen jeweiligen Bitsynchronisationspunkte verwenden
und lediglich den positiven oder negativen Zyklus der Sinuswellen
verwenden.
-
Dies
würde sicherstellen,
dass externe Interferenzen zu einem kritischen Zeitpunkt, d. h.
der Nulldurchgangspunkt, nicht die Synchronisation beider Busse
beeinträchtigen.
-
In
einem typischen Beispiel einer Zweibusanordnung können die
zwei parallelen Busse Sinuswellen aufweisen, die sich in Gegenphase
befinden (halbe Wellenlänge
außer
Phase). Auf diese Weise sind die Bitsynchronisationspunkte der zwei
gegenphasigen Wellen um eine halbe Wellenlänge getrennt.