4.1 Funcionamiento
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.
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
ReuivelI
RttciVelJ
•
J•
~ l'J
('~.Nhll~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 5 1 4 1 3 1 2 1 1 1 0 1 I I I I Nodel I ID 1436 (Decimal) I I Node2. ID 1335 (Dedmal) Node3 ID 1337 (Decimal) Bus I I I I I I I I I I I
I
I
I Jf - T - T - '
lt_l_J
I It_l_.J
I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I-,
Ir--¡
I I I J l~
I~
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 I I I I I I I I I I I I I I 1 21- 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
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
1
,.
<2
3
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 O y 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 • A 1
.
~ ;:.,.
i' ' i',.
4 5 6 7 8 Fig.4.3 Formato del mensaje datos CAN4. 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
---'----0 ---'----0 1 1 1 ---'----0 ---'----0
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
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
REC < 127 TEC < 127
TEC: Transmit Error Counter REC: Receive Error Counter
Reset REC < 128 TEC < 128 TEC < 255 128 occurences de 11 bits récessifs
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
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
CAN L CAN H
Parámetros
Flujo
Número de nodos en el bus
Corriente de salida
Nivel dominante
Nivel recesivo
Tensión de alimentación
• 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)
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)
CAN Low speed CAN High speed
125 Kb/s 125 Kb a 1 Mb/s
2 a 20 2 a 30
>1 mA en 2,2 Kn 25 a 50 mA en 60
n
CANH=4 V V CAN H - V CAN L = 2 V
CANL= 1 V
CANH= 1,75 V V CAN H - V CAN L = 2,5 V
CANL= 3,25 V
,,.
5 4 3,25 2,5 1,75 1o
Tensión en la línea bifilar ' (en V) 5 3,5 2,5 1 ,5 Oe
AN low speed , CAN H , CAN LI
\
CAN LV
:
:\1
CAN H1\
:
:/\
CAN H\
CAN L7
BIT RECESIVO BIT DOMINANTE BIT RECESIVO
Fig.4.6 Niveles de tensión en el bus CAN Low speed
CAN high speed
CAN H
/
:
~
"'
,
/
CAN L
BIT RECESIVO BIT DOMINANTE BIT RECESIVO
4. CAN Bus
Analog O . .5V
AlD
RefereJICe
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.
Fig. 4.8 Implementación Full CAN para microprocesador de 16 bits
Fllll. D llP l.ex 5MHz Serial Inter&ce Unive nal Serial Inter&ce CAN-Bus 2 extern.a1 TimerUnits ,400mA Supply