Next: CAN Protokolle
Up: CAN - Entwicklungsumgebung
Previous: CAN - Entwicklungsumgebung
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:
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.
Holger Müller, TUD-EMK