CAN

HMS bietet eines der größten Produktportfolios für Controller Area Network (CAN) basierte Systeme an.


HMS Produkte und Dienstleistungen ermöglichen...

  • die flexible und einfache Implementierung von CAN und CAN-basierten höheren Protokollen und Schnittstellen in Ihre Geräte – entweder unter Einsatz von fertigen Modulen oder mittels Protokollsoftware 
  • die Verbindung Ihrer Geräte und Systeme mit jedem beliebigen industriellen Netzwerk
  • die Anbindung Ihres PCs an CAN, für die PC-basierte Steuerung, Konfiguration und Analyse
  • die Analyse und die Wartung Ihres Systems

CAN-Technologieeinführung
CAN Produkte und Dienstleistungen
PC Interfaces
 

Verbinden Sie Ihren PC mit CAN

Ixxat PC CAN Interfaces ermöglichen die einfache Anbindung von CAN-basierten PC-Anwendungen an CAN-Systeme.

  • Für Steuerungs-, Analyse- und Konfigurationsanwendungen
  • Verfügbar in verschiedenen Formfaktoren und für eine Vielzahl von unterschiedlichen PC-Schnittstellenstandards
  • Leistungsstarke Treiber-Pakete für kundenspezifische Anwendungen im Lieferumfang enthalten  

PC CAN Interfaces

 
 CAN Infrastrukturkomponenten

Koppeln Sie Ihre Systeme und Geräte

Für die Kopplung von CAN-basierten Systemen bietet HMS ein großes Portfolio an Repeatern, Bridges und Gateways an.

  • Kosteneinsparung durch einfachere Verdrahtung
  • Erhöhung der Systemausdehnung
  • Filter und Konvertierungsfunktionalität
  • Höhere Systemzuverlässigkeit Schutz der Segmente durch galvanische Isolation
  • Überbrückung von großen Distanzen und einfacher Systemzugang via Bluetooth, Ethernet...

CAN Repeater
CAN Bridges und Gateways

 
CAN Tools
 

Analyse und Konfiguration

Wir bieten eine breite Palette an Tools für die Entwicklung, die Inbetriebnahme und die Fehlersuche an.

  • canAnalyser – einfache Analyse, Übertragung und Aufzeichnung von CAN- und CAN FD-Nachrichten und Signalen
  • CAN-Fehlersuche – Leistungsstarke PC- oder mobile Hand-held-Tools

canAnalyser
CAN Diagnose und Fehlersuche





CAN – eine kurze Einführung

 

Die "Geschichte" von CAN

Die Verfügbarkeit kostengünstiger und leistungsfähiger Komponenten der Mikroelektronik führte in der Kraftfahrzeugtechnik zu Beginn der 80er Jahre zur Einführung von weitgehend autonomen elektronischen Steuergeräten für unterschiedliche Funktionsbereiche, wie z. B. Zündungs-, Getriebesteuerungs- oder Antiblockiersysteme. Hierbei zeigte sich bald, dass weitere Funktionsverbesserungen – und damit eine signifikante Verbesserung des Fahrverhaltens – erst durch eine Synchronisation der, auf den verschiedenen Steuergeräten verteilten, Prozesse durch Datenaustausch zwischen den beteiligten Geräten möglich war.

Der Einsatz digitaler Kommunikationssysteme in Kraftfahrzeugen wuchs auch durch die Vernetzung von Komponenten der Karosserie- und Komfortelektronik, wie z. B. Klimaregelung, Sitz- und Spiegelverstellung, Fensterheber, Diebstahlsicherung, Zentralverriegelung, Beleuchtungssteuerung usw. In diesem Einsatzbereich soll ein digitales Kommunikationssystem in erster Linie den Verkabelungsaufwand reduzieren bzw. die neuralgischen Verkabelungsstellen – wie etwa die Kabeldurchführung vom Innenraum zu den Vordertüren – entschärfen.

Wegen der besonders hohen Anforderungen an die Sicherheit der Datenübertragung, in einer von elektromagnetischen Störungen gekennzeichneten Umgebung, war es notwendig, ein geeignetes Kommunikationskonzept zu entwickeln. Dies war der Ausgangspunkt für die von der Firma Bosch begonnene Entwicklung des Controller Area-Network-Protokolls (CAN) im Jahre 1983.

CAN hat in der Zwischenzeit, neben dem Einsatz in Personen- und Nutzfahrzeugen, einen vielfältigen Einsatz im gesamten Bereich mobiler Systeme, wie z. B. in Aufzügen, landwirtschaftlichen Maschinen aller Art, Kränen, Gabelstaplern, Fahrzeugen des öffentlichen Nahverkehrs, Müllfahrzeugen, militärischen Fahrzeugen, Bahnfahrzeugen, Schiffen und Baumaschinen gefunden.

 

Bustopologie, Anzahl von Teilnehmern

CAN-Netzwerke werden normalerweise in Linienstruktur aufgebaut, wobei sich an jedem Leitungsende ein Abschlusswiderstand von 120 Ohm befinden sollte. Stichleitungen sind in eingeschränktem Umfang zulässig; auch ein sternförmiger Bus (z. B. bei Anwendungen im Kraftfahrzeug) ist möglich. Die Anzahl der Teilnehmer pro Netz ist nicht durch das Protokoll begrenzt, sondern abhängig von der Leistungsfähigkeit der eingesetzten Treiberbausteine. Repeater ermöglichen darüber hinaus eine Erweiterung der Anzahl von Netzknoten. 

CAN-Technology-Line-Structure
Bild: Linien-Topologie in CAN-Netzwerken

 

CAN-Telegramme

Die Kommunikation auf dem CAN-Bus erfolgt mit „Telegrammen“, die sowohl Steuerbits als auch Nutzbits enthalten. Der "genormte" Aufbau eines solchen Telegrammrahmens wird als Frame bezeichnet.

  • Data-Frame: Dient der Datenübertragung von einem Sender zu einem oder mehreren Empfänger auf Initiative der Datenquelle (Sender)
  • Remote-Frame: Über ein Datenanforderungstelegramm (Remote Frame) können Busteilnehmer (Empfänger) das Senden eines bestimmten Nachricht durch eine Datenquelle anfordern
  • Error-Frame: Das Fehlertelegramm (Error Frame) signalisiert allen Busteilnehmern (Sender oder Empfänger) einen erkannten Fehler in der Übertragung
  • Overload-Frame: Über ein Überlasttelegramm (Overload Frame) kann der CAN-Controller seine Überlast anzeigen; ist in heutigen CAN-Controllern nicht mehr implementiert, da deren Leistungen ausreichen

 

Nachrichtenaustausch nach dem
Producer-Consumer-Prinzip

Im Unterschied zur "teilnehmerorientierten" Übertragung, bei der ein Nachrichtenaustausch jeweils zwischen zwei bestimmten Teilnehmern erfolgt, basiert die Übertragung von CAN-Nachrichten auf dem sog. "Producer-Consumer-Prinzip". Eine von einem Teilnehmer gesendete Nachricht (Producer) kann von allen anderen Teilnehmern (Consumer) gelesen werden. Hierzu werden Nachrichten nicht über eine Zieladresse, sondern über einen eindeutigen "Nachrichtenidentifier" gekennzeichnet. Das Versenden von Nachrichten an alle Teilnehmer eines Netzwerkes bezeichnet man auch als "Broadcasting". 

CAN-Technology-Format
Bild: 11-Bit-Identifier (Standardformat, CAN-Spezifikation 2.0A)

  • SOF: Start of Frame = ein dominantes Bit
  • RTR: gesetztes RTR-Bit (Remote Transmission Request) kennzeichnet einen Remote-Frame
  • IDE: Identifier Extension, 1 Bit
  • r0: reserviertes Bit
  • DLC: Data Length Code = 4 Bit (Anzahl der Bytes im Datenfeld, 0 bis 8 Bytes, Werte 9 bis 15 werden nicht unterstützt)

 

 

Der (Nachrichten-)Identifier kennzeichnet den Inhalt der CAN-Nachricht, nicht das Gerät. Zum Beispiel kann in einem Messsystem den Parametern Temperatur, Spannung und Druck jeweils ein eigener Identifier zugewiesen sein. Es können jedoch auch mehrere Parameter unter einem einzigen Identifier vereint sein, solange die Summe der Daten die maximal mögliche Länge des Datenfeldes nicht überschreitet.

Die Empfänger entscheiden anhand des Identifiers, ob eine Nachricht für sie relevant ist oder nicht und filtern diese dann aus dem, auf dem Bus verfügbaren Nachrichtenstrom heraus.

Das Standardformat eines CAN-Identifiers beträgt üblicherweise 11-Bit; dies bedeutet, dass 2048 unterschiedliche Nachrichten pro System unterscheidbar sind. Diese Anzahl ist in den meisten Anwendungen bei weitem ausreichend. Für Sonderanwendungen (z. B. Nutzfahrzeuge, SAE J1939) ist jedoch auch die Verwendung von 29-Bit langen Identifiern (Erweitertes Format) und damit die Definition von bis zu 512 Millionen verschiedenen Nachrichten möglich.

 

Nachrichtenformat

Der Beginn einer Nachricht (siehe Bild) wird durch ein führendes, dominantes Bit signalisiert, gefolgt durch den 11-Bit langen Nachrichten-Identifier sowie ein weiteres Bit, welches zwischen einem Datentelegramm und Datenanforderungstelegramm (Remote Frame) unterscheidet.

Mit einem Remote-Frame kann ein Netzknoten das Senden einer bestimmten Nachricht durch einen anderen im System befindlichen Knoten veranlassen. Das Control-Feld spezifiziert das Übertragungsformat (Standard/Extended) einer Nachricht und die Anzahl der nachfolgenden Datenbytes.

Das Datenfeld einer CAN-Nachricht kann zwischen null und acht Datenbytes enthalten. Auf das Daten-Feld folgt das 15-Bit CRC-Segment. Dieses Feld dient dem Empfänger zur Überprüfung der empfangenen Nachricht. Im Acknowledge-Feld erwartet der Sender einer Nachricht von mindestens einem empfangenden Netzteilnehmer die Bestätigung des fehlerfreien Empfangs der gesendeten Nachricht. Diese Bestätigung erfolgt durch Senden eines dominanten Bits im Acknowledge-Slot durch alle im Netz befindlichen, fehlerfrei empfangenden Knoten. Diese Bestätigung dient ausschließlich zur sendeseitigen Fehlereingrenzung.

Das End-of-Frame-Feld (EOF) zeigt letztlich den Abschluss einer vollständig fehlerfreien Übertragung einer CAN-Nachricht an.

 

CAN-Technology-Data-Frame

Bild: Format einer Standard CAN-Nachricht (Data Frame)

  • Start of Frame (SOF) = ein dominantes Bit
  • Arbitrierungsfeld, bestehend aus einem Identifier-Segment (11 Bit oder 29+2 Bit) plus einem RTR-Bit (Remote Transmission Request)
  • Kontrollfeld (CTRL) = 6 Bit
    • Identifier Extension (IDE) = 1 Bit
    • reserved = 1 Bit
    • Data Length Code (DLC) = 4 Bit (Anzahl der Bytes im Datenfeld, 0 bis 8 Bytes, Werte 9 bis 15 werden nicht unterstützt)
  • Datenfeld (DATA) = 0 bis 8x8 Bit
  • Prüfsummenfeld (CRC) = 15 Bit gefolgt von einem rezessiven CRC-Delimiter-Bit
  • Bestätigungsfeld (ACK) 2 Bit, bestehend aus einem ACK-Slot plus einem rezessiven ACK-Delimiter
  • End of Frame (EOF) 7 Bit (rezessiv)
  • Intermission (IFS – Intermission Frame Space) = 3 Bit (= min. Anzahl der Bits, die aufeinanderfolgende Botschaften trennt)

 

Multimasterfähige, ereignisorientierte Nachrichtenübertragung

Jeder Teilnehmer (Netzknoten) eines CAN-Netzwerkes kann mit dem Senden einer Nachricht beginnen, sobald der Bus frei ist. Da es vorkommen kann, dass gleichzeitig mehr als ein Netzknoten mit dem Versenden einer Nachricht beginnt, ist ein Auswahlverfahren (Busarbitrierung) erforderlich, welches sicherstellt, dass nach dessen Beendigung tatsächlich nur ein Teilnehmer mit dem Senden seiner Nachricht fortfährt. Da jeder Teilnehmer einen Nachrichtentransfer initiieren kann, ist ein direkter Nach-richtenaustausch zwischen allen Teilnehmer des Netzwerks möglich. Gegenüber einer zyklischen Nachrichtenübertragung ergibt sich eine wesentlich niedere Busbelastung bzw. geringere Anforderung bezüglich der erforderlichen Datenübertragungsrate.

Verlustlose, bitweise Arbitrierung

Der reibungslose Nachrichtenverkehr wird bei CAN durch die sog. „Arbitrierung“ gewährleistet. Dazu wird im Rahmen der „Arbitrierungsphase“ ermittelt, welche von den gleichzeitig gesendeten Nachrichten die höchste Priorität aufweist. Nur der Netzknoten, der diese Nachricht sendet, darf nach Ablauf der Arbitrierungsphase mit dem Senden seiner Nachricht fortfahren. Höchste Priorität hat die Nachricht mit dem niedrigsten Wert des Nachrichten-Identifiers.

Jeder Teilnehmer überwacht während der Arbitrierungsphase den Signalpegel auf dem Bus. Die Arbitrierungsphase umfasst das Senden des Nachrichten-Identifiers sowie des sog. RTR-Bits ("Remote-Transmission-Request"-Bit). Erkennt ein Netzknoten einen dominanten Buspegel (dominantes Bit), obwohl er selbst einen rezessiven Pegel (rezessives Bit) aufgeschaltet hat, so bricht er den Sendevorgang sofort ab und geht in den Empfangszustand. Da mit jeder Busarbitrierung eine Nachricht versendet wird, gewährleistet das Verfahren einen "verlustlosen" Buszugriff.

 

CAN-Technology-Arbitration

Bild: Prinzip der verlustlosen, bitweisen Busarbitrierung 

Knoten 1, 2 und 3 beginnen gleichzeitig einen Arbitrierungsvorgang. Zum Zeitpunkt 2 stellt der Knoten 2 fest, dass der Bus nicht den von ihm gesendeten rezessiven Pegel hat und beendet seinen Arbitrierungsvorgang. Zum Zeitpunkt 3 gibt Knoten 1 auf. Zum Zeitpunkt 4 (Ende des Arbitrierungsprozesses) sendet Knoten 3 seine Daten.

 

Prioritätsorientierte Nachrichtenübertragung

Das zuvor beschriebene Arbitrierungsverfahren garantiert zu jeder Zeit, dass die jeweils höchstpriore Nachricht gesendet wird, sobald der Bus frei ist. Das Prinzip der prioritätsorientierten Nachrichten ermöglicht eine sehr effiziente Nutzung der, für die Datenübertragung zur Verfügung stehenden Bandbreite. Hierbei ist es nämlich möglich, dass niederpriore Nachrichten den Bus mit 100% belegen, ohne die Übertragung höherpriorer Nachrichten maßgeblich zu verzögern. Für die höchstpriore Nachricht resultiert bei einer Übertragungsrate von 1 Mbit/s eine maximale Latenzzeit von ca. 130 µs. Andererseits muss bei der Konzeption eines CAN-Systems darauf geachtet werden, dass hochpriore Nachrichten den Bus nicht ständig belegen. Dies ist z.B. durch die Einführung sog. "Sendesperrzeiten" (CANopen: "Inhibit-Time") möglich.

 

Bitrate und Buslänge

Das bei CAN angewandte Prinzip der bitweisen Arbitrierung erfordert einen Vergleich der lokalen Bitpegel aller über den Bus verteilten Netzknoten innerhalb eines Bitzeit-Intervalls. Da die – für die Signalausbreitung über den Bus erforderliche – Signallaufzeit proportional zur Länge des Busses ist, verlängert sich die erforderliche Dauer eines Bitintervalls mit zunehmender Buslänge entsprechend.

Die bei einer bestimmten Datenrate maximal mögliche Netzausdehnung ist im Wesentlichen nur durch die auf dem Busmedium erforderliche Signallaufzeit begrenzt: Bei 1 MBit/s ist z. B. eine Netzausdehnung von 40 m, bei 80 KBit/s eine Netzausdehnung von 1.000 m möglich


CAN-Technology-Data-Rate
Bild: Verhältnis von Datenrate zur Leitungslänge
Die gestrichelte Linie zeigt die Daumenregel für Datenraten < 400 kBit/s bzw. für Leitungslängen >100m. Der grüne Bereich zeigt die zulässige Verwendung ohne Berücksichtigung weiterer elektrischer Laufzeiten oder anderer beschränkenden Parameter. 

Maximale Buslänge (Netzausdehnung) und maximale Bitrate verhalten sich damit umgekehrt proportional. Für Buslängen von über 100 m kann mit folgender "Faustformel" gerechnet werden:

Baudrate (in Mbit/s) x Buslänge (in m) = 60

 

Fehlererkennung
und Fehlereingrenzung

Eine der wichtigsten Eigenschaften des CAN-Protokolls ist dessen hohe Fähigkeit zur Erkennung von Übertragungsfehlern. Damit wird den sehr hohen Ansprüchen z.B. für die Vernetzung von Steuergeräten innerhalb von Kraftfahrzeugen gerecht. Die hohe Fehlererkennungsfähigkeit wird durch Kombination mehrerer Maßnahmen der Fehlererkennung erreicht. Eine der effektivsten Maßnahmen besteht in der Überwachung des Buspegels durch den Sender einer Nachricht ("Bitmonitoring"). Auf diese Weise werden bereits alle global wirksamen Fehler erkannt. Jeder Nachrichtenempfänger überprüft darüber hinaus jede empfangene Nachricht anhand des CRC-Segments sowie von festgelegten Formatelementen. Auf diese Weise werden auch nur lokal wirksame Fehler mit hoher Wahrscheinlichkeit erkannt. Neben der Erkennung von Übertragungsfehlern beinhaltet das CAN-Protokoll auch einen Mechanismus zur Erkennung und Abschaltung von defekten Netzknoten. Damit wird sichergestellt, dass defekte Netzknoten den Nachrichtenaustausch nicht ständig stören können.

 

Fehlersignalisierung 

Im Unterschied zu Kommunikationskonzepten mit teilnehmerorientierter Übertragung verwendet CAN als nachrichtenorientiertes Protokoll das Prinzip der Fehlersignalisierung. Hierbei überprüft jeder Netzknoten jede auf dem Bus übertragene Nachricht auf Fehlerfreiheit. Sobald ein sendender oder empfangender Netzknoten einen Fehler erkennt, signalisiert er diesen allen anderen Teilnehmern durch Senden einer Fehlernachricht (Error Frame). Diese enthält eine, sonst nicht zulässige, Bitkombination von sechs Bits gleicher Polarität, normalerweise als dominante Bitfolge. Alle Netzknoten erkennen das Fehlersignal und verwerfen die bereits empfangenen Teile einer Nachricht. Damit ist ein konsistenter Datenbestand für alle Teilnehmer des Netzes sichergestellt.

Sobald ein sendender Knoten ein Error Frame gesendet oder empfangen hat, versucht er durch neuerliche Busarbitrierung unverzüglich die vorher gesendete Nachricht nochmals zu senden.
Der Mechanismus der Fehlersignalisierung stellt sicher, dass der Nachrichtenaustausch mit allen funktionsfähigen Teilnehmern eines Netzes fehlerfrei und konsistent ist. Da die Fehlersignalisierung sofort nach dem Erkennen eines Fehlers erfolgt, ergeben sich im Vergleich zu quittierenden Verfahren sehr geringe Fehler-Erholzeiten.

Die Tatsache, dass der Bus nur dann zusätzlich belegt wird, wenn ein Fehler erkannt worden ist, hat gegenüber einem quittierenden Verfahren zudem den Vorteil einer wesentlich geringeren zusätzlichen Busbelastung.

 

Höhere Protokolle

Das oben beschriebene, in ISO 11898 standardisierte CAN-Protokoll entspricht im Sinne des OSI-Modells der Datenkommunikation einem Schicht-1/2-Protokoll. Für die Realisierung von Netzwerken sind jedoch weitergehende Funktionen erforderlich. Für Anwendungen in Embedded Systemen sowie der industriellen Automatisierung stehen hierfür zwei Standards zur Verfügung: CANopen und DeviceNet. CANopen ist der dominierende Standard für Anwendungen in Embedded Netzwerken, DeviceNet wird vor allem in der industriellen Automatisierung im Umfeld von Rockwell-Automation eingesetzt. Im Umfeld der Nutzfahrzeuge kommt außerdem der Standard SAE J1939 zur Einsatz.