CAN 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 protocolo de comunicaciones CAN proporciona los siguientes beneficios:
- Es un protocolo de comunicaciones normalizado, con lo que se simplifica y economiza la tarea de comunicar subsistemas de diferentes fabricantes sobre una red común o bus.
- El procesador anfitrión (host) delega la carga de comunicaciones a un periférico inteligente, por lo tanto el procesador anfitrión dispone de mayor tiempo para ejecutar sus propias tareas.
- Al ser una red multiplexada, reduce considerablemente el cableado y elimina las conexiones punto a punto.
Para simplificar aun más la electrónica del coche se puede utilizar una subred más simple, que se conecta a la red CAN, llamada LIN.
Principales características de CAN
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 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.
Protocolo de comunicaciones CAN
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 acuerdo al modelo de referencia OSI (Open Systems Interconnection), la arquitectura de protocolos CAN incluye tres capas: física, de enlace de datos y aplicación, además de una capa especial para gestión y control del nodo llamada capa de supervisor.
- Capa física: define los aspectos del medio físico para la transmisión de datos entre nodos de una red CAN, los más importantes son niveles de señal, representación, sincronización y tiempos en los que los bits se transfieren al bus. La especificación del protocolo CAN no define una capa física, sin embargo, los estándares ISO 11898 establecen las características que deben cumplir las aplicaciones para la transferencia en alta y baja velocidad.
- Capa de enlace de datos: define las tareas independientes del método de acceso al medio, además debido a que una red CAN brinda soporte para procesamiento en tiempo real a todos los sistemas que la integran, el intercambio de mensajes que demanda dicho procesamiento requiere de un sistema de transmisión a frecuencias altas y retrasos mínimos. En redes multimaestro, la técnica de acceso al medio es muy importante ya que todo nodo activo tiene los derechos para controlar la red y acaparar los recursos. Por lo tanto 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
Cuando un nodo necesita enviar información a través de una red CAN, puede ocurrir que varios nodos intenten transmitir simultáneamente. CAN resuelve lo anterior al asignar prioridades mediante el identificador de cada mensaje, donde dicha asignación se realiza durante el diseño del sistema en forma de números binarios y no puede modificarse dinámicamente. El identificador con el menor número binario es el que tiene mayor prioridad.
El método de acceso al medio utilizado es el de Acceso Múltiple por Detección de Portadora, con Detección de Colisiones y Arbitraje por Prioridad de Mensaje (CSMA/CD+AMP, Carrier Sense Multiple Access with Collision Detection and Arbitration Message Priority). De acuerdo con este método, los nodos en la red que necesitan transmitir información deben esperar a que el bus esté libre (detección de portadora); cuando se cumple esta condición, dichos nodos transmiten un bit de inicio (acceso múltiple). Cada nodo lee el bus bit a bit durante la transmisión de la trama y comparan el valor transmitido con el valor recibido; mientras los valores sean idénticos, el nodo continúa con la transmisión; si se detecta una diferencia en los valores de los bits, se lleva a cabo el mecanismo de arbitraje.
CAN establece dos formatos de tramas de datos (data frame) que difieren en la longitud del campo del identificador, las tramas estándares (standard frame) con un identificador de 11 bits definidas en la especificación CAN 2.0A, y las tramas extendidas (extended frame) con un identificador de 29 bits definidas en la especificación CAN 2.0B.
Para la transmisión y control de mensajes CAN, se definen cuatro tipos de tramas: de datos, remota (remote frame), de error (error frame) y de sobrecarga (overload frame). Las tramas remotas también se establecen en ambos formatos, estándar y extendido, y tanto las tramas de datos como las remotas se separan de tramas precedentes mediante espacios entre tramas (interframe space).
En cuanto a la detección y manejo de errores, un controlador CAN cuenta con la capacidad de detectar y manejar los errores que surjan en una red. Todo error detectado por un nodo, se notifica inmediatamente al resto de los nodos.
- Capa de supervisor: La sustitución del cableado convencional por un sistema de bus serie presenta el problema de que un nodo defectuoso puede bloquear el funcionamiento del sistema completo. Cada nodo activo transmite una bandera de error cuando detecta algún tipo de error y puede ocasionar que un nodo defectuoso pueda acaparar el medio físico. Para eliminar este riesgo el protocolo CAN define un mecanismo autónomo para detectar y desconectar un nodo defectuoso del bus, dicho mecanismo se conoce como aislamiento de fallos.
- Capa de aplicación: Existen diferentes estándares que definen la capa de aplicación; algunos son muy específicos y están relacionados con sus campos de aplicación. Entre las capas de aplicación más utilizadas cabe mencionar CAL, CANopen, DeviceNet, SDS (Smart Distributed System), OSEK, CANKingdom.
Transmisiones de datos hacia otros sistemas
Relación general del sistema
La aplicación masiva de sistemas electrónicos de control y regulación en el vehículo motorizado, como por ejemplo:
- Control del cambio
- Control electrónico del motor o de la bomba de inyección.
- Sistema antibloqueo (ABS).
- Sistema de tracción antideslizante (ASR).
- Control de estabilidad (ESP).
- Regulación del momento de arrastre del motor (MSR).
- Inmovilizador.
- Ordenador de a bordo, etc.
requieren una interconexión en red de las diversas unidades de control. El intercambio de informaciones entre los sistemas reduce la cantidad de sensores y mejora el aprovechamiento de los sistemas individuales. Las interfaces de los sistemas de comunicación desarrollados especialmente para vehículos motorizados, pueden subdividirse en dos categorías:
- Interfaces convencionales
- Interfaces en serie como el CAN (Controller Area Network).
Transmisión de datos convencional
Se caracteriza por el hecho de que a cada señal le esta asignada una conducción individual. Las señales binarias solamente pueden transmitirse mediante dos estados "0" o "1" (código binario) (por ejemplo compresor de aire acondicionado "conectado" o "desconectado").
Mediante relaciones de impulsos pueden transmitirse magnitudes variables continuamente (ejemplo: estado del sensor del pedal del acelerador).
El incremento del intercambio de datos entre los componentes electrónicos en el vehículo motorizado, ya no puede ser realizado razonablemente con interfaces convencionales.
Transmisión de datos en serie (CAN)
Los problemas en el intercambio de datos a través de interfaces convencionales, pueden resolverse mediante la aplicación de sistemas bus (vías colectoras de datos), por ejemplo CAN, un sistema bus desarrollado especialmente para vehículos motorizados. Bajo la condición de que las unidades de control electrónicas tengan un interfafaz en serie CAN.
Existen tres campos de aplicación esenciales para el sistema CAN en el vehículo motorizado:
- Acoplamiento de unidades de control.
- Electrónica de la carrocería y de confort.
- Comunicación móvil.
Acoplamiento de unidades de control
Se acoplan entre si sistemas electrónicos como el control del motor o de bomba de inyección, sistema antibloqueo ABS, sistema de tracción antideslizante ASR o regulación de la dinámica de marcha ESP, control electrónico de cambio, etc. Las unidades de control están aquí unidas como estaciones con igualdad de derechos, mediante una estructura de bus lineal. Esta estructura presenta la ventaja de que en caso de fallar una estación, el sistema bus continua estando plenamente a disposición de las demás estaciones. En comparación con otras disposiciones lógicas (estructuras anulares o estructuras en estrella) se reduce así esencialmente la probabilidad de un fallo total. En el caso de estructuras anulares o en estrella, el fallo de una estación o de la unidad central, conduce a un fallo total.
Direccionamiento referido al contenido
El sistema bus CAN no asigna direcciones a las diversas estaciones, sino que asigna a cada "mensaje" un "identificador" fijo de 11 o 29 bits. Este identificador representa el contenido del mensaje (ejemplo: numero de revoluciones del motor).
Una estación emplea únicamente aquellos datos cuyo identificador correspondiente esta almacenado en la lista de mensajes a recibir. Todos los demás datos se ignoran simplemente.
El direccionamiento referido al contenido hace posible enviar una señal a varias estaciones, mandando un sensor su señal, directamente o a través de una unidad de control, a la red bus que la distribuye entonces correspondientemente. Ademas es posible así realizar muchas variantes de equipamiento, porque pueden añadirse por ejemplo: estaciones adicionales a un sistema bus CAN ya existente.
Prioridad
El identificador determina junto al contenido de datos simultáneamente la prioridad (preferencia) del mensaje al realizar la emisión. Una señal que varia rápidamente (ejemplo: el numero de revoluciones del motor) debe transmitirse también con gran rapidez, y recibe por lo tanto una prioridad mayor que una señal que varia relativamente lenta (ejemplo: temperatura del motor).
Asignación de bus
Cuando esta libre el bus puede comenzar cualquier estación a transmitir su mensaje. Si comienzan a emitir varias estaciones simultáneamente, se impone el mensaje de mayor prioridad, sin que se produzca una perdida de tiempo o de bit. Los emisores con mensajes de menor prioridad se convierten automáticamente en receptores y repiten su intento de emisión, en cuanto esta libre otra vez el bus.
Formato de mensaje
Para la transmisión en el bus se crea un marco de datos (Data Frame), cuya longitud abarca como máximo 130 bit (formato estándar) o 150 bit (formato ampliado). De esta forma queda asegurado que el tiempo de espera hasta la siguiente transmisión, posiblemente muy urgente, se mantenga siempre corto. El "Data Frame" consta de siete campos sucesivos.
- "Start of Frame" marca de comienzo de un mensaje y sincroniza todas las estaciones.
- "Arbitration Field" consta del identificador del mensaje y un bit de control adicional. Durante la transmisión de este campo, el emisor comprueba en cada bit si todavía esta autorizado para emitir o si esta emitiendo otra estación de mayor prioridad. El bit de control decide si el mensaje se trata de un "Data Frame" o de un "Remote Frame".
- "Control Field" contiene el código sobre la cantidad de bytes de datos en el "Data Field".
- "Data Field" dispone de un contenido de información entre 0 y 8 bytes. Un mensaje de longitud 0 puede emplearse para la sincronización de procesos distribuidos.
- "CRC Field" contiene una palabra de protección de marco para el reconocimiento de posibles anomalías de transmisión producidas.
- "Ack Field" contiene una señal de confirmación de todos los receptores que han recibido el mensaje sin fallos.
- "End of Frame" marca el final del mensaje.
Diagnostico integrado
El sistema bus CAN dispone de una serie de mecanismos de control para el reconocimiento de anomalías. Pertenece aquí por ejemplo: la señal de seguridad en el "Data Frame" y el "Monitoring", en la que cada emisor recibe otra vez su propio mensaje, pudiendo reconocer entonces posibles divergencias.
Si una estación registra una anomalía, emite entonces un "flag de error", que detiene la transmisión en curso. De esta forma se impide que otras estaciones reciban el mensaje erróneo.
En caso de una estación defectuosa podría ocurrir sin embargo que todos los mensajes, es decir también los mensajes sin errores, sean interrumpidos con un flag de error. Para evitar esto, el sistema bus CAN esta equipado con un mecanismo que puede distinguir entre anomalias ocasionales y anomalias permanentes y pueden localizar fallos de estación. Esto se produce mediante una evaluación estadística de las situaciones de error.
Estandarización
El sistema CAN fue estandarizado por la organización normativa internacional ISO, para el intercambio de datos en vehículos motorizados:
- Para aplicación hasta 125 kBit/s, como ISO 11 519-2.
- Para aplicaciones superiores a 125 kBit/s como ISO 11 898.