Sie sind auf Seite 1von 10

CAN - Controller Area Network

Seminar Fahrzeugkommunikation Friedrich-Alexander-Universitt Erlangen-Nrnberg - Institut fr Informatik a u u

Florian Rathgeber
Inhaltsverzeichnis
1 2 3 3.1 3.2 3.3 3.4 3.5 4 4.1 4.2 4.3 5 6 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 3 3 3 5 6 6 7 7 8 8 9 9

Einordnung und Geschichtliches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datenbertragungsschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u Kennzeichnung von Nachrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Busarbitrierung - Ausung von Sendekonikten . . . . . . . . . . . . . . . . . . . . . . . o Aufbau einer Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fehlererkennung und -behandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eingrenzung defekter Knoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Physikalische Schicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dominanter und rezessiver Pegel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Busmedium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Signaldarstellung und Busankopplung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hhere Schichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Motivation

Lngst vorbei sind die Zeiten, in denen ein Auto fast ausschlielich mechanisch und hydraulisch funka tionierte und elektrische Teile die Ausnahme darstellten. Seit einigen Jahrzehnten nimmt der Anteil an Elektronik immer mehr zu, vor allem der Sicherheit und dem Komfort der Fahrgste geschuldet. Durch a die stetig steigende Zahl von Steuergerten nahm auch der Verkabelungsaufwand stndig zu. a a Bis Ende der 80er Jahre waren Punkt-zu-Punkt-Verbindungen ublich, das heit zwischen je zwei Steu ergerten, die miteinander kommunizieren knnen sollten, musste ein Kabel verlegt werden. Je mehr a o Steuergerte und je strker die Vernetzung unter ihnen desto mehr Kabel kamen zusammen. Dabei kann a a die Lnge des Kabelbaums bis zu 2000m betragen, sein Gewicht bis zu 100kg [Lawrenz, 2000]. Dazu a kommt noch, dass verschiedene Zulieferer verschiedene Kabelbaumtypen verlangen. Es ist leicht einzusehen, dass diese Lsung auf die Dauer unbefriedigend war und man Abhilfe suchte. o Die Ziele dabei waren, Gewicht und Kosten zu senken und gleichzeitig mehr Flexibilitt bei der Vera kabelung zu haben. Sinnvoll wre es doch, wenn ein Steuergert gleich mit einer ganzen Gruppe von a a anderen Steuergerten kommunizieren knnte, ohne dass dafr ein Kabel zu jedem Kommunikationsa o u partner einzeln verlegt werden muss. Gleichzeitig sollte die Kommunikation standardisiert werden, um die Interoperabilitt von Gerten verschiedener zulieferer zu vereinfachen. a a Die Lsung die die Robert Bosch GmbH in den 80er Jahren in Zusammenarbeit mit Intel entwickelte, o war der CAN-Bus (Controller Area Network). Nun hingen alle Gerte an einem Strang, man brauchte a nur noch eine Leitung fr den ganzen Bus und jedes Steuergert, das an diesem Bus hing, konnte mit u a jedem anderen Nachrichten austauschen.

2 Einordnung und Geschichtliches

Fig. 1: Kabelbaum fr 24 Gerte (Quelle: www.hotrodwires.com) u a

Einordnung und Geschichtliches

CAN ist ein Felbbussystem, das im Automobil- und Nutzfahrzeugbereich, in Zgen und Schien und u in der Automatisierungstechnik, z.B. zur Robotersteuerung und zur Sensor-/Aktorkommunikation zum Einsatz kommt [Lawrenz, 2000]. Feldbus bedeutet, dass es verschiedene Gerte vernetzt, die auch rumich a a stark voneinander getrennt sein knnen. o Es ist ein ereignisgesteuertes und nachrichtenorientiertes Protokoll, der Botschaftsaustausch ndet also nicht in regelmigen Zeitintervallen, sondern nach Bedarf statt und nicht auf Empfnger- sondern auf a a Nachrichtenebene. Der Buszugri erfolgt nach dem CSMA/CD+CR-Verfahren (Carrier Sense Multiple Access / Collission Detection and Collision Resolution). Die Teilnehmer greifen also gleichzeitig auf den Bus zu und mssen sich das Senderecht gegebenenfalls durch einen Arbitrierungsvorgang erkmpfen. Kolu a lisionen werden dabei frhestmglich erkannt und sofort aufgelst [Lawrenz, 2000]. Alle Busteilnehmer u o o sind dabei gleichberechtigt, CAN ist also ein Multi-Master-System, nur die Nachrichten haben unterschiedliche Prioritten. a Das CAN-Protokoll implementiert lediglich die Schichten 1 und 2 des ISO-OSI-Schichtenmodells, also nur die physikalische oder Bitbertragungsschicht (physical layer) und die Sicherungsschicht (data link u layer). Hhere Schichten knnen von Zusatzprotokollen bereitgestellt werden, was aber im Automobilo o bereich unblich ist. Die aktuelle CAN Specication 2.0 speziziert einen HighSpeed-Bus mit einer u Datenbertragungsrate von mehr als 125 kBit/s bei einer maximalen Leitungslnge von 40m und einen u a LowSpeed-Bus mit einer Datenbertragungsrate von bis zu 125 kBit/s wobei die Leitungslnge bis zu u a 500m betragen kann.

SAE-Klassen fr Bussysteme im Fahrzeugbereich u


Nach [Reif, 2006] speziziert die Society of Automotive Engineers (SAE) folgende Anwendungsklassen fr Elektronik im Fahrzeug: u A Diese Klasse umfasst die Kommunikation von Sensoren und Aktoren untereinander. Hier sind die Botschaften sehr kurz und die dafr notwenigen Bitraten sehr niedrig, meist kleiner als 10 kBit/s. u Fehlererkennungs- und Behebungsmechanismen sind kaum vorhanden und notwendig. Dafr ist dieser u Bereich sehr kostensensitiv und ein typisches Anwendungsgebiet fr den LIN-Bus. u B Hierunter fllt die Vernetzung von Steuergerten im Komfortbereich und die Karosserieelektronik. Daa a bei hat man ublicherweise Datenraten im Bereich von 125 kBit/s und Mechanismen zur Fehlererkennung und Behandlung sind bereits sehr komplex. Typischerweise setzt man hier den LowSpeed CAN-Bus ein.

3 Datenbertragungsschicht u

C In dieser Klasse fasst man Steuergerte fr einfache Echtzeitanwendungen zusammen, beispielsweise a u im Antriebsstrang. Die Datenraten in diesem Bereich sind mit bis zu 1 MBit/s bereits sehr hoch, genauso die Anforderungen an Fehlererkennung und -Behebung. Hier kann man den HighSpeed CAN-Bus einsetzen. D Darunter fasst man Multimedia-Anwendungen mit sehr hohen Datenraten von bis zu 10 MBit/s und sehr groer Botschaftslnge. Der CAN-Bus ist fr solche Anwendungen ungeeignet, hier verwendet man a u den eigens dafr entwickelten MOST-Bus. u

Zur Geschichte von CAN


Anfang der 80er begannen einige Automobilhersteller und Zulieferer mit der Entwicklung von Bussystemen, um dem Verkabelungschaos im Fahrzeug Herr zu werden. Die Entwicklung von CAN wurde 1983 bei Bosch begonnen. Als Technologiepartner arbeitete man mit dem Chiphersteller Intel zusammen und 1985 wurde das Projekt von den beiden Partnern gemeinsam vorgestellt. Die Schnittstelle wurde dann 1987 fertiggestellt, die ersten Chips standen 1988 zur Verfgung. 1991 wurde CAN dann erstmals in der u S-Klasse von Mercedes-Benz eingesetzt [www.kfz-tech.de]. Zu dieser Zeit wurden auch Automatisierungstechnikunternehmen auf CAN aufmerksam und bereits 1992 wurde die Anwendergruppe CAN in Automation(CiA) gegrndet, weitere folgten. Diese trieben u vor allem die Standardisierung der Stecker und Verbindungen voran und entwickelten Zusatzprotokolle die auf den CAN-Schichten 1 und 2 aufsetzten. Mitte der 90er beschlossen dann auch andere Automobilhersteller, die bisher auf eigene Lsungen gesetzt o hatten, CAN in ihren Fahrzeugen einzusetzen. Seither kann man CAN als das Standard-Bussystem im Fahrzeugsektor ansehen.

Datenbertragungsschicht u

Die Datenbertragungsschicht ist die Schicht 2 des ISO-OSI-Schichtenmodells und eine der beiden vom u CAN-Standard spezizierten Schichten. Zu ihren Aufgaben gehren die Zustellung und Anforderung o von Nachrichten und der Medienzugri, das Ausen von Sendekonikten durch Busarbitrierung, die o Fehlerberprfung und deren Signalisierung sowie die Eingrenzung und Abschaltung defekter Teilnehmer. u u

3.1

Kennzeichnung von Nachrichten

Jede Nachricht, die ein Steuergert uber den CAN-Bus senden kann, hat eine eindeutige Kennzeichnung, a den sogennanten Nachrichten-Identier, die wie eine Art Betre den Typ und Zweck dieser Nachricht beschreibt. Jeder Teilnehmer der eine Nachricht empfngt kann anhand dieser Kennung entscheiden, ob a die Nachricht fr ihn relevant ist und er sie weiterverarbeiten mchte oder ob er sie einfach ignoriert. u o Der Hersteller oder Betreiber des Busses legt bereits vor der Inbetriebnahme fest, welche Nachricht welche Kennung erhlt und welches Steuergert sie senden darf, sowie fr welche anderen Steuergerte a a u a diese relevant ist. Dabei bestimmt der Identier gleichzeitig die Prioritt der Nachricht im Falle eines a Sendekoniktes. In der CAN Spezikation 2.0A wird eine Identier-Lnge von 11 bit speziziert, was auch als Standarda format bezeichnet wird. Die Spezikation 2.0B gibt eine Lnge von 29 bit vor, das sogennante erweiterte a Format. Diese Kennung wird unterteilt in einen Basis-Identier mit 11 bit und einen erweiterten Identier mit 18 bit. Dabei sind beide Formate zueinander kompatibel und knnen auch auf einem einzelnen Bus o gemeinsam verwendet werden. Man bezeichnet CAN daher als Nachrichtenorientiertes Protokoll, weil Nachrichten keine spezische Empfngeradresse haben, sonder an alle Teilnehmer des Busses gesendet werden, welche dann selbst a entscheiden, ob sie die Nachricht weiterverarbeiten oder nicht. [Etschberger, 2002]

3.2

Busarbitrierung - Ausung von Sendekonikten o

Das Senden einer Nachricht durch einen Busteilnehmer ist nur dann mglich, wenn der Bus frei ist. o Da aber der Zugri auf den Bus durch alle Teilnehmer gleichzeitig passiert, kann es vorkommen, dass

3 Datenbertragungsschicht u

1
Station 1 gewinnt Arbitrierung

2
Station 2 zieht sich zurck

3
Station 3 zieht sich zurck
rezessiv

Bus
dominant

Fig. 2: Beispielhafter Arbitrierungsvorgang mit drei sendewilligen Stationen zwei Steuergerte auch gleichzeitig, das heit innerhalb eines Bitzeitintervalls, einen Sendevorgang starten a wollen. Der hierbei auftretende Konikt wird durch einen Arbitrierungsvorgang aufgelst, der entscheidet, o welchem Teilnehmer das Senderecht zugesprochen wird. Der ganze Vorgang ist verlustlos, was bedeutet, dass die Nachricht, die gerade gesendet wird nicht zerstrt o wird. Nach Abschluss des Arbitrierungsvorganges kann also das dann sendeberechtigte Steuergert direkt a weitersenden, ohne dass der Beginn der Nachricht bis zu diesem Zeitpunkt noch einmal gesendet werden muss. Die Nachricht kommt beim Empfnger trotzdem vollstndig an. a a Entscheidend bei der Arbitrierung ist die Kennung der Nachricht, wodurch die Prioritt jeder Nacha richten die zu senden begonnen wurde bestimmt ist. Dabei ist das Bit 0dominant weil es das Bit 1berschreibt, das deshalb als rezessiv bezeichnet wird. u In Fig. 2 ist ein Arbitrierungsvorgang mit drei sendewilligen Stationen beispielhaft dargestellt. Dabei wird so vorgegangen, dass jeder Teilnehmer der senden mchte in jedem Bitzeitintervall der Aro bitrierungsphase den Pegel den er selbst angelegt hat mit dem Pegel vergleicht der auf dem Bus ankommt. Stellt er dabei fest, dass beide Pegel ubereinstimmen, behlt er die Sendeberechtigung und legt a im nchsten Bitzeitintervall Pegel entsprechend dem nchsten Bit seines Identiers an. Das heit er hat a a dominant angelegt und dominant liegt auf dem Bus oder er hat rezessiv angelegt und rezessiv liegt auf dem Bus. Im anderen Fall, dominanter Pegel liegt auf dem Bus, der Teilnehmer hat aber rezessiven angelegt, verliert er die Arbitrierung und damit die Sendeberechtigung und zieht sich zurck. Das bedeutet u die Station geht in den Empfangsmodus und empfngt die Nachricht, die von den weiterhin sendeberecha tigten Stationen kommt. Bei mehr als zwei konkurrierenden Stationen ziehen sich somit nach und nach alle bis auf eine zurck, die den Arbitrierungsvorgang gewinnt und ihre Nachricht senden darf. u Neben dem Identier wird auch noch das Remote-Transmission-Request-Bit (RTR) mit in die Arbitrierung einbezogen. Dieses auf die Kennung direkt folgende Bit bestimmt, ob mit der Nachricht Daten gesendet oder Daten angefordert werden. Dabei hat das Datentelegramm die hhere Prioritt, da die o a Anforderung dann hinfllig wird, wenn die angeforderten Daten bereits gesendet werden. Ein erneutes a senden ist dann uberssig und die anfordernde Station wird nicht noch einmal versuchen, das Anfordeu rungstelegramm zu senden. [Etschberger, 2002]

3 Datenbertragungsschicht u

rezessiv

bits

11

111

0 ...... 64

15

1 1 1

dominant

Identifier Field Start of Frame (SOF) Remote Transmission Request (RTR)

Data Length Code (DLC) Data Field

CRC-Field

End of Frame (EOF)

CRC Delimiter

Acknowledge Delimiter

Intermission Space

Identifier Extension Bit (IDE) Arbitration Field

reserved

Acknowledge Slot (ACK)

Bitstuffing

Fig. 3: Aufbau einer CAN-Nachricht im Standardformat

3.3

Aufbau einer Nachricht

In Fig. 3 ist der Aufbau einer Nachricht im Standardformat, also mit 11 bit Identier, dargestellt. Die einzelnen Felder haben folgende Bedeutung: Start of Frame (SOF) Dieses Bit signalisiert den Beginn einer Nachricht und wird immer dominant gesendet. Alle Teilnehmer werden dann darauf synchronisiert. Es darf nur angelegt werden, wenn der Bus frei ist, also nach 11 rezessiven Bits. Arbitrierungsfeld (Identier + Remote Transmission Request Bit RTR) Dieses Feld besteht aus dem 11 Bit langen Nachrichten-Identier, der die Nachricht eindeutig kennzeichnet und die Prioritt beim Arbitrierungsvorgang bestimmt und dem RTR-Bit. Dieses bestimmt, ob mit der a Nachricht Daten gesendet (Datentelegramm) oder angefordert werden (Datenanforderungstelegramm). Im Falle eines Datentelegramms wird es dominant gesendet um die Prioritt gegenber einem gleichen a u Datenanforderungstelegramm, bei dem das RTR-Bit rezessiv gesendet wird, zu erhhen. o Steuerfeld (Identier Extension Bit IDE + reserviertes Bit r0 + Datenlngencode DLC) a Dieses Feld enthlt das IDE Bit, das anzeigt ob es sich um eine Nachricht im Standard- (wie in Fig. 3 a dargestellt) oder im erweiterten Format handelt. Im Standardformat wird es dominant gesendet und somit hat eine Nachricht im Standardformat eine hhere Prioritt als eine Nachricht im erweiterten Format mit o a gleichem Basisidentier. Dann folgt ein dominant gesendetes reserviertes Bit und der Datenlngecode, a der die Lnge in Bytes des Datenfeldes angibt, die 0 bis 8 betragen kann. Werte grer 8 sind zulssig a o a fr spezielle Zwecke, das Datenfeld ist in diesem Fall 8 Byte lang. u Datenfeld Hier stehen die eigentlich Nutzdaten. Das Datenfeld darf eine Lnge von 0 bis 8 Byte haben. a CRC-Feld (CRC-Pr fsumme + CRC-Delmimiter) u Dieses Feld enthlt eine Prfsumme uber den Header, also das SOF-Bit, das Arbitrierungs- und das Steua u erfeld und das Datenfeld. Dabei kommt das Cyclic Redundancy Check Verfahren (CRC) zum Einsatz, wobei die zu prfende Sequenz als Koeezienten eines Polynoms betrachtet werden die durch eine festu gelegtes hier 15-stelliges Generatorpolynom geteilt werden und der auftretende Rest ist die Prfsumme. u Die vom Sender gebildete Prfsumme wird mit ubertragen und der Empfnger kann durch Vergleich u a mit der selbst gebildeten Prfsumme erkennen, wenn Fehler aufgetreten sind. Der rezessiv ubertragene u CRC-Delimiter markiert den Abschluss der CRC-Prfsumme. u Besttigungsfeld (Acknowledge-Slot ACK + Acknowledge-Delimiter) a Im Acknowledge-Slot quittiert jeder Empfnger den erfolgreichen Empfang einer Nachricht mit dem a

3 Datenbertragungsschicht u

anlegen des dominanten Bits, unabhngig davon, ob er die Nachricht verarbeitet oder ignoriert. Im a Fehlerfall legt er rezessiven Pegel an, den der Sender aber nur dann sieht, wenn keiner der Teilnehmer erfolgreichen Empfang signalisiert, der den rezessiven Pegel uberschreiben wrde. Das Besttigungsfeld u a wird mit dem rezessiv gesendeten Acknowledge-Delimiter abgeschlossen. End of Frame (EOF) Der Abschluss der Nachricht wird eine Folge von sieben rezessiven Bits signalisiert. Anschlieend muss auf dem Bus fr den sogenannten Intermission Space von drei Bit noch rezessiver Pegel anliegen, danach u ist der Bus frei und es kann wieder eine neue Nachricht gesendet werden. [Etschberger, 2002]

3.4

Fehlererkennung und -behandlung

Der CAN-Standard sieht im Wesentlichen vier Manahmen zur Erkennung von Fehlern vor: Bitmonitoring Jede sendende Station uberwacht zu jeder Bitzeit den Buspegel und vergleich diesen mit dem Pegel den sie selbst angelegt hat. Abweichungen bedeuten einen Fehler beim Senden. Message Frame Check Bitfelder die eine feste Form haben, wie die Delimiter oder das Frameende werden uberprft, ob hier u unzulssige Bits vorkommen. Auch die CRC-Prfung auf den Bereich vom Start of Frame bis zum Ende a u des Datenfeldes fllt darunter. a Empfangsbesttigung a Ein Sender interpretiert eine fehlende Empfangsbesttigung, das heit eine rezessives ACK-Slot, als von a ihm verursachter Fehler, denn dies kann nur dann auftreten, wenn kein einziger Empfnger den fehlerfreien a Empfang quittiert hat. Bitstung Im Bereich vom Start of Frame bis zum Ende der Prfsumme werden vom Sender sogenannte Stubits u eingefgt, die der Nachsynchronisation dienen. Das heit immer, wenn in der Nachricht fnf gleichwertige u u Bits nacheinander kommen, fgt der Sender als sechstes Bit ein komplementres Bit mit genau der u a anderen Wertigkeit ein, das vom Empfnger wieder entfernt wird. Dadurch kann es in diesem Bereich a nicht vorkommen, dass sechs gleichwertige Bits in Folge auftreten und wenn das passiert muss ein Fehler aufgetreten sein. Durch diese Manahmen wird eine sehr geringe Fehlerwahrscheinlichkeit, also die Wahrscheinlichkeit eines nicht erkannten Fehlers, von weniger als 1011 erreicht. Statistisch gesehen msste ein CAN-Bussystem u weit uber 1000 Jahre ohne Unterbrechung laufen, bis es zu einem nicht erkannten Fehler kommt.

Fehlerbehandlung Sofort nach der Erkennung eines Fehlers, d.h. bereits im nchsten Bitzeitintervall, a beginnt der Teilnehmer der den Fehler erkannt hat, mit dem Senden eines Fehlerags. Eine Ausnahme stellen CRC-Fehler dar, die erst nach dem Acknowledge-Delimiter signalisiert werden, um die Quittiermglichkeit der anderen Teilnehmer nicht einzuschrnken. o a Ein Fehlerag besteht aus sechs gleichwertigen Bits und verstt damit bewusst gegen die Bitstungo Regel. Somit erkennen alle anderen Busteilnehmer auch einen Fehler und schalten ihrerseits das Fehlerag auf, der fehlererkennende Knoten teilt die Strung quasi busweit mit. Dadurch wird systemweite Dateno konsistenz gesichert, denn jedes Steuergert wird die nun als fehlerhaft markierte Nachricht verwerfen. a Der sendende Knoten versucht dann sofort die Nachricht noch einmal zu senden, was sich je nach momentanem Nachrichtenaufkommen durch die Arbitrierung verzgern kann. [Etschberger, 2002] o

3.5

Eingrenzung defekter Knoten

Im CAN-Bus betreiben alle Teilnehmer eine Art von freiwilliger Selbstkontrolle. Zu diesem Zweck hat jedes Steuergert einen getrennten Sende- und Empfangsfehlerzhler. Steigen diese uber bestimmte Schwellena a wert, werden die Buszugrisrechte des Knotens eingeschrnkt. Somit ist eine Eingrenzung defekter Knoten a mglich, die dann den Busverkehr nicht mehr stren knnen. o o o Fehlerhaftes Senden / Empfangen Schlgt das Senden einer Nachricht fehl oder erkennt ein Empfnger einen Fehler in einer gesendeten a a

4 Physikalische Schicht

Nachricht, wird sein Sende- bzw. Empfangsfehlerzhler um einen bestimmten Wert inkrementiert. Die a Hhe dieser Inkrementierung hngt entscheidend davon ab, ob der Knoten den Fehler als erstes erkennt o a oder nicht. Zustzlich zu der normalen Erhhung um 1 wird der Zhlerstand in diesem Fall um 8 weitere a o a Punkt erhht. Dadurch wird der Tatsache Rechnung getragen, dass der Knoten den Fehler auch durch o einen defekt seinerseits erkannt haben knnte, wohingegen alle anderen Knoten nur durch das nun folgende o Fehlerag den Fehler signalisieren mussten. Erfolgreiches Senden / Empfangen In diesem Fall wird der entsprechende Zhler um den Wert 1 dekrementiert. a

Knotenzustnde Ob das Fehlerag dominant oder rezessiv gesendet wird und einige andere Berechtia gungen hngen davon ab, in welchem Zustand sich der Knoten bendet. Die drei mglichen Zustnde a o a fehleraktiv, fehlerpassiv und abgeschaltet richten sich nach dem Zhlstand der beiden Fehlerzhler. a a Fehleraktiv (error active): beide Fehlerzhlstnde < 128 a a In diesem Zustand nimmt der Knoten ohne Einschrnkungen am Busverkehr teil und sendet ein aktives, a d.h. dominantes, Fehlerag. Fehlerpassiv (error passive): einer der beiden Fehlerzhlstnde 128 a a In diesem Zustand darf der Knoten nur ein passives, d.h. rezessives, Fehlerag senden, so dass er dadurch keine Nachricht zerstren kann. Weiterhin muss er vor dem Senden einer Nachricht eine zustzliche o a Sperrzeit von 8 Bitzeiten gegenber den fehleraktiven Knoten abwarten. u Abgeschaltet (bus o ): Sendefehlerzhlstand > 255 a Ein abgeschalteter Knoten darf den Bus in keiner Weise mehr beeinussen, d.h. er darf gar nichts senden, auch kein Fehlerag oder Acknowledge Bit. Ob er in diesem Zustand noch Nachrichten empfangen darf ist implementierungsabhngig. Die Hhe des Empfangsfehlerzhlstandes ist hier unerheblich, ein Teilnehmer a o a kann sich als nicht nur durch fehlerhaftes Empfangen in den Zustand bus o befrdern, er muss auch o mindestens 32 mal fehlerhaft gesendet haben. Der Knoten muss dann zurckgesetzt werden, d.h. nach u Abwarten von 128 weiteren Nachrichten werden seine Zhlerstnde auf 0 gesetzt und er erhlt wieder a a a den Status fehleraktiv. [Etschberger, 2002]

Physikalische Schicht

Die andere Schicht, die vom CAN-Standard implementiert wird, ist die Schicht 1 des ISO-OSI-Modells, die physikalische oder Bitbertragungsschicht. Zu Ihren Aufgaben zhlen die Darstellung Codierung des u a Signals, die Synchronisation der Busteilnehmer, die Bereitstellung des physikalischen Busmediums und die Ankopplung der einzelnen Teilnehmer an dieses Medium, die Topologie des Netzwerkes und Manahmen zur Verbesserung der elektromagnetischen Vertrglichkeit. a

4.1

Dominanter und rezessiver Pegel

Wie in Fig. 4 dargestellt, kann man eine CAN-Busleitung durch eine Open-Collector-Schaltung des Typs Wired-And realisieren. Dabei liegt der Bus im Ruhezustand auf dem Pegel der Versorgungsspannung von 5 V. Alle Sendetreiber sind uber einen Transistor an die Busleitung gekoppelt, so dass der Bus auf Massepotential herunter gezogen wird, sobald wenigstens einer der Transistoren leitend ist, d.h. der Sendetreiber eine gengend groe Spannun anlegt. u Nun wird dem Potential 5 V der Versorgungsspannung der rezessive Pegel und das Bit 1 zugeordnet. Der dominante Pegel, dem das Bit 0 zugeordnet ist, entspricht dem Massepotential. Dieser Pegel ist deshalb dominant, weil er sofort den gesamten Bus auf Massepotential herunter zieht, sobald er von einer einzigen Station angelegt wird. Will ein Sender also ein rezessives Bit senden, legt er im entsprechenden Bitzeitintervall keine Spannung an den Sendetreiber an, will er dominant senden, legt er gengend u Spannung an, so dass der Transistor leitend wird. [Etschberger, 2002]

4 Physikalische Schicht

5V

Busleitung

Sender 1

Empfnger 1

Sender 2

Empfnger 2

Sender 3

Empfnger 3

Fig. 4: Realisierung einer CAN-Busleitung durch eine Open-Collector-Schaltung (Wired-And-Schaltung)

ProtokollController CAN_H 120 Ohm CAN_L 120 Ohm

Fig. 5: Zweidrahtleitung fr Dierenzsignalbertragung mit 120 Abschlusswiderstnden u u a

4.2

Busmedium

Der CAN-Standard sieht als Busmedium eine Zweidrahtleitung vor, wie in Fig. 5 dargestellt. Dabei kommt eine Dierenzsignalbertragung zum Einsatz, d.h. eine der beiden Leitungen hngt an der Versorgungsu a spannung +5V (CAN H), die andere an -5V (CAN L) und beide haben eine gemeinsame Masse. Zur Signalbertragung wird dabei der Dierenzpegel zwischen der CAN H und der CAN L Leitung benutzt. u Der Vorteil dabei ist, dass sich die Pegelhbe addieren und der gesamt Pegelhub somit doppelt so gro u ist. Weiterhin ist die Ubertragung weniger stranfllig, da sich eine Potentialverschiebung, z.B. durch ein o a a uereres Magnetfeld, dann auf beide Leitungen auswirkt, die Pegeldierenz dabei aber gleich bleibt. Die Abschlusswiderstnde von 120 sorgen fr eine Dmpfung von hochfrequenten Signalreexionen. Im a u a Fall, dass ein Draht durch Bruch oder Kurzschluss ausfllt, ist die Leitung mit dem verbleibenden Draht a weiter funktionsfhig und fllt nicht gleich komplett aus. a a Fr sehr kostensensitive Anwendungen kann man aber auch auf den zweiten Draht verzichten. Dann u hngt jedes Steuergert statt am zweiten Draht an einer gemeinsamen Masse. Dieses System ist dadurch a a sehr viel stranflliger und man erhht deshalb den Pegelhub zwischen Masse und Versorgungsspannung. o a o Weiterhin muss man geringere Datenbertragungsraten in Kauf nehmen. [Etschberger, 2002] u

4.3

Signaldarstellung und Busankopplung

Signalcodierung Beim CAN kommt die Non-Return-to-Zero (NRZ) Codierung zum Einsatz. Das bedeutet zwischen zwei gleichwertigen Bits bleibt der Pegel konstant und springt nicht auf ein Nullniveau zurck. u Bitsynchronisation Diese Art der Signalcodierung erschwert allerdings die Bitsynchronisation, die immer nur an Flanken, d.h. an Signalpegelwechseln, stattnden kann. Auf das Start of Frame Bit werden alle Busteilnehmer hart synchronisiert, d.h. alle anderen werden auf die Flanke desjenigen Knotens synchronisiert, der das SOF-Bit angelegt hat. Eine Nachsynchronisation kann spter an jeder Flanke innerhalb eines gewissen a Rahmens erfolgen. Das ist auch der Grund fr das Bistung, wodurch sichergestellt wird, dass wenigstens u nach fnf Bitzeiten wieder nachsynchronisiert werden kann. u

5 Hhere Schichten o

Busankopplung Jeder CAN-Protokollcontroller ist uber einen Transceiverbaustein an das physikalische Busmedium ange koppelt. Dieser sorgt neben seiner Hauptaufgabe der Sende- und Empfangsverstrkung auch dafr, dass a u im Falle des Ausfalles eines Drahtes bei der Zweidrahtleitung ein Zurckfall auf eine Eindrahtbertragung u u mglich ist. [Etschberger, 2002] o

Hhere Schichten o

Der CAN-Standard ist bewusst sehr oen gehalten und klammert einige Bereiche komplett aus. In der Spezikation sind nur die Schichten 1 un 2 des ISO-OSI-Modells standardisiert, was fr die Automobilinu dustrie auch ausreichend ist. Bei den hohen Stckzahlen in diesem Sektor kann jeder Hersteller den Bus u auf seine Befrfnisse hin maschneidern. Fr die Automatisierungsindustrie ist aber wegen der geringeren u u Stckzahlen mehr Standardisierung wnschenswert, um die Interoperabilitt von Gerten verschiedener u u a a Hersteller zu erleichtern. Dazu gehrt die weitere Standardisierung von Schnittstellen und Vorgaben fr Steckverbindungen, Kao u bel und dergleichen. Zu diesem Zweck und auch um die Protokollfunktionalitt um zustzliche Dienste a a der Schichten 3-7 des ISO-OSI-Schichtenmodells zu erweitern, wurden auf CAN aufsetzende Zusatzprotokolle entwickelt. Dadurch kann man die beiden Kommunikationsdienste unbesttigtes Senden und a Anfordern von Nachrichten um zustzliche Datenbertragungsmglichkeiten erweitern, beispielsweise das a u o Ubertragen lngerer Datenstze auf mehrere Nachrichten aufgeteilt oder die spezische Besttigung des a a a Nachrichtenempfangs durch einen bestimmten Empfnger. a

CANopen Die Protokollerweiterung CANopen wurde von der Anwendergruppe CAN in Automation(CiA) entwickelt, einer Vereinigung von uber 400 Firmen vorwiegend im europischen Raum. Diese Schicht-7a Erweiterung bietet standardisierte Gerte- und Kommunikationsprole mit denen man CANopen wie ein a Baukastensystem auf die geforderte Anwendung zuschneiden kann.

DeviceNet Ursprnglich von Allen-Bradley, einer Tochter der Nordamerikanischen Rockwell Automation, entwickelt, u wird die Protokollerweiterung DeviceNet heute von der eigens gegrndeten Open DeviceNet Vendor u Association (ODVA) verwaltet und vertrieben. Sie bietet ebenfalls Gerteprole und erlaubt neben dem a Multi-Master-System von CAN auch Master/Slave und Peer-to-Peer Kommunikation. Daneben wurde standardisiert, dass Gerte uber den Bus auch mit Strom versorgt werden knnen. [Etschberger, 2002] a o

Zusammenfassung

CAN ist ein Feldbussystem, das ursprnglich entwickelt wurde, um den Verkabelungsaufwand in der Auu tomobiltechnik zu reduzieren und Gewicht zu sparen. Heute kann man es als Standard fr die Vernetzung u von Steuergerten im Automobil betrachten. Durch die hohe Verbreitung und die hohen Stckzahlen im a u Fahrzeugsektor sind Protokollcontroller und andere Komponenten sehr gnstig. Fr die Automatisieu u rungstechnik wurden Zusatzprotokolle entwickelt, die den Funktionsumfang von CAN erweitern und die Vernetzung weiter standardisieren.

6 Zusammenfassung

10

Es handelt sich bei CAN um ein nachrichtenorientiertes Protokoll, d.h. die Nachrichten haben feste Kennungen und werden an alle Teilnehmer des Busses geschickt (Broadcast), tragen also keine Empfngeradresse. a Der Buszugri erfolgt nach dem CSMA-Verfahren (Carrier Sense Multiple Access) wobei alle Teilnehmer gleichberechtigt sind, es liegt also ein Multi-Master-System vor. Durch das Verfahren der Busarbitrierung werden Kollissionen von vornherein vermieden. Gleichzeitig wird so die Sendeprioritt bestimmt, wobei a hherpriore Nachrichten zuerst gesendet werden. o Dabei ist CAN sehr zuverlssig und bietet sehr komplexe Fehlererkennungsmanahmen die eine sehr a hohe Fehlererkennungsrate gewhrleisten. Durch sofortige Fehlersignalisierung wird auch eine schnelle a Sendewiederholung im Fehlerfall sichergestellt. Bei Verwendung der Zweidrahtbertragung protiert man u zustzlich von hoher Ausfallsicherheit und geringer Anflligkeit gegenber elektromagnetischen Feldern. a a u Als Nachteil kann man auslegen, dass CAN nicht deterministisch ist, wobei man aber obere Schranken fr die maximale Ubertragungszeit einer Nachricht einer bestimmten Prioritt angeben kann. Hier gibt es u a aber auch schon eine Erweiterung, das Time Triggered CAN (TTCAN), das den Bus um eine zeitgesteuerte Variante ergnzt. Das grere Problem ist aber die begrenzte Datenbertragungsrate von maximal 1 a o u MBit/s, was den CAN-Bus fr Multimedia und andere Anwendungen die sehr hohe Datenraten bentigen u o ungeeignet macht.

Literatur
[Etschberger, 2002] [Lawrenz, 2000] Konrad Etschberger, et. al. Controller-Area-Network, 3. Auage Mnchen / Wien: u Carl Hanser Verlag, 2002. Wolfhard Lawrenz, et. al. CAN Controller Area Network - Grundlagen und Praxis, 4. Auage Heidelberg: Hthig Verlag, 2000 u

[Zimmermann, 2006] Werner Zimmermann, Ralf Schmidgall Bussysteme in der Fahrzeugtechnik - Protokolle und Standards Wiesbaden: Vieweg Verlag, 2006 [Reif, 2006] [www.kfz-tech.de] Konrad Reif Automobilelektronik - Eine Einfhrung fr Ingenieure Wiesbaden: u u Vieweg Verlag, 2006 Harald Huppertz Kfz-Technik, Wissenswertes, Simulation, Fragen, Aufgaben http://www.kfz-tech.de/CAN-Bus.htm 2007-05-27