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.
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.