Protocolos Industriales
10. Bus CAN
CAN (siglas del inglés 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 entornos distribuidos. Además ofrece
una solución a la gestión de la comunicación entre múltiples CPUs (unidades centrales de proceso).
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 11898-1:2015, Part 1: Data link layer and physical signalling
ISO 11898-2:2016, Part 2: High-speed medium access unit
ISO 11898-3:2006. Part 3: Low-speed, fault-tolerant, medium-dependent interface. Este estándar ha sido revisado y confirmado en 2015
ISO 11898-4:2004, Part 4: Time-triggered communication. Este estándar ha sido revisado y confirmado en 2013
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:2016, Conformance test plan
El protocolo de comunicaciones CAN proporciona los siguientes beneficios:
- Ofrece alta inmunidad a las interferencias, habilidad para el autodiagnóstico y la reparación de errores de datos.
- 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, excepto en los enganches.
Funcionamiento
El bus CAN utiliza dos cables dedicados para la comunicación. Los cables se llaman CAN alto y CAN bajo. El controlador CAN está conectado a todos los componentes de la red a través de estos dos cables. Cada nodo de red tiene un identificador único. Todas las ECU en el bus están efectivamente en paralelo y es por eso que todos los nodos ven todos los datos, todo el tiempo. Un nodo solo responde cuando detecta su propio identificador. Los nodos individuales se pueden eliminar de la red sin afectar a los otros nodos.
Cuando el bus CAN está en modo inactivo, ambas líneas transportan 2.5V. Cuando se transmiten bits de datos, la línea alta CAN pasa a 3.75V y la baja CAN baja a 1.25V, generando un diferencial de 2.5V entre las líneas: cada una de las líneas CAN está referenciada a la otra, no a la tierra del vehículo . Dado que la comunicación se basa en un diferencial de voltaje entre las dos líneas de bus, el bus CAN NO es sensible a picos inductivos, campos eléctricos u otros ruidos. Esto hace que el bus CAN sea una opción confiable para comunicaciones en red en equipos móviles.
La alimentación CAN se puede suministrar a través del bus CAN. O una fuente de alimentación para los módulos de bus CAN se puede organizar por separado. El cableado de la fuente de alimentación puede estar totalmente separado de las líneas del bus CAN, lo que da como resultado que se utilicen dos cables de 2 hilos para la red, o puede integrarse en el mismo cable que las líneas del bus CAN, lo que da como resultado un solo cable de 4 hilos.
La naturaleza de las comunicaciones del bus CAN permite que todos los módulos transmitan y reciban datos en el bus. Cualquier módulo puede transmitir datos, que recibe el resto de los módulos. Es muy importante que el ancho de banda del bus CAN se asigne primero a los sistemas más críticos para la seguridad.
Los nodos generalmente se asignan a uno de varios niveles de prioridad. Por ejemplo, los controles del motor, los frenos y las bolsas de aire son muy importantes desde el punto de vista de la seguridad, y los comandos para activar estos sistemas tienen la máxima prioridad. Esto significa que se actuarán antes que los menos críticos. Los dispositivos de audio y navegación suelen ser de prioridad media, y la activación de la iluminación puede ser la prioridad más baja. Un proceso conocido como arbitraje decide la prioridad de cualquier mensaje.
La mayoría de las redes CAN de vehículos motorizados ( trenes, autos, motos) funcionan a una velocidad de bus de 250 kB / so 500 kB / s. Los últimos vehículos utilizan hasta 3 redes CAN separadas, generalmente de diferentes velocidades conectadas entre sí por puertas de enlace. Los datos en una de las tres redes están disponibles para las otras dos redes. Las funciones de gestión del motor generalmente se encuentran en un bus de alta velocidad a 500 kB / sy los sistemas de chasis funcionan en un bus CAN más lento de 250 kB / s. Otras funciones, como luces, satnav y espejos, se encuentran en un bus LIN (red de interconexión local) de baja velocidad y un solo cable.
¿Porque CAN-Bus es muy superior a otros protocolos como los basados en RS232?:1. VELOCIDAD: Más Rápido, hasta 1 megabit por segundo, (CAN-FD hasta 25 Mbit/s)
2. SEGURIDAD en los datos comunicados con un CRC (Cyclic Redundancy Check) largo comparado con los datos comunicados, algo que resulta en una distancia Hamming de 6, lo que convierte CAN bus a una de las redes más seguras en el mercado…
El bus CAN es tan seguro que puede llevar las señales del pedal de freno de cualquier vehículo a la unidad de servo-freno sin riesgo de mal comunicación.
La especificación del reto por Robert Bosch era clara: Queremos diseñar el mejor sistema de comunicación para vehículos, que solo admitían un fallo cada 100 años por cada vehículo.
No existe ningún concepto de comunicación electrónica 100% infalible y perfecta, en todo tipo de hardware se puede introducir ruido eléctrico (EMC) con capacidad de dañar los bits transmitidos. Para evitarlo, se transmite una cantidad de información redundante (el CRC) junto con los datos, con la intención de comprobar la integridad del paquete de datos recibido.
El CRC tiene que ser pequeño comparado con el “pay-load” de datos (datos de usuario) para mantener un buen rendimiento del sistema de comunicación
Tampoco existe un CRC perfecto e infalible! Un buen sistema de comunicación consiste de un buen hardware (muy seguro en sí) y un buen CRC para la aplicación; la probabilidad de error en el hardware y la probabilidad de que el CRC no detecte un error en los datos “payload” determina la calidad final del sistema de comunicación. Esta regla es general y vale para todos los sistemas de comunicación.
3. INTELIGENCIA: Más Inteligente en su concepto de Data-Producer (todo Broadcast) y Data-Consumer.
Debido al inteligente concepto de Data Producer / Consumer en CAN, un concepto que evita transmitir multiples veces los mismos datos a diferentes destinos, los destinos ven todo los datos en el bus y cogen los que necesita cuando se presentan. Este hecho hace muchísimo más eficaz el ancho de banda de CAN y por eso CAN es ampliamente usado en sistemas de movimiento y posicionamiento con el protocolo CANopen de CiA.
La ventaja en el concepto CAN radica en que cada estación CAN puede transmitir en cualquier momento y sin riesgo de colisión o rotura de datos debido a su inteligente arbitraje (permiso para datos importantes primero).
Además todos los consumidores de datos pueden ver todos los datos y coger los que necesitan. Cada dato tiene un Identificador diferente, y a la vez este Identificador indica la Prioridad de los datos (dos cosas en una).
4. ROBUSTEZ: El bus CAN tiene una limitación en distancia, pero es ideal para una Red-Local Robusta
Las Características Originales del CAN:
- 11-Bits de identificador (2048 diferentes) incluyendo en la ID, prioridad del mensaje.
- 0-8 bytes de datos y 16-bit CRC resultando en una Distancia de Hamming de 6, ofreciendo alto nivel de seguridad contra errores en la comunicación.
- CAN-Bus ganó éxito basado en su modelo Multi-Master Data-Producer / Data-Consumer versus otros modelos de Data-Origen / Data-Destination.
- Velocidad de comunicación 10 Kbit/ – 1 Mbit/s – 25Mbit/s (CAN FD). El máximo está determinado por la velocidad de las señales en el cable y por la longitud máxima del cable. Cada bit transmitido tiene que ser visible en todo el bus, es la base del arbitraje no destructivo en CAN entre bits Dominantes y bits Recesivos, que aporta la gran parte de la calidad del diseño del concepto CAN.