In einem CAN-Bussystem sind generell alle Teilnehmer gleichberechtigt. Im Konfliktfall, d.h. wenn zwei oder mehr Teilnehmer gleichzeitig senden wollen, wird während des Sendens entschieden, welche Nachricht höher priorisiert ist und somit weitersenden darf. Alle anderen brechen ihre Sendung dann ab. Dies wird folgendermaßen realisiert:
Für die logischen Zustände 0 und 1 werden zwei verschiedene Spannungspegel benutzt, diese werden unterschieden nach dominanten und rezessiven Pegeln. Dabei wird ein dominanter Pegel einen rezessiven immer überschreiben. Jeder Teilnehmer, der etwas auf den Bus schreibt, liest auch gleichzeitig. Wenn er dabei feststellt, daß er einen rezessiven Pegel schreibt und einen dominanten liest, weiß er, daß gleichzeitig jemand anders eine höher priorisierte Nachricht verschickt und bricht die eigene Sendung ab. Im anderen Fall, wenn er einen dominanten Pegel sendet und nur einen rezessiven Pegel empfängt, muß der Bus defekt sein, denn ein rezessiver Pegel kann einen dominanten nicht überschreiben - außer eben im Fehlerfall. Der Busteilnehmer reagiert darauf mit einem Fehlertelegramm und versucht es nach einiger Zeit erneut.
Im CAN-Bussystem erfolgt eine Identifizierung aller Nachrichten durch einen Identifier2.3, in der hier verwendeten CAN-Spezifikation ist dieser 11 Bit lang.
Der Identifier wird am Anfang jedes Telegramms zur Busarbitrierung genutzt. Dabei hat ein dominantes Bit Priorität, es setzt sich zerstörungsfrei durch.
Das Vorgehen bei einer eingehenden Nachricht ist folgendermaßen:
Von den ersten 8 Bit des Identifiers werden die Bits, die im Acceptance Mask Register auf null gesetzt sind, mit denen im Acceptance Code Register verglichen. Ist der Vergleich positiv, wird der Prozessor geweckt und mit der Verarbeitung begonnen, ansonsten verbleibt er im Sleep-Mode.
Die Abbildungen 2.2 bis 2.4 verdeutlichen, wie sich eine CAN-Zelle beim Eingang eines Telegramms verhält.
Nach dem Identifier kommt ein Feld mit der Anzahl der versandten Bytes - es können 0 bis 8 Bytes pro Telegramm übertragen werden. Diese eigentlichen Informationsbytes folgen direkt anschließend. In Abbildung 2.1 ist ein komplettes CAN-Telegramm dargestellt.
Ein CAN-Telegramm enthält weiterhin auch eine CRC-Prüfsumme. Wenn ein CAN-Busteilnehmer ein Telegramm erhält, so bildet er diese Prüfsumme und vergleicht sie mit der empfangenen. Stimmen sie überein, so war die Übertragung mit recht großer Sicherheit korrekt und es wird ein Acknowledge gesendet.
Erst jetzt weiß auch der sendende Teilnehmer, daß das Telegramm korrekt empfangen wurde. Solange dieses Acknowledge nicht empfangen wird, wiederholt der Sender das Telegramm.
CAN definiert auch die Schnittstelle zum Bus. Dazu sind vier Leitungen spezifiziert:
Die innere Beschaltung dieser definierten Anschlüsse ist in Abbildung 2.6 erkennbar. Wie die Aus- und Eingänge sich verhalten sollen, kann per Software eingestellt werden.