CAN-BUS
Francisco Javier Moreno Rivas
MK5
N.C. 828815
MK5
N.C. 828815
INDICE
1. Objetivo
2.
Introducción
3. Historia
y evolución del protocolo CAN4. Introducción
a los sistemas de comunicación del vehículo
5. Principales
características del CAN
6.
Canbus de
datos7.
Ventajas del bus de datos:
8.
El principio de la transmisión de datos
9.
¿qué componentes integran el can-bus de datos?
10.
Tipos de BUSCAN
11.
Capa física
12.
Capa de enlace de datos
13.
Tipos de implementación
14. Basic can
15. Full can
16.
Serial linked i/o
17.
Protocolos basados en CAN
18.
Protocolo de comunicaciones can
19. Dominante20. Recesivo.
21.
Topología
22.
Desarrollo de un ciclo de transmisión de datos:
23. Transmisión
de datos
24.
Las siete secciones:
25. Funcionamiento
26.
¿cómo se genera un protocolo de datos?
27.
Adjudicación del can-bus de datos
28.
¿cómo se hace la adjudicación?
29.
¿cómo se detecta la prioridad de un protocolo de datos?
30.
Fuentes parásitas
31.
Conclusiones
32. Bibliografía
33. RESUMEN
34. MAPA MENTAL
1.
Objetivo
Este informe tiene como objetivo dar a conocer
el tema de CANBUS. Es muy importante para aquellas personas que se están
desarrollando en alguna carrera de tipo automotriz ya que en la actualidad crecen continuamente
las exigencias planteadas a la seguridad de conducción, el confort de marcha,
el comportamiento de las emisiones de escape y el consumo de combustible. Y
como a continuación veremos, cada vez se abre más camino acerca del tema.
2.
Introducción
Crecen continuamente
las exigencias planteadas a la seguridad de conducción, el confort de marcha,
el comportamiento de las emisiones de escape y el consumo de combustible.
Estas exigencias
implican un intercambio cada vez más intenso de información entre las unidades
de control.
Para mantener, a
pesar de ello, claramente estructurados los sistemas eléctricos y electrónicos,
evitando que ocupen demasiado espacio, se necesita una solución técnica adecuada
para el intercambio de la información.
3.
Historia y evolución
del protocolo CAN
El desarrollo del protocolo CAN
comenzó en 1983 en la empresa Robert Bosch GmbH
(comúnmente conocida como
Bosch). El protocolo fue oficialmente lanzado en 1986 en
Serie 8 de 1988 fue el primer vehículo
producido en serie que incluyó un bus CAN.
Bosch publicó posteriormente varias versiones de la
especificación CAN, siendo la última de ellas la especificación CAN 2.0,
publicada en 1991. Esta especificación consta de dos partes; la parte A para el
formato estándar y la parte B para el formato extendido. Un dispositivo CAN que
usa el formato estándar utiliza identificadores de 11 bits y es comúnmente
referido como dispositivo CAN 2.0A. Un dispositivo CAN que usa el formato
extendido utiliza identificadores de 29 bits y es comúnmente referido como
dispositivo CAN 2.0B. Los estándares CAN 2.0A/B y otros documentos de
referencia relacionados con CAN son de acceso libre a través de Bosch.
En 1993 se publicó el estándar ISO 11898 del
bus CAN y ha sido a partir de ese momento un estándar de la Organización
Internacional para la Normalización. Actualmente el
bus CAN está estandarizado por las siguientes normas:
ISO/DIS 11898-1:2015, Part 1: Data link
layer and physical signalling
ISO 11898-2:2003, Part 2: High-speed medium
access unit
ISO 11898-3:2006. Part 3: Low-speed,
fault-tolerant, medium-dependent interface
ISO 11898-4:2004, Part 4: Time-triggered
communication
ISO 11898-5:2007, Part 5: High-speed medium
access unit with low power mode
ISO 11898-6:2013, Part 6: High-speed medium
access unit with selective wake-up functionality
ISO 16845:2004, Conformance test plan
En 2011 Bosch, en cooperación con los fabricantes de
automóviles y otros expertos del bus CAN, comenzó a desarrollar la siguiente
generación del CAN: el protocolo CAN FD (flexible data-rate). El
CAN FD es compatible hacia atrás, es decir, un controlador CAN FD es
capaz de comprender un mensaje CAN clásico (o CAN 2.0). Por el contrario,
un controlador CAN clásico destruye un mensaje CAN FD emitiendo un mensaje
de error. El nuevo CAN FD es capaz de transmitir datos más rápido que
1 Mbps (la velocidad máxima del CAN clásico). Ambos protocolos, el CAN
clásico y el CAN FD, están estandarizados en la norma
ISO/DIS 11898-1.
4. Introducción
a los sistemas de comunicación del vehículo
CAN (Controller Area Network), es un protocolo de
comunicaciones desarrollado por la firma alemana Robert Bosch GmbH, basado en
una topología bus para la transmisión de mensajes en ambientes distribuidos,
además ofrece una solución a la gestión de la comunicación entre múltiples CPUs
(unidades centrales de proceso).
El CAN-Bus de
datos, de la casa Bosch, es una solución de esa índole.
Ha sido desarrollado
especialmente para el uso en automóviles y se implanta en una medida creciente
en los vehículos Volkswagen y Audi.
CAN significa Controller
Area Network (red de área de controlador) y significa, que las unidades de control
están interconectadas e intercambian datos entre sí.
5.
Principaes
características del CAN
Transmisión de datos
¿Qué posibilidades
existen actualmente en el automóvil para una adecuada transmisión de datos?
Primera posibilidad:
Cada información se intercambia a
través de un cable propio.
Segunda posibilidad:
Toda la información se intercambia a
través de dos cables como máximo, que constituyen el CAN-Bus entre las unidades
de control.
La figura muestra la primera
posibilidad, en la que cada información se transmite a través de un cable
propio.
En total se necesitan aquí cinco cables.
Para cada información se necesita un
cable propio.
Debido a ello, con cada información
adicional crece también la cantidad de cables y pines en las unidades de
control.
Por ese motivo, este tipo de
transmisión de datos sólo es practicable con una cantidad limitada de
informaciones a intercambiar
En contraste con la primera
posibilidad, con el
CAN-Bus se transmite toda la
información a través de dos cables.
En ambos cables bidireccionales del
CAN-Bus se transmiten los mismos datos.
En el curso de este programa
autodidáctico le proporcionamos más información a este respecto.
Con este tipo de transmisión de datos
se transmite toda la información a través de dos cables.
Independientemente de la cantidad de unidades
de control abonadas y de la cantidad de información transmitida.
Por ese motivo es conveniente
transmitir los datos con un CAN-Bus cuando se intercambia una gran cantidad de
información entre las unidades de control.
El CAN-Bus de datos representa un modo de
transmitir los datos entre las unidades de control. Comunica las diferentes
unidades de control en un sistema global interconectado.
Cuanto mayor es la cantidad de
información que recibe una unidad de control acerca del estado operativo del
sistema global, tanto mejor puede ajustar al conjunto sus funciones específicas.
En el área de la
tracción forman un sistema global:
la unidad de control del motor,
la unidad de control para cambio
automático y
la unidad de control ABS
En el área de confort
constituyen un sistema global:
la unidad de control central y
las unidades de control de puertas
6.
CANBUS DE DATOS
CAN se basa en el modelo
productor/consumidor, el cual es un concepto, o paradigma de comunicaciones de
datos, que describe una relación entre un productor y uno o más consumidores.
CAN es un protocolo orientado a mensajes, es decir la información que se va
a intercambiar se descompone en mensajes, a los cuales se les asigna un
identificador y se encapsulan en
tramas para su transmisión. Cada mensaje tiene un identificador único dentro de
la red, con el cual los nodos deciden aceptar o no dicho
mensaje. Dentro de sus principales características se encuentran:
Prioridad de mensajes.
Garantía de tiempos de latencia.
Flexibilidad en la configuración.
Recepción por multidifusión (multicast)
con sincronización de tiempos.
Sistema robusto en cuanto a consistencia de datos.
Sistema multimaestro.
Detección y señalización de errores.
Retransmisión automática de tramas erróneas
Distinción entre errores temporales y fallas
permanentes de los nodos de la red, y desconexión autónoma de nodos
defectuosos.
CAN fue desarrollado inicialmente para aplicaciones
en los automóviles y por lo
tanto la plataforma del protocolo es resultado de las necesidades existentes en
el área de la automoción. La Organización
Internacional para la Estandarización (ISO, International
Organization for Standardization) define dos tipos de redes CAN: una red de
alta velocidad (hasta 1 Mbit/s), bajo el estándar ISO 11898-2, destinada para
controlar el motor e interconectar las unidades de control electrónico (ECU); y una red de baja velocidad tolerante a
fallos (menor o igual a 125 kbit/s), bajo el estándar ISO 11519-2/ISO 11898-3,
dedicada a la comunicación de los dispositivos electrónicos internos de un
automóvil como son control de puertas, techo corredizo, luces y asientos.
7.
Ventajas del bus de datos:
·
Si
el protocolo de datos ha de ser ampliado con información suplementaria
solamente se necesitan modificaciones en el software.
·
Un
bajo porcentaje de errores mediante una verificación continua de la información
transmitida, de parte de las unidades de control, y mediante protecciones
adicionales en los protocolos de datos.
·
Menos
sensores y cables de señales gracias al uso múltiple de una misma señal de
sensores.
·
Es
posible una transmisión de datos muy rápida entre las unidades de control.
·
Más
espacio disponible, mediante unidades de control más pequeñas y conectores más
compactos para las unidades de control.
·
El
CAN-Bus de datos está normalizado a nivel mundial. Por ese motivo, también las unidades
de control de diferentes fabricantes pueden intercambiar datos
8.
El principio de la transmisión de datos
La transmisión de datos a través del
CAN-Bus funciona de un modo parecido al de una conferencia telefónica.
Un abonado (unidad de control)
“modula“ sus datos, introduciéndolos en la red, mientras que los demás
“coescuchan“ estos datos.
Para ciertos abonados resultan
interesantes estos datos, en virtud de lo cual los utilizan.
A otros abonados pueden no interesarles
esos datos específicos.
9.
¿Qué componentes integran el CAN-Bus de datos?
Consta de un controlador, un
transceptor, dos elementos finales del bus y dos cables para la transmisión de
datos.
Con excepción de los cables del bus,
todos los componentes están alojados en las unidades de control. En el
funcionamiento conocido de las unidades de control no se ha modificado nada.
Asumen las siguientes
funciones:
El controlador CAN recibe del
microprocesador, en la unidad de control, los datos que han de ser
transmitidos.
Los acondiciona y los pasa al
transceptor CAN.
Asimismo recibe los datos procedentes
del transceptor CAN, los acondiciona asimismo y los pasa al microprocesador en
la unidad de control.
El transceptor CAN es un transmisor y un
receptor. Transforma los datos del controlador CAN en señales eléctricas
y transmite éstas sobre los cables del CAN-Bus.
Asimismo recibe los datos y los
transforma para el controlador CAN.
El elemento final del
bus de datos es
una resistencia. Evita que los datos transmitidos sean devueltos en
forma de eco de los extremos de los cables y que se falsifiquen
los datos.
Los cables del bus de
datos funcionan
de forma bidireccional y sirven para la transmisión de los datos.
Se denominan con las designaciones CAN
High (señales de nivel lógico alto) y CAN-Low (señales de nivel lógico bajo).
Al trabajar con el CAN-Bus no se define
el destinatario de los datos. Se transmiten a bordo del bus y generalmente los
reciben y analizan todos los abonados.
10.
Tipos de BUSCAN
La especificación de los buses CAN esta recogida en
el conjunto de estándares ISO 11898. Dicha especificación define las dos
primeras capas, la capa física y la capa de enlace de datos, del modelo OSI de interconexión de sistemas. En base a dichos
estándares, los buses CAN se pueden clasificar en dos tipos:
CAN de alta velocidad (hasta 1 Mbit/s).
CAN de baja velocidad tolerante a fallos (hasta
125 kbit/s).
a.
CAN de alta
velocidad
ISO 11898-2, también llamado CAN de alta
velocidad, usa un único bus lineal terminado en cada extremo con sendas
resistencias de 120 Ω. Es importante que el valor de las resistencias de
terminación coincida con la impedancia característica del bus, definida en 120 Ω, para evitar
reflexiones en la línea que podrían perturbar la comunicación. Con esta
configuración la velocidad del bus es de un máximo de 1 Mbit/s.
Bus CAN de alta velocidad. ISO 11898-2
b.
Extensiones del
CAN de alta velocidad
La Organización Internacional para la Normalización
(ISO) ha definido unas extensiones opcionales de la capa física del bus CAN de
alta velocidad (ISO 11898-2). Dichas extensiones están descritas en sus
respectivos estándares y son útiles para sistemas con requisitos específicos.
También definen la compatibilidad con ISO 11898-2.
ISO 11898-5 especifica la capa física con
tasas de transmisión de hasta 1 Mbit/s para sistemas que requieren bajo
consumo de energía cuando no hay comunicaciones activas en el bus de datos.
ISO 11898-5 representa una extensión de ISO 11898-2 y aquellas
implementaciones que cumplan cualquiera de estas dos normas, es decir, los
nodos CAN de alta velocidad con y sin bajo consumo de energía, son
interoperables entre sí y pueden coexistir en la misma red.5
ISO 11898-6 es una extensión de
ISO 11898-2 y de ISO 11898-5. Esta extensión especifica la capa
física de un bus CAN de hasta 1 Mbit/s, proporcionando un método selectivo
de activación de nodos (wake-up) usando tramas CAN configurables. Las
implementaciones de ISO 11898-6, ISO 11898-2 e ISO 11898-5 son interoperables
y se pueden usar en una misma red simultáneamente.6
c.
CAN de baja
velocidad tolerante a fallos
ISO 11898-3, también llamado CAN de baja
velocidad tolerante a fallos, puede utilizar un bus lineal, un bus en estrella
o múltiples buses en estrella conectados por un bus lineal. El bus está
terminado en cada nodo por una fracción de la resistencia de terminación total.
La resistencia de terminación total debería ser un valor próximo a 100 Ω,
pero no inferior a 100 Ω. Este estándar permite velocidades de hasta
125 kbit/s.
Bus CAN de baja velocidad tolerante a fallos. ISO
11898-3
d.
CAN FD (flexible
data-rate)
En 2011 Bosch comenzó a trabajar en una evolución
del CAN. En 2012 lanzó CAN FD 1.0, que ofrece un aumento de la tasa de
transferencia después del arbitraje. De momento (2015), sólo se ha definido la
capa de enlace de datos del CAN FD. La frecuencia se puede multiplicar hasta
por 8 y el número máximo de bytes por trama aumenta, siendo posible transmitir
una mayor cantidad de datos en el mismo tiempo. La especificación está recogida en el borrador
de norma ISO/DIS 11898-1:2015.
11.
Capa Fisica
Define los aspectos del medio físico para la transmisión de
datos entre nodos de una red CAN, las características materiales y eléctricas y
la transmisión del flujo de bits a través del bus.
a.
Niveles de
tensión del bus
Niveles de tensión del bus CAN
La transmisión de señales en un bus CAN se lleva a
cabo a través de dos cables trenzados. Las señales de estos cables se denominan
CAN_H (CAN high) y CAN_L (CAN low) respectivamente. El bus tiene
dos estados definidos: estado dominante y estado recesivo. En estado recesivo,
los dos cables del bus se encuentran al mismo nivel de tensión (common-mode
voltage), mientras que en estado dominante hay una diferencia de tensión
entre CAN_H y CAN_L de al menos 1,5 V. La transmisión de señales en forma
de tensión diferencial, en comparación con la transmisión en forma de tensiones
absolutas, proporciona protección frente a interferencias electromagnéticas.
La tensión en modo común puede estar, según la especificación, en cualquier punto entre -2 y 7 V. La tensión diferencial del bus (la diferencia entre CAN_H y CAN_L) en modo dominante debe estar entre 1,5 y 3 V. No se especifica, en cambio, que la tensión de modo común cuando el bus está en modo recesivo deba estar comprendida entre la tensión de CAN_L y la tensión de CAN_H cuando el bus está en modo dominante. Esto permite la conexión directa entre nodos que operen a distintas tensiones, e incluso nodos que sufran diferencia de tensión entre sus respectivas tierras.
b.
Cable y
conectores
Conector D-sub de 9 pines (DE-9)
Los distintos nodos de un bus CAN deben estár
interconectados mediante un par de cables trenzados con una impedancia característicade 120 Ω, y puede ser cable
apantallado o sin
apantallar. El cable trenzado proporciona protección frente a interferencias
electromagnéticas externas. Y si, además, está apantallado, la protección será
mayor pero a cambio de un incremento en el coste del cable.
El estándar CAN, a diferencia de otros estándares
como el USB, no especifica ningún tipo de conector para el bus
y por lo tanto cada aplicación puede tener un conector distinto. Sin embargo,
hay varios formatos comúnmente aceptados como el conector D-sub de 9 pines, con la señal CAN_L en el pin 2 y
la señal CAN_H en el pin 7.
Las propiedades de la línea de transmisión limitan el ancho de banda de los datos. Orientativamente, se aceptan los siguientes valores como límite de longitud del bus en función de la tasa de transferencia:
c.
Sincronización
de bits
Todos los nodos de un bus CAN deben trabajar con la
misma tasa de transferencia nominal. Dado que el bus CAN no usa una señal de
reloj separada, factores como la deriva de
reloj y la tolerancia de
los osciladores causan que
haya una diferencia entre la tasa de transferencia real de los distintos nodos.
Por ello es necesario un método de sincronización entre los nodos. La
sincronización es especialmente importante en la fase de arbitraje ya que
durante el arbitraje cada nodo debe ser capaz de observar tanto los datos
transmitidos por él como los datos transmitidos por los demás nodos.
El requisito mínimo para un bus CAN es que dos
nodos, estando en sendos extremos de la red con el máximo retardo de
propagación entre ellos, y cuyos controladores CAN tienen unas frecuencias de
reloj en los límites opuestos de la tolerancia de frecuencia especificada, sean
capaces de recibir y leer correctamente todos los mensajes transmitidos por la
línea. Esto incluye que todos los nodos muestreen el valor correcto de cada
bit.10
El controlador CAN espera que una transición del bus
de recesivo a dominante ocurra en un determinado intervalo de tiempo. Si la
transición no ocurre en el intervalo esperado, el controlador reajusta la
duración del siguiente bit en consecuencia. Dicho ajuste se lleva a cabo
dividiendo cada bit en intervalos o cuantos de tiempo (del
latín quantum) y asignando los intervalos a los cuatro segmentos de
cada bit: sincronización, propagación, segmento de fase 1 y segmento de fase 2.
Ejemplo de cuantificación de un bit CAN con 10 cuantos de
tiempo por bit
Segmento de sincronización: es el intervalo de
tiempo en el que se supone que ocurren las transiciones de recesivo a
dominante.
Segmento de propagación: es el intervalo de tiempo
que compensa los retardos de propagación a lo largo de la línea.
Segmentos de fase 1 y 2: Se usan para llevar a cabo
la resincronización de los nodos. El segmento de fase 1 puede ser alargado o el
2 acortado para la resincronización. El punto de muestreo del bit se encuentra
inmediatamente después del segmento de fase 1. El punto de muestreo se
encuentra habitualmente cerca del 75 % de la duración total del bit.
La configuración de los segmentos del bit se hacen
en base a la frecuencia de reloj de cada controlador CAN. Los segmentos se
configuran individualmente para cada controlador en un mismo bus. A efectos
prácticos, la configuración de los segmentos del bit supone un compromiso entre
la tasa de transferencia y tolerancia de los osciladores.
12.
Capa de enlace de datos
El protocolo CAN proporciona un acceso multimaestro
al bus con una resolución determinista de las colisiones. La capa de enlace de
datos define el método de acceso al medio así como los tipos de tramas para el
envío de mensajes.
a.
Acceso al medio
(arbitraje)
La especificación del CAN usa los términos
“dominante” y “recesivo” para referirse a los bits, donde un bit dominante
equivale al valor lógico 0 y un bit recesivo equivale al valor lógico 1. El
estado inactivo del bus es el estado recesivo (valor lógico 1). Cuando dos
nodos intentan transmitir bits diferentes se denomina colisión y el valor del
bit dominante prevalece sobre el valor del bit recesivo. En ese caso el nodo
que intentaba transmitir el valor recesivo detecta la colisión y pasa a modo
pasivo, es decir, deja de transmitir para escuchar lo que transmite el otro
nodo. Por esta razón es importante que todos los nodos estén sincronizados y
muestreen todos los bits del bus simultáneamente.
El arbitraje se produce durante los primeros bits de
una trama o mensaje, durante la transmisión de lo que se conoce como
identificador del mensaje. Al final del proceso de arbitraje sólo debe quedar
un nodo con el control del bus. Por ello cada nodo debe manejar identificadores
únicos. Cuando un nodo pierde el arbitraje aplaza la transmisión de su trama
para intentarlo de nuevo cuando finalice la trama actual. Conociendo los
identificadores de todos las tramas que intentan ser transmitidas, se puede
establecer de manera determinista el orden en el que son transmitidas. Así, una
trama CAN con identificador más bajo (mayor número de bits dominantes en las
primeras posiciones) tiene más prioridad que una trama con identificador más
alto.
b.
Tipos de trama
Existen cuatro tipos de trama CAN:
Trama de datos (data frame)
Trama remota (remote frame)
Trama de error (error frame)
Trama de sobrecarga (overload frame)
c.
Trama de datos
Una trama de datos CAN puede ser de uno de los dos
siguientes formatos:
Formato base: con identificador de 11 bits.
Formato extendido: con identificador de 29 bits.
El estándar dice que un controlador CAN debe aceptar
tramas en formato base, y puede o no aceptar tramas en formato extendido. Pero
en cualquier caso debe tolerar tramas en formato extendido. Es decir, que si un
controlador está configurado para que sólo acepte tramas en formato base no
debe lanzar un error cuando reciba una trama en formato extendido, sino que
simplemente no transmitirá el mensaje al procesador central.
i. Formato base
Trama CAN en formato base con las tensiones
eléctricas del bus y sin bits de relleno
El formato de la trama es el siguiente:
ii. Formato extendido
En el formato extendido los dos campos de
identificador se combinan para formar el identificador de 29 bits. El formato
de la trama es el siguiente:
d.
Trama remota
Generalmente los datos se transmiten como trama de
datos. Sin embargo, es posible que un nodo requiera unos datos desde otro nodo.
En ese caso, el primero puede enviar una trama remota para pedir el envío de
algún dato. El nodo que requiere la información envía entonces una trama con
una petición de transmisión remota (RTR = 1; recesivo). Las tramas remotas o de
petición de transmisión remota sólo se diferencian de las tramas de datos en
que las tramas remotas no tienen campo de datos.
e.
Trama de error
La trama de error es una trama especial que viola
las reglas de formato de las tramas CAN. Se transmite cuando un nodo detecta un
mensaje erróneo, y provoca que los demás nodos también transmitan una trama de
error. Un complejo mecanismo de contadores de error integrado en el controlador
asegura que un nodo no bloquee el bus con continuas tramas de error.
f.
Trama de
sobrecarga
Es similar a la trama de error en cuanto a que viola
el formato de las tramas CAN. Es transmitida por un nodo que se encuentra muy
ocupado y el bus proporciona entonces un retardo extra entre tramas.
g.
Separación entre
tramas
Las tramas de datos y remotas están separadas por al
menos tres bits recesivos (1). Después de eso, si si detecta un bit dominante
(0), es considerado como el inicio de una nueva trama. Las tramas de error y de
sobrecarga no respetan el espaciado entre tramas.
h.
Bits de relleno
(bit stuffing)
Para asegurar que hay suficientes transiciones
recesivo-dominante y garantizar así la sincronización, un bit de polaridad
opuesta es insertado después de cinco bits consecutivos de la misma polaridad.
Esta práctica es necesaria debido a la codificación
sin vuelta a cero del
protocolo CAN. Los bits insertados son eliminados por el receptor.
Todos los campos de la trama son rellenados a
excepción del delimitador CRC, el acuse de recibo ACK, y el fin de trama.
Cuando un nodo detecta seis bits consecutivos iguales en un campo susceptible
de ser rellenado lo considera un error y emite un error activo. Un error activo
consiste en seis bits consecutivos dominantes y viola la regla de relleno de
bits.
La regla de los bits de relleno implica que una trama
puede ser más larga de lo esperado si se suman los bits teóricos de cada campo
de la trama.
Trama CAN antes y después de la adición de bits de
relleno (en morado)
13.
Tipos de implementación
Teniendo en cuenta los elementos
básicos que conforman el bus CAN, existen tres tipos de implementación donde la
comunicación es igual para todas. La diferencia radica en los filtros de
aceptación, en la capacidad de almacenamiento de las tramas, en la
responsabilidad que asume el microcontrolador o el controlador CAN, etc., es
decir, en el hardware del nodo.
Las tres implementaciones incorporan
un microcontrolador, ya que este componente representa una herramienta de
hardware ideal para el desarrollo de aplicaciones con conexión CAN. Las tres
distintas implementaciones son:
14. Basic CAN
En esta
implementación existe un vínculo muy fuerte entre el controlador CAN y su
microcontrolador asociado. El microcontrolador será interrumpido para tratar
cada mensaje CAN que reciba. Aquí, el controlador CAN está restringido a un
único buffer de mensajes. El microcontrolador es quién lleva el peso de las
tareas haciendo así que el controlador CAN sea más simple y por tanto más
barato. Este método es bueno para nodos encargados de manejar informaciones
esporádicas, disminuyendo la ocupación del bus. Es la arquitectura más simple.
15. Full CAN
En este caso, el
controlador CAN tiene varios buffers. Además tiene la capacidad para filtrar
los tipos de mensaje que desee y puede transmitir y recibir mensajes sin ayuda
del microcontrolador. En definitiva, el controlador le reduce la carga al
microcontrolador. También se pueden habilitar interrupciones en el
microcontrolador para notificarle la llegada de un mensaje. Este tipo de
arquitectura consiste en un microcontrolador que incluya, no sólo sus
características propias sino además un módulo CAN con las características de un
microcontrolador CAN. El transceiver se sitúa de manera separada.
16. Serial Linked I/O
Los dispositivos Link
Input/Output (SLIOS) son dispositivos de bajo coste y baja inteligencia. Son
controladores sin capacidad de programación. Son interfaces pre configuradas
que requieren de un nodo CAN programable para controlarlo y son usados para
salidas y entradas lejanas del bus. Son dispositivos esclavos físicamente
direccionados con jumpers o con switches DIP.
17. Protocolos basados en
CAN
Los estándares del bus CAN sólo especifican las dos
primeras capas, la capa física y la capa de enlace de datos, según el modelo
OSI. Puesto que CAN no incluye tareas de capas superiores tales como
direccionamiento, control de acceso, transporte de bloques de datos mayores que
una trama, etc., han ido surgiendo protocolos en capas superiores basados en
CAN, sobre todo en la capa de aplicación.
Cabe mencionar los siguientes:
·
ARINC 825 (para la
aviación)
·
CANaerospace (para la
aviación)
·
CAN Kingdom
·
CANopen (para automatización industrial)
·
CCP / XCP
·
DeviceNet (para
automatización industrial)
·
EnergyBus (para
vehículos eléctricos)
·
GMLAN (de General
Motors)
·
ISO 15765-4
·
ISO 11783 o ISOBUS
(para la agricultura)
·
ISO 14229
·
SAE J1939 (para vehículos pesados)
·
ISO 11992 (para
trailers pesados)
·
MilCAN
·
NMEA 2000 (para la
industria marina)
·
OSEK
·
RV-C (para
vehículos recreacionales)
·
SafetyBUS p (para la
automatización industrial)
·
SmartCraft
·
Smart
Distributed System (SDS)
·
VSCP (para la automatización
de edificios)
18. Protocolo de comunicaciones
CAN
CAN fue desarrollado, inicialmente
para aplicaciones en los automóviles y por lo tanto la plataforma del protocolo
es resultado de las necesidades existentes en el área de la automoción. La
Organización Internacional para la Estandarización (ISO, International
Organization for Standarization) define dos tipos de redes CAN: una red de
alta velocidad (hasta 1 Mbps), bajo el estándar ISO 11898-2, destinada para
controlar el motor e interconectar la unidades de control electrónico (ECU); y
una red de baja velocidad tolerante a fallos (menor o igual a 125 Kbps), bajo
el estándar ISO 11519-2/ISO 11898-3, dedicada a la comunicación de los
dispositivos electrónicos internos de un automóvil como son control de puertas,
techo corredizo, luces y asientos. CAN es un protocolo de comunicaciones serie
que soporta control distribuido en tiempo real con un alto nivel de seguridad y
multiplexación. El establecimiento de una red CAN para interconectar los
dispositivos electrónicos internos de un vehículo tiene la finalidad de
sustituir o eliminar el cableado. Las ECUs, sensores, sistemas antideslizantes,
etc. se conectan mediante una red CAN a velocidades de transferencia de datos
de hasta 1 Mbps.
De todas las características
eléctricas que define la capa física, es importante conocer los denominados
niveles lógicos del bus.
Al tratarse de un bus diferencial,
éste está formado por dos señales y la diferencia que existe entre estas dos
señales determinan el estado del bus. Por tanto, el CAN dispone de dos niveles
lógicos.
Normalmente en los sistemas digitales
de dos niveles se conocen estos dos estados por nivel alto y nivel bajo, sin
embargo en este caso se denominan nivel dominante y nivel recesivo:
19. Dominante.
La tensión
diferencial entre los pines de comunicación (CAN_H - CAN_L) ha de ser del orden
de 2 V. Para conseguir esto es necesario que CAN_H tenga 3,5 V y CAN_L sea de
1,5 V (nominales). De hecho, si el voltaje de la línea CAN_H es al menos 0,9 V
mayor que CAN_L, entonces ya se detectará la condición de bit dominante.
20. Recesivo.
La tensión diferencial
entre los pines de comunicación (CAN_H - CAN_L) ha de ser del orden de 0 V.
Para conseguir esto es necesario que CAN_H y CAN_L tengan 2,5 V (nominales).
Aunque realmente el bus detectará una condición de recesivo si el voltaje de la
línea CAN_H no es más alto que el voltaje de la línea CAN_L más 0,5 V.
21. TOPOLOGIA
22. Desarrollo de un
ciclo de transmisión de datos:
Proveer datos
La unidad de control provee los datos
al controlador CAN, para su transmisión.
Transmitir datos
El transceptor CAN recibe los datos
del controlador CAN, los transforma en señales eléctricas y los transmite.
Recibir datos
Todas las demás unidades de control
que están interconectadas a través del CAN-Bus se transforman en receptores.
Revisar datos
Las unidades de control revisan si
necesitan los datos recibidos para la ejecución de sus funciones o si no los
necesitan.
Adoptar datos
Si se trata de datos importantes, la
unidad de control en cuestión los adopta y procesa; si no son importantes, los
desprecia.
23. Transmisión
de datos
¿Qué transmite el
CAN-Bus de datos?
En intervalos de tiempo breves
transmite un protocolo de enlace de datos entre las unidades de control.
Está compuesto por siete secciones.
Protocolo de enlace
de datos:
Consta de un gran número de bits
enlazados.
La cantidad de bits de un protocolo
depende del tamaño del campo de datos.
En la figura se muestra la estructura
de un protocolo de enlace de datos. Es idéntico en ambos cables del bus.
Para simplificar las explicaciones, en
el curso de este programa autodidáctico se muestra en las figuras un solo cable
del bus de datos.
24. Las siete secciones:
El campo de comienzo del datagrama
marca el comienzo del protocolo de enlace de los datos. En el cable CAN-High se
transmite un bit con aprox. 5 voltios (en función del sistema) y en el cable
CAN-Low se transmite un bit con aprox. 0 voltios.
En el campo de estado se define
la prioridad del protocolo. Si p. ej. hay dos unidades de control que intentan transmitir
simultáneamente su protocolo de datos, se concede la preferencia al protocolo de
prioridad superior.
En el campo de control
Se especifica la cantidad de
información que está contenida en el campo de datos. De esa forma, cada
receptor puede revisar si ha recibido la información completa.
En el campo de datos se
transmite la información para las demás unidades de control.
El campo de aseguramiento sirve
para detectar fallos en la transmisión.
En el campo de confirmación los
receptores señalizan al transmisor, que han recibido correctamente el protocolo
de enlace de datos. Si detectan cualquier fallo, informan de inmediato al
transmisor. A raíz de ello, el transmisor repite su transmisión.
Con el campo de fin del datagrama
finaliza el protocolo de datos. Es la última oportunidad posible para dar un
aviso de error, que conduzca a una repetición.
25. Funcionamiento
26. ¿Cómo se genera un
protocolo de datos?
El protocolo de datos consta de varios
bits enlazados.
Cada bit puede adoptar cada vez un
solo estado o bien los valores “0“ ó “1“.
He aquí un ejemplo
que explica la forma como se genera un estado operativo con los valores “0“ó“1“:
El interruptor de la
luz sirve
para encender o apagar la luz. Eso significa, que puede adoptar dos diferentes
estados
Estado del
interruptor de luz con el valor “1“
·
Contactos
cerrados
·
Lámpara
encendida
Estado del
interruptor de luz con el valor “0“
·
Contactos
abiertos
·
Lámpara
apagada
En el caso del CAN-Bus de datos, esto funciona
básicamente de la misma forma.
El transceptor también puede generar
dos diferentes estados operativos de un bit.
Estado del bit con el
valor “1“
·
Transceptor
abierto; conecta 5 voltios en el área de confort (área de tracción aprox. 2,5
voltios)
·
Tensión
en el cable del bus de datos: aprox. 5 voltios en el área de confort
(aprox. 2,5 voltios en el área de la tracción)
Estado del bit con el
valor “0“
·
Transceptor
cerrado; conecta a masa
·
Tensión
en el cable del bus de datos: aprox. 0 voltios
En la tabla siguiente se muestra la
forma en que se puede transmitir información por medio de dos bits enlazados.
Con dos bits se obtienen cuatro
diferentes variantes.
A cada variante se le puede asignar
una información específica, con carácter formal para todas las unidades de
control.
Explicación:
Si se transmite el primer bit con 0
voltios y el segundo también con 0 voltios, la información en la tabla
significa “El elevaluna se encuentra en movimiento“ o bien “La temperatura del
líquido refrigerante es de 10 °C“.
La tabla inferior muestra la forma
como aumenta la cantidad de información con cada bit adicional.
Cuanto mayor es el número de bits
enlazados, tanta más información pueden transmitir.
Con cada bit adicional se duplica la cantidad de la
posible información.
27. Adjudicación del CAN-Bus
de datos
Si varias unidades de control
pretenden transmitir simultáneamente su protocolo de datos, es preciso decidir
cuál de ellos se transmite primero.
El protocolo con la prioridad superior
se transmite primero.
Así p. ej., el protocolo de datos de
la unidad de control para ABS/EDS es, por motivos de seguridad, más importante
que el protocolo de la unidad de control para cambio automático, si los motivos
están referidos al confort de la conducción.
28. ¿Cómo se hace la
adjudicación?
Cada bit tiene un valor, al cual se le
asigna una validación. Puede ser de validación superior o inferior.
29. ¿Cómo se detecta la
prioridad de un protocolo de datos?
Cada protocolo de datos tiene asignado
un código de once bits en el campo de estado, en función de su prioridad.
En la tabla siguiente se muestran las prioridades
de tres protocolos de datos.
Las tres unidades de control empiezan simultáneamente
con la transmisión de su protocolo de datos. Al mismo tiempo comparan los bits,
de uno en uno, en el cable del bus.
Si una unidad de control transmite un
bit de validación inferior y detecta uno de validación superior, interrumpe la
transmisión y se transforma en receptor.
Ejemplo:
Primer bit:
- La unidad de control para ABS/EDS transmite
un bit de validación superior.
- La unidad de control para Motronic transmite
asimismo un bit de validación superior.
- La unidad de control para cambio automático
transmite un bit de validación inferior y detecta un bit de validación superior
en el cable del bus de datos. Con ello pierde la adjudicación y se transforma en
receptor.
Segundo bit:
- La unidad de control para ABS/EDS transmite
un bit de validación superior.
- La unidad de control para Motronic transmite
un bit de validación inferior y detecta un bit de validación superior en el cable
del bus de datos. Con ello pierde su adjudicación y se transforma en receptor.
Tercer bit:
- La unidad de control para ABS/EDS tiene
la máxima prioridad y obtiene por tanto la adjudicación del bus. Sigue transmitiendo
su protocolo de datos hasta el final.
Después de que la unidad de control
para
ABS/EDS ha transmitido su protocolo de
datos hasta el final, las demás vuelven a hacer el intento de transmitir su
propio protocolo de datos.
30. Fuentes parásitas
En el vehículo son fuentes parásitas
los componentes en cuyo funcionamiento se producen chispas o se abren o cierran
circuitos de corriente.
Otras fuentes parásitas son por
ejemplo teléfonos móviles y radioemisoras, o sea, todo aquello que genera ondas
electromagnéticas.
Estas ondas electromagnéticas pueden
influir en la transmisión de datos o incluso la pueden falsificar.
Para evitar influencias parásitas
sobre la transmisión de datos se procede a retorcer conjuntamente los dos alambres
del bus de datos.
De esa forma se evitan al mismo tiempo
emisiones perturbadoras procedentes del propio cable del bus de datos.
Las tensiones en ambos cables se
encuentran respectivamente contrapuestas.
Eso significa lo
siguiente:
Si uno de los cables del bus tiene
aplicada una tensión de aprox. 0 voltios, el otro tiene una de
aprox. 5 voltios y viceversa.
En virtud de ello, la suma de
tensiones es constante en cualquier momento y se anulan mutuamente los efectos
electromagnéticos de campo de ambos cables del bus.
El cable del bus está protegido contra
la penetración de emisiones parásitas y tiene un comportamiento casi neutro
hacia fuera.
31.
Conclusiones
La principal ventaja que representa este
protocolo es que permite compartir una gran cantidad de información entre las
unidades de control presentes en el sistema, lo que provoca una reducción
importante tanto del número de sensores utilizados como de la cantidad de
cables que componen la instalación eléctrica, tema de suma importancia
considerando las dimensiones que se manejan dentro de un automóvil. De esta
forma, aumentan considerablemente las funciones presentes en los sistemas del
automóvil donde se emplea el CAN-BUS sin aumentar los costes.
Los sistemas de seguridad que incorpora el
Can-Bus permiten que las probabilidades de fallo en el proceso de comunicación
sean muy bajas, pero sigue siendo posible que cables, contactos y las propias
unidades de mando presenten alguna disfunción. Sin embargo, una unidad de mando
averiada abonada al Can-Bus en ningún caso impide que el sistema trabaje con
normalidad, no será posible llevar a cabo las funciones que implican el uso de
información que proporciona la unidad averiada, pero sí todas las demás.
32. BIBIOGRAFIA
·
www.can-cia.org/can/
·
www.can-cia.org/can/protocol/history/history.html
·
www.serconet.com/usr/laureanog/HPV1B_31.HTM
·
www.semiconductors.bosch.de/de/20/can/index.asp
·
www.can.bosch.com
·
www.canbus.galeon.com/electronica/canbus.htm
·
www.ihs.com.es/
33. RESUMEN
Principales características del CAN
Transmisión de datos
¿Qué posibilidades existen
actualmente en el automóvil para una adecuada transmisión de datos?
Primera
posibilidad:
Cada información se intercambia a través de un cable propio.
Segunda posibilidad:
Toda la información se intercambia a través de dos cables
como máximo, que constituyen el CAN-Bus entre las unidades de control.
El CAN-Bus de datos representa
un modo de transmitir los datos entre
las unidades de control. Comunica las diferentes
unidades de control en un sistema global
interconectado.
Cuanto mayor es la cantidad de información que recibe una
unidad de control acerca del estado operativo del sistema global, tanto mejor
puede ajustar al conjunto sus funciones específicas.
CANBUS DE DATOS
CAN se basa en el
modelo productor/consumidor, el cual es un concepto, o paradigma de
comunicaciones de datos, que describe una relación entre un productor y uno o
más consumidores. CAN es un protocolo orientado a mensajes, es decir la información que se va a intercambiar se
descompone en mensajes, a los cuales se les asigna un identificador y se encapsulan en tramas para su transmisión. Cada mensaje tiene un
identificador único dentro de la red, con el cual los nodos deciden aceptar o no dicho mensaje. Dentro de sus
principales características se encuentran:
Prioridad de
mensajes.
Flexibilidad en la
configuración.
Recepción por
multidifusión (multicast) con sincronización de tiempos.
Sistema robusto en
cuanto a consistencia de datos.
Sistema
multimaestro.
Detección y
señalización de errores.
Retransmisión
automática de tramas erróneas
Distinción entre
errores temporales y fallas permanentes de los nodos de la red, y desconexión
autónoma de nodos defectuosos.
CAN fue
desarrollado inicialmente para aplicaciones en los automóviles y por lo tanto la plataforma del protocolo es
resultado de las necesidades existentes en el área de la automoción. La Organización
Internacional para la Estandarización (ISO, International
Organization for Standardization) define dos tipos de redes CAN: una red de
alta velocidad (hasta 1 Mbit/s), bajo el estándar ISO 11898-2, destinada para
controlar el motor e interconectar las unidades de control electrónico (ECU); y una red de baja velocidad tolerante a fallos
(menor o igual a 125 kbit/s), bajo el estándar ISO 11519-2/ISO 11898-3,
dedicada a la comunicación de los dispositivos electrónicos internos de un
automóvil como son control de puertas, techo corredizo, luces y asientos.
Ventajas del bus de datos:
Si el protocolo de datos ha de ser ampliado con información
suplementaria solamente se necesitan modificaciones en el software.
Un bajo porcentaje de errores mediante una verificación
continua de la información transmitida, de parte de las unidades de control, y
mediante protecciones adicionales en los protocolos de datos.
Menos sensores y cables de señales gracias al uso múltiple de
una misma señal de sensores.
Es posible una transmisión de datos muy rápida entre las
unidades de control.
Más espacio disponible, mediante unidades de control más
pequeñas y conectores más compactos para las unidades de control.
El CAN-Bus de datos está normalizado a nivel mundial. Por ese
motivo, también las unidades de control de diferentes fabricantes pueden
intercambiar datos.
El principio de la transmisión de datos
La transmisión de datos a través del CAN-Bus funciona de un
modo parecido al de una conferencia telefónica.
Un abonado (unidad de control) “modula“ sus datos, introduciéndolos
en la red, mientras que los demás “coescuchan“ estos datos.
Para ciertos abonados resultan interesantes estos datos, en
virtud de lo cual los utilizan.
A otros abonados pueden no interesarles esos datos
específicos.
¿Qué componentes integran el CAN-Bus de datos?
Consta de un controlador, un transceptor, dos elementos
finales del bus y dos cables para la transmisión de datos.
Con excepción de los cables del bus, todos los componentes
están alojados en las unidades de control. En el funcionamiento conocido de las
unidades de control no se ha modificado nada.
Asumen las siguientes funciones:
El controlador CAN recibe del
microprocesador, en la unidad de control,
los datos que han de ser transmitidos.
Los acondiciona y los pasa al transceptor CAN.
Asimismo recibe los datos procedentes del transceptor CAN,
los acondiciona asimismo y los pasa al microprocesador en la unidad de control.
El transceptor CAN es un
transmisor y un receptor. Transforma los
datos del controlador CAN en señales eléctricas y transmite éstas sobre los cables del CAN-Bus.
Asimismo recibe los datos y los transforma para el
controlador CAN.
El elemento final del bus de datos es una
resistencia. Evita que los datos transmitidos
sean devueltos en forma de eco de
los extremos de los cables y que se falsifiquen
los datos.
Los cables del bus de datos funcionan
de forma bidireccional y sirven para la
transmisión de los datos.
Se denominan con las designaciones CAN High (señales de nivel
lógico alto) y CAN-Low (señales de nivel lógico bajo).
Al trabajar con el CAN-Bus no se define el destinatario de
los datos. Se transmiten a bordo del bus y generalmente los reciben y analizan
todos los abonados.
Tipos de BUSCAN
La especificación
de los buses CAN esta recogida en el conjunto de estándares ISO 11898.
Dicha especificación define las dos primeras capas, la capa
física y la capa de enlace de datos, del modelo
OSI de
interconexión de sistemas. En base a dichos estándares, los buses CAN se pueden
clasificar en dos tipos:
CAN de alta
velocidad (hasta 1 Mbit/s).
CAN de baja
velocidad tolerante a fallos (hasta 125 kbit/s).
CAN de alta
velocidad
ISO 11898-2,
también llamado CAN de alta velocidad, usa un único bus lineal terminado en
cada extremo con sendas resistencias de 120 Ω. Es importante que el valor
de las resistencias de terminación coincida con la impedancia característica del bus, definida en 120 Ω, para evitar
reflexiones en la línea que podrían perturbar la comunicación. Con esta
configuración la velocidad del bus es de un máximo de 1 Mbit/s.
Bus CAN de alta
velocidad. ISO 11898-2
Extensiones del CAN
de alta velocidad
La Organización
Internacional para la Normalización (ISO) ha definido unas extensiones
opcionales de la capa física del bus CAN de alta velocidad (ISO 11898-2).
Dichas extensiones están descritas en sus respectivos estándares y son útiles
para sistemas con requisitos específicos. También definen la compatibilidad con
ISO 11898-2.
ISO 11898-5 especifica
la capa física con tasas de transmisión de hasta 1 Mbit/s para sistemas
que requieren bajo consumo de energía cuando no hay comunicaciones activas en
el bus de datos. ISO 11898-5 representa una extensión de ISO 11898-2
y aquellas implementaciones que cumplan cualquiera de estas dos normas, es
decir, los nodos CAN de alta velocidad con y sin bajo consumo de energía, son
interoperables entre sí y pueden coexistir en la misma red.5
ISO 11898-6 es
una extensión de ISO 11898-2 y de ISO 11898-5. Esta extensión
especifica la capa física de un bus CAN de hasta 1 Mbit/s, proporcionando
un método selectivo de activación de nodos (wake-up) usando tramas CAN
configurables. Las implementaciones de ISO 11898-6, ISO 11898-2 e
ISO 11898-5 son interoperables y se pueden usar en una misma red
simultáneamente.6
CAN de baja
velocidad tolerante a fallos
ISO 11898-3,
también llamado CAN de baja velocidad tolerante a fallos, puede utilizar un bus
lineal, un bus en estrella o múltiples buses en estrella conectados por un bus
lineal. El bus está terminado en cada nodo por una fracción de la resistencia
de terminación total. La resistencia de terminación total debería ser un valor
próximo a 100 Ω, pero no inferior a 100 Ω. Este estándar permite
velocidades de hasta 125 kbit/s.
Bus CAN de baja
velocidad tolerante a fallos. ISO 11898-3
CAN FD (flexible
data-rate)
En 2011 Bosch
comenzó a trabajar en una evolución del CAN. En 2012 lanzó CAN FD 1.0, que
ofrece un aumento de la tasa de transferencia después del arbitraje. De momento
(2015), sólo se ha definido la capa de enlace de datos del CAN FD. La
frecuencia se puede multiplicar hasta por 8 y el número máximo de bytes por trama
aumenta, siendo posible transmitir una mayor cantidad de datos en el mismo
tiempo.4 La especificación está recogida en el borrador de
norma ISO/DIS 11898-1:2015.
Capa Física
Define los aspectos
del medio físico para la transmisión de datos entre nodos de una red CAN, las
características materiales y eléctricas y la transmisión del flujo de bits a
través del bus.
Niveles de tensión
del bus
Niveles de tensión
del bus CAN
La transmisión de
señales en un bus CAN se lleva a cabo a través de dos cables trenzados. Las
señales de estos cables se denominan CAN_H (CAN high) y CAN_L (CAN
low) respectivamente. El bus tiene dos estados definidos: estado dominante
y estado recesivo. En estado recesivo, los dos cables del bus se encuentran al
mismo nivel de tensión (common-mode voltage), mientras que en estado
dominante hay una diferencia de tensión entre CAN_H y CAN_L de al menos
1,5 V. La transmisión de señales en forma de tensión diferencial, en comparación
con la transmisión en forma de tensiones absolutas, proporciona protección
frente a interferencias electromagnéticas.
La tensión en modo
común puede estar, según la especificación, en cualquier punto entre -2 y
7 V. La tensión diferencial del bus (la diferencia entre CAN_H y CAN_L) en
modo dominante debe estar entre 1,5 y 3 V. No se especifica, en cambio,
que la tensión de modo común cuando el bus está en modo recesivo deba estar
comprendida entre la tensión de CAN_L y la tensión de CAN_H cuando el bus está
en modo dominante. Esto permite la conexión directa entre nodos que operen a
distintas tensiones, e incluso nodos que sufran diferencia de tensión entre sus
respectivas tierras.7 8
Cable y conectores
Los distintos nodos
de un bus CAN deben estár interconectados mediante un par de cables trenzados
con una impedancia característicade 120 Ω, y puede ser cable
apantallado o sin
apantallar. El cable trenzado proporciona protección frente a interferencias
electromagnéticas externas. Y si, además, está apantallado, la protección será
mayor pero a cambio de un incremento en el coste del cable.
El estándar CAN, a
diferencia de otros estándares como el USB, no especifica ningún tipo de conector para el bus y por lo
tanto cada aplicación puede tener un conector distinto. Sin embargo, hay varios
formatos comúnmente aceptados como el conector D-sub de 9 pines, con la señal CAN_L en el pin 2 y la señal
CAN_H en el pin 7.
Las propiedades de
la línea de transmisión limitan el ancho de banda de los datos.
Orientativamente, se aceptan los siguientes valores como límite de longitud del
bus en función de la tasa de transferencia:9
Sincronización de
bits
Todos los nodos de
un bus CAN deben trabajar con la misma tasa de transferencia nominal. Dado que
el bus CAN no usa una señal de reloj separada, factores como la deriva
de reloj y la
tolerancia de los osciladores causan que haya una diferencia entre la tasa de
transferencia real de los distintos nodos. Por ello es necesario un método de
sincronización entre los nodos. La sincronización es especialmente importante
en la fase de arbitraje ya que durante el arbitraje cada nodo debe ser capaz de
observar tanto los datos transmitidos por él como los datos transmitidos por
los demás nodos.
El requisito mínimo
para un bus CAN es que dos nodos, estando en sendos extremos de la red con el
máximo retardo de propagación entre ellos, y cuyos controladores CAN tienen
unas frecuencias de reloj en los límites opuestos de la tolerancia de
frecuencia especificada, sean capaces de recibir y leer correctamente todos los
mensajes transmitidos por la línea. Esto incluye que todos los nodos muestreen
el valor correcto de cada bit.10
El controlador CAN
espera que una transición del bus de recesivo a dominante ocurra en un
determinado intervalo de tiempo. Si la transición no ocurre en el intervalo
esperado, el controlador reajusta la duración del siguiente bit en
consecuencia. Dicho ajuste se lleva a cabo dividiendo cada bit en intervalos
o cuantos de tiempo (del latín quantum) y
asignando los intervalos a los cuatro segmentos de cada bit: sincronización,
propagación, segmento de fase 1 y segmento de fase 2.
Capa de enlace de datos
El protocolo CAN
proporciona un acceso multimaestro al bus con una resolución determinista de
las colisiones. La capa de enlace de datos define el método de acceso al medio
así como los tipos de tramas para el envío de mensajes.
Acceso al medio
(arbitraje)
La especificación
del CAN usa los términos “dominante” y “recesivo” para referirse a los bits,
donde un bit dominante equivale al valor lógico 0 y un bit recesivo equivale al
valor lógico 1. El estado inactivo del bus es el estado recesivo (valor lógico
1). Cuando dos nodos intentan transmitir bits diferentes se denomina colisión y
el valor del bit dominante prevalece sobre el valor del bit recesivo. En ese
caso el nodo que intentaba transmitir el valor recesivo detecta la colisión y
pasa a modo pasivo, es decir, deja de transmitir para escuchar lo que transmite
el otro nodo. Por esta razón es importante que todos los nodos estén
sincronizados y muestreen todos los bits del bus simultáneamente.
El arbitraje se
produce durante los primeros bits de una trama o mensaje, durante la
transmisión de lo que se conoce como identificador del mensaje. Al final del
proceso de arbitraje sólo debe quedar un nodo con el control del bus. Por ello
cada nodo debe manejar identificadores únicos. Cuando un nodo pierde el
arbitraje aplaza la transmisión de su trama para intentarlo de nuevo cuando
finalice la trama actual. Conociendo los identificadores de todos las tramas
que intentan ser transmitidas, se puede establecer de manera determinista el
orden en el que son transmitidas. Así, una trama CAN con identificador más bajo
(mayor número de bits dominantes en las primeras posiciones) tiene más
prioridad que una trama con identificador más alto.
Tipos de trama
Existen cuatro
tipos de trama CAN:
Trama de datos (data
frame)
Trama remota (remote
frame)
Trama de error (error
frame)
Trama de sobrecarga
(overload frame)
Trama de datos
Una trama de datos
CAN puede ser de uno de los dos siguientes formatos:
Formato base: con
identificador de 11 bits.
Formato extendido:
con identificador de 29 bits.
El estándar dice
que un controlador CAN debe aceptar tramas en formato base, y puede o no
aceptar tramas en formato extendido. Pero en cualquier caso debe tolerar tramas
en formato extendido. Es decir, que si un controlador está configurado para que
sólo acepte tramas en formato base no debe lanzar un error cuando reciba una
trama en formato extendido, sino que simplemente no transmitirá el mensaje al
procesador central.
Formato base
Trama CAN en
formato base con las tensiones eléctricas del bus y sin bits de relleno
El formato de la
trama es el siguiente:
Formato extendido
En el formato
extendido los dos campos de identificador se combinan para formar el
identificador de 29 bits. El formato de la trama es el siguiente:
Trama remota
Generalmente los
datos se transmiten como trama de datos. Sin embargo, es posible que un nodo
requiera unos datos desde otro nodo. En ese caso, el primero puede enviar una
trama remota para pedir el envío de algún dato. El nodo que requiere la información
envía entonces una trama con una petición de transmisión remota (RTR = 1;
recesivo). Las tramas remotas o de petición de transmisión remota sólo se
diferencian de las tramas de datos en que las tramas remotas no tienen campo de
datos.
Trama de error
La trama de error
es una trama especial que viola las reglas de formato de las tramas CAN. Se
transmite cuando un nodo detecta un mensaje erróneo, y provoca que los demás
nodos también transmitan una trama de error. Un complejo mecanismo de
contadores de error integrado en el controlador asegura que un nodo no bloquee
el bus con continuas tramas de error.
Trama de sobrecarga
Es similar a la
trama de error en cuanto a que viola el formato de las tramas CAN. Es
transmitida por un nodo que se encuentra muy ocupado y el bus proporciona
entonces un retardo extra entre tramas.
Separación entre
tramas
Las tramas de datos
y remotas están separadas por al menos tres bits recesivos (1). Después de eso,
si si detecta un bit dominante (0), es considerado como el inicio de una nueva
trama. Las tramas de error y de sobrecarga no respetan el espaciado entre
tramas.
Bits de relleno (bit
stuffing)
Para asegurar que
hay suficientes transiciones recesivo-dominante y garantizar así la
sincronización, un bit de polaridad opuesta es insertado después de cinco bits
consecutivos de la misma polaridad. Esta práctica es necesaria debido a
la codificación sin vuelta a cero del protocolo CAN. Los bits insertados son eliminados
por el receptor.
Todos los campos de
la trama son rellenados a excepción del delimitador CRC, el acuse de recibo
ACK, y el fin de trama. Cuando un nodo detecta seis bits consecutivos iguales
en un campo susceptible de ser rellenado lo considera un error y emite un error
activo. Un error activo consiste en seis bits consecutivos dominantes y viola
la regla de relleno de bits.
La regla de los
bits de relleno implica que una trama puede ser más larga de lo esperado si se
suman los bits teóricos de cada campo de la trama.
Trama CAN antes y
después de la adición de bits de relleno (en morado)
Tipos de implementación
Teniendo en cuenta los elementos básicos que conforman el bus
CAN, existen tres tipos de implementación donde la comunicación es igual para
todas. La diferencia radica en los filtros de aceptación, en la capacidad de
almacenamiento de las tramas, en la responsabilidad que asume el
microcontrolador o el controlador CAN, etc., es decir, en el hardware del nodo.
Las tres implementaciones incorporan un microcontrolador, ya
que este componente representa una herramienta de hardware ideal para el
desarrollo de aplicaciones con conexión CAN. Las tres distintas
implementaciones son:
Basic CAN
En esta implementación existe un vínculo muy fuerte entre el
controlador CAN y su microcontrolador asociado. El microcontrolador será
interrumpido para tratar cada mensaje CAN que reciba. Aquí, el controlador CAN
está restringido a un único buffer de mensajes. El microcontrolador es quién
lleva el peso de las tareas haciendo así que el controlador CAN sea más simple
y por tanto más barato. Este método es bueno para nodos encargados de manejar
informaciones esporádicas, disminuyendo la ocupación del bus. Es la
arquitectura más simple.
Full CAN
En este caso, el controlador CAN tiene varios buffers. Además
tiene la capacidad para filtrar los tipos de mensaje que desee y puede transmitir
y recibir mensajes sin ayuda del microcontrolador. En definitiva, el
controlador le reduce la carga al microcontrolador. También se pueden habilitar
interrupciones en el microcontrolador para notificarle la llegada de un
mensaje. Este tipo de arquitectura consiste en un microcontrolador que incluya,
no sólo sus características propias sino además un módulo CAN con las
características de un microcontrolador CAN. El transceiver se sitúa de manera
separada.
Serial Linked I/O
Los dispositivos Link Input/Output (SLIOS) son dispositivos
de bajo coste y baja inteligencia. Son controladores sin capacidad de
programación. Son interfaces pre configuradas que requieren de un nodo CAN
programable para controlarlo y son usados para salidas y entradas lejanas del
bus. Son dispositivos esclavos físicamente direccionados con jumpers o con
switches DIP.
Protocolos basados en CAN
Los estándares del
bus CAN sólo especifican las dos primeras capas, la capa física y la capa de
enlace de datos, según el modelo OSI. Puesto que CAN no incluye tareas de capas
superiores tales como direccionamiento, control de acceso, transporte de
bloques de datos mayores que una trama, etc., han ido surgiendo protocolos en
capas superiores basados en CAN, sobre todo en la capa de aplicación.
Cabe mencionar los
siguientes:
ARINC 825 (para la aviación)
CANaerospace (para la aviación)
CANopen (para automatización industrial)
DeviceNet (para automatización industrial)
EnergyBus (para vehículos eléctricos)
Protocolo de comunicaciones CAN
CAN fue desarrollado, inicialmente para aplicaciones en los
automóviles y por lo tanto la plataforma del protocolo es resultado de las
necesidades existentes en el área de la automoción. La Organización
Internacional para la Estandarización (ISO, International Organization for
Standarization) define dos tipos de redes CAN: una red de alta velocidad
(hasta 1 Mbps), bajo el estándar ISO 11898-2, destinada para controlar el motor
e interconectar la unidades de control electrónico (ECU); y una red de baja
velocidad tolerante a fallos (menor o igual a 125 Kbps), bajo el estándar ISO
11519-2/ISO 11898-3, dedicada a la comunicación de los dispositivos
electrónicos internos de un automóvil como son control de puertas, techo
corredizo, luces y asientos. CAN es un protocolo de comunicaciones serie que
soporta control distribuido en tiempo real con un alto nivel de seguridad y
multiplexación. El establecimiento de una red CAN para interconectar los
dispositivos electrónicos internos de un vehículo tiene la finalidad de
sustituir o eliminar el cableado. Las ECUs, sensores, sistemas antideslizantes,
etc. se conectan mediante una red CAN a velocidades de transferencia de datos
de hasta 1 Mbps.
De todas las características eléctricas que define la capa física,
es importante conocer los denominados niveles lógicos del bus.
Al tratarse de un bus diferencial, éste está formado por dos
señales y la diferencia que existe entre estas dos señales determinan el estado
del bus. Por tanto, el CAN dispone de dos niveles lógicos.
Normalmente en los sistemas digitales de dos niveles se
conocen estos dos estados por nivel alto y nivel bajo, sin embargo en este caso
se denominan nivel dominante y nivel recesivo:
Dominante.
La tensión diferencial entre los pines de comunicación (CAN_H
- CAN_L) ha de ser del orden de 2 V. Para conseguir esto es necesario que CAN_H
tenga 3,5 V y CAN_L sea de 1,5 V (nominales). De hecho, si el voltaje de la
línea CAN_H es al menos 0,9 V mayor que CAN_L, entonces ya se detectará la
condición de bit dominante.
Recesivo.
La tensión diferencial entre los pines de comunicación (CAN_H
- CAN_L) ha de ser del orden de 0 V. Para conseguir esto es necesario que CAN_H
y CAN_L tengan 2,5 V (nominales). Aunque realmente el bus detectará una
condición de recesivo si el voltaje de la línea CAN_H no es más alto que el
voltaje de la línea CAN_L más 0,5 V.
TOPOLOGIA
Desarrollo de un ciclo de transmisión de datos:
Proveer datos
La unidad de control provee los datos al controlador CAN,
para su transmisión.
Transmitir datos
El transceptor CAN recibe los datos del controlador CAN, los
transforma en señales eléctricas y los transmite.
Recibir datos
Todas las demás unidades de control que están interconectadas
a través del CAN-Bus se transforman en receptores.
Revisar datos
Las unidades de control revisan si necesitan los datos recibidos
para la ejecución de sus funciones o si no los necesitan.
Adoptar datos
Si se trata de datos importantes, la unidad de control en
cuestión los adopta y procesa; si no son importantes, los desprecia.
Transmisión de datos
¿Qué transmite el CAN-Bus de datos?
En intervalos de tiempo breves transmite un protocolo de
enlace de datos entre las unidades de control.
Está compuesto por siete secciones.
Protocolo de enlace de datos:
Consta de un gran número de bits enlazados.
La cantidad de bits de un protocolo depende del tamaño del
campo de datos.
En la figura se muestra la estructura de un protocolo de enlace
de datos. Es idéntico en ambos cables del bus.
Para simplificar las explicaciones, en el curso de este programa
autodidáctico se muestra en las figuras un solo cable del bus de datos.
Las siete secciones:
El campo de comienzo
del datagrama marca el comienzo del protocolo de enlace de los datos. En
el cable CAN-High se transmite un bit con aprox. 5 voltios (en función del sistema)
y en el cable CAN-Low se transmite un bit con aprox. 0 voltios.
En el campo de estado
se define la prioridad del protocolo. Si p. ej. hay dos unidades de control que
intentan transmitir simultáneamente su protocolo de datos, se concede la
preferencia al protocolo de prioridad superior.
En el campo de
control
Se especifica la cantidad de información que está contenida
en el campo de datos. De esa forma, cada receptor puede revisar si ha recibido
la información completa.
En el campo de datos
se transmite la información para las demás unidades de control.
El campo de
aseguramiento sirve para detectar fallos en la transmisión.
En el campo de
confirmación los receptores señalizan al transmisor, que han recibido
correctamente el protocolo de enlace de datos. Si detectan cualquier fallo,
informan de inmediato al transmisor. A raíz de ello, el transmisor repite su
transmisión.
Con el campo de fin
del datagrama finaliza el protocolo de datos. Es la última oportunidad
posible para dar un aviso de error, que conduzca a una repetición.
Funcionamiento
¿Cómo se genera un protocolo de datos?
El protocolo de datos consta de varios bits enlazados.
Cada bit puede adoptar cada vez un solo estado o bien los
valores “0“ ó “1“.
Fuentes parásitas
En el vehículo son fuentes parásitas los componentes en cuyo
funcionamiento se producen chispas o se abren o cierran circuitos de corriente.
Otras fuentes parásitas son por ejemplo teléfonos móviles y
radioemisoras, o sea, todo aquello que genera ondas electromagnéticas.
Estas ondas electromagnéticas pueden influir en la transmisión
de datos o incluso la pueden falsificar.
Para evitar influencias parásitas sobre la transmisión de
datos se procede a retorcer conjuntamente los dos alambres del bus de datos.
De esa forma se evitan al mismo tiempo emisiones
perturbadoras procedentes del propio cable del bus de datos.
Gracias por la información,muy interesante,encontre esta informacion buscando el porque en la toma de scaner que tiene 16 pines solamente le llegan cuatro cables,esto en un camion Jac (chino) y creo que es por que el sistema es can bus.
ResponderBorrar