CAN-bus: het zenuwstelsel van de moderne auto
Een moderne auto zit vol elektronica: motormanagement, airbags, het ABS-systeem, raambediening, het infotainmentscherm. Al die onderdelen moeten voortdurend gegevens met elkaar uitwisselen. Vroeger gebeurde dat met een aparte kabel tussen elk paar apparaten dat met elkaar moest praten, wat al snel uitgroeide tot een onoverzichtelijke bundel van honderden meters bedrading. CAN-bus (Controller Area Network) lost dat grotendeels op: één gedeelde tweeaderige kabel waarop alle elektronische besturingseenheden zijn aangesloten en waarover ze berichten uitwisselen. Het werkt een beetje als een groepschat: iedereen die is aangesloten hoort elk bericht voorbijkomen, maar alleen de apparaten voor wie het bericht relevant is, reageren erop.
CAN-bus is geen recente vinding, maar een volwassen, wereldwijd gestandaardiseerde techniek die al sinds begin jaren negentig in vrijwel elke auto zit. Toch blijft het onderwerp actueel: naarmate voertuigen slimmer en meer verbonden raken, met camera's, radar en over-the-air software-updates, komt de bijna veertig jaar oude techniek onder druk te staan qua snelheid én beveiliging. Dat maakt CAN-bus een mooi voorbeeld van hoe "oude" infrastructuur de basis blijft vormen waarop nieuwe technologie moet worden gebouwd.
Wat is het precies?
CAN-bus verbindt alle besturingseenheden via twee draden, vaak CAN-High en CAN-Low genoemd. Signalen worden verstuurd als het spanningsverschil tussen die twee draden, differentiële signalering genoemd. Dat maakt de verbinding ongevoelig voor elektrische storing van bijvoorbeeld de motor of ontstekingsspoelen, belangrijk in een omgeving vol elektrische ruis.
Bijzonder aan CAN-bus is dat berichten geen afzender- of ontvangeradres hebben, zoals bij een computernetwerk. In plaats daarvan krijgt elk bericht een identificatiecode die aangeeft wát het inhoudt, bijvoorbeeld "motortoerental" of "buitentemperatuur", en die tegelijk de prioriteit bepaalt. Elk apparaat op de bus luistert mee met al het verkeer en pikt alleen de berichten eruit die het nodig heeft.
Omdat meerdere apparaten tegelijk mogen proberen te versturen, is er een systeem van arbitrage nodig. Verzenden twee knooppunten tegelijk, dan wint automatisch het bericht met de belangrijkste, laagste identificatiecode, zonder dat data verloren gaat of een aparte scheidsrechter nodig is. Dit heet CSMA/CR: carrier sense multiple access met botsingsoplossing op basis van prioriteit. Een bericht bevat verder een klein datapakket, in de klassieke versie maximaal 8 bytes, en een controlegetal (CRC) waarmee ontvangers kunnen nagaan of de data onderweg niet beschadigd is.
De klassieke CAN-bus, vastgelegd in de internationale norm ISO 11898, haalt snelheden tot 1 megabit per seconde. Voor toepassingen die meer data nodig hebben, zoals moderne rijassistentiesystemen, is sinds de jaren 2010 CAN FD (Flexible Data-rate) in gebruik. Dat protocol staat grotere berichten toe en kan sneller schakelen, tot ongeveer 5 tot 8 megabit per seconde.
Wat wil men ermee bereiken?
Bosch ontwikkelde CAN-bus in de eerste helft van de jaren tachtig, met als directe aanleiding de snelle toename van elektronica in auto's: meer sensoren, meer besturingscomputers, meer functies die met elkaar moesten communiceren. Zonder gedeeld netwerk zou de hoeveelheid bekabeling, en daarmee het gewicht en de kans op storingen en montagefouten, gestaag zijn blijven groeien.
Het doel was een netwerk dat drie dingen tegelijk kon: betrouwbaar werken in een trillende, hete en elektrisch "vervuilde" omgeving; realtime reageren, belangrijk bij bijvoorbeeld het activeren van een airbag; en tegelijk goedkoop genoeg zijn om in een massaproduct als een auto te verwerken. Doordat het een open, breed gestandaardiseerd protocol werd, konden onderdelen van verschillende toeleveranciers bovendien zonder veel gedoe met elkaar communiceren, een groot voordeel in een sector waar één auto onderdelen van tientallen bedrijven bevat.
Buiten de auto-industrie speelde hetzelfde motief: in fabrieksmachines, landbouwvoertuigen, liften en medische apparatuur bestond dezelfde behoefte aan een robuust en betaalbaar netwerk tussen veel kleine besturingseenheden.
Voorbeelden uit de praktijk
De Mercedes-Benz S-Klasse (W140) uit 1991 geldt algemeen als een van de eerste productieauto's met een uitgebreid CAN-bus-netwerk tussen de besturingseenheden, kort na de introductie van de eerste ISO-norm.
Sinds het midden van de jaren negentig is CAN-bus onderdeel geworden van de wettelijk verplichte on-board diagnostics (OBD-II in de VS, EOBD in Europa) waarmee garages en pechhulp de elektronica van een auto kunnen uitlezen via een standaardstekker onder het dashboard.
In de vrachtwagen- en landbouwsector gebruikt men CAN-gebaseerde standaarden zoals SAE J1939 voor bedrijfsvoertuigen en ISOBUS (ISO 11783), waarmee tractoren en aangekoppelde landbouwmachines van verschillende merken met elkaar kunnen communiceren.
Een minder positief maar invloedrijk voorbeeld is de Jeep Cherokee-hack uit 2015: onderzoekers Charlie Miller en Chris Valasek namen op afstand de controle over rem, stuur en motor van een rijdende Jeep via kwetsbaarheden die uiteindelijk uitkwamen op de CAN-bus. Fiat Chrysler riep daarop 1,4 miljoen voertuigen terug voor een software-update.
Hoe ver is de techniek?
Klassieke CAN-bus is volwassen en alomtegenwoordig: vrijwel elk voertuig dat vandaag van de band rolt, gebruikt het voor tientallen tot honderden interne berichten per seconde. CAN FD wint sinds ongeveer 2012 terrein, vooral voor functies die meer data nodig hebben, zoals geavanceerde rijhulpsystemen.
De belangrijkste ontwikkeling van dit moment is CAN XL, een uitbreiding die branchevereniging CAN in Automation vanaf 2021 heeft gestandaardiseerd. CAN XL laat veel grotere berichten toe, tot 2 kilobyte per bericht in plaats van 8 bytes, bij snelheden tot ongeveer 20 megabit per seconde. Het doel is de robuustheid van CAN te combineren met genoeg bandbreedte voor nieuwe, zone-gebaseerde elektronica-architecturen in auto's.
Het grootste obstakel is niet snelheid maar beveiliging. CAN-bus is in de jaren tachtig ontworpen zonder authenticatie of versleuteling: elk bericht is voor elk aangesloten apparaat leesbaar, en in de basisversie kan niet worden geverifieerd wie een bericht daadwerkelijk verstuurde. De industrie werkt dit gedeeltelijk weg met gateways die de bus opdelen in afgeschermde segmenten, met inbraakdetectiesystemen die afwijkend berichtverkeer signaleren, en met aanvullende beveiligingslagen zoals Secure Onboard Communication binnen het AUTOSAR-softwarekader. Voor bandbreedte-intensieve toepassingen zoals camera's en lidar verschuift de sector daarnaast steeds vaker naar Ethernet-achtige bekabeling, terwijl CAN(-FD) de werkpaardfunctie blijft vervullen voor eenvoudigere, kritieke besturingstaken. Een volledige vervanging van CAN-bus wordt op korte termijn niet verwacht; het wordt eerder een hybride netwerkarchitectuur.
Wie werken eraan?
Bosch ontwikkelde CAN-bus oorspronkelijk en blijft actief betrokken via chips en licenties. De internationale gebruikers- en fabrikantenvereniging CAN in Automation (CiA), gevestigd in Duitsland, onderhoudt en promoot de standaarden, waaronder CANopen en het nieuwere CAN XL. De formele normen liggen vast bij ISO in de reeks ISO 11898, terwijl SAE International verantwoordelijk is voor de J1939-standaard voor bedrijfsvoertuigen.
Halfgeleiderfabrikanten zoals NXP Semiconductors, Texas Instruments, Infineon, Microchip en STMicroelectronics maken de fysieke zendontvangerchips die op elk CAN-knooppunt zitten. Op softwareniveau werkt het AUTOSAR-consortium, met daarin vrijwel alle grote autofabrikanten en toeleveranciers, aan gestandaardiseerde en beter beveiligde communicatiesoftware. Daarnaast onderzoeken universiteiten en gespecialiseerde cybersecuritybedrijven wereldwijd voortdurend nieuwe kwetsbaarheden en verdedigingsmethoden voor voertuignetwerken.