EP Basics Oszilloskop: CAN- und CAN-FD-Busse auf Fehler untersuchen
Anbieter zum Thema
Sowohl CAN als auch CAN-FD sind zwei Standard-Busse von vernetzten Fahrzeugen. Mit einem Oszilloskop lassen sich Daten auf dem CAN-Bus erfassen und dekodieren. Ein Überblick.

Der CAN-Bus ist der Standard für vernetzte Fahrzeuge weltweit. Über den CAN-Bus können elektronische Steuergeräte (ECUs) in einem Fahrzeug mit verschiedenen Subsystemen kommunizieren. Dazu gehören beispielsweise das Motorsteuergerät, elektronische Getriebe, Sicherheitssystemen wie Airbags oder das Infotainmentsystem. Moderne Fahrzeuge besitzen mehrere Steuergeräte, die auf dem CAN-Bus als Knoten erscheinen.
Jeder Knoten kann mit dem gesamten Netzwerk kommunizieren, ohne dass eine komplexe dedizierte Verkabelung zwischen allen Knoten erforderlich ist. Mit der zunehmenden Komplexität der Automobilelektronik erschien 2011 eine Variante des CAN-Busses, das Controller Area Network mit flexibler Datenrate (CAN FD). Der Bus erlaubt höhere Datenraten.
Einige Grundlagen zum Kommunikationsprotokoll CAN-Bus
Der CAN-Bus ist ein differenzielles Signalisierungsprotokoll, das für die Kommunikation zwei dedizierte Leitungen verwendet. Das sind CAN High und CAN Low. Ist der CAN-Bus im Ruhezustand, führen beide Leitungen 2,5 V. Werden Daten übertragen, erhöht sich die CAN-High-Leitung auf 3,75 V und die CAN-Low-Leitung sinkt auf 1,25 V. Die Differenz von 2,5 V zwischen den beiden Leitungen führt (Bild 1). Die Spannungsdifferenz zwischen CAN High und CAN Low bildet das CAN-Bussignal. Der CAN-Bus überträgt Daten mit einer Rate von 250 kBit/s über eine Distanz von über 250 m. Die maximale Buslänge bei einer Bitrate von 10 kBit/s beträgt 1 km; die minimale Buslänge bei einer Datenrate von 1 MBit/s beträgt 40 Meter.
Bild 2 zeigt die Standardnachrichtenstruktur mit einem Datenfeld von 0 bis 64 Bit. Das ID-Feld enthält bis zu 11 Bits (Teil A der CAN 2.0-Spezifikation von 1991) oder bis zu 29 Bits (Teil B der gleichen Spezifikation). Die CAN-FD-Struktur hat einen optionalen Teil des Datenfeldes mit hoher Bitrate. Damit können Anwender mehr Daten auf demselben Platz unterzubringen. CAN FD erlaubt Geschwindigkeiten bis zu 8 MBit/s, während CAN nur bis zu 1 MBit/s erreicht.
Signale auf dem CAN-Bus erfassen und dekodieren
Damit die Daten auf dem CAN-Bus dekodiert und erfasst werden können, können Anwender mit einem Oszilloskop die CAN-High- und CAN-Low-Leitungen mit unsymmetrischen Tastköpfen an separaten Oszilloskop-Eingangskanälen abgreifen. Mit dem mathematischen Operator Differenz des Oszilloskops lässt sich CAN Low von CAN High subtrahieren und als Ergebnis erhält man die differentielle Wellenform (Bild 3).
Das ist eine Möglichkeit, das CAN-Bus-Differenzsignal zu ermitteln. Eine andere Möglichkeit ist die Verwendung einer Differenzsonde. Beide Ansätze haben jedoch Vor- und Nachteile. Zum einen sind unsymmetrische Sonden viel preiswerter als differentielle Sonden. Außerdem bieten sie unabhängige Ansichten der CAN-Bus-Leitungen, was Ihnen eine visuelle Bestätigung gibt, dass Sie die richtigen Signale abtasten.
Andererseits bieten differentielle Tastköpfe ein besseres Gleichtaktunterdrückungsverhältnis (CMRR), als es durch Kanalsubtraktion erreicht werden kann. Außerdem belegen sie nur einen Oszilloskopeingangskanal, so dass mehr Kanäle für die Erfassung anderer Signale zur Verfügung stehen.
Teledyne LeCroy bietet Trigger/Decode (TD) und Trigger, Decode, Measure/Graph, and Eye Diagram (TDME) Softwarepakete für viele serielle Protokolle an, darunter CAN und CAN FD. Bild 4 zeigt eine Bildschirmaufnahme einer CAN-Bus-Wellenform mit angewandter Hexadezimal-Dekodierung.
Ein informativerer Ansatz ist die symbolische Dekodierung, die wesentlich mehr Informationen über den tatsächlichen Inhalt des CAN-Busverkehrs liefert. Die symbolische Dekodierung wird in einer DBC-Datei übertragen, die das Standarddateiformat der Industrie ist. In Bild 5 sehen wir eine symbolische Dekodierung der Hex-Werte aus Bild 4. Jetzt können wir feststellen, dass wir eine Meldung mit der Leistung in Kilowatt und der Nockendrehzahl in Umdrehungen pro Minute haben. Eine andere Meldung zeigt die Kühlmitteltemperatur und den Druck an.
Mehr Informationen über den Inhalt des CAN-Busverkehrs
Eine andere Möglichkeit ist es, einen Differenzsonde zu verwenden. Beide Ansätze haben Vor- und Nachteile. Unsymmetrische Sonden sind preiswerter als differentielle Sonden und sie bieten unabhängige Ansichten der CAN-Bus-Leitungen. Differentielle Tastköpfe bieten ein besseres Gleichtaktunterdrückungsverhältnis (CMRR). Sie belegen außerdem nur einen Eingang am Oszilloskop.
Dekodiert man die einzelnen Symbole, so bekommt man mehr Informationen über den tatsächlichen Inhalt des CAN-Busverkehrs. Das Standarddateiformat in der Industrie ist DBC. Die dekodierten CAN-Bus-Symbole können sehr komplex sein, da Nachrichten der Airbag-Sensoren, Tempomat, Bremskreislauf, Motorsteuerung oder Reifendruck übertragen werden. Einige Geräte senden gleichzeitig CAN- und CAN-FD-Botschaften. Sie werden gleichzeitig dekodiert. Darüber hinaus ist es möglich, dass Fahrzeuge mehrere CAN-Busse oder andere Busse als den CAN-Bus enthalten. Das können LIN, FlexRay, SPI, I²C oder UART-Protokolle sein.
Die CAN-Standardspezifikation enthält das Bitstuffing. Damit wird verhindert, dass sich das Signal auf dem DC-Bus verzerrt. Der CAN-Bus ist kein getaktetes System, sondern verwendet eine Phasenregelschleife (PLL), um die Grenzen zwischen logischen 1 und 0 zu bestimmen. Der Transceiver muss ein gewisses Maß an Übergängen sehen, damit er den Takt aus den Daten selbst zurückgewinnen kann. Damit die PLL bei langen Folgen von 1 und 0 nicht den Anschluss verliert, zwingt die Norm das CAN-Bussignal, regelmäßig ein Bit zu füllen (Stuff Bit) oder ein Bit mit entgegengesetzter Polarität aus der laufenden Folge einzufügen. Nach fünf aufeinanderfolgenden Bits gleicher Polarität wird ein Füll-Bit eingefügt, um die Kette zu unterbrechen.
Dekodierte CAN- oder CAN-FD-Signale zusätzlich filtern
Nachdem ein CAN- oder CAN-FD-Bussignal erfasst und dekodiert wurde, wird anschließend mit der Filterfunktion des Oszilloskops nach bestimmten Kriterien bezüglich des Busverkehrs gesucht. Aus der Dekodierung lassen sich Daten gewinnen wie Nachrichten-IDs und Datenfelder. Bestimmte CAN-Nachrichten können identifiziert werden, wenn die dekodierten Wellenform vergrößert werden und mit der Suchfunktion des Oszilloskops nach einem bestimmten IC oder Datenwert gesucht wird.
Eine andere Möglichkeit, nach bestimmten Daten zu suchen, ist, die Dekodierungsergebnisse zu filtern. Interessiert man sich speziell für die Daten der Motortemperatur, dann sucht man über die Filterfunktion der Dekodiersoftware nach der entsprechenden Nachrichten-ID. Selbst bei vielen verschieden CAN-Nachrichten auf dem Bus werden bei der Filterung nach dem Hexadezimalwert 210 im Nachrichten-ID-Feld alle anderen Nachrichten entfernt.
(ID:48675944)