CAN-Bus
Arbitrierung
Arbitrierung
Set of flashcards Details
Flashcards | 21 |
---|---|
Language | Deutsch |
Category | Electrical Engineering |
Level | University |
Created / Updated | 13.03.2013 / 30.07.2023 |
Weblink |
https://card2brain.ch/box/canbus
|
Embed |
<iframe src="https://card2brain.ch/box/canbus/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Create or copy sets of flashcards
With an upgrade you can create or copy an unlimited number of sets and use many more additional features.
Log in to see all the cards.
Kennwerte des CAN-Buses
- Der Bus ist sternförmig oder linear und besitzt eine Multi-Master Architektur
- Die Kommunikation ist ereignisgesteuert
- Es können bis zu 2032 verschiedene Nachrichten Indentifier definiert werden
- Maximale Brutto-Datenrate beträgt 1 MBit/s
- Die Nettorate liegt bei 58 %
- Die maximal erzielbare Länge liegt bei ca. 40 m
- Es wird das CSMA/CA Arbitrierungsverfahren verwendet
- Im CAN-Protokoll wird die NRZ-Codierung verwendet
CAN-Telegrammtypen
je nach Anwendungsfall drei Haupttypen von Botschaften
- Datentelegramm
- Datenübertragung zu einem oder mehreren Empfängern und wird auf Initiative des Senders versandt
- Datenanforderung
- Anforderung einer Botschaft durch einen Busteilnehmer, wird auf Initiative des Empfängers versandt
- Fehlertelegramm
- Signalisieren Sender oder Empfänger das Erkennen eines Fehlers
Datenanforderung
- Anforderung zum Senden eines Data Frames an einen bestimmten Knoten
- Identifier der angeforderten Botschaft wird gesendet
- RTR = rezessiv, kein Datenfeld
- Knoten sendet als Antwort die geforderte Botschaft
- falls Data Frame und Remote Frame gleichzeitig gesendet werden, gewinnt Data (da dominant) und Nachricht kann sofort gelesen werden
Arbitrierung
- beim CAN können alle Teilnehmer gleichberechtigt zugreifen --> Buszugriffssteuerung durch zerstörungsfreie (Nachricht mit höchster Priorität muss nicht nochmals gesendet werden), bitweise Arbitrierung
- Prioritäten sind im Identifier umgesetzt --> gesendet wird nach Rangfolge der Prioritäten
- Zustände Null und Eins müssen auf dem Bus dominant und rezessiv umgesetzt werden --> eine Eins soll während der Arbitrierung von einer Null überschrieben werden können (Null = dominant, Eins = rezessiv)
- für Identifier bedeutet dies, je kleiner seine Binärzahl, umso größer ist seine Priorität
- durch Verwendung offener Kollektoren können mehrere Teilnehmer auf den Bus parallel geschaltet werden, ohne dass im Konfliktfall elektrische Kurzschlüsse entstehen
- Zustand mit zwei unterschiedlichen Pegeln auf CAN-H und CAN-L wird dominant genannt (Pegeldifferenz > 0,9 Volt), Zustand mit zwei gleichen Pegeln ist als rezessiv bezeichnet
- dominant entspricht einer logischen Null --> legt ein Knoten eine logische Null auf den Knoten, überschreibt er ggfs. den Zustand einer logischen Eins eines anderen Knotens
- Kopplung der Knoten über die Busleitung stellt eine logische Und-Verknüpfung (Wired-And) dar
- jeder Teilnehmer muss während des Sendevorgangs den logischen Pegel auf dem Bus lesen
- stimmen Werte nicht überein, muss der Teilnehmer aufhören zu senden
- Teilnehmer mit kleinsten binärwert (höchste Priorität) gewinnt die Übertragung
Fehlermechanismen
Ziele: Systemweite Datenkonsistenz, keine Busblockade durch defekte Steuergeräte
- Bitmonitoring
- sendende Knoten prüft ob der zur Sendung beabsichtigte Pegel auch auf dem Bus erscheint
- Überwachung des Telegrammformats
- jeder Netzknoten überwacht, ob die auf dem Bus gesendete Botschaft Formfehler hat
- Zyklische Blocksicherung
- CRC - Bildung einer Prüfsequenz und Überprüfung beim Empfänger
- Überwachung Ackknowledgement
- Sender erwartet Bestätigung des fehlerfreien Empfangs durch Aufschaltung eines dominanten Pegels im ACK-Feld durch Empfänger
- Bleibt Bestätigung aus, geht Sender von einem Fehler bei der Übertragung aus
- Überwachung Bitstuffing
- alle Busteilnehmer überwachen die Einhaltung der Bitstuffing-Regel
Fehlertelegramm
- erste Steuergerät, dass Fehler entdeckt, sendet das Error-Flag
- 6 dominante Bits --> überschreibt alles und verletzt Bitstuffing-Regel
- andere Steuergeräte erkennen Fehler und senden ebenfalls Error-Flag --> kann bis zu 12 Bit lang werden
- nach Fehlermeldung folgen 8 rezessive Bits, um das Ende der Fehlermeldung zu signalisieren
- Fehlersignale
- aktiv: 6 dominante Bits (wie oben beschrieben)
- passiv: 6 aufeinander folgenden gleichen Bits (wartet auf Fehler/Fehlermeldung)
Fehlerzustände
- zur Vermeidung von Busblockaden durch Steuergeräte, die ständig ein Errorframe senden, existieren 3 Fehlerzustände: Fehleraktiv, Fehlerpassiv, und Bus-Off
- Steuergeräte besitzen Sendefehlerzähler und Empfangsfehlerzähler, sie in- oder dekrementieren die Zähler nach best. Regeln und nach Zählerstand werden die Zustände gewechselt
- Fehleraktiv: ohne Einschränkung darf das SG Error Frames senden
- Fehlerpassive: 6 rezessive Bits --> Fehlerfreie Botschaften anderer SG können nicht überschrieben werden
- Bus-Off: vollständig abgekoppelt, Empfang von Nachricht ist je nach Implementierung möglich --> darf erst nach dem Empfang von 128 x 11 rezessiven Bits in den Zustand Fehleraktiv zurückkehren (128 Botschaften der anderen SG kann in dieser Zeit übertragen werden)
Kennwerte LIN-Bus
- Kostengünstiger Bus für Sensoren und Aktuatoren, wo Bandbreite und Vielseitigkeit von CAN nicht benötigt wird
- Geeignet für nicht sicherheitsrelavante Anwendungen --> als Subbus für Tür oder Sitz
- Single Master – Multiple Slave --> Übertragung wird durch den Master gesteuert
- Maximal 16 Slaves möglich
- LIN-Master hängt am CAN-Bus
- Maximale Übertragungsrate 20 kBit/s
- Datenübertragung über eine Eindrahtleitung
Funktionsweise LIN-Bus
- Master sendet Botschaftsheader, der mit mindestens 13 Low-Bits und einem 1 High-Bit (Synchonisationsbreak) beginnt
- Anschließedn folgt Synchronisations-byte (Low-High Bitfolge)
- Danach wird der LIN–Identifier gesendet --> Damit wird die Datenbotschaft ausgewählt, die einer der Slaves senden soll
- der ausgewählte Slave antwortet mit einer Data 1- 8 Byte und CRC-Summe
- max 64 Nachrichten-Identifier, Anzahl Datenbytes je Nachricht: 1 bis 8
- Standard: Übertragung der Nachrichten im festen Zeitraster --> System wird berechenbar und es ist vorhersagbar, wann eine Nachricht übertragen wird
- Zusätzlich: ereignisgesteuerte Frames, spontane Frames, Diagnoseframes und benutzerdefinierte Frames
- Fehlererkennung: Bitfehler, CRC, Identifier-Parity-Fehler, Slave-Not-Response-Fehler, Inconsistence-Synchron-Fehler, Physical-Bus-Fehler
Grenzen des ereignisgesteuerten CAN-Bus
- erhöhte Sicherheitsanforderung an Kommunikation bei Systemen, wie X-by-Wire
- CAN-Bus dafür ungeeignet
- kritisch sind Belastungsspitzen, wenn alle SG gleichzeitig senden wollen
- Lösung: zeitgesteuerte Systeme mit synchronen Buszugriff
- Vorhersagbarkeit - deterministisches Verhalten auch unter Spitzenlast
- Betriebssicherheit - Fehlertoleranz- und Fehlererkennungsmechanismen
Umsetzung durch TTCAN und FlexRay
Kennwerte TTCAN
- Zeitgesteuerte Variante des CAN
- Aufteilung zwischen fest zugewiesenen Zeitfenstern und Zeitfenster über Arbitrierung
- Ereignisgesteuerte Datenübertragung nach wie vor möglich
- Eine Station übernimmt die Aufgabe des Taktmasters und sendet Referenzbotschaften zur Zeitsynchronisierung. Dabei wird der Bus in Basiszyklen eingeteilt zu deren Anfang jeweils die Zeitsynchronisierung stattfindet.
- Redundanz durch mehrere Zeitmaster um Totalausfall zu vermeiden. Alle Zeitmaster senden gleichzeitig, aber mit unterschiedlichem Identifier. Der Zeitmaster mit der höchsten Priorität sendet und gibt den Basiszyklus vor.
- Gleiches Protokoll und gleicher Physical-Layer wie beim bisherigen CAN
- Maximale Übertragungsrate 1 Mbit/s
- Referenznachricht – Wird am Anfang jedes Basiszyklus von einem Zeitmaster zur globalen Zeitsynchronisation gesendet
- Es gibt drei Arten von Zeitfenstern
- Exklusive Zeitfenster – Jeweils ein Steuergerät darf eine Nachricht senden. Das Zeitfenster dient der zeitsynchronen Kommunikation für sicherheitsrelevante Anwendungen. Keine Buskollision möglich. --> zeitgesteuertes, periodisches Senden
- Arbitrierende Zeitfenster – Für gewöhnliche ereignisgesteuerte CAN-Botschaften mit Arbitrierung nach dem CSMA/CA-Buszugriffsverfahren --> sporadisches Senden
- Freie Zeitfenster – Für spätere Erweiterungen
Kennwerte FlexRay
- Entwickelt für den Einsatz in X-by-Wire Systemen (X = Brake, Steer, …)
- Hohe Datenübertragungsrate – 10 MBit/s (Netto 5 MBit/s)
- Echtzeitfähigkeit
- Ausfallsicherheit
- Synchrone und Asynchrone Datenübertragung --> Statische und Dynamische Zeitfenster (und/oder möglich)
- bis zu 254 Byte Nutzdaten pro Botschaft
- Ein- und zweikanalige Systeme möglich. Zweiter Kanal für redundante Übertragung in sicherheitskritischen Anwendungen oder zur Erhöhung der Bitraten
- Geschirmte/verdrillte Zwei-Draht-Leitung und optische Verbindungen
- Linien-, Stern und Multi-Sterntopologie möglich
- „Wake Up“ über Bus
Frame-Aufbau FlexRay
Header Segment
- Null frame indicator – Gibt an ob Payload Daten enthält
- Sync frame indicator – Nachricht wird zur Synchronisation verwendet
- StartUp frame indicator – Nachricht wird zum „Startup“ verwendet (Kaltstartknoten)
- Frame-ID – Bestimmt Zeitschlitz in dem die Nachricht gesendet wird
- Payload length – Länge Payload geteilt durch 2
- Cycle Count – aktueller Wert des Zykluszählers
Payload Segment
- Enthält gerade Anzahl von Nutzdaten bis 254 Byte
- Statisch: ersten 12 Byte ggf. als Network Management Vector (Informationen Netzwerkaufbau)
- Dynamisch: ersten 2 Byte ggf. als Message ID (Nachrichtenkennung)
Trailer Segment
- CRC-Checksumme über alle vorherigen Segmente
Kommunikation FlexRay
Statischer Teil
- Buszugriff über TDMA (Time-Division-Mutliple Access)
- Feste Anzahl von Nachrichten mit jeweils fester Länge
- Zuordnung und Reihenfolge des Sendefensters über Frame ID
- Sicherheitsrelevante Funktionen: Datenübertragung synchron auf beiden Kanälen
- Bei Ausfall eines Knotens verstreicht das Zeitfenster ungenutzt
Dynamischer Teil
- Buszugriff über FTDMA (Flexible Time-Division-Mutliple Access) nach der Byteflight Spezifikation
- Reihenfolge des Sendens über Frame ID (niedrigste ID beginnt)
- Sendet ein Knoten nicht, wird der Sendezähler inkrementiert und der Knoten mit der nächst höheren Frame ID beginnt zu senden
Symbol Fenster – Sendung von Einzelsymbolen oder für High-Level Protokolle
Netzwerk Leerlaufzeit – Warten bis konfigurierte Zykluszeit abgelaufen ist
Zeitsynchronsierung
- Microtick – Interne Zeitbasis des Knotens
- Makrotick – Zeitbasis durch Synchronisierung
-
- 1 / 21
-