8
4.1 Funcionamiento 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, Philip s, 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 Rtteive I Reuivel I RttciVel J J l 'J Fig. 4. 1 Filtrado de los mensajes -16 -

l'biblio3.url.edu.gt/Publi/Libros/2013/ManualesIng/02/23/07.pdf · La difusión del sistema CAN debe atribuirse a la disponibilidad de un gran número de circuitos integrados que

Embed Size (px)

Citation preview

4.1 Funcionamiento

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.

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 I RttciVel

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 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 J

f-T-T-' lt_l_J I I t_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 -, I r--¡ 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 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

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 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

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

- 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

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

5V 5V

- 21 -

,,.

5

4

3,25

2,5

1,75

1

o

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

5

3,5

2,5

1 ,5

O

4. CAN Bus

e AN low speed ,

CAN H ,

CAN L I \ CAN L

V : :\1 CAN H 1\ : :/\ CAN H

\ CAN L 7

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.7 Niveles de tensión en el bus CAN High speed

- 22-

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

- 23-

Fllll. D llP l.ex 5MHz Serial

Inter&ce

Unive nal Serial

Inter&ce

CAN-Bus

2 extern.a1

TimerUnits

,400mA Supply