01.12.2012 Aufrufe

die datenschleuder. - Chaosradio - CCC

die datenschleuder. - Chaosradio - CCC

die datenschleuder. - Chaosradio - CCC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>die</strong> <strong>datenschleuder</strong><br />

TANK AN G-G-G-GROSSHIRN, TANK AN GROSSHIRN<br />

in Abhängigkeit der Busgeschwindigkeit. Bei 1 MBit/s<br />

ergeben sich maximal 30 m, wohingegen man bei 40<br />

kBit/s Buslängen von bis zu 1 km erreichen kann. Allgemein<br />

sagt <strong>die</strong> Worst-Case Design Regel, dass Buslänge<br />

x Bitrate < 40m x 1Mbit/s sein muss. Auch <strong>die</strong><br />

Länge der Stichleitungen ist durch <strong>die</strong> Bitrate begrenzt.<br />

So ergibt sich für den High Speed CAN eine maximale<br />

Länge von 5 Metern. Die Anzahl der Teilnehmer<br />

ist durch den Standard nicht begrenzt. Allerdings<br />

kann man mit den üblichen Leitungstreibern maximal<br />

32 Teilnehmer versorgen. Mit teurerer Hardware können<br />

derzeit bis zu 128 Teilnehmer an einem Bus betrieben<br />

werden.<br />

Der Buszugriff geschieht im CSMA/CD+CR Verfahren.<br />

Jeder Knoten darf, wann immer er will, senden (Multiple<br />

Access), sobald er eine Pause auf dem Bus entdeckt<br />

(Carrier Sense). Wenn zur gleichen Zeit ein zweiter<br />

Knoten eine Nachricht senden möchte, so wird<br />

das erkannt (Collission Detection). Im Gegensatz zum<br />

bekannten Ethernet kommt es dabei allerdings<br />

zu einer nicht destruktiven Collision<br />

Resolution. Das bedeutet, dass sich <strong>die</strong> Nachricht<br />

mit der höheren Priorität durchsetzt<br />

und der Sender der anderen Nachricht sofort<br />

zum Empfänger wird. Grundlegend für <strong>die</strong>-<br />

sen Mechanismus ist eine spezielle Leitungsko<strong>die</strong>rung.<br />

Im Prinzip ist es eine Non-Returnto-Zero<br />

(NRZ) Ko<strong>die</strong>rung. Wenn allerdings<br />

ein Knoten eine 1 und ein anderer eine 0<br />

schreibt, dann liegt auf dem Bus eine 0. Man<br />

sagt, dass <strong>die</strong> 1 rezessiv und <strong>die</strong> 0 dominant<br />

ist. Im Fall einer Kollision erkennt einer der<br />

Sender, dass er überschrieben wird, indem er<br />

während der sog. Arbitrierungsphase beim<br />

Schreiben jedes Bit gleichzeitig liest und vergleicht.<br />

Der andere Sender bemerkt <strong>die</strong> Kollision<br />

nicht und sendet weiter, so dass sich<br />

seine Nachricht durchsetzt. Die Arbitrierungsphase<br />

geht über den kompletten Identifier,<br />

so dass Nachrichten mit kleinen Identifiern<br />

hohe Priorität haben. Das gleichzeitige<br />

Senden von zwei Nachrichten mit dem selbem<br />

Identifier ist verboten und muss durchs<br />

Systemdesign verhindert werden.<br />

Zur Synchronisation der Busteilnehmer <strong>die</strong>nt<br />

ein einzelnes, dominantes Startbit vor dem<br />

Identifier einer Nachricht. Zusätzlich wird<br />

jeder Flankenwechsel zur weichen Synchronisation<br />

verwendet. Dadurch kann man billige<br />

und ungenaue Quarze verwenden. Um<br />

sicherzustellen, dass genug Flankenwechsel<br />

vorkommen, wird nach fünf gleichen Pegeln<br />

zwangsweise ein Flankenwechsel eingebaut<br />

(Bit Stuffing Regel). Das zusätzliche Bit <strong>die</strong>nt<br />

nur der Synchronisation und enthält keinerlei<br />

Informationenen.<br />

Im CAN 2.0A Frame folgen dem Identifier<br />

sieben Control Bits. Das erste davon ist<br />

das Remote Transfer Request (RTR) Bit. Eine<br />

� standard frame<br />

extended frame �<br />

#83 / 2004<br />

Nachricht mit gesetztem RTR darf keine<br />

Daten beinhalten. Vielmehr ist <strong>die</strong>se<br />

Nachricht eine Aufforderung, zu antworten.<br />

Die Antwort ist eine normale<br />

CAN Nachricht mit gleicher ID und nicht<br />

gesetztem RTR. Damit kann man z.B.<br />

einen Sensor pollen, falls man keine regelmäßigen<br />

Updates der Meßwerte braucht.<br />

Das RTR Bit gilt als gesetzt, wenn es den<br />

Wert 1 hat. Da <strong>die</strong> Arbitrierungsphase<br />

das RTR Bit einschließt, wird ein Request<br />

von der Antwort überschrieben, falls beide<br />

gleichzeitig gesendet werden. Das<br />

nächste Control Bit <strong>die</strong>nt zur Unterscheidung<br />

des verwendeten Nachrichtenformats.<br />

Dabei steht eine 0 für Standard und<br />

eine 1 für Extended Frames. Die letzten<br />

4 Bits heißen Data Length Code (DLC)<br />

und geben <strong>die</strong> Anzahl der Datenbytes an,<br />

<strong>die</strong> direkt danach folgen. Alle Werte zwischen<br />

0 und 8 sind zugelassen, da auch<br />

eine Nachricht ohne Datenbytes allein<br />

durch ihr Auftauchen auf dem Bus eine<br />

Information sein kann. Eine anschließende<br />

15 Bit CRC Summe <strong>die</strong>nt zur Erkennung<br />

von Übertragungs- und Empfangsfehlern.<br />

Sie erlaubt das Entdecken von<br />

bis zu 6 Einzelfehlern und 15 Bit Burstfehlern.<br />

Die nächsten zwei Bit sind der<br />

Acknowledge Slot. Jeder Knoten, der <strong>die</strong><br />

Nachricht mit korrektem Format empfangen<br />

hat, sendet in <strong>die</strong>ser Zeit ein 0.<br />

Der Sender schreibt ein 1 und erwartet,<br />

<strong>die</strong> 0 zu lesen. Geschieht das nicht,<br />

so hat niemand <strong>die</strong> Nachricht empfangen.<br />

Abgeschlossen wird ein Frame mit<br />

sieben rezessiven Bits, dem End Of Frame<br />

(EOF). Dabei wird absichtlich <strong>die</strong> Bit<br />

Stuffing Regel verletzt, so dass jeder <strong>die</strong>se<br />

Marke eindeutig erkennen kann. Als<br />

letztes kommen noch 3 rezessive Inter<br />

Frame Bits. Sie geben den Teilnehmer<br />

<strong>die</strong> nötige Zeit, um <strong>die</strong> Nachricht in den<br />

Empfangspuffer zu schreiben und sich<br />

auf <strong>die</strong> nächste Nachricht vorzubereiten.<br />

Sollte einem Teilnehmer ausnahmsweise<br />

<strong>die</strong>se Pause nicht ausreichen, so kann<br />

er ein Overload Frame senden. Dieses<br />

besteht aus 6 dominanten Bits und verzögert<br />

den Anfang der nächsten Nachricht.<br />

CAN 2.0B Frames beginnen auch<br />

mit einem Start Bit. Darauf folgen <strong>die</strong> ersten<br />

11 Bit des Identifiers. An der Bitposition,<br />

an der Standard Frames das RTR Bit haben, steht<br />

allerdings immer eine 1. Anschließend kommt das IDE<br />

Bit, welches zur Identifikation des Frame Formates hier<br />

auch den Wert 1 hat. Jetzt folgen <strong>die</strong> letzten 18 Bit des<br />

Identifiers und das RTR Bit. Nach zwei weiteren Bits,<br />

<strong>die</strong> immer den Wert 0 haben, sind Extended Frames<br />

mit Standard Frames wieder identisch.<br />

25<br />

25

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!