-
Die
Erfindung betrifft eine Schnittstellenschaltung zur Ankopplung eines über ein
UART-basiertes Bussystem anzusprechenden Busteilnehmers an einen
Eindrahtbus des Bussystems.
-
Solche
Bussysteme und Schnittstellen sind in einer Vielzahl von Ausführungsformen
allgemein bekannt. Für
den Mikrorechnereinsatz in sensornahen Bereichen existieren sogenannte
Feldbussysteme, die mit geringem Aufwand Sensoren, Aktoren und Geräte seriell
verbinden. Aufgrund der Vielfalt von Anwendungsgebieten hat sich
ein breites Spektrum von Feldbussystemen entwickelt. Die bekanntesten
und auch gängigsten
Feldbussysteme sind der Profibus, der CAN-Bus (CAN = Controller
Area Network) und der Interbus-S. Diese Bussysteme unterscheiden
sich in charakteristischen Eigenschaften wie Leitungslänge, Übertragungsgeschwindigkeit, Zugriffsverfahren
und dergleichen.
-
Neben
diesen Feldbussystemen kommt zunehmend auch das sogenannte UART-Bussystem (UART
= Universal Asynchronous Receiver Transmitter) zum Einsatz. Das
UART-Bussytem ist ein Feldbussystem, das speziell zur kostengünstigen Vernetzung
von Mikrocontrollern in verteilten Anwendungen mit geringen Bandbreitenanforderungen
entwickelt wurde. Der UART-Bus ermöglicht eine Byte asynchrone,
bitserielle Datenübertragung
zwischen verschiedenen, an dem UART-Bus angekoppelten Schnittstellen.
Die Ankopplung erfolgt vollkommen symmetrisch, so dass kein dezidierter
Masterknoten erforderlich ist und somit der Ausfall einzelner Knoten des
UART-Bussystems die Kommunikation zwischen den übrigen Knoten nicht dauerhaft
beeinträchtigt. Als
Busschnittstelle wird eine in praktisch allen Mikrocontrollern ohnehin
integrierte UART-Schnittstelle eingesetzt, die über einen einfachen, zum Beispiel diskret
aufgebauten Transceiver die physikalische Ankopplung an den Eindrahtbus
ermöglicht.
-
-
UART-Schnittstellen
werden insbesondere in Multimasterbussystemen eingesetzt. Ein UART-Bussystem
weist typischerweise eine Eindrahtbusleitung auf, an der mehrere
Busteilnehmer, die sogenannten Knoten, angekoppelt sind. Über die
Eindrahtbusleitung können
zwei oder mehrere Busteilnehmer miteinander kommunizieren. Dabei
fungiert einer dieser Teilnehmer als Masterknoten und die übrigen Teilnehmer
als Slave. Im Falle einer sogenannten Punkt-zu-Punkt-Datenkommunikation
zwischen mindestens zwei Busteilnehmern fungiert jeweils ein Busteilnehmer
als Sender und sendet Daten über
die Eindrahtbusleitung, wobei die anderen Busteilnehmer als Empfänger fungieren.
Bei einer Datenkommunikation werden dabei ein Sendekanal und ein Empfangskanal
einer jeweiligen UART-Schnittstelle typischerweise zu einem Paar
zusammengeschaltet. Dadurch ist eine Diagnose eines Kurzschlusses
auf der Eindrahtbusschnittstelle gegen die Versorgungsspannung bzw.
gegen ein Bezugspotenzial möglich. Dies
geschieht über
einen Vergleich der gesendeten Bits mit den Bits, die über einen
Rückkopplungszweig der
jeweiligen Schnittstelle empfangen wird. Auf diese Weise kann auch
eine Zugriffskollision detektiert werden, wenn zum Beispiel zwei
oder mehr Busteilnehmer gleichzeitig über die Eindrahtbusleitung
senden.
-
Die
Busteilnehmer heutiger UART-basierter Multimasterbussysteme weisen
jeweils einen Mikrocontroller auf, der typischerweise zwei UART-Schnittstellen
enthält.
Es kann nun vorkommen, dass eben diese beiden UART-Schnittstellen
eines Busteilnehmers bereits belegt sind und somit nicht mehr für eine weitere
Datenkommunikation zur Verfügung
stehen. Die Anzahl der UART-Schnittstellen korrespondiert also nicht
mehr mit der Anzahl der angeforderten UART-Schnittstellen. In diesem
Falle kann aber die UART-Funktionalität durch eine sogenannte "Input Capture Function" (RxD) und eine "Output Compare Function" (TxD) emuliert werden.
Für die
Verifikation der Eindrahtbusleitung bezüglich eines Kurzschlusses oder
einer Zugriffskollision ist hier allerdings eine außerordentlich
komplexe, aufwändige
Software erforderlich. Diese hat aber zur Folge, dass die Datenübertragungsrate
signifikant sinkt.
-
Die
Ursache für
den erforderlichen hohen Softwareaufwand besteht darin, dass für die Verifikation
der Busschnittstelle das rückgekoppelte
Echo des gesendeten Signals mit dem gesendeten Signal verglichen
werden muss. Zu diesem Zweck müssen der
Eingang (Input Capture, RxD) und der Ausgang (Output Compare, TxD)
parallel zueinander betrieben werden. Dies verdoppelt die Interupt-Belastung und
damit die Belastung der zentralen Recheneinheit (CPU), wodurch die
effektive CPU-Leistung und damit die Datenübertragungsrate reduziert wird.
-
Für einige
sehr zeit- und sicherheitskritischen Anwendungen, wie zum Beispiel
die so genannte Keyless-Entry-Funktionalität in einem Kraftfahrzeug, bei
der der Zugang in ein Kraftfahrzeug schlüssellos unter Verwendung einer
Transpondertechnologie erfolgt, sind geringere Datenübertragungsraten
im Bereich von 1 – 2,5
kBaud allerdings nicht wünschenswert.
Im Falle der schlüssellosen Zugriffsanfrage
werden hier aus sicherheitstechnischen Gründen umfassende kodierte Daten
zwischen Transponder und Steuergerät ausgetauscht. Bei den genannten
relativ niedrigen Datenübertragungsraten
dauerte diese Datenkommunikation zwischen Schlüssel- und Steuergerät außerordentlich lang,
wodurch sich eine direkte Rückwirkung
auf den Benutzer ergibt. Konkret bedeutet das, dass der Öffnungsvorgang
auf eine schlüssellose
Zugangsanfrage hin im Bereich von einigen Sekunden dauert, in der
aber der Benutzer das Kraftfahrzeug nicht öffnen kann. Es besteht daher
der Bedarf, eine komfortablere Funktionalität für den Benutzer insbesondere für den Fall
bereitzustellen, dass eine Datenkommunikation nicht über zwei
UART-Schnittstellen durchgeführt
wird.
-
Das
US Patent
US 5,291,609 beschreibt
eine Schnittstellenschaltung zur Bereitstellung asynchroner Interruptdienste
für mehrere,
vorzugsweise parallele Peripherievorrichtungen in Abhängigkeit
von Befehlen von einem Leitrechner. Die Schnittstellenschaltung
enthält
zwei Dual-UARTs, einen Dual-RAM-Speicher
und einen Mikroprozessor. Die Dual-UARTs lesen selektiv und separat
Daten von verschiedenen Peripherievorrichtungen aus und schreiben
diese Daten selektiv in den Dual-RAM-Speicher, auf
den der Leitrechner zugreifen kann. Dabei werden in dem Dual-RAM-Speicher
gespeicherte Daten durch den Leitrechner daraus ausgelesen und in
eine ausgewählte
Peripherievorrichtung geschrieben, wobei das Schreiben in der Peripherievorrichtung
anhand von Adressen des Mikroprozessors vorgenommen wird.
-
Das
US Patent
US 6,275,167
B1 beschreibt ein Verfahren und ein System zum Transferieren
von pulsförmigen
Nachrichten zwischen ferngesteuerten Modulen in einem Kraftfahrzeug,
einen Eindrahtbus aufweist. An dem Eindrahtbus sind eine Vielzahl
von Modulen gekoppelt, sodass über
den Eindrahtbus ein Datentransfer der pulsförmigen Nachrichten zwischen
jedem an dem Eindrahtbus angekoppelten Module erfolgen kann. Eine
Empfängerschaltung,
die zumindest einer der Module zugeordnet ist und an den Eindrahtbus
angekoppelt ist, stellt einen Kommunikationsstrom für den Bus
bereit. Eine Sendeschaltung, die zumindest einer der Module zugeordnet
ist und die ebenfalls an den Eindrahtbus angekoppelt ist, überträgt die pulsförmigen Nachrichten unter
Verwendung des auf dem Bus befindlichen Kommunikationsstroms. Die
Empfängerschaltung wird
so aktiv und nimmt die von der Sendeschaltung gesendeten pulsförmigen Nachrichten
auf, indem sie den Kommunikationsstrom der Empfängerschaltung detektiert.
-
Der
vorliegenden Erfindung liegt daher die Aufgabe zugrunde, eine verbesserte,
insbesondere schnellere Datenübertragung
zwischen einer UART-Busschnittstelle und einer herkömmlichen Busschnittstelle
zu ermöglichen.
-
Erfindungsgemäß wird diese
Aufgabe durch eine Schnittstellenschaltung mit den Merkmalen des Patentanspruchs
1 gelöst.
-
Die
der vorliegenden Erfindung zugrunde liegende Idee besteht darin,
eine sehr komplexe aufwändige
Software für
die Diagnose eines Kurzschlusses bzw. die Feststellung einer Zugriffskollision auf
einer Eindrahtbusleitung zumindest teilweise durch die Funktionalität einer
einfachen Hardware-Schaltung zu ersetzen. Die Software des jeweiligen
Busteilnehmers kann dadurch signifikant vereinfacht werden, wodurch
die Recheneinheit des Busteilnehmers auf diese Weise signifikant
entlastet wird. Aufgrund der geringeren CPU-Rechenleistung lassen
sich damit höhere
Datenübertragungsraten und
damit eine höhere
Geschwindigkeit der Datenkommunikation realisieren.
-
Die
der vorliegenden Erfindung zugrunde liegende Erkenntnis besteht
darin, dass in der einfachsten Implementierung hierfür lediglich
eine einfache Vergleichereinrichtung, beispielsweise ein einfaches XOR-Gatter,
bereitgestellt werden muss, welches die jeweiligen Bits des Sendepfades
und die entsprechenden Bits im Echo des Empfangspfades vergleicht.
Stimmen diese Bits miteinander überein, dann
kann auf eine ordnungsgemäße Datenübertragung
geschlossen werden. Stimmen die Bits nicht überein, dann kann einerseits
ein Kurzschluss in der Eindrahtbusleitung vorliegen oder ein anderer
Busteilnehmer, der beispielsweise dominant und damit zugriffsberechtigt
ist, greift mehr oder weniger gleichzeitig auf die Ein drahtbusleitung
zu. Zwar kann zwischen den beiden Fällen, nämlich Kurzschluss oder Zugriffskollision,
nicht unterschieden werden, jedoch ist das auch nicht erforderlich,
da lediglich verhindert werden muss, dass der Busteilnehmer auf
die Eindrahtbusleitung schreibt, während die Busleitung defekt
ist oder bereits ein anderer Busteilnehmer auf den Bus zugreift.
In diesen Fällen
kann somit vorteilhafterweise vermieden werden, dass Daten gesendet
werden und es somit zu einem Datenverlust im Kommunikationssystem
kommt.
-
Neben
der Bereitstellung der Vergleichereinrichtung müssen ferner die Protokolle
der jeweils über
die Eindrahtbusschnittstelle kommunizierenden Busteilnehmer miteinander
abgestimmt sein, so dass eine Emulation der gesendeten und empfangenen Daten
und damit eine Diagnose der Eindrahtbusleitung möglich ist.
-
Vorteilhafte
Ausgestaltungen und Weiterbildungen der Erfindung sind Gegenstand
der weiteren Unteransprüche
sowie der Beschreibung unter Bezugnahme auf die Zeichnung.
-
Die
Erfindung wird nachfolgend anhand der in den schematischen Figuren
der Zeichnung angegebenen Ausführungsbeispiele
näher erläutert. Es zeigen
dabei:
-
1 ein
verallgemeinertes Blockschalbild für ein UART-Bussystem;
-
2 einen
Ausschnitt des UART-Bussystems aus 1, bei dem
ein Busteilnehmer eine UART-Schnittstelle und der andere Busteilnehmer keine
UART-Schnittstelle aufweist;
-
3 das
Datenrahmenformat für
eine Datenkommunikation;
-
4 das
Adressformat des erfindungsgemäßen Protokolls;
und
-
5 schematische Darstellungen für den Vergleich
der Adressbits unterschiedlicher Busteilnehmer zur Veranschaulichung
des erfindungsgemäßen Verfahrens
für eine
Zugriffskollision über
die Eindrahtbusleitung.
-
In
allen Figuren der Zeichnung sind gleiche bzw. funktionsgleiche Elemente,
Merkmale und Signale – sofern
nichts anderes angegeben ist – mit
denselben Bezugszeichen versehen worden.
-
1 zeigt
anhand einer schematischen Blockdarstellung ein UART-Bussystem.
Das mit Bezugszeichen 1 bezeichnete UART-Bussystem besteht
aus einem Bus 2 sowie mehreren an diesem Bus 2 angekoppelten
Busteilnehmern 3A – 3D.
Der Bus 2 weist eine Eindrahtbusleitung 4 auf,
die der Datenkommunikation der Busteilnehmer 3A – 3D untereinander
dient. Der Bus 2 weist ferner Versorgungsleitungen 5, 6 auf.
Im vorliegenden Ausführungsbeispiel
weist die Versorgungsleitung 5 ein erstes Versorgungspotenzial,
beispielsweise ein positives Batteriepotenzial VBB, auf, während die
zweite Versorgungsleitung 6 mit einem zweiten Versorgungspotenzial,
beispielsweise dem Potenzial der Bezugsmasse GND, beaufschlagt ist. Über die
Versorgungsleitungen 5, 6 lassen sich die Busteilnehmer 3A – 3D mit Energie
versorgen.
-
Ein
jeweiliger Busteilnehmer 3A – 3D weist einen Transceiver 7A – 7D sowie
einen Mikrocontroller 8A – 8D auf. Ein Transceiver 7A – 7D stellt
die physikalische Anbindung des jeweiligen Busteilnehmers 3A – 3D an
die Eindrahtbusleitung 4 her. Ein jeweiliger Mikrocontroller 8A – 8D weist
jeweils eine Busschnittstelle 9A – 9D auf. Eine jeweilige
Busschnittstelle 9A – 9D weist
zumindest einen Eingang zum Empfang von Daten und zumindest einen
Ausgang zum Senden von Daten auf.
-
Im
vorliegenden Ausführungsbeispiel
ist die Busschnittstelle 9A als herkömmliche Busschnittstelle ausgebildet,
wohingegen die Busschnittstellen 9B – 9D der Busteiler 3B – 3D als
UART-Busschnittstellen
ausgebildet sind.
-
Diese
asynchronen seriellen UART-Schnittstellen 3B – 3D,
die in Form eines URRTs (Universal Asynchronous Receiver Transmitter)
als Hardwarekomponente bereits in den meisten Mikrocontrollern enthalten
ist, sind mit ihrem Sende- und ihrem Empfangskanal auf demselben
Kommunikationsbus 4 aufgeschaltet. Dadurch kann ein zu
sendendes Signal von einem der am Bus 2 angeschlossenen
Busteilnehmer 3A – 3D – einschließlich des
sendenden Busteilnehmers – über den
Empfangskanal jedes UARTs empfangen werden. Somit ergibt sich ein Byte-Broadcast-Medium, über das
alle an der Eindrahtbusleitung 4 angeschlossenen Busteilnehmer 3A – 3D gleichberechtigt
kommunizieren können.
-
Um
verschiedene Busteilnehmer 3A – 3D nacheinander
den sendenden Zugriff auf die Eindrahtbusleitung 4 zu ermöglichen,
weist die jeweilige Busschnittstelle 9A – 9D ein
Protokoll zur Vergabe der Schreibberechtigung auf, damit nicht von
verschiedenen Busteilnehmern 3A – 3D verschiedene Signale
gleichzeitig gesendet werden. Dies würde zur Datenkorruption bzw.
zu einem Datenverlust führen,
den es unter allen Umständen
zu vermeiden gilt.
-
Die
Grundidee eines erfindungsgemäßen UART-Bussystems 1 besteht
darin, die Sende- und Empfangsschnittstellen 9A – 9D der
einzelnen UART-Schnittstellen aller vernetzter Mikrocontroller 8A – 8D des
UART-Bussystems 1 über
einen einfachen Transceiver derart auf einen Eindrahtbus 4 zu schalten,
dass jedes Byte, das von einem der Mikrocontroller 8A – 8D gesendet
wird, theoretisch von allen am Bus 4 angeschlossenen Mikrocontrollern 8A – 8D einschließlich dem
sendenden Mikrocontroller empfangen werden kann. Das Busmanagement
erfolgt dabei verteilt, so dass beim Ausfall eines Busteilnehmers 3A – 3D nach
einer kurzen Reinitialisierung die am Bus 4 verbleibenden
Busteilnehmer 3A – 3D in
vollen Umfang weiter kommunizie ren können. Wird im Gegenzug ein
weiterer Busteilnehmer dem Bus 4 hinzugefügt oder
ein ausgefallener Busteilnehmer reaktiviert, so integriert sich
dieser selbständig wieder
in den logischen Ring der aktiven Komponente des UART-Bussystems 1.
-
Kombiniert
wird dies typischerweise mit einem softwaregesteuerten Busvergabemechanismus, dem
sogenannten Token Passing. Bei diesem Busvergabemechanismus wird
die Sendeberechtigung in Form einer speziellen Nachricht (Token) über den Bus 4 zwischen
den beteiligten Busteilnehmer 3A – 3D ausgetauscht.
Dabei darf lediglich der Busteilnehmer 3A – 3D,
der gerade das Token besitzt, auf den Bus 4 zugreifen und
Daten senden. Hat der Busteilnehmer 3A – 3D, der den Token
besitzt, keine zu sendenden Daten mehr, so gibt er das Token an
den nachfolgenden Busteilnehmer 3A – 3D weiter. So kann
umläufig
jeder Busteilnehmer 3A – 3D regelmäßig sendend
auf den Bus 4 zugreifen. Denkbar wäre allerdings auch ein anderer
Busvergabemechanismus, zum Beispiel das so genannte Polling.
-
Das
UART-Bussystem bietet aufgrund seiner kostengünstigen Implementierbarkeit,
seiner Unabhängigkeit
zu einer spezifischen Mikrocontroller-Hardware und seinen maßschneiderbaren Übertragungseigenschaften
eine ideale Plattform zur kostengünstigen Vernetzung von Mikrocontrollern
in verteilten Anwendungen mit geringen Bandbreitenanforderungen.
Besonders hervorzuheben ist auch die einfache und weitgehend Betriebssystem
unabhängige
Anbindung von PCs oder anderen Geräten über eine so genannte RS232-Schnittstelle.
Diese bietet zum Beispiel eine besonders günstige Möglichkeit zur zeitweisen oder
dauerhaften Ankopplung von Diagnose-, Parametrisierungs- oder Überwachungs-PCs
direkt an den Bus.
-
Das
Bussystem 1 in 1 erlaubt somit in vorteilhafter
Weise eine symmetrische Vernetzung verschiedener Busteilnehmer 3A – 3D bzw.
der entsprechenden Mikrocontroller 8A – 8D mit einem Minimum
an zusätzlichen
Komponenten. Auch kann die Busverkabelung bei elektrischer Kodierung
der Signale mit ab soluten Spannungspegeln oder differenziellen Spannungspegeln
sehr einfach eingehalten werden.
-
2 zeigt
anhand eines Schaltbildes einen Ausschnitt des Bussystems 1 aus 1 mit
zwei Busteilnehmern 3A, 3B.
-
Der
Busteilnehmer 3B weist einen Mikrocontroller 8B mit
URRT-Busschnittstelle 9B auf.
Diese UART-Busschnittstelle 9B weist einen UART-Sendeausgang 10B sowie
einen UART-Empfangseingang 11B auf. Ferner ist ein Interupt-Eingang 12B vorgesehen. Über die
Eingänge 11B, 12B und
den Ausgang 10B der Schnittstelle 9B ist der Mikrocontroller 8B mit
der Eindrahtbusleitung 4 gekoppelt. Der Busteilnehmer 3B weist
ferner einen einfachen, üblicherweise
verwendeten Transceiver 7B auf.
-
Im
Unterschied zu der Busschnittstelle 9B ist die Busschnittstelle 9A des
Busteilnehmers 3A nicht als UART-Schnittstelle ausgebildet.
Die Busschnittstelle 9A weist einen Sendeausgang 10A auf,
der als Output-Compare-Ausgang (TxD) ausgebildet ist. Ferner ist
ein Eingang 11A vorgesehen, der als Input-Capture-Eingang (RxD)
ausgebildet ist. Schließlich
ist ein weiterer Eingang 12A vorgesehen, der als Interupt-Eingang
ausgebildet ist. Dieser Interupt-Eingang 12A ist intern
mit einer Schmitt-Trigger-Schaltung verbunden. Der Busteilnehmer 3A weist
ebenfalls einen Transceiver 7A auf.
-
Nachfolgend
wird zunächst
der Aufbau des Transceivers 7B beschrieben und anschließend der des
Transceivers 7A.
-
Der
Transceiver 7B weist einen Eingangspfad 13B sowie
einen Ausgangspfad 14B auf. Der Eingangspfad 13B verbindet
die Eingänge 11B, 12B mit
der Eindrahtbusleitung 4, wohingegen der Ausgangspfad 14B den
Ausgang 10B mit der Eindrahtbusleitung 4 verbindet.
Im Eingangspfad 13B ist eine Schaltungseinrichtung 15B vorgesehen,
der ein Schutzelement 16B, zum Beispiel ein Widerstand, vorgeschaltet
ist. Die Schaltungseinrichtung 15B ist mit Versorgungsanschlüssen für das erste
Versorgungspo tenzial VBB und das zweite Versorgungspotenzial GND
verbunden. Ferner ist die Schaltungseinrichtung 15B mit
einem Anschluss mit einem dritten Versorgungspotenzial VCC verbunden.
Die Schaltungseinrichtung 15B dient der Pufferung eines eingangsseitig über die
Eindrahtleitung 4 eingekoppelten Bussignals X1. Dieses
Bussignal X1 wird in der Schaltungseinrichtung 16B von
einer ersten Versorgungsspannung VBB-GND auf eine zweite Versorgungsspannung
VCC-GND herunter transformiert. Beispielsweise wird die Versorgungsspannung in
der Schaltungseinrichtung 15B von 12 V auf 5 V herab gesetzt.
Das von der Schaltungseinrichtung 15B ausgangsseitig bereitgestellte
Signal X2 wird den beiden Eingängen 11B, 12B zugeführt.
-
Der
Ausgangspfad 14B weist einen Ausgangstreiber 21B auf.
Der Ausgangstreiber 21B enthält einen Transistor 17B,
der über
ein vom Ausgang 10B bereit gestelltes Sendesignal X3 angesteuert wird.
Zwischen dem Ausgang 10B und dem Steuereingang des Transistors 17B ist
ferner ein Vorwiderstand 18B zur Einstellung des Steuerpotenzials
angeordnet. Der Transistor 17B erzeugt ausgangsseitig ein
Signal X4, welches einerseits über
die Eindrahtbusleistung 4 übertragen wird und andererseits
als Echo in den Eingangspfad 13B rückgekoppelt wird. Parallel
zu der gesteuerten Strecke des Transistors 17B ist ein
Pufferkondensator 19B, parallel zu den Basis-Emitter-Anschlüssen des
Transistors 17B ein Widerstand 20B angeordnet.
-
Im
Unterschied zu dem Transceiver 7B weist der Transceiver 7A zusätzlich eine
Vergleichereinrichtung 22A im Eingangspfad 13A auf.
Die Vergleichereinrichtung 22A enthält im vorliegenden Ausführungsbeispiel
ein XOR-Gatter (XOR = Exclusive-ODER) 23A, dem ein Tiefpassfilter 24A nachgeschaltet
ist. Das Tiefpassfilter 24A dient der Einstellung einer
geeigneten Verzögerung
aufgrund von unterschiedlichen Signallaufzeiten der Signale im Sendepfad 13A und
Empfangspfad 14A. Das Tiefpassfilter 24A ist ausgangsseitig
mit dem Interupt-Eingang 12A verbunden. Das XOR-Gatter 23A weist
zwei Eingänge
auf, wobei ein erster Eingang mit dem Ausgang der Schaltungseinrichtung 15A und
der zweite Eingang mit dem Sendeausgang 10A der Schnittstelle 9A verbunden
ist. Dem XOR-Gatter 23A werden somit das Ausgangssignal
Y2 der Schaltungseinrichtung 15A sowie das Ausgangssignal
Y3 der Schnittstelle 9A zugeführt.
-
Im
Unterschied zu dem Transceiver 7B weist der Transceiver 7A zusätzlich auch
einen Pegelwandler 25A auf, der im Sendepfad 14A angeordnet ist.
Der Pegelwandler 25A enthält einen zweiten Transistor 26A,
der steuerseitig über
einen Vorwiderstand 27A mit dem Sendeausgang 10A verbunden ist.
Der Transistor 26A wird über das Versorgungspotenzial
VCC versorgt. Zwischen dem Versorgungsanschluss für das Versorgungspotenzial
VCC und dem Steueranschluss des Transistors 26A ist ein
Widerstand 28A zur Einstellung eines Pegels vorgesehen. Ausgangsseitig
ist der Transistor 26A mit dem Eingang des Ausgangstreibers 21A verbunden.
-
Nachfolgend
sei die Funktionsweise des Transceivers 7A kurz beschrieben.
Es sei angenommen, dass bei einem Busteilnehmer, der sendeberechtigt
(dominant) ist, die zu sendenden Daten eine logische "Null" (LOW) aufweisen.
Das bedeutet gleichermaßen,
dass eine logische "Eins" (HIGH) einen rezessiven
Zustand der Eindrahtbusleitung bzw. eines Busteilnehmers bezeichnet.
-
Im
Sendebetrieb der Schnittstelle 9A wird ein zu sendendes
Datum Y3 am Ausgang 10A bereitgestellt und vom Pegelwandler 25A in
ein Signal Y4 gewandelt, wobei das Signal Y3 dabei invertiert, also
in seinem Vorzeichen verkehrt wird. Dieses Signal Y4 wird vom Ausgangstreiber 21A in
ein Signal Y5 gewandelt, welches auf die Eindrahtbusschnittstelle 4 gelegt
wird. Auch das Signal Y5 ist gegenüber dem Signal Y4 invertiert.
Zumindest ein Teil Y1 dieses gesendeten Signals Y5 wird gleichermaßen als
Echo in den Empfangspfad 13A rückgekoppelt. Das daraus von
der Schaltereinrichtung 15A gewandelte und gepufferte Signal
Y2 wird einem ersten Eingang des XOR-Gatters 23A zugeführt. Dem
zweiten Eingang des XOR- Gatters 23A wird
das zu sendende Signal Y3 zugeführt.
Für den
Fall, dass kein anderer Busteilnehmer auf die Eindrahtbusleitung 4 zugreift,
und für den
Fall, dass die Eindrahtbusleitung keinen Kurzschluss oder Leerlauf
aufweist, weisen die beiden Signale Y2, Y3 am Eingang des XOR-Gatters 23A eine logische "Null" auf. Am Ausgang
des XOR-Gatters 23A liegt somit ebenfalls eine logische "Null" an. Die Vergleichereinrichtung 22A erkennt
somit, dass kein Kurzschluss und keine Zugriffskollision vorliegt
und löst
damit auch keinen Interupt am Eingang 12A aus.
-
Andernfalls,
also im Falle eines Zugriffskonflikts und/oder eines Kurzschlusses
der Busleitung 4, weisen die Signale Y2, Y3 unterschiedliche
logische Pegel auf. In diesem Fall würde über den Eingang 12A ein
Interupt ausgelöst
werden.
-
Die
Funktionalität
dieser Diagnose für
eine Zugriffskollision oder einen Kurzschluss an der Eindrahtbusleitung 4 kann
zusätzlich
oder alternativ auch durch eine mehr oder weniger aufwändige Software
durchgeführt
werden. Der besondere Vorteil bei der hardwaremäßigen Realisierung entsprechend 2 besteht
allerdings darin, dass diese hardwaremäßige Diagnose eine sehr viel
höhere
Datenübertragungsrate
und damit eine größere Geschwindigkeit
der Datenkommunikation ermöglicht.
-
3 zeigt
ein Datenrahmenformat für
eine Datenkommunikation in einem erfindungsgemäßen Bussystem. Ein Datenrahmen 30 enthält ein beispielsweise
2 Byte breiten "Header" 31, ein
beispielsweise 0 – 15
Byte breites Datum 32, in dem die Nutzdaten enthalten sind,
sowie ein beispielsweise 2 Byte breites Feld 33, in dem
eine Prüfsumme
zur Überprüfung des
gesendeten Datums 32 enthalten ist. In dem Header 31 können neben
der Adresse zusätzlich auch
Anwender definierte Nachrichten-Typ-ID-Daten und Längenfeldinformationen enthalten
sein.
-
Der
Header 31 enthält
also insbesondere die Adresse eines Busteilnehmers, für den die
zu sendenden Daten 32 bestimmt sind. Aus diesem Grunde werden
diese Adressdaten vor der Übermittlung
der eigentlichen, zu sendenden Nutzdaten 32 übermittelt.
Anhand dieser Adressdaten soll erfindungsgemäß zusätzlich überprüft werden, ob eine Zugriffskollision
vorliegt. Eine Zugriffskollision liegt dann vor, wenn zumindest
zwei Busteilnehmer mehr oder weniger gleichzeitig über dieselbe
Eindrahtbusleitung Daten senden wollen. Da aber lediglich einer
dieser Busteilnehmer, nämlich
bzw. der anhand der Adressdaten als dominant erkannte Busteilnehmer,
einen Buszugriff erhält,
muss verhindert werden, dass die übrigen Busteilnehmer zur gleichen
Zeit Daten über ihre
Busschnittstelle senden. Anhand dieses Verfahrens kann damit eine
Priorisierung bzw. Arbitrierung vorgenommen werden. Die Arbitrierung
ist hier aber nicht mit der Busarbitrierung eines CAN-basierten Bussystems
zu vergleichen. Die Überprüfung der Buszugriffsberechtigung
erfolgt hier software- oder hardwaremäßig dahingehend, welcher Busteilnehmer
dominant ist.
-
Um
dies zu verhindern, muss jeder Busteilnehmer seinerseits feststellen,
ob bereits ein anderer Busteilnehmer dominant ist und die Zugriffsberechtigung
auf den Bus hat. Der einfachste Weg, um dies festzustellen, besteht
darin, die abfallenden Flanken eines gesendeten Signal, welches
durch das Startbit einer Übertragung
erzeugt wird, in der Vergleichereinrichtung 22A zu überprüfen. Dieses
Verfahren ist auch als so genanntes "Carrier Sense Multiple Access"-Verfahren (CSMA-Verfahren) bekannt.
Bei dem „Carrier
Sensing"-Verfahren
ist der Bus typischerweise rezessiv. Das Startbit ist hier immer
auf „0" gesetzt. Beim „Carrier
Sensing"-Verfahren
wird zunächst überprüft, ob irgendein
anderer Busteilnehmer dominant ist. Hier gilt das so genannte „First come,
first serve"-Prinzip, d.h. der
erste Busteilnehmer, der eine Zugriffsanfrage auf den Bus stellt,
ist auch zugriffsberechtigt. Üblicherweise
wird eine solche Zugriffsanfrage von einem anderen Busteilnehmer
auch als solche erkannt. In relativ seltenen Fällen kann es aber dazu kommen,
dass mehrere Busteilnehmer mehr oder weniger gleichzeitig über denselben
Eindrahtbus Da ten senden möchten.
In diesen relativ seltenen Fällen
kann es zu einer Zugriffskollision kommen. Es besteht daher hier
der besondere Bedarf eine solche Zugriffskollision möglichst schnell
zu erkennen, d.h. möglichst
innerhalb der ersten Bits oder Bytes einer Adresse.
-
Um
jedem einzelnen Busteilnehmer zu ermöglichen, eine solche Buszugriffskollision
zu detektieren, weist erfindungsgemäß ein erstes Byte eines Datenrahmens,
welches zum Beispiel in dem Header 31 vorgesehen ist, ein
eben für
diesen Busteilnehmer kennzeichnendes und damit einzigartiges Bitmuster auf.
Dieses Bitmuster kann vorteilhafterweise gleichsam die Adresse dieses
Busteilnehmers darstellen.
-
4 zeigt
das Adressformat eines 1 Byte breiten Adressfeldes 34 eines
Busteilnehmers. Das Adressfeld 34 enthält ein erstes 4 Bit breites
Adressfeld 35 und ein zweites 4 Bit breites Adressfeld 36.
Im ersten Adressfeld (Quelladresse) 35 ist die Adresse desjenigen
Busteilnehmers abgelegt, von dem gerade Daten gesendet werden, und
in dem zweiten Adressfeld (Zieladresse) 36 ist die Adresse
desjenigen Busteilnehmers abgelegt, an den die Daten gesendet werden
sollen. Die Adressen eines Busteilnehmers können mehr oder weniger beliebig
gewählt werden.
Allerdings sollten sie jeweils einzigartig und möglichst kennzeichnend für eben diesen
Busteilnehmer sein. Unter Verwendung dieser Adressen kann jeder
Busteilnehmer des Bussystems eine Buszugriffskollision zu detektieren.
-
Die
Adresse eines Busteilnehmers kann beispielsweise wie folgt aussehen:
0001
0010
0100
1000
-
Jeder
Busteilnehmer kann dabei eine dieser Adressen aufweisen, wobei darauf
zu achten ist, dass eine Adresse jeweils nur einfach vergeben ist. Bei
Verwendung dieser Adressen kann damit auf sehr einfache Weise eine
Zugriffskollision von jedem Busteilnehmer detektiert werden.
-
5 zeigt anhand von drei Teilfiguren (A) – (C) schematische
Darstellungen für
den Vergleich der Adressen unterschiedlicher Busteilnehmer zur Veranschaulichung
des erfindungsgemäßen Verfahrens
zur Detektion einer Zugriffskollision.
-
Einem
jeweiligen Adressfeld 34 ist ein Start-Bit 37 vorangestellt,
welches typischerweise eine logische „0" aufweist. Das Start-Bit 37 zeigt
an, dass nachfolgend eine Adresse und somit eine Datenübertragung
beginnt. Dem Adressfeld 34 ist ein Parity-Bit 38 sowie
ein Stopp-Bit 39 nachgeordnet. Das Stopp-Bit 39,
welches typischerweise eine logische „1" beinhaltet, zeigt ein Ende der Adresse
an. In den 5(A) – 5(C) sind
jeweils zwei Adressfelder 34 von Busteilnehmern, die eine
Zugriffsanfrage auf den Eindrahtbus abgeben dargestellt. In 5(A) wird für diese Zugriffsanfrage das
Kürzel
x12 verwendet, welches anzeigt, dass der Busteilnehmer mit der Adresse „1" auf den Busteilnehmer
mit der Adresse „2" Daten senden möchte. Im
unteren Teil der 5(A) ist das Kürzel x21
angegeben, d.h. der Busteilnehmer „2" möchte
Daten zum Busteilnehmer „1" senden. In den 5(B) – 5(C) sind jeweils Datenübertragungen zwischen anderen
Busteilnehmern dargestellt.
-
5 zeigt drei Beispiele (5(A) – (C)), bei denen jeweils die Adressen entsprechend 4 verwendet
werden. Die Kreuze bezeichnen Bits, die aufgrund einer Zugriffskollision
zu einem Echo geführt
haben, welches einen Interupt auslöst. Da jeder Busteilnehmer
seine dezidierten Adressbits aufweist, kann es so nicht zu der Konstellation
kommen, dass lediglich ein Busteilnehmer die Zugriffskollision detektiert.
-
Vielmehr
wird diese Zugriffskollision vorteilhafterweise von allen auf den
Bus zugreifenden Busteilnehmern detektiert. Die Situation, dass
lediglich ein Busteilnehmer eine Zugriffskollision detektiert kann
damit nicht mehr vorkommen.
-
Obgleich
die vorliegenden Erfindung anhand eines bevorzugten Ausführungsbeispiels
beschrieben wurde, ist sie darauf nicht beschränkt, sondern auf vielfältige Art
und Weise modifizierbar.
-
So
sei die Erfindung nicht notwendigerweise auf ein UART-Bussystem beschränkt, sondern
lässt sich
selbstverständlich
auf beliebige Eindrahtbussysteme erweitern.
-
Auch
seien die Busschnittstellen und Transceiver nicht notwendigerweise
auf den in dem vorliegenden Ausführungsbeispiel
dargestellten Aufbau beschränkt.
Vielmehr wurde zur besseren Darstellung der Erfindung insbesondere
hinsichtlich der Ausgestaltung der Transceiver bewusst ein schaltungstechnisch
sehr einfacher Aufbau gewählt. Selbstverständlich lassen
sich hier auch je nach der gewünschten
Applikation und Anwendung beliebig komplexere Transceiver-Schaltungen
bereitstellen. Insbesondere weisen die Transceiver typischerweise im
Empfangspfad sehr viel aufwändigere
Schutzelemente und Pufferschaltungen auf. Auch können als Treiberschaltungen
beliebig andere Treiber, beispielsweise Tristate-Treiber, Gegentaktausgangsstufen,
Differenzverstärker
oder dergleichen, verwendet werden.
-
Auch
sei das erfindungsgemäße Verfahren und
die Datenformate nicht auf die angegebenen Zahlenangaben beschränkt. Diese
wurden lediglich beispielhaft angegeben.
-
In
dem vorstehenden Ausführungsbeispiel wurde
davon ausgegangen, dass eine logische "Null" dominant
ist und eine logische "Eins" rezessiv ist. Denkbar
wäre selbstverständlich auch
eine umgekehrte Logik. In diesem Falle müsste insbesondere die Vergleicherschaltung
geringfügig
geändert
werden, zum Beispiel durch Invertierung der Signale.
-
In
den vorstehenden Ausführungsbeispielen wurde
jeweils anhand eines Adressfeldes oder einer Adresse festgestellt,
ob der Eindrahtbus einen Kurzschluss aufweist und/oder ob eine Zugriffskollision auf
diesen Eindrahtbus vorliegt. Erst anschließend wurde festgelegt, welcher
Busteilnehmer die Zugriffsberechtigung auf den Eindrahtbus erhält. Diese Überprüfung und
Festlegung muss jedoch nicht notwendigerweise anhand eines Adressfeldes
oder der Adressen der verschiedenen Busteilnehmer erfolgen. Vielmehr
kann hier sehr vorteilhaft ein beliebiges Datenfeld herangezogen
werden, welches einen entsprechenden Funktionscode oder einen Identifikationscode
aufweist, der eine mehr oder weniger eindeutige Identifizierung
der jeweiligen Adressaten zulässt. Über diese
Identifizierung kann jeder Busteilnehmer feststellen, welcher andere
Busteilnehmer noch auf den Bus zugreifen möchte.