Wat is CAN?

Een kort overzicht van de CAN-bus.

CAN protocol

CAN is een broadcast seriële bus: iedere CAN-node kan berichten verzenden die door alle anderen CAN-nodes ontvangen worden.

CAN broadcast: ieder bericht wordt door alle nodes ontvangen
CAN Broadcast
CAN broadcast: ieder bericht wordt door alle nodes ontvangen
CAN Broadcast

Er is dus geen fysieke adressering maar de software bepaald vervolgens wat het met een bericht doet. Een CAN-bericht bestaat uit een 11-bit óf 29-bit Identifier (=Id) gevolgd door maximaal 8 databyte’s. CAN werkt met bus arbitrage: Hoe lager het Id, hoe hóger de berichtprioriteit: bij het verzenden gaan berichten met een lagere Id vóór op die met een hogere Id. CAN Id = 0 heeft dus de hoogste prioriteit. Identifiers hebben verder geen betekenis, het is opnieuw aan de achterliggende software om Id’s een betekenis te geven. Verder bevat een CAN-bericht wat overhead en een CRC checksum controle.

CAN 2.0

Oorspronkelijk omvatte CAN enkel 11-bit identifiers. Bosch voegde de variant met 29-bit identifier toe om in Amerika de SAE J1939-standaard te kunnen ondersteunen. Dit gebeurde in 1991 en werd geïntroduceerd als CAN 2.0. Beide ‘soorten’ mogen door elkaar heen gebruikt worden, maar zijn wel verschillend.

Physical Layer

CAN is een hardware protocol: er is een CAN-controller nodig, vaak onderdeel van een microcontroller, om de berichten te generen en te ontvangen. Een CAN-controller zendt en ontvangt digitale signalen. Er is daarom elektronica (=physical layer) nodig om deze signalen betrouwbaar over grote afstand te kunnen transporteren. CAN-netwerken maken gebruik van een gestandaardiseerde physical layer op basis van een twisted pair kabelverbinding. Er bestaan géén draadloze CAN-verbindingen. Er zijn wel Bluetooth en WiFi oplossingen op de markt, maar die zetten het CAN-bericht eerst om in een ander formaat en visa versa.

Bus snelheid, lengte en aantal nodes

CAN berichten kunnen verzonden worden met een snelheid van circa 10 Kbit/s tot en met 1 Mbit/sec. De snelheid bepaald de maximale bus lengte: bij 1 Mbit/s is dat max. 30 meter, bij 10 Kbit/s is dat 5000 meter. Het aantal CAN-nodes in een netwerk is in principe oneindig maar in de praktijk beperkt door de physical layer. Standaard physical layers ondersteunen maximaal 112 nodes maar dat kan worden vergroot door middel van repeaters.

Hogere protocollen

Het CAN-protocol legt de functie en inhoud van berichten niet vast, gebruikers kunnen dit zelf bepalen. Dat is uitstekend in gesloten systemen, zoals in auto’s, maar niet bij het combineren van netwerk nodes van verschillende leveranciers. Hiertoe zijn hogere protocollen als CANopen, DeviceNet en SAE J1939 ontwikkeld. Zij zorgen voor de verdeling van Id’s en het samenstellen van de data byte’s.

Voordelen

Een super betrouwbare bus die uit goedkope en goed verkrijgbare componenten bestaat.