Elektrotechnische Grundlagen
Nachfolgend finden Sie einen Überblick über die wichtigsten elektrotechnischen Grundlagen von Bussystemen in der Fahrzeugtechnik. Der Abschnitt ist wie folgt gegliedert:
Verbindungstypen
Bei Kraftfahrzeug-Bussystemen haben wir in der Regel eine bitserielle Übertragung, die meist als Halb-Duplex-Verbindung ausgestattet ist. Halb-Duplex-Verbindung heißt, dass sich bei zwei Kommunikationspartnern zwar beide miteinander unterhalten können, aber immer nur so, dass einer sendet und der andere zuhört und umgekehrt. Eine Voll-Duplex-Verbindung, bei der beide Steuergeräte gleichzeitig senden könnten, ist deutlich aufwendiger und wird deshalb aus Kostengründen im Kraftfahrzeug nicht eingesetzt.
Verbindung: meist Halb-Duplex |
Bei niedrigen Bitraten, zum Beispiel bei LIN, sind die Leitungsverbindungen üblicherweise Ein-Draht-Verbindungen. Bei allen Bussystemen, die eine höhere Bitrate verwenden – also CAN und FlexRay – haben wir Zwei-Draht-Verbindungen, bei denen über das Differenzsignal der beiden Leitungen die Daten übertragen werden. In der Regel sind diese zwei Drähte dann auch noch miteinander verdrillt. Man spricht von einer so genannten „Twisted-Pair“-Leitung.
Leitung: meist 2 Draht Twisted-Pair |
Der Botschaftsversand vom Sender zu einem oder mehreren Empfängern findet in Form eines Broadcasts statt. Das heißt, der Sender sendet einfach seine Daten auf die Busleitung – in der Art wie beim Rundfunk- oder Fernsehempfang – und alle interessierten Teilnehmer können die Botschaft empfangen.
Topologie
Die Topologie des Bussystems im Fahrzeug ist für die Gestaltung des Kabelbaums eine wesentliche Frage. Hier haben wir verschiedene Ausführungsformen: CAN oder auch LIN verwenden die sog. Linientopologie, bei der die verschiedenen Steuergeräte über mehr oder weniger kurze Stichleitungen an eine Leitung angeschlossen sind, die die Steuergeräte miteinander verbindet. Die Länge dieser Stichleitungen ist abhängig von der gewünschten Bitrate. Je höher die Bitrate, desto kürzer die zulässige Länge der Stichleitungen.
Verschiedene Bus-Topologien (Linie, Stern und Ring) |
Das Bussystem FlexRay kann man ebenfalls als Linienbus konfigurieren. Die Standardkonfiguration von FlexRay ist aber der Stern, bei der es einen, in der Regel aktiven Sternpunkt gibt und alle Steuergeräte an diesen Sternpunkt angeschlossen sind.
MOST, das Bussystem, das optische und nicht elektrische Verbindungen verwendet, setzt eine Ringstruktur ein, bei der die Steuergeräte in Form eines Rings miteinander verbunden sind.
Kopplung
Zur Kopplung der Steuergeräte an das Bussystem verwendet man in der Regel einen Bus-Controller. Der Bus-Controller ist meist bereits im Mikrocontroller des Steuergeräts enthalten. Er verpackt die Bits in die einzelnen Frames und kümmert sich um das gesamte Bus-Management. Zur Signalanpassung zwischen Controller und Bus benötigt man noch einen Transceiver. Bei manchen Bussystemen, z. B. FlexRay, haben wir im Sternpunkt so genannte Repeater, die das Bussignal nur elektrisch neu auffrischen. Sie vergrößern die Amplitude und filtern die Signale etwas. Dies erlaubt längere Signalleitungen und verbessert die Signalqualität. An den Stellen, an denen unterschiedliche Bussysteme, entweder mit unterschiedlicher Bitrate (z. B. Low- und High-Speed-Can) oder mit unterschiedlichen Bus- Protokollen (z. B. CAN und MOST) miteinander gekoppelt werden müssen, setzt man so genannte Gateways ein. Gateways sind Steuergeräte, deren Hauptaufgabe darin besteht, die Botschaften von einem Bussystem zu empfangen und auf die Botschaften eines anderen Bussystems umzusetzen.
Bitkodierung und Leitungslänge
Für die Bitkodierung der Signale auf den Busleitungen verwendet man in der Regel die so genannte NRZ-Kodierung (Non-Return-to-Zero). Während eines Bittaktes ist dabei der Signalpegel auf der Leitung entweder konstant auf Masse oder einer positiven Spannung. Somit werden eine logische 0 und eine logische 1 kodiert.
Bitkodierung |
Andere Kodierungsverfahren wie beispielsweise die Manchester-Kodierung, wie sie von Ethernet bekannt ist, werden im Kraftfahrzeug derzeit noch nicht eingesetzt. Bei SAE J1850 finden sich noch die in der Fahrzeugtechnik exotische PWM-Kodierung. Die Kodierung der Signale erfolgt hier über die Pulsbreite.
Ein wichtiger Aspekt für die Übertragungssicherheit ist der Zusammenhang zwischen Wellenlänge auf der einen Seite und Bitrate der Signale auf der anderen Seite. Aus den elektrotechnischen Gesetzmäßigkeiten ergibt sich, dass man immer dann mit wellentechnischen Problemen zu tun hat, wenn die Leitungslänge ca. ein Zehntel der Wellenlänge der Signale auf den Busleitungen ist, siehe Formel:
Bei einer Bitrate (Signalgrundfrequenz) von 1 Mbit/s ergibt sich also, dass bei Leitungslängen ab ca. 30 m mit Welleneffekten zu rechnen ist. Um in diesem Bereich Reflektionen und damit eine deutliche Verschlechterung der Übertragungsqualität zu vermeiden, müssen die Leitungen mit einem passenden Widerstand abgeschlossen werden.
Datenübertragung
Wie werden nun die einzelnen Bits zu ganzen Botschaften zusammengesetzt? Wir unterscheiden die sogenannte zeichenbasierte und die bitstrombasierte Übertragung.
Bei der zeichenbasierten Übertragung werden einige, in der Regel 8 Bits, zu einem Zeichen zusammengefasst. Vor den 8 Bits wird ein weiteres Bit, das so genannte Startbit, und am Ende ein weiteres Bit, das so genannte Stoppbit, gesendet. Diese dienen der Synchronisation zwischen Sender und Empfänger. Dann gibt es eine kleine Pause. Anschließend folgt das nächste Zeichen. Die Anzahl der auf diese Weise übertragenen Zeichen entspricht der Länge einer Botschaft. Danach bleibt das Übertragungssystem so lange in Ruhe, bis die nächste Botschaft übertragen wird. Diese Pausen, auf der einen Seite zwischen den einzelnen Zeichen und auf der anderen Seite zwischen den einzelnen Botschaften, reduzieren natürlich die Nutzdatenrate des Bussystems.
Zeichenbasierte Übertragung |
Bei Bussystemen mit höherer Bitrate ist dieses zeichenbasierte Übertragungsverfahren, das wir bei K-Line oder LIN vorfinden, unüblich. Dort versucht man die Pausen so klein wie möglich zu halten und verwendet die bitstrombasierte Übertragung. Es werden einfach alle Bits einer Botschaft ohne Pause hintereinander gesendet und erst dann, wenn die Botschaft beendet ist, gibt es eine mehr oder weniger große Pause bis die nächste Botschaft versendet werden kann.
Bitstrombasierte Übertragung |
Wie finden die Botschaften nun ihren Empfänger? Hier unterscheiden wir zwei verschiedene Verfahren: Als erstes die gerätebasierte Adressierung. Bei ihr hat jedes Steuergerät – also Sender und Empfänger – eine eigene, individuelle und eindeutige Adresse. Dieses Adressierungsverfahren ist typisch für Protokolle auf der Layer 7-Schicht des OSI Modells (Anwendungsebene) insbesondere im Diagnosebereich. Als zweites haben wir die inhaltsbasierte Adressierung. Diese finden wir bei Bussystemen im Automobil auf der Ebene des Data-Link Layers (Layer 2). Inhaltsbasierte Adressierung bedeutet, die Botschaft bekommt keine Adresse, die kennzeichnet, wer der Empfänger der Botschaft ist. Sie hat vielmehr eine Kennung, den sogenannten Message-Identifier, der den Inhalt der Botschaft kennzeichnet. Jeder, der sich für dessen Inhalt interessiert, kann die Botschaften empfangen.
Zusätzlich zu den eigentlichen Nutzdaten werden bei den Botschaften typischerweise Informationen für die Fehlererkennung und ggf. die Fehlerkorrektur mitversendet. Im einfachsten Fall ist das bei den zeichenbasierten Übertragungen ein einzelnes Bit pro Zeichen, das so genannte Paritätsbit. Bei den bitstrombasierten Übertragungsverfahren und auch bei den zeichenbasierten Verfahren auf Botschaftsebene gibt meist eine Prüfsumme, die so genannte CRC-Summe (Cyclic Redundancy Check). Entsprechend überwachen auch Sender und Empfänger über Timeouts die Übertragung: Bei einer zeichenbasierten Übertragung die maximale Länge der Abstände zwischen den Zeichen und bei einer bitstrombasierten Übertragung die minimalen oder maximalen Abstände bzw. Pausen. In vielen Fällen muss der Empfänger durch ein so genanntes Acknowledge den positiven Empfang einer Botschaft bestätigen. Falls ein Fehler festgestellt oder ein Empfang nicht bestätigt wird, kommt es zu einer Wiederholung der Übertragung.
Bei der Übertragung von Daten spielt die Laufzeit eine wesentliche Rolle. Meist denkt man hierbei zuerst an die eigentliche Übertragungsdauer auf dem Bussystem. Diese abhängig von der Bitrate und der Anzahl der übertragenen Daten. Es darf aber nicht vergessen werden, dass auch für die Bereitstellung der Botschaft Zeit benötigt wird, siehe Abbildung. Die Botschaft wird in der Regel auf der Anwendungsebene bereitgestellt, muss dann in mehreren Schritten per Software verarbeitet werden, um die tatsächlich zu versendende Botschaft zu erzeugen. Dann muss gewartet werden bis das Bussystem frei ist. Erst jetzt kann die Botschaft versendet werden. Auf der Empfängerseite gibt es dann den umgekehrten Weg: Die Botschaft muss ausgepackt und es müssen Umrechnungen durchgeführt werden, bis die Daten auf der Anwendungsebene des Empfängers verfügbar sind. Die Gesamtübertragungsdauer wird als Latenz bezeichnet und sollte natürlich möglichst kurz sein. Auf jeden Fall kürzer, als es die Anwendung erfordert. Für Steuer- und Regelaufgaben ist jedoch der so genannte Jitter noch wichtiger als die Latenz. Als Jitter wird die Schwankung der Latenz im laufenden Betrieb bezeichnet.
Latenz und Jitter |
Buszugriffsverfahren
Wie wir gesehen haben, kann bei einem Bussystem zwar gleichzeitig von mehreren Steuergeräten empfangen werden, aber es darf immer nur ein Steuergerät senden. Wer zu welchem Zeitpunkt senden darf, wird durch das Buszugriffsverfahren geregelt. Hierin unterscheiden sich die einzelnen Bussysteme. Dies ist zusammen mit der Bitrate oft das entscheidende Kriterium für die Auswahl der einzelnen Bussysteme.
Buszugriffsverfahren |
Wir haben hier auf der einen Seite kontrollierte und auf der anderen Seite unkontrollierte Zugriffsverfahren, siehe Abbildung. Bei den kontrollierten Zugriffsverfahren unterscheiden wir zwischen zentral gesteuerten und dezentral gesteuerten Systemen. Ein Beispiel für ein zentral gesteuertes System ist LIN, dort gibt es ein Master-Steuergerät. Dieses Master-Steuergerät teilt den Slave-Steuergeräten nacheinander die Sendeberechtigung zu. Wer vom Master keine Berechtigung erhält, darf nicht senden.
Alternativ dazu haben wir dezentral gesteuerte Systeme, wie FlexRay, TTCAN (Time Triggered CAN) oder das im Fahrzeug nicht zum Einsatz kommende TTP (Time Triggered Protocol). Sie verwenden ein so genanntes Zeitschlitzverfahren oder auch Time-Division-Multiple-Access Verfahren. Alle Steuergeräte haben dabei eine gemeinsame Zeitbasis. Sie arbeiten also synchron. Auf Grundlage dieser Zeitbasis werden Zeitfenster definiert und jedem Steuergerät werden ein oder mehrere eindeutige Zeitfenster zugeordnet, in denen es senden darf.
Ein wesentliches Merkmal aller zeitgesteuerten Verfahren ist, dass im Gegensatz zu den ereignisgesteuerten Systemen, die Frage, wann ein Steuergerät senden darf, bereits in der Entwicklungsphase festgelegt werden muss.
Bei den Buszugriffsverfahren mit unkontrolliertem Buszugriff gibt es die Variante mit Kollisionserkennung und die Variante mit Kollisionsauflösung. Auch hier ist der Buszugriff nicht vollständig unkontrolliert. Alle diese Verfahren benutzen ein so genanntes Carrier-Sense-Multiple-Access Verfahren. Das bedeutet, dass zwar im Prinzip jeder senden kann, wann er will, aber nur dann, wenn das Bussystem gerade frei ist. Das Senden erfolgt so asynchron oder auch ereignisgesteuert. Beim Sendeversuch eines Steuergeräts prüft dies zuerst, ob der Bus gerade frei ist. Ist dies der Fall, fängt das Steuergerät an zu senden. Fall zwei Steuergeräte gleichzeitig beginnen sollten, kann es zu einer Kollision kommen.
Nun gibt es zwei Möglichkeiten, die Kollision zu behandeln. Die eine Möglichkeit ist die Kollisionserkennung oder auch Collision-Detect (z. B. bei Ethernet üblich). Dort überwachen die Steuergeräte beim Senden die Busleitungen, vergleichen die gesendeten mit den tatsächlich gemessenen Daten und können so eine Kollision ermitteln. Bei einer Kollision ziehen sich beide Steuergeräte zurück und versuchen es nach einer Zeit wieder. Da die Wartezeit in einem bestimmten Rahmen zufällig gewählt wird, sinkt die Wahrscheinlichkeit einer erneuten Kollision deutlich.
Der Nachteil dieses Verfahrens ist, dass es nicht deterministisch ist. Man weiß nie, ob es zu Kollisionen kommt und es ist nicht sicher, dass eine Botschaft tatsächlich sofort übertragen werden kann. Ein etwas besseres System verwendet daher zusätzlich zu einer Kollisionserkennung auch eine Kollisionsauflösung. Bei diesen Systemen, mit CAN als Hauptvertreter, kommt es ebenfalls zu Kollisionen. Auch hier müssen alle Sender eine Kollision erkennen. Aber ziehen sich dort bei einer Kollision nicht beide Sender zurück, sondern der Sender mit der höheren Priorität „gewinnt“ und setzt seine Übertragung fort. Dieses Prinzip bezeichnet man als Arbitrierung. Nur der, welcher die Arbitrierung „verliert“, zieht sich zurück. Der andere sendet unverändert und ohne, dass er überhaupt einen Fehler festgestellt hat, weiter.
Busanschluss – Wired-OR
Wie die Kollisionserkennung und die Kollisionsauflösung funktionieren, soll an einem kleinen Schaltungsbeispiel demonstriert werden, siehe Abbildung:
Wired-OR |
Sie sehen hier rechts oben den Busanschluss eines LIN Bussystems mit zwei Steuergeräten, ECU1 und ECU2. Der Busanschluss besteht, vereinfacht gesagt, jeweils aus einem Pull-Up Widerstand, der die Busleitung mit der Versorgungsspannung +UB verbindet sowie den Transistoren T1 und T2, mit denen die Busleitung auf Masse geschaltet werden kann.
Im Ruhezustand sind die beiden Transistoren ausgeschaltet und die Busleitung befindet sich damit auf dem Pegel der Versorgungsspannung +UB. Wenn das Steuergerät 1 nun eine logische 0 (Low) senden will und das Steuergerät 2 ist in Ruhe, dann schaltet das Steuergerät 1 einfach seinen Transistor T1 ein, der deutlich niederohmiger ist, als die beiden Pull-Up Widerstände und die Busleitung wird auf Masse gezogen, siehe auch Tabelle.
Zustände bei der Kollisionsauflösung |
Wenn das Steuergerät 1 dagegen eine logische 1 (High) senden will und das Steuergerät 2 sei weiterhin in Ruhe, dann lässt das Steuergerät 1 seinen Transistor T1 einfach abgeschaltet. Damit liegt die Busleitung weiterhin über beide Pull-Up Widerstände auf +UB. Auf der Busleitung finden wir also ein positives Signal (High).
Nehmen wir nun an, dass während das Steuergerät 1 diese logische 1 (High) sendet, das Steuergerät 2 ebenfalls versucht zu senden, nur eine logische 0 (Low). Dann schaltet das Steuergerät 2 seinen Transistor T2 ein und zieht so die Busleitung über den niederohmigen Transistor T2 auf Masse. Dies entspricht einer logischen 0 (Low). Das heißt, dass Steuergerät 2 dominiert das Signal. Es gewinnt somit die Kollision und kann senden. Wenn nun beide Steuergeräte die Signale der Busleitung mitlesen und mit dem vergleichen, was sie eigentlich senden wollten, dann würde in diesem Fall Steuergerät 2 kein Problem feststellen. Es wollte eine 0 senden und auf der Busleitung war tatsächlich eine 0 zu sehen. Steuergerät 1 dagegen würde feststellen, dass es zu einer Kollision kam, da es eine 1 senden wollen, jedoch eine 0 gelesen hat. Wenn sich dieses Steuergerät nun sofort vom weiteren Senden zurückzieht, kann das Steuergerät 2 problemlos weiter senden. Es merkt nicht einmal, dass es überhaupt eine Kollision gegeben hat. Die Kollision wurde somit aufgelöst.
Nachfolgend sind die wichtigsten Vor- und Nachteile der verschiedenen Buszugriffsverfahren noch einmal stichwortartig zusammengestellt:
- Master-Slave:
- Einfache Realisierbarkeit (+)
- Sichergestellte maximale Zeit, deterministisch (+)
- Maximale Latenzzeit proportional zur Anzahl der Busteilnehmer (-)
- Ausfall des Masters Ausfall des Gesamtsystems (-)
- Redundanz bei zyklischer Übertragung (-)
- Time Division Multiple Access TDMA:
- Hohe zeitliche Genauigkeit (+)
- Hohe Protokolleffizienz (+)
- Streng deterministisch (+)
- Zeitliche Synchronisierung der Teilnehmer notwendig (-)
- Begrenzte Anzahl von Teilnehmern (-)
- Begrenzte Anzahl von Nachrichten (-)
- Übertragung redundanter Daten (-)
- CSMA/CD (Collision Detect):
- Sehr viele Teilnehmer möglich (+)
- Niedrige Buslast (+)
- Teilnehmer kann ohne Bus-Rekonfiguration hinzugefügt oder entfernt werden (+)
- Nicht deterministisch (-)
- Lange Wartezeiten bei Hochlast (-)
- CSMA/CA (Collision Avoidance):
- Viele Teilnehmer möglich (+)
- Teilnehmer kann ohne Bus-Rekonfiguration hinzugefügt oder entfernt werden (+)
- Kaum Effizienzeinbruch bei Hochlast (+)
- Für hochpriore Botschaften deterministisch (+)
- Maximale Latenzzeiten hochpriorer Nachrichten (-)
- Master-Slave: