logo

Protocol CAN (Controller Area Network).

CAN significa Xarxa d'àrea del controlador protocol. És un protocol desenvolupat per Robert Bosch cap al 1986. El protocol CAN és un estàndard dissenyat per permetre que el microcontrolador i altres dispositius es comuniquin entre ells sense cap ordinador amfitrió. La característica que fa que el protocol CAN sigui únic entre altres protocols de comunicació és el tipus de bus de difusió. Aquí, broadcast significa que la informació es transmet a tots els nodes. El node pot ser un sensor, un microcontrolador o una passarel·la que permet que l'ordinador es comuniqui a través de la xarxa mitjançant el cable USB o el port ethernet. El CAN és un protocol basat en missatges, el que significa que aquest missatge porta l'identificador del missatge i, en funció de l'identificador, es decideix la prioritat. No hi ha necessitat d'identificació de nodes a la xarxa CAN, de manera que és molt fàcil inserir-lo o eliminar-lo de la xarxa. És un protocol de comunicació de tipus semidúplex sèrie i asíncron. El CAN és un protocol de comunicació de dos cables, ja que la xarxa CAN està connectada a través del bus de dos cables. Els cables són parells trenats amb una impedància de característiques de 120Ω connectats a cada extrem. Inicialment, estava dissenyat principalment per a la comunicació dins dels vehicles, però ara s'utilitza en molts altres contextos. Igual que UDS i KWP 2000, també es pot utilitzar per al diagnòstic a bord.

Per què POT?

La necessitat d'un protocol de comunicació estàndard centralitzat va sorgir a causa de l'augment del nombre de dispositius electrònics. Per exemple, hi pot haver més de 7 TCU per a diversos subsistemes com ara el quadre de comandament, el control de la transmissió, la unitat de control del motor i molts més en un vehicle modern. Si tots els nodes estan connectats un a un, la velocitat de la comunicació seria molt alta, però la complexitat i el cost dels cables seria molt alt. A l'exemple anterior, un únic quadre de comandament requereix 8 connectors, de manera que per solucionar aquest problema, es va introduir CAN com una solució centralitzada que requereix dos cables, és a dir, CAN alt i CAN baix. La solució d'utilitzar el protocol CAN és bastant eficient a causa de la seva priorització de missatges, i flexible ja que un node es pot inserir o eliminar sense afectar la xarxa.

Aplicacions del protocol CAN

Inicialment, el protocol CAN es va dissenyar per abordar el problema de comunicació que es produeix dins dels vehicles. Però més endavant, a causa de les característiques que ofereix, s'utilitza en diversos altres camps. Les aplicacions del protocol CAN són les següents:

  • Automoció (vehicles de passatgers, camions, autobusos)
  • Equips electrònics per a l'aviació i la navegació
  • Automatització industrial i control mecànic
  • Ascensor i escales mecàniques
  • Automatització d'edificis
  • Instruments i equips mèdics
  • Marina, mèdica, industrial, mèdica

Arquitectura en capes CAN

Com sabem que el Model OSI divideix el sistema de comunicació en 7 capes diferents. Però l'arquitectura en capes CAN consta de dues capes, és a dir,

desar el vídeo de youtube vlc

Entenem les dues capes.

  • Capa d'enllaç de dades: aquesta capa és responsable de la transferència de dades de node a node. Permet establir i finalitzar la connexió. També s'encarrega de detectar i corregir els errors que es puguin produir a la capa física. La capa d'enllaç de dades es subdivideix en dues subcapes:
      MAC:MAC significa Control d'accés a mitjans. Defineix com els dispositius d'una xarxa accedeixen al mitjà. Proporciona encapsulació i decapsulació de dades, detecció d'errors i senyalització.
  • LLC:LLC significa Control d'enllaç lògic. És responsable del filtratge d'acceptació de fotogrames, la notificació de sobrecàrrega i la gestió de la recuperació.
  • Capa física: la capa física és la responsable de la transmissió de dades en brut. Defineix les especificacions dels paràmetres com ara el nivell de tensió, el temps, les velocitats de dades i el connector.

Les especificacions CAN defineixen el protocol CAN i la capa física CAN, que es defineixen a l'estàndard CAN ISO 11898. ISO 11898 té tres parts:

  • ISO 11898-1: aquesta part conté l'especificació de la capa d'enllaç de dades i l'enllaç de senyal físic.
  • ISO 11898-2: aquesta part es troba sota la capa física CAN per a CAN d'alta velocitat. El CAN d'alta velocitat permet una velocitat de dades de fins a 1 Mbps utilitzat en el tren de potència i l'àrea de càrrega del vehicle.
  • ISO 11898-3: aquesta part també es troba sota la capa física CAN per a CAN de baixa velocitat. Permet una velocitat de dades de fins a 125 kbps, i el CAN de baixa velocitat s'utilitza quan la velocitat de comunicació no és un factor crític.

CiA DS-102: La forma completa de CiA és CAN in Automation, que defineix les especificacions per al connector CAN.

Pel que fa a la implementació, el controlador CAN i el transceptor CAN s'implementen al programari amb l'ajuda de l'aplicació, el sistema operatiu i les funcions de gestió de xarxa.

Enquadrament CAN

Entenem l'estructura del marc CAN.

Protocol CAN
    SOF:SOF significa l'inici de la trama, que indica que la nova trama s'ha introduït en una xarxa. És d'1 bit.Identificador:Un format de dades estàndard definit sota l'especificació CAN 2.0 A utilitza un identificador de missatge d'11 bits per a l'arbitratge. Bàsicament, aquest identificador de missatge estableix la prioritat del marc de dades.RTR:RTR significa Remote Transmission Request, que defineix el tipus de trama, ja sigui una trama de dades o una trama remota. És d'1 bit.Camp de control:Té funcions definides per l'usuari.
      VAS:Un bit IDE en un camp de control significa extensió d'identificador. Un bit IDE dominant defineix l'identificador estàndard d'11 bits, mentre que el bit IDE recessiu defineix l'identificador estès de 29 bits.DLC:DLC significa Data Length Code, que defineix la longitud de les dades en un camp de dades. És de 4 bits.Camp de dades:El camp de dades pot contenir fins a 8 bytes.
    Camp CRC:El marc de dades també conté un camp de verificació de redundància cíclica de 15 bits, que s'utilitza per detectar la corrupció si es produeix durant el temps de transmissió. El remitent calcularà el CRC abans d'enviar la trama de dades, i el receptor també calcula el CRC i després compara el CRC calculat amb el CRC rebut del remitent. Si el CRC no coincideix, el receptor generarà l'error.Camp ACK:Aquest és el reconeixement del receptor. En altres protocols, un paquet separat per a un reconeixement s'envia després de rebre tots els paquets, però en el cas del protocol CAN, no s'envia cap paquet separat per a un reconeixement.EOF:EOF significa final del marc. Conté 7 bits recessius consecutius coneguts Final de trama.

Ara veurem com es transmeten les dades a través de la xarxa CAN.

Protocol CAN

Una xarxa CAN consta de múltiples nodes CAN. En el cas anterior, hem considerat tres nodes CAN i els hem anomenat node A, node B i node C. El node CAN consta de tres elements que es donen a continuació:

què significa google
  • Amfitrió
    Un host és un microcontrolador o microprocessador que executa alguna aplicació per fer un treball específic. Un amfitrió decideix què significa el missatge rebut i quin missatge ha d'enviar a continuació.
  • Controlador CAN
    El controlador CAN s'ocupa de les funcions de comunicació descrites pel protocol CAN. També activa la transmissió, o la recepció dels missatges CAN.
  • Transceptor CAN
    El transceptor CAN és responsable de la transmissió o recepció de les dades al bus CAN. Converteix el senyal de dades en el flux de dades recollides del bus CAN que el controlador CAN pot entendre.

Al diagrama anterior, s'utilitza un cable de parell trenat no apantallat per transmetre o rebre les dades. També es coneix com a bus CAN i el bus CAN consta de dues línies, és a dir, la línia baixa CAN i la línia alta CAN, que també es coneixen com a CANH i CANL, respectivament. La transmissió es produeix a causa de la tensió diferencial aplicada a aquestes línies. El CAN utilitza cable de parell trenat i tensió diferencial a causa del seu entorn. Per exemple, en un cotxe, un motor, un sistema d'encesa i molts altres dispositius poden provocar la pèrdua de dades i la corrupció de dades a causa del soroll. La torsió de les dues línies també redueix el camp magnètic. El bus s'acaba amb una resistència de 120Ω a cada extrem.

Característiques de CAN

Protocol CAN

Amb l'ajuda de la tensió diferencial, determinarem com es transmeten 0 i 1 a través del bus CAN. La figura anterior és el gràfic de tensió que mostra el nivell de tensió de CAN baix i CAN alt. En terminologia CAN, es diu que la lògica 1 és recessiva mentre que la lògica 0 és dominant. Quan s'apliquen la línia alta CAN i la línia baixa CAN amb 2,5 volts, la tensió diferencial real seria zero volts. El transceptor CAN llegeix un zero volts al bus CAN com un 1 recessiu o lògic. Un zero volts al bus CAN és un estat ideal del bus. Quan la línia alta CAN s'estira fins a 3,5 volts i la línia baixa CAN baixa a 1,5 volts, la tensió diferencial real de l'autobús seria de 2 volts. Es tracta com un bit dominant o 0 lògic pel transceptor CAN. Si s'arriba a l'estat del bus al 0 dominant o lògic, seria impossible passar a l'estat recessiu per qualsevol altre node.

Punts clau apresos de les característiques CAN

  • La lògica 1 és un estat recessiu. Per transmetre 1 al bus CAN, tant CAN alt com CAN baix s'han d'aplicar amb 2,5 V.
  • El 0 lògic és un estat dominant. Per transmetre 0 al bus CAN, s'ha d'aplicar CAN alt a 3,5 V i CAN baix a 1,5 V.
  • L'estat ideal de l'autobús és recessiu.
  • Si el node arriba a l'estat dominant, cap altre node no pot tornar a l'estat recessiu.

Lògica del bus CAN

Protocol CAN
Protocol CAN

A partir de l'escenari anterior, sabem que l'estat dominant sobreescriu l'estat recessiu. Quan el node envia el bit dominant i el bit recessiu simultàniament, aleshores el bus continua sent dominant. El nivell recessiu només es produeix quan tots els nodes envien el bit recessiu. Aquesta lògica es coneix com a lògica AND i físicament s'implementa com un circuit de col·lector obert.

Principi de comunicació CAN

Com sabem que el missatge s'envia en funció de la prioritat establerta en el camp d'arbitratge. Per a la trama estàndard, l'identificador de missatge és d'11 bits, mentre que per a la trama ampliada, l'identificador de missatge és de 29 bits. Permet al dissenyador del sistema dissenyar l'identificador del missatge en el propi disseny. Com més petit sigui l'identificador del missatge, més alta seria la prioritat del missatge.

Entendrem com funciona l'arbitratge mitjançant un diagrama de flux.

Protocol CAN (Controller Area Network).

L'emissor vol enviar el missatge i espera que el bus CAN estigui inactiu. Si el bus CAN està inactiu, l'emissor envia el SOF o el bit dominant per a l'accés al bus. Aleshores, envia el bit identificador del missatge en el bit més significatiu. Si el node detecta el bit dominant al bus mentre ha transmès el bit recessiu, vol dir que el node ha perdut l'arbitratge i deixa de transmetre més bits. El remitent esperarà i tornarà a enviar el missatge un cop l'autobús estigui lliure.

Exemple d'arbitratge CAN

Protocol CAN

Si considerem tres nodes, és a dir, el node 1, el node 2 i el node 3, els identificadors de missatges d'aquests nodes són 0x7F3, 0x6B3 i 0x6D9, respectivament.

Protocol CAN

La transmissió dels tres nodes amb el bit més significatiu es mostra al diagrama anterior.

11thbit: com que els tres bits dels nodes són recessius, el bit de bus també romandrà recessiu.

char a cadena

10thbit: Tots els nodes tenen el 10è bit com a recessiu, de manera que el bus també romandrà recessiu.

9thbit: el node 1 té un bit recessiu mentre que altres nodes tenen un bit dominant, de manera que el bus també es mantindrà dominant. En aquest cas, el node 1 ha perdut l'arbitratge, de manera que deixa d'enviar bits.

8thbit: tant el node 2 com el node 3 estan enviant bits recessius, de manera que l'estat del bus romandrà recessiu.

7thbit: el node 2 està enviant un bit dominant mentre que el node 3 ha enviat un bit recessiu, de manera que l'estat del bus continuarà dominant. En aquest cas, el node 3 ha perdut l'arbitratge, per la qual cosa deixa d'enviar el missatge mentre el node 2 ha guanyat l'arbitratge vol dir que continuarà mantenint el bus fins que es rep el missatge.