Aquest article o secció no cita les fonts o necessita més referències per a la seva verificabilitat. |
El bus CAN (Controller Area Network en anglés) és un bus estàndard dissenyat per vehicles per comunicar microcontroladors i dispositius per comunicar-se amb altres aplicacions sense un ordinador (host). És un protocol basat en missatges inicialment dissenyat per a automòbils tot i que s'utilitza en altres aplicacions.
És un bus sèrie desenvolupat per Robert Bosch GmbH per a l'automòbil. Va ésser presentat juntament amb Intel el 1985. L'objectiu era reduir la quantitat de cables dels vehicles (hi havia fins a 2 km de cables en un vehicle) posant en comunicació diversos òrgans de comandament del vehicle amb un únic bus i no amb línies dedicades, reduint el pes del cablejat. Les normes CAN cobreixen del model OSI els nivells 1 (físic) i 2 (enllaç). El bus CAN ha estat normalitzat com a ISO 11898.
Hi ha dues normes. Aquestes dues normes són compatibles permetent que circulin missatges d'ambdues en un mateix bus.
L'accés al bus segueix l'estàndard CSMA/CD+AMP (Accés Múltiple per detecció de portadora (ang. Carrier Sense), Detecció de Col·lisió i Arbitratge de Prioritat dels Missatges). L'encapçalament de la trama reflecteix la prioritat del missatge, permetent l'ús del bus CAN en xarxes de Temps Real.
CANopen és l'estàndard per a aplicacions del bus CAN en les capes del model OSI per damunt de les del bus (de Xarxa a Aplicació).
Els cotxes d'avui dia tenen aproximadament unes 70 Unitats de Control Electrònic per diversos subsistemes, entre altres el ABS, la transmissió, l'airbag, les portes, finestres, etc. Per aquesta raó i perquè en els automòbils hi ha molt de soroll es va dissenyar el bus CAN expressament per automòbils.
El protocol canBus s'utilitza des del 2009 en el sistema de canvi de marxes del Shimano Di2.
Avui dia el bus CAN s'utilitza en els sistemes autònoms bàsicament perquè és barat.
També s'utilitza en alguns videojocs de simulació de cotxes.
Al febrer de 1986 Robert Bosch introdueix el bus serie Controller Area Network(CAN) al congrés Society of Automotive Engineers (SAE). Aquest va ser el començament d'un dels millors protocols de comunicació de tots els temps. Avui dia tots els automòbils del món estan equipats amb un CANbus.
El bus CAN és un bus serial estàndard multi-master per a connexions entre ECUs també anomenades nodes. És necessitem dos o més nodes en una xarxa CAN per poder-se comunicar. La complexitat del node pot anar des d'un simple dispositiu d'entrada sortida fins a un sistema encastat amb una interfície CAN i un software sofisticat.
Tots els nodes estan comunicats amb els altres amb 2 cables. Els cables són dos parells trenats.
L'ISO 11898-2, també anomenada "high speed CAN" utilitza busos lineals acabats amb resistors de 120 oms.
El bus CAN ultraràpid s'utilitza habitualment en l'automoció i la indústria on els bus va d'un medi a un altre. La tolerància a fallades del bus CAN fa que sovint s'utilitzi quan grups de nodes han de comunicar-se.
Cada node ha de tindre com a mínim:
Cada node està capacitat per enviar i rebre missatges, però no ho pot fer simultàniament. Cada missatge consisteix en una id que representa la prioritat del missatge, les dades, un CRC, uns slot per al ACK i alguna sobrecàrrega més que també forma part del missatge. Un missatge és posat al bus per un node i rebut per tots els altres.
La majoria dels estàndards CAN estan aplicats a la capa de transferència. La capa de transferència rep les dades de la capa física i les transmet a la capa objecte. La capa de transferència és responsable de les següents qüestions:
És la capa de més baixa nivell del bus CAN, en el seu estàndard ISO 11898 s'especifiquen totes les seves característiques detalladament.
La xarxa CAN pot ser configurada amb dos tipus de formats per als missatges (Trames): l'estàndard o format base (descrit al CAN 2.0 A i al CAN 2.0 B) i el format estès (descrit només en el CAN 2.0 B). L'única diferència entre els dos formats és que l'estàndard suporta una longitud d'11 bits per l'identificador mentre que el format estès suporta fins a 29 bits per l'identificador, 11 bits per l'identificador base i 18 per l'identificador estès.
El bus CAN té 4 tipus de frames:
Té dos formats:
El bus CAN requereix la implementació del format estàndard i pot acceptar el format estès.
RTR = 0 ; Dominant en la trama de dades.
RTR = 1 ; Recessius en la trama remota.
La trama d'error consisteix en dos camps diferents:
Hi hi dos tipus de flags d'erros:
La trama de sobrecàrrega conté dos camps el flag de sobrecàrrega i el delimitador de sobrecàrrega. Hi ha dos tipus de condició de sobrecàrrega: