-
Die
Erfindung bezieht sich auf die Konfiguration eines Slave-Knotens
in Bezug auf die Polarität eines
differentiellen Zweidrahtbusses, an den der Slave-Knoten angeschlossen
ist, und insbesondere auf ein Verfahren zum Konfigurieren des Slave-Knotens
sowie eine Busschnittstelle für
den Slave-Knoten.
-
Im
Stand der Technik sind zur Verbindung von (Mikro-)Controllern und/oder
Eingangs-/Ausgangsmodulen verschiedener zu vernetzender Komponenten
Bussysteme bekannt. Bekanntermaßen können Bussysteme
nach dem Master-Slave-Prinzip betrieben
werden, gemäß dem ein
Slave-Knoten von sich aus nicht auf das gemeinsame Medium zugreifen
darf oder kann und warten muss, bis er von dem (oder einem der)
Master-Knoten gefragt wird.
-
Bei
bekannten Bussystem kann zwischen massebezogenen und differentiellen
Bussen unterschieden werden, wobei die Informationen bei einem massebezogenen
Bus als ein Spannungspegel auf einer Leitung gegenüber dem
Massepegel auf einer anderen Leitung des Busses kodiert werden und
bei einem differentiellen Bus als eine Spannungsdifferenz zwischen
Spannungspegeln auf verschiedenen Leitungen des Busses kodiert werden.
Ein Beispiel für
einen massebezogenen Bus ist ein RS-232- bzw. EIA-232-Bus. Ein Beispiel
für einen
differentiellen Bus ist ein RS-485- bzw. EIA-485-Bus.
-
Insbesondere
bei einem differentiellen Bus mit zwei Leitungen, d.h. einem differentiellen
Zweidrahtbus, ist die Polarität
der beiden Leitungen entscheidend für die richtige Dekodierung
der übertragenen
Informationen. Daher müssen
dessen Leitungen, die üblicherweise
mit + und – gekennzeichnet sind,
stets polaritätsrichtig
angeschlossen werden.
-
Es
ist folglich ein Nachteil des Standes der Technik, dass die Installation
solcher differentieller Busse schwierig und fehleranfällig ist.
-
Die
Druckschriften
US 6,425,030
B1 und
DE 44
38 836 A1 beschäftigen
sich mit diesem Problem und schlagen Lösungen vor, um eine Anschlussbelegung
zweiadriger Datenbusse ohne Berücksichtigung
der Polung zu realisieren. Dies wird bei diesen Druckschriften durch
Brückengleichrichter
ermöglicht.
-
Der
Erfindung liegt die Aufgabe zu Grunde, ein Verfahren und eine Busschnittstelle
für einen
Slave-Knoten zu schaffen, die es ermöglichen, einen differentiellen
Zweidrahtbus auf einfache und zuverlässige Art und Weise unabhängig von
der Anschlussbelegung mit korrekter Polarität betreiben zu können.
-
Die
Aufgabe wird erfindungsgemäß mit dem Verfahren
gemäß Patentanspruch
1 und der Busschnittstelle gemäß Patentanspruch
7 gelöst.
-
Weitere
vorteilhafte Ausführungsbeispiele der
Erfindung sind in den abhängigen
Patentansprüchen
dargelegt.
-
Es
ist ein Vorteil der Erfindung, dass bei der Installation eines differentiellen
Zweidrahtbusses keine Rücksicht
auf dessen Polarität
genommen werden muss, der Bus also mit beliebiger Polarität betrieben
werden kann.
-
Durch
die Erfindung werden die Probleme des Standes der Technik dahingehend
gelöst,
dass eine Verdrahtung von Bussystem erleichtert wird und die Fehlerbehebung
im Falle einer Fehlverdrahtung vermieden wird.
-
Gemäß einem
Aspekt der Erfindung wird mit Hilfe eines Zeitgeberablaufs eine
Synchronisationsperiode eines Master-Knotens erfasst, was auf einfache und
effiziente Weise implementiert werden kann.
-
Gemäß einem
Aspekt der Erfindung werden die Pegel auf der Empfangsleitung sowie
der Sendeleitung des Busses durch jeweilige Exklusiv-ODER-Gatter
invertiert. Diese Implementierung ist aufgrund ihrer geringen Komplexität vorteilhaft und
kann auf einfache Weise an die dem System zu Grunde liegende Logikfamilie
(zum Beispiel Transistor-Transistor-Logik)
angepasst werden.
-
Im
Folgenden werden bevorzugte Ausführungsbeispiele
der Erfindung unter Bezugnahme auf die Zeichnung ausführlicher
beschrieben. Dabei zeigen:
-
1 ein
schematisches Blockschaltbild der Busschnittstelle eines Slave-Knotens
gemäß einem Ausführungsbeispiel
der Erfindung,
-
2 ein
Ablaufdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel
der Erfindung, und
-
3 beispielhafte
Zeitabläufe
eines Verfahrens gemäß einem
Ausführungsbeispiel
der Erfindung.
-
Gemäß 1 ist
der Anschluss eines differentiellen Zweidrahtbusses (+, –) wie etwa
eines RS-485-Busses an einem Slave-Knoten 2 wie etwa einem
(Mikro-)Controller oder einem E/A-Modul veranschaulicht. Der Anschluss
erfolgt über
einen entsprechenden Bustreiber 1, der über eine Leitung DE die Freigabe
zum Senden von Daten auf den Bus für den Slave-Knoten 2 steuert.
Der Bustreiber weist auf der Seite des Slave-Knotens einen Eingangsanschluss
RX und einen Ausgangsanschluss TX auf. Mit RxD ist in 1 die
Empfangsleitung einer erfindungsgemäßen Busschnittstelle bezeichnet
und mit TxD ist in 1 die Sendeleitung einer erfindungsgemäßen Busschnittstelle
bezeichnet. Bei den hier und im Folgenden beschriebenen Ausführungsbeispielen liegt
eine Implementierung gemäß Transistor-Transistor-Logik
(TTL) zu Grunde, obgleich die Erfindung nicht darauf beschränkt ist.
-
Die
erfindungsgemäße Busschnittstelle
ist strukturell zwischen einem physikalischen Kabelanschluss bzw.
dem Bustreiber (Eingangs- und Ausgangsanschlüsse RX und TX) und einem UART,
d.h. einem universellen asynchronen Sender-Empfänger im
Slave-Knoten angeordnet.
-
Die
erfindungsgemäße Busschnittstelle 2 umfasst
eine Erfassungseinrichtung 3, die eine Synchronisationsperiode
eines Master-Knotens erfasst, d.h. eine Periode, in der der Sender
des Master-Knotens aktiviert ist, aber keine Nutzdaten überträgt. Eine
solche Synchronisationsperiode erfolgt nach Inbetriebnahme des Master-Knotens,
nachdem dieser die Signalpolarität
eingestellt hat, sowie periodisch, zum Beispiel einmal pro Sekunde.
Die Dauer dieser Periode beträgt
zum Beispiel etwa 30 ms.
-
Gemäß einem
Aspekt der Erfindung wird die Synchronisationsperiode mit Hilfe
eines Zeitgebers 6 erfasst, der mit der Erfassungseinrichtung
verbunden ist. Dazu wird der Zeitgeber 6 auf eine vorbestimmte Zeitgeberdauer
eingestellt, die kürzer
ist als die Länge
der Synchronisationsperiode, zum Beispiel etwa 20 ms. Der Zeitgeber
wird gestartet bzw. neu gestartet, wenn der Slave-Knoten in Betrieb
genommen wird, wenn Daten empfangen werden, oder wenn ein Rahmenfehler
auftritt (siehe 3). Eine Synchronisationsperiode
wird demnach erfasst, wenn für
die eingestellte Zeitgeberdauer keine Nutzdaten empfangen werden.
-
Die
erfindungsgemäße Busschnittstelle
umfasst ferner eine Pegelprüfeinrichtung 4,
die aktiviert wird, wenn die Erfassungseinrichtung eine Synchronisationsperiode
erfasst, und mit der Erfassungseinrichtung 3 verbunden
ist. Die Pegelprüfeinrichtung 4 prüft den Pegel
auf der Empfangsleitung RxD in der Synchronisationsperiode im Vergleich
zu einem Referenzpegel, der während
der Synchronisationsperiode in Abhängigkeit von der verwendeten
Logikfamilie erwartet wird. Im Fall der TTL-Logikfamilie wird in
der Synchronisationsperiode ohne Nutzdatenübertragung zum Beispiel ein
hoher Pegel erwartet.
-
Ferner
umfasst die erfindungsgemäße Busschnittstelle
eine Invertiereinrichtung 5, die in 1 exemplarisch
durch den gestrichelten Kasten angedeutet ist. Ist der geprüfte Pegel
ungleich dem erwarteten Referenzpegel, invertiert die Invertiereinrichtung 5 die
Polarität
des Zweidrahtbusses an dem Slave-Knoten 2.
-
Gemäß einem
Aspekt der Erfindung erfolgt die Invertierung der Buspolarität durch
Invertierung der Pegel sowohl auf der Empfangsleitung RxD als auch
auf der Sendeleitung TxD. Bei dem gemäß 1 veranschaulichten
Ausführungsbeispiel
wird eine solche Invertierung durch zwei Exklusiv-ODER-Gatter (auch bekannt
als Antivalenzgatter) implementiert, bei denen das Empfangs-XOR-Gatter als
Eingänge
den Eingangsanschluss RX und eine Invertierleitung INV sowie als
Ausgang die Empfangsleitung RxD aufweist und das Sende-XOR-Gatter als Eingänge die
Sendeleitung TxD und die Invertierleitung INV sowie als Ausgang
den Ausgangsanschluss TX aufweist. Somit haben beide Gatter als gemeinsamen
Eingang die Invertierleitung INV. Zur Invertierung der Polarität des Busses
wird der Pegel der Invertierleitung INV durch die Pegelprüfeinrichtung 4 invertiert,
d.h. bei TTL von einem niedrigem auf einen hohen Pegel gebracht.
-
Es
ist zu beachten, dass 1 nur zum Verständnis der
Erfindung erforderliche Teile des Slave-Knotens 2 zeigt.
Zum Beispiel sind Sender und Empfänger nicht gezeigt.
-
Gemäß 2 ist
ein grundlegendes Ablaufdiagramm eines Konfigurationsverfahrens
gemäß einem
Ausführungsbeispiel der
Erfindung veranschaulicht, das an einem Slave-Knoten in dessen Busschnittstelle
durchgeführt
wird.
-
Nach
Erfassung einer Synchronisationsperiode in Schritt S1 wird in Schritt
S2 ein auf der Empfangsleitung RxD anliegender Pegel im Vergleich
zu einem erwarteten Referenzpegel geprüft. Ist der geprüfte Pegel
ungleich dem Referenzpegel („Nein" in Schritt S3) wird
die Buspolarität
invertiert (Schritt S4), zum Beispiel durch Invertieren der Pegel
auf der Empfangs- und der Sendeleitung. Anschließend werden, wie auch im Fall
der Gleichheit von geprüftem Pegel
und Referenzpegel („Ja" in Schritt S3),
Nutzdaten empfangen (Schritt S5). Das Verfahren wird fortlaufend
durchgeführt,
was in 2 durch den Pfeil von Schritt S5 zu Schritt S1
angedeutet ist, wodurch aufgrund der Periodizität der Synchronisationsperiode
auch die Pegelprüfung
periodisch bei jedem Zeitgeberablauf erfolgt.
-
Gemäß 3 sind
drei beispielhafte Zeitabläufe
eines Konfigurationsverfahrens gemäß einem Ausführungsbeispiel
der Erfindung veranschaulicht. Allen drei Abläufen geht die Einstellung der
Signalpolarität
auf dem Bus durch den Master-Knoten sowie eine erste Synchronisationsperiode
nach dessen Inbetriebnahme voraus.
-
Der
erste Ablauf, der mit a) bezeichnet ist, veranschaulicht einen Fall,
bei dem der Bus bei Inbetriebnahme des Slave-Knotens inaktiv ist.
-
Zum
Inbetriebnahmezeitpunkt t0 werden die Pfade des Senders und Empfängers am
Slave-Knoten in der normalen Betriebsart initialisiert. Demzufolge
ist aufgrund der störungssicheren
Eigenschaft bei der TTL-Logikfamilie die Ausgabe des Empfängers an
der Empfangsleitung RxD bei inaktivem Bus auf einem hohen Pegel.
Zum Zeitpunkt t1 wird ein Zeitgeber mit vorbestimmter Zeitgeberdauer
T gestartet, um eine Synchronisationsperiode zu erfassen. Bei Ablauf
der Dauer T bei t2 wird der Pegel der Empfangsleitung und damit
die Polarität
des Busses überprüft, und
bei dem dargestellten Beispiel für
ordnungsgemäß befunden.
-
Zum
Zeitpunkt t3 startet der Master-Knoten erneut eine Synchronisationsperiode
Sync, d.h. der Master-Knoten aktiviert seinen Sender zum Senden im
Leerlaufmodus, also ohne Nutzdatenübertragung. Dabei sendet der
Master-Knoten ein Byte, das bei dem dargestellten Beispiel eine
inverse, d.h. verkehrte, Polarität
aufweist. Dies führt
dazu, dass während der
Synchronisationsperiode Sync am Slave-Knoten ein niedriger Pegel
auf der Empfangsleitung anliegt, obwohl dieser gemäß der TTL-Logikfamilie
hoch sein sollte. Das von dem Master-Knoten gesendete Byte wird
zum Zeitpunkt t4 am Slave-Knoten mit einem Rahmenfehler empfangen
und daher ignoriert. Bei t4 wird aufgrund des Byteempfangs erneut
ein Zeitgeber mit der Dauer T gestartet. Bei dessen Ablauf zum Zeitpunkt
t5 wird wiederum der Pegel auf der Empfangsleitung im Vergleich
zu dem erwarteten hohen Pegel gemäß TTL-Logikfamilie geprüft. Dabei
wird festgestellt, dass der Pegel ungleich dem erwarteten Referenzpegel
ist, und daraus gefolgert, dass die Polarität des Busses verkehrt ist,
woraufhin diese wie vorstehend beschrieben geändert wird, zum Beispiel durch
Erhöhen
des Pegels der Invertierleitung INV gemäß 1 auf einen
hohen Pegel.
-
Nach
Ende der Master-Synchronisationsperiode zum Zeitpunkt t6 sendet
der Master-Knoten eine Nutzdatennachricht, die durch die vorherige
Invertierung der Buspolarität
am Slave-Knoten
ordnungsgemäß empfangen
wird, obwohl die Leitungen des Zweidrahtbusses verkehrt angeschlossen
sind.
-
Der
zweite Ablauf, der mit b) bezeichnet ist, veranschaulicht einen
Fall, bei dem der Bus bei Inbetriebnahme des Slave-Knotens aktiv
ist. Das heißt, dass
bei Inbetriebnahme des Slave-Knotens bei t0' Nutzdaten in Form von Nachrichten auf
dem Bus übertragen
werden.
-
Alle
empfangenen Bytes werden am Slave-Knoten (ungeachtet des Vorliegens
von Rahmenfehlern) ignoriert, bevor das erste Mal ein Zeitgeberablauf
stattgefunden hat, d.h. bevor ein erstes Mal eine Master-Synchronisationsperiode
Sync erfasst wurde. In 3 ist dies zwischen den Zeitpunkten
t0' und t1' bzw. t2' der Fall.
-
Wie
vorstehend beschrieben wird nach jedem Datenempfang der Zeitgeber
neu gestartet, wobei in 2 der erste Zeitgeberablauf
nach der Zeitgeberdauer T zum Zeitpunkt t2' erfolgt. Zum Zeitpunkt t2' wird der Pegel der
Empfangsleitung bzw. die Polarität
des Busses geprüft,
indem der anliegende Pegel (hier hoch) mit dem erwarteten Referenzpegel (hier
hoch, wegen TTL) verglichen wird. Da der geprüfte Pegel bei t2' mit dem Referenzpegel übereinstimmt,
ist keine Inversion der Pegel bzw. Polarität notwendig, d.h. der Pegel
der Invertierleitung INV bleibt niedrig. Der Empfang von Nutzdatennachrichten,
die von dem Master-Knoten nach Ende der Synchronisationsperiode
Sync zum Zeitpunkt t3' gesendet
werden, ist ordnungsgemäß möglich.
-
Der
dritte Ablauf, der mit c) bezeichnet ist, veranschaulicht ebenfalls
einen Fall, bei dem der Bus bei Inbetriebnahme des Slave-Knotens
aktiv ist.
-
Anders
als bei dem mit b) bezeichneten Ablauf wird bei diesem Fall nach
abgelaufener Zeitgeberdauer T zum Zeitpunkt t2" festgestellt, dass der anliegende Pegel
auf der Empfangsleitung (hier niedrig) nicht gleich dem Referenzpegel
(hier hoch, wegen TTL) ist, weshalb bei t2" der RxD-Pegel ebenso wie der TxD-Pegel,
und somit auch die Polarität
des Busses, invertiert wird. Dies erfolgt gemäß einem vorstehend beschriebenen
Aspekt der Erfindung durch Anlegen eines hohen Pegels auf der Invertierleitung
INV, die einen Eingang von beiden in 1 gezeigten
Exklusiv-ODER-Gattern
bildet. Durch die Polaritätsinvertierung
ist der Slave-Knoten in der Lage, die nach Ende der Sync-Periode zum Zeitpunkt t3" gesendete Nutzdatennachricht
ordnungsgemäß zu empfangen,
obwohl die Leitungen des Zweidrahtbusses verkehrt angeschlossen
sind.
-
Zusammenfassend
wird von dem Slave-Knoten der Zeitpunkt des Zeitgeberablaufs, d.h. die
Erfassung einer Synchronisationsperiode des Master-Knotens dazu
genutzt, sich an die Polarität des
Busses anzupassen.
-
Obwohl
die Erfindung und ihre Ausführungsbeispiele
vorstehend beispielhaft unter der Annahme der Verwendung der TTL-Logikfamilie
beschrieben ist, ist sie gleichermaßen auf die Verwendung anderer
Logikfamilien anwendbar. Ebenso ist die Erfindung auf jeden differentiellen
Zweidrahtbus anwendbar, auch wenn die vorstehend beschriebenen Ausführungsbeispiele
beispielhaft auf den RS-485-Bus bezogen sind.