Está en la página 1de 8

4.

CAN Bus

El protocolo CAN (Control Area Network) ha sido desarrollado para el


automóvil, pero se ha impuesto también en el sector de la
automatización por las ventajas que ofrece; en particular:
• bajos costes de diseño e implementación
• funcionamiento en ambientes difíciles
• facilidad de configuración y modificación
• detección automática de los errores de transmisión.

La difusión del sistema CAN debe atribuirse a la disponibilidad de un


gran número de circuitos integrados que realizan las funciones de este
protocolo. Los principales fabricantes son: Intel, Motorola, Philips,
Siemens, Mitsubishi, etc.

4.1 Funcionamiento
El protocolo CAN establece un conjunto de reglas que permiten la
comunicación entre dos o más unidades electrónicas (nodos de la red)
mediante el intercambio de informaciones.
El protocolo CAN se sitúa en el interior del modelo ISO/OSI, en los
niveles 1 físico y 2 enlace de datos, dejando total libertad para el nivel 7
aplicación.
El núcleo del protocolo se encuentra en el nivel "enlace de datos" y en la
singular política de acceso al medio de transmisión.

• Ausencia de direcciones remitente/destinatario

Nodel-Speedo. Node2-RPM Node3-A/C Node4-EMS

Pro ces s Initiare Process


J~

l'
J

Accept Send Ignore Accept


J
• J • J~

Rtteive I Reuivel IRttciVel


J
• J
• ~ l

'J ('~.Nhll~

Fig. 4. 1 Filtrado de los mensajes

-16 -
4. CAN Bus

• Los paquetes transmitidos por una estación CAN no contienen


direcciones de algún género, en su lugar hallamos un identificador
del contenido del mensaje (régimen motor, temperatura motor, nivel
combustible, etc.) único en la entera red.
Un nodo receptor de esta forma puede controlar el contenido del
mensaje y filtrar (seleccionar) sólo los paquetes de interés,
ignorando los demás.
En la fig. 4.1 se muestra la situación de un nodo que transmite los
datos referentes a las revoluciones por minuto del motor (RPM),
donde el tacómetro y el EMS (Engine Management System)
aceptan el mensaje, y la unidad de control del aire acondicionado lo
Ignora.

• La característica content-oriented del CAN permite un alto grado de


flexibilidad y modularidad del sistema, de modo que nuevas
estaciones tipo receptor que precisan sólo los datos existentes
puedan añadirse sin modificación alguna del hardware ni del
software.

• Resolución de los conflictos de acceso


Para garantizar la comunicación "real time", el CAN recurre a un
método de acceso al medio CSMA (Carrier Sense Multiple Access).
Dos o más estaciones que inician a transmitir para el acceso al bus
en el valor de prioridad de las mismas, determinado precisamente
por el identificador; el que presenta el valor numérico más bajo
gana la competición para el canal. Cada conflicto se resuelve con el
mecanismo del wired-and, de acuerdo al cual el estado dominante
(O lógico) sobrescribe el estado recesivo (1 lógico).
Bit 1 la 1 9 1 514131211101
I I I I
Nodel I f-T-T-'
ID 1436 I
(Decimal)
I
I I
I I
I
I
J
lt_l_J
I I I
I
I
I
I
t_l_.J
I I I
I I I I I I
Node2.
ID 1335 I I I I I I
(Dedmal) I I
I I I I
I I I I I I I I I I I I
Node3 I I I I -, I r--¡
ID 1337 I I I I Jl ~ I ~ I
(Decimal )
I I I I - T-1 I
I I I I I I I I I I I I
I I I I I I
Bus
I I I I I I
I I I I I I I I I I I I

1 2
1- Nodo 1 pierde el acceso e intenumpe temporalmente su transmisión
2- Nodo 3 pierde el acceso e intenumpe temporalmente su transmisión
Por el bus pasa el mensaje del nodo 2 como si hubiese estado solo

Fig. 4.2 Arbitraje de acceso al bus

-17 -
4. CAN Bus

Los nodos perdedores se vuelven inmediatamente receptores y no


tentarán una retransmisión antes de que el bus se haya vuelto libre.
Este principio garantiza el determinismo del acceso al bus y la ausencia
de períodos de inactividad del canal.

4.2 Formato de los mensajes CAN

El protocolo CAN contempla cuatro tipos de mensajes:


• Mensaje con datos (message frame)
• Mensaje de solicitud remota (remate frame)
• Mensaje de error (error frame)
• Mensaje de sobrecarga (overload frame)
1. Espacio entre mensajes
2. Inicio mensajes
3. Campo identificador de 11 bits
4. Campo de control para especificar la longitud del mensaje
5. Mensaje de longitud variable entre Oy 64 bit (8 byte)
6. Campo de control de 16 bits corresponde al CRC (Cyc1ic
Redundancy Code).
La estación que recibe calcula el CRC (según un algoritmo
preestablecido) correspondiente al mensaje recibido y controla la
igualdad con el CRC recibido y procesado por la estación emisora;
en caso de error, se transmite un mensaje de error para solicitar una
nueva transmisión de los datos.
7. Campo de acuse de recibo (acknowledge)
8. Fin mensaje

1
1
.
• A

,. < ;:. ,. i' ' i'

,.
2

3
4 5 6

Fig.4.3 Formato del mensaje datos CAN

- 18-
4. CAN Bus

4.3 Detección de los errores

La detección y la señalización de los errores junto con el aislamiento de


las averías vuelven el CAN altamente fiable, garantizando la exactitud
de las informaciones y la coherencia de las mismas en el entero sistema.
El proceso de señalización de los errores se articula en las siguientes
fases:
• Un controller CAN detecta un error (en transmisión o en recepción)
• Un Error Frame (mensaje de error) se transmite de inmediato
• El mensaje incriminado es ignorado por t040s los nodos
• El mensaje se retransmite, eventualmente compitiendo con otros

Un error puede detectarse en cinco modos distintos, tres de los cuales a


nivel de mensaje y dos a nivel del bit individual:

Error de bit stuffing


La codificación de los datos es de tipo NRZ (Non Retum to Zero).

-----L...--JI....--..JI I I L...--..LI-----'----
0011100

Por lo general, un nodo en transmisión introduce después de 5 bits


consecutivos de igual polaridad un bit de polaridad opuesta,
denominado bit stuffing. El nodo que recibe más de 5 bits consecutivos
de signo igual detectará un error de este tipo.

Error de bit
Un nodo en transmisión escucha siempre el bus para comprobar la
correspondencia con lo que se está transmitiendo. Se señaliza un error si
el bit detectado es diferente del seleccionado.

Error de CRC
Cada nodo receptor recalcula el CRC en base al que ha recibido y, si no
corresponde al transmitido por el emisor, se señaliza un error.

Error de mensaje (Frame error)


Se señaliza este tipo de error cuando se violan algunos campos fijos del
paquete (bits que deben transmitirse siempre del mismo tipo).

Error de acuse de recepción


Si el transmisor no detecta recepción alguna del mensaje que acaba de
transmitirse por parte de las estaciones receptoras.

El CAN ofrece un mecanismo de auto-aislamiento de las averías único


en su género; está en condiciones de identificar entre condiciones de
avería transitoria (oscilaciones de voltaje, condiciones exteriores de
interferencia) y averías permanentes (conexiones defectuosas, cables
rotos).

- 19-
4. CAN Bus

Cada controlador mantiene dos registros contadores de errores, uno de


transmisión y uno de recepción.
En base al número de errores contabilizados, el estado de error del nodo
cambia en base a las reglas que se indican a continuación. Si el número
de los errores resulta demasiado alto, la estación se desconecta del bus.

Cada estación puede hallarse en tres estados


Reset

REC < 127


TEC < 127 128 occurences
de 11 bits récessifs

REC < 128


TEC < 128

TEC : Transmit Error Counter


TEC < 255
REC : Receive Error Counter

Fig. 4.4 Reglas de transición en base a los errores

Estado error activo


Ninguno de los dos contadores excede del valor de 127. El nodo se
encuentra al máximo de sus funciones . Cuando se encuentra en este
estado, el nodo que detecta un error transmite un mensaje de error
constituido por 6 bits dominantes de manera de interrumpir siempre la
transmisión.

Estado error pasivo


Por lo menos uno de los dos contadores ha excedido de 127. El nodo
aún está en condiciones de realizar todas sus funciones, pero es posible
que presente unas interferencias o condiciones de avería. Cuando recibe
un error transmite un mensaje de error constituido por 6 bits recesivos
que se interpretan como error sólo si ninguna estación está
transmitiendo su propio mensaje.

Estado de Bus Off


Si uno de los contadores excede de 255, el nodo se desconecta del bus y
no participa a la comunicación dejando los demás nodos en la
posibilidad de continuar a intercambiarse informaciones. Si ello ocurre,
con toda seguridad la estación presenta un problema permanente que
precIsa una intervención exterior para restablecer el funcionamiento
perfecto.

La alta fiabilidad del CAN puede medirse con la capacidad de


identificar datos alterados por averías de transmisión. La posibilidad de

- 20-
4. CAN Bus

que un mensaje esté alterado y que no se diagnostique como tal en la


red, es un valor muy pequeño y -en consecuencia- despreciable.
Ha sido calculado que en una red operante a 1 Mbit/s, con una
utilización promedio del 50% del bus, un ancho promedio de 80 bits y
un tiempo de operación de 8 horas diarias por 365 días por año, un error
sin detectar puede ocurrir cada 100 años.

4.4 Características de la línea física

• La transmisión de los datos se lleva a cábo en una línea bifilar


diferencial, la cual consta de las siguientes 2 líneas:
• CAN L (CAN Low) CAN B (CAN Bajo)
• CAN H (CAN High) CAN A (CAN Alto)

CAN L

CAN H

Fig. 4.5 Línea bifilar

• El bus en el automóvil está sujeto a importantes perturbaciones


electromagnéticas, la transmisión de tipo diferencial permite
eliminar las perturbaciones en modo común (las perturbaciones son
comunes en cada hilo de transmisión y, en consecuencia, se anulan
con la medida diferencial de la tensión. En electrónica se expresa
como relación de rechazo de modo común CMRR (Common Mode
Rejection Ratio) .

• Conviene identificar dos tipos de transmisión:


• CAN low speed (baja velocidad)
• CAN high speed (alta velocidad)

Parámetros CAN Low speed CAN High speed

Flujo 125 Kb/s 125 Kb a 1 Mb/s

Número de nodos en el bus 2 a 20 2 a 30

Corriente de salida >1 mA en 2,2 Kn 25 a 50 mA en 60 n

Nivel dominante CANH=4 V V CAN H - V CAN L = 2 V


CANL= 1 V
Nivel recesivo CANH= 1,75 V V CAN H - V CAN L = 2,5 V
CANL= 3,25 V
Tensión de alimentación 5V 5V

- 21 -
4. CAN Bus
,,. eAN low speed
,

5
CAN H
,
4

3,25
CAN L
I \ CAN L

2,5
V: :\1
1,75
CAN H
1\ : :/\ CAN H

1 \ CAN L
7
o
BIT RECESIVO BIT DOMINANTE BIT RECESIVO

Fig.4.6 Niveles de tensión en el bus CAN Low speed

Tensión en la
línea bifilar ' CAN high speed
(en V)

CAN H
3,5

/ : ~
"',
2,5

1 ,5 /
CAN L

O
BIT RECESIVO BIT DOMINANTE BIT RECESIVO

4.7 Niveles de tensión en el bus CAN High speed

- 22-
4. CAN Bus

Existen dos tipos de implementación del CAN

• Basic CAN
El Basic CAN es un controlador más económico, por lo general
constituido por un chip separado respecto al microcontrolador al
cual se interfaza.

• Full CAN
El Full CAN es un controlador con mayores prestaciones y es más
caro que el Basic; consta de un chip único con el microcontrolador
que gobierna la aplicación.

Fllll. D llP l.ex


Analog 5MHz
O..5V Serial
AlD Inter&ce
RefereJICe
Unive nal
Serial
Inter&ce

CAN-Bus

2 extern.a1
TimerUnits

,400mA
Supply

Fig. 4. 8 Implementación Full CAN para microprocesador de 16 bits

- 23-

También podría gustarte