CAN

From emotive
Jump to navigation Jump to search

Das Con­trol­ler Area Net­work ist das ers­te Class-C und somit das ers­te Hoch­ge­schwin­dig­keits-Bus­sys­tem, das in Kraft­fahr­zeu­gen ver­wen­det wur­de.


CAN-History.png
CAN – Con­trol­ler Area Net­work


Es ist eine Ent­wick­lung der Fir­ma Bosch und wur­de 1991 mit der damals neu­en Mer­ce­des S-Klas­se ein­ge­führt. Die ers­ten Halblei­ter stamm­ten von Intel. Das Bus­sys­tem ist heu­te das Stan­dard­bus­sys­tem in Kraft­fahr­zeu­gen. Ursprüng­lich nur für den Antriebss­trang kon­zi­piert, ist es heu­te in prak­tisch allen Berei­chen des Fahr­zeugs, wie Karos­se­rie, Fahr­werks etc. ver­tre­ten.


Allgemeines

Die Bosch­s­pe­zi­fi­ka­tion stellt bis heu­te prak­tisch unver­än­dert die Grund­la­ge des Bus­sys­tems dar. Sie wur­de 1994 als ISO 11898 in die offi­zi­el­le Stan­dar­di­sie­rung über­nom­men.


CAN-Standards.png
CAN wur­de 1994 als ISO 11898 stan­dar­di­siert


Beim Data-Link-Layer gibt es zwei Vari­an­ten: Die für die die Adres­sie­rung und Arbi­trie­rung nöti­gen so genann­ten Mes­sa­ge-Iden­ti­fier (CAN-ID) gibt es mit 11 und 29 Bit Län­ge. Bei­de Ver­sio­nen kön­nen auf dem­sel­ben Bus­sys­tem koexis­tie­ren, kön­nen also par­al­lel betrie­ben wer­den.

Beim Phy­si­cal-Layer gibt es drei Vari­an­ten, die nicht mitein­an­der kom­pa­ti­bel sind: High-Speed-CAN, Low-Speed-CAN und eine, von Gene­ral Motors getrie­ben, in den USA stan­dar­di­sier­te Vari­an­te mit nur einer Daten­lei­tung (Single-Wire-CAN). Außer­dem gibt es noch eine Ver­sion für Nutz­fahr­zeu­ge, stan­dar­di­siert in der SAE J1939 und eine gan­ze Rei­he von Aus­füh­rungs­for­men für die Indus­trie­au­to­ma­ti­sie­rung. Die bekann­tes­te davon ist CAN in Auto­ma­tion (CANo­pen, Devi­ce­Net).

CAN selbst ist ein Bus­sys­tem, das auf der Ebe­ne von Layer-1 und Layer-2 des ISO/OSI-Schich­ten­mo­dells stan­dar­di­siert ist. Die über­ge­ord­ne­ten Ebe­nen waren ursprüng­lich nicht stan­dar­di­siert. Mitt­ler­wei­le gibt es aber mit der ISO 14229 und der ISO 15765 zumin­dest für den Bereich der Dia­gno­se auch Stan­dards auf Anwen­dungs­ebe­ne.

Physical-Layer und Bus-Topologie

CAN ver­wen­det ein bit­strom­ba­sier­tes Über­tra­gungs­ver­fah­ren mit einer bidi­rek­tio­na­len Zwei­draht­lei­tung in der Stan­dard­aus­füh­rung. Die Steu­er­ge­rä­te sind über kur­ze Stich­lei­tun­gen an die­sen Lini­en­bus ange­schlos­sen, sie­he Abbil­dung links. Die zuläs­si­ge Län­ge einer Stich­lei­tung hängt von der Bitra­te ab. Bei 1 Mbit/s gilt, dass die Stich­lei­tun­gen nicht län­ger als unge­fähr 30 Zen­ti­me­ter sein soll­ten. Der High-Speed-CAN unter­stützt Bitra­ten bis zu 1 Mbit/s. Wird aber typi­scher­wei­se nur mit 500 kbit/s betrie­ben. Sei­ne Bus­lei­tun­gen soll­ten an den bei­den Busen­den mit einem Abschluss­wi­der­stand abge­schlos­sen sein. Bus­län­ge und Bitra­te ste­hen in einem inver­sen Zusam­men­hang. Als Faust­for­mel gilt: bei 1 Mbit/s eine Bus­län­ge von maxi­mal 40 bis 50 Metern, bei nied­ri­ge­rer Bitra­te ent­spre­chend län­ger.


CAN-PhysicalLayer.png
CAN – Phy­si­cal Layer und Bus-Topo­lo­gie


In der Abbil­dung rechts sind die Signa­le und die Pegel für die drei ver­schie­de­nen Phy­si­cal-Layer von CAN gegen­über­ge­stellt. Auf­grund der unter­schied­li­chen Signal­pe­gel sind die Phy­si­cal-Layer inkom­pa­ti­bel und kön­nen nicht gleich­zei­tig auf einem Bus betrie­ben wer­den.

Der Low-Speed-CAN wur­de aus zwei Grün­den ein­ge­führt. Zum einen ist er bei der Imple­men­tie­rung etwas ein­fa­cher, da man kei­ne Abschluss­wi­der­stän­de benö­tigt und die Stich­lei­tun­gen etwas län­ger sein dür­fen. Zum ande­ren und dies ist der ent­schei­den­de Vor­teil, ist der Low-Speed-CAN in ein­ge­schränk­tem Maß feh­ler­to­le­rant. Unter­bre­chun­gen einer ein­zel­nen Lei­tung oder Kurz­schlüs­se einer Lei­tung nach Mas­se, Bat­te­rie­span­nung oder zu ande­ren Lei­tun­gen kann die­ses Bus­sys­tem tole­rie­ren.

Data Link Layer

Das CAN Bus­sys­tem befin­det sich im Ruhe­zu­stand auf logisch-High. Dies ist gleich­zei­tig das rezes­si­ve Signal. Sobald ein Steu­er­ge­rät für min­des­tens drei Bit­zei­ten erkannt hat, dass das Bus­sys­tem in Ruhe ist, kann es zu jedem belie­bi­gen Zeit­punkt begin­nen einen CAN-Fra­me zu sen­den, sie­he Abbil­dung. Der CAN-Fra­me beginnt mit einem Null-Bit, dem so genann­ten Start-Of-Fra­me Bit – Null ist bei CAN das domi­nan­te Signal. Dann kommt der 11 oder 29 Bit lan­ge CAN-Iden­ti­fier, der den Inhalt der Bot­schaft ein­deu­tig kenn­zeich­net und der gleich­zei­tig für die Arbi­trie­rung ver­wen­det wird. Beim CAN-Iden­ti­fier wird das höchst­wer­tigs­te Bit als ers­tes gesetzt. Kommt es auf dem Bus zu einer Kol­li­sion, gewinnt somit immer die Bot­schaft, deren CAN-ID am nied­rigs­ten ist oder anders gesagt, deren CAN-ID die meis­ten füh­ren­den Nul­len auf­weist.


CAN-DataLinkLayer.png
CAN-Fra­me Bot­schafts­for­mat


Nach dem CAN-Iden­ti­fier fol­gen sie­ben Steu­er­bits, die als wich­tigs­te Infor­ma­tion die Daten­län­ge des fol­gen­den Nutz­da­ten­felds ent­hal­ten. Die Nutz­da­ten kön­nen zwi­schen 0 und 8 Byte lang sein. Am Ende folgt ein 25 Bit lan­ger Trai­ler. Er ent­hält vor allem eine 15 Bit lan­ge CRC-Prüf­sum­me. Außer­dem ent­hält er das so genann­te Ack­now­led­ge-Bit. Dies ist ein Bit für die Bestä­ti­gung, dass der oder die Emp­fän­ger die Bot­schaft kor­rekt emp­fan­gen haben. Wei­ter­hin sind im Trai­ler noch eini­ge Steu­er­bits vor­han­den, die den Fra­me abschlie­ßen.

CAN selbst stellt ein Broad­cast-Sys­tem dar. Das heißt, jeder Emp­fän­ger kann alle Bot­schaf­ten emp­fan­gen. Über den Mes­sa­ge-Iden­ti­fier wählt er die Bot­schaf­ten aus, die ihn inter­es­sie­ren. Typi­scher­wei­se wird die­se Aus­wahl inner­halb des Kom­mu­ni­ka­ti­ons­con­trol­lers rea­li­siert. Man bezeich­net die­se Aus­wahl­fil­ter, in denen defi­niert wird, wel­che CAN-Iden­ti­fier emp­fan­gen wer­den sol­len, als Akzep­tanz­fil­ter.

Die maxi­ma­le Über­tra­gungs­dau­er einer CAN-Bot­schaft liegt mit einer Bitra­te von 500 kbit/s bei unge­fähr 220 Mikro­se­kun­den für 11 Bit-IDs und 260 Mikro­se­kun­den für 29 Bit-IDs. Dar­aus errech­net sich eine Nutz­da­ten­ra­te von ca. 33 kBy­te/s. Bei 29 Bit-IDs sind es 10% weni­ger.

Das Bot­schafts­for­mat, das hier im Bild dar­ge­stellt wird, ist nicht exakt das Bot­schafts­for­mat, das sich auf der phy­si­ka­li­schen Ebe­ne wie­der fin­det. Der Kom­mu­ni­ka­ti­ons­con­trol­ler streut inner­halb der Bot­schaft noch eine Rei­he wei­te­rer Bits ein, die so genann­ten Stuff-Bits. Stuff-Bits sind kom­ple­men­tä­re Bits, die ein­ge­fügt wer­den, wenn sich für 5 Bit­zei­ten das Signal nicht ver­än­dert. Sie die­nen der Syn­chro­ni­sa­tion von Sen­der und Emp­fän­ger und kön­nen somit die Anzahl der zu über­tra­gen­den Bits um bis zu 20% ver­grö­ßern. Davon sieht jedoch der Anwen­der, wenn er nicht gera­de einem Oszil­lo­skop auf der Bus­lei­tung misst, nichts. Die Stuff-Bits wer­den beim Sen­den vom Kom­mu­ni­ka­ti­ons­con­trol­ler auto­ma­tisch ein­ge­fügt und beim Emp­fan­gen auch wie­der auto­ma­tisch her­aus genom­men.

CAN ist ein sehr feh­ler­si­che­res Über­tra­gungs­sys­tem. Es ist in der Lage, bus­weit Daten­kon­sis­tenz sicher zu stel­len. Das heißt, wenn ein Steu­er­ge­rät einen Feh­ler fest­stellt, dann sen­det es den so genann­ten Error-Fra­me. Damit wis­sen alle ande­ren Steu­er­ge­rä­te, dass die­se Bot­schaft in irgend­ei­ner Form nicht gül­tig ist. Der Sen­der der Bot­schaft wie­der­holt dann auto­ma­tisch das Ver­sen­den die­ser Bot­schaft. Das­sel­be gilt für eine ver­lo­re­ne Arbi­trie­rung. Der Sen­der wie­der­holt auto­ma­tisch. Dis ist alles Auf­ga­be des Bus-Con­trol­lers. Der Anwen­der muss sich nicht darum küm­mern. Falls ein Bus-Con­trol­ler häu­fi­ger Feh­ler fest­stellt, dann schal­tet er sich suk­zes­si­ve außer­dem ab. In der ers­ten Feh­ler­stu­fe stellt er sich auf pas­siv, das heißt, der Con­trol­ler kann dann zwar noch Bot­schaf­ten emp­fan­gen, aber nicht mehr aktiv sen­den. In der nächs­ten Stu­fe kann er sich sogar völ­lig Abschal­ten. Die­ser Feh­ler­me­cha­nis­mus ver­mei­det ein „zumül­len“ des Bus­ses durch feh­ler­haf­te Bus-Con­trol­ler, so genann­te „Babb­ling Idiots". Umge­kehrt kann ein Bus-Con­trol­ler, wenn ein Feh­ler wie­der ver­schwin­det, auch auto­ma­tisch sei­ne Arbeit wie­der auf­neh­men. Auf die­se Wei­se über­nimmt der Kom­mu­ni­ka­ti­ons­con­trol­ler eine gan­ze Rei­he von Auf­ga­ben, die sonst durch Soft­wa­re aus­ge­führt wer­den müss­ten.


Siehe auch

LIN - Local Interconnect Network

FlexRay

MOST - Media Oriented System Transport

K-Line

SAE J1850

SAE J1708