next up previous contents
Next: CAN Protokolle Up: CAN - Entwicklungsumgebung Previous: CAN - Entwicklungsumgebung

CAN nach ISO 11898

  Jeder Knoten (Node) hört auf beliebig viele Kennungen (ID's). Hierbei sind verschiedene Varianten ausgeprägt: Variante 2.0A spezifiziert ein 11 Bit und Variante 2.0B eine 29 Bit lange Nachrichtenkennung (ID). Damit sind 2032 oder über 536 Millionen Kennungen möglich. Die Einschränkung der Variante 2.0A auf 2032 Kennung hängt mit der Entwicklung des ersten CAN Controllers von Intel zusammen, der eine derartige Einschränkung aufwies.

Zur Vermeidung von Kollisionen wird bei CAN das Verfahren der bitweisen Arbitrierung verwendet. Es gibt dominante und rezessive Signale. Nachrichten werden immer in Paketen (sogenannten ,,Frames``) übertragen, die dem Aufbau von Abb. 4.1 entsprechen. Jeder Knoten im Netzwerk darf senden, sobald der Bus frei (idle) ist. Nach dem ,,Start of Frame`` Bit wird sofort das ,,Arbitration field`` (11 Bit) gesendet, um auszuhandeln welcher Knoten den Bus letztendlich bekommt. Der Knoten, der zuerst ein rezessives Bit gegen ein dominantes sendet verliert den ,,Wettstreit`` und darf nicht weiter mitsenden. Die Felder haben die folgende Bedeutung und Bitlängen:


  
Abbildung 4.1: MAC Data Frame
\begin{figure}
 \centering
 
\includegraphics [width=\textwidth]{Bilder/CAN-Frame.eps}\end{figure}

Insgesamt können Nachrichten zwischen 44 und 108 Bit lang sein. Zusätzlich ist aber zu berücksichtigen, daß zwischen den einzelnen Frames ein ,,Interframe space`` vorgesehen ist, der 3 rezessive Bits beträgt.

Da jeder CAN-Knoten eine Nachricht immer an alle Busteilnehmer sendet, entsteht eine entsprechende Belastung für den jeweiligen CAN-Host, die für ihn adressierten Nachrichten herauszufiltern. Dies kann im ungünstigen Fall soweit führen, daß der Hostrechner ausschließlich damit beschäftigt ist, Nachrichten auf ihre Relevanz hin zu prüfen. Derartige CAN-Implementierungen werden als Basic-CAN bezeichnet. Mit der Full-CAN-Implementierung wird die Nachrichtenpufferung und -filterung vollständig vom CAN-Protokollbaustein übernommen. Hierbei werden in Hardware feste Nachrichtenpuffer realisiert, und der CAN-Baustein blendet über ,,Akzeptanz Filter`` alle für ihn nicht relevanten Nachrichten selbstständig aus. Dies ermöglicht eine drastische Reduktion der CPU Belastung.


next up previous contents
Next: CAN Protokolle Up: CAN - Entwicklungsumgebung Previous: CAN - Entwicklungsumgebung

Holger Müller, TUD-EMK
9/26/1998