¿Qué es CAN bus en autos?

El Bus CAN: La Red Neuronal de tu Coche

27/05/2024

Valoración: 3.54 (9428 votos)

En el mundo de los vehículos modernos, la complejidad electrónica ha crecido exponencialmente. Ya no se trata solo de un motor y algunas luces; hoy en día, un coche es una red sofisticada de unidades de control electrónico, o ECUs, que gestionan desde el sistema de frenos ABS hasta el aire acondicionado. Para que todas estas unidades puedan “hablar” entre sí de manera eficiente y fiable, se necesita un lenguaje común y una infraestructura robusta. Aquí es donde entra en juego el protocolo Bus CAN.

El Bus CAN, acrónimo de Controller Area Network, es un protocolo de comunicación basado en mensajes diseñado específicamente para permitir que las ECUs de los automóviles, así como otros dispositivos, se comuniquen entre sí de una manera fiable y priorizada. A diferencia de los sistemas de cableado punto a punto tradicionales, donde cada componente necesitaba un cableado dedicado para comunicarse con otro, el Bus CAN utiliza una red compartida, reduciendo drásticamente la cantidad de cables necesarios.

¿Qué autos necesitan CAN Bus?
Tal como hemos comentado anteriormente, los vehículos fabricados del 2005 en adelante tienen presente el protocolo CAN bus, así que mediante el año del vehículo puedes tener una idea. Si es un vehículo reciente, lo más seguro es que sí que disponga de CAN bus por lo que sí dará datos.
Índice de Contenido

¿Qué es Exactamente el Bus CAN?

El Bus CAN es un estándar de comunicación serial que permite a múltiples microcontroladores y dispositivos comunicarse entre sí sin la necesidad de un ordenador central. Cada dispositivo o 'nodo' en la red CAN puede enviar y recibir mensajes. Estos mensajes son recibidos por todos los nodos conectados a la red, pero cada nodo decide si el mensaje es relevante para él basándose en un identificador. Este identificador también determina la prioridad del mensaje en la red.

Este protocolo es particularmente robusto frente a interferencias eléctricas y electromagnéticas, lo que lo hace ideal para el entorno ruidoso de un automóvil. Está estandarizado bajo una serie de normas internacionales, principalmente ISO 11898, lo que garantiza su compatibilidad y fiabilidad a nivel mundial.

El Avance: CAN FD (Flexible Data Rate)

Con la creciente cantidad de datos generados por los sensores y sistemas avanzados de los vehículos (como los sistemas de asistencia a la conducción o la conducción autónoma), surgió la necesidad de una versión más rápida y con mayor capacidad del Bus CAN. Aquí es donde aparece CAN FD, o Flexible Data Rate (Tasa de Datos Flexible).

CAN FD aumenta la longitud estándar de cada mensaje en un 800%, pasando de 8 bytes a 64 bytes. Además, la tasa máxima de datos también se incrementa significativamente, de 1 Mbps a hasta 8 Mbps en ciertas configuraciones. La flexibilidad reside en que las ECUs pueden cambiar dinámicamente sus tasas de transmisión y seleccionar tamaños de mensaje mayores o menores según los requisitos en tiempo real de la aplicación.

A pesar de estas mejoras sustanciales, una ventaja clave de CAN FD es que es compatible con versiones anteriores del estándar CAN 2.0. Esto facilita la transición e implementación en los vehículos, permitiendo que los sistemas más nuevos coexistan con los antiguos. Aunque actualmente se encuentra principalmente en vehículos de alta gama, se espera que CAN FD se extienda a la mayoría de los automóviles en el futuro cercano debido a sus capacidades mejoradas.

Ventajas Clave del Bus CAN

La adopción generalizada del Bus CAN en la industria automotriz y en muchas otras aplicaciones se debe a una serie de beneficios fundamentales:

  • Simplicidad y Bajo Costo: Las ECUs se comunican a través de un único sistema CAN en lugar de complejas líneas de señal analógicas directas. Esto reduce errores, peso, cableado y costos. Los chipsets CAN son asequibles y están ampliamente disponibles.
  • Centralización: El Bus CAN proporciona un punto de entrada único para comunicarse con todas las ECUs de la red, lo que permite diagnósticos centralizados, registro de datos y configuración.
  • Extremadamente Robusto: El sistema es resistente a perturbaciones eléctricas e interferencias electromagnéticas, lo que lo hace ideal para aplicaciones críticas de seguridad como los sistemas de frenado o los airbags.
  • Eficiente: Los mensajes (frames) CAN se priorizan por números de identificación. Los datos de mayor prioridad obtienen acceso inmediato al bus sin interrumpir otros mensajes.
  • Reducción del Peso del Vehículo: Al eliminar kilómetros de cables eléctricos pesadamente aislados, se reduce el peso total del vehículo, lo que contribuye a una mejor eficiencia de combustible.
  • Fácil Implementación: Es un estándar probado con un amplio ecosistema de soporte y herramientas.
  • Resistencia a EMI: Esto lo hace ideal para aplicaciones críticas en el entorno eléctricamente ruidoso de un vehículo.
  • Excelente Detección y Manejo de Fallos: Detectar un error es sencillo, asegurando que los datos transmitidos lleguen a su destino correctamente.
  • Control Distribuido Eficiente: Es un protocolo ideal cuando se requiere el control distribuido de un sistema complejo. Reduce el cableado pesado y, por lo tanto, los costos y el peso.

Además, las dos primeras capas del protocolo CAN (la capa física y la capa de enlace de datos) están implementadas en microchips económicos, disponibles en diversas configuraciones.

Aplicaciones Populares del Bus CAN

Si bien las aplicaciones automotrices dominan el uso del Bus CAN, su utilidad se extiende a prácticamente todas las industrias donde se requiere comunicación fiable entre sistemas electrónicos. Algunas de las aplicaciones más comunes incluyen:

  • Todo tipo de vehículos: motocicletas, automóviles, camiones, autobuses.
  • Sistemas telemáticos en flotas de vehículos pesados.
  • Aviones y sistemas aeroespaciales.
  • Ascensores y escaleras mecánicas.
  • Plantas de fabricación y automatización industrial.
  • Barcos y sistemas marinos.
  • Equipamiento médico.
  • Sistemas de mantenimiento predictivo.
  • Electrodomésticos como lavadoras, secadoras, etc.

Una Breve Historia del Bus CAN

Para entender la importancia del Bus CAN, es útil mirar cómo eran las cosas antes. Inicialmente, los automóviles se cableaban de manera muy similar a como se cablea una casa: cada luz, cada motor eléctrico, cada interruptor tenía su propio cableado dedicado que iba desde la fuente de energía (la batería) hasta el dispositivo. Conforme los coches se volvieron más complejos y se añadieron más características eléctricas (radio, limpiaparabrisas, calefacción, etc.), la cantidad de cableado creció exponencialmente.

En la década de 1960, un coche podía tener miles de cables recorriendo su estructura. Este cableado no solo era complicado de fabricar e instalar, sino que también añadía un peso considerable al vehículo. Tras las crisis del petróleo de la década de 1970, hubo una presión creciente sobre los fabricantes de automóviles para mejorar la eficiencia de combustible, lo que impulsó la búsqueda de formas de reducir el peso.

Paralelamente, la cantidad de ECUs en los coches iba en aumento. Empresas como Robert Bosch GmbH en Alemania buscaban una forma de que estas unidades electrónicas pudieran comunicarse entre sí de manera eficiente sin recurrir a un cableado punto a punto masivo. Al no encontrar una solución adecuada en el mercado, Bosch comenzó a desarrollar el Controller Area Network a principios de la década de 1980, en colaboración con el fabricante de automóviles Mercedes-Benz, el fabricante de semiconductores Intel y varias universidades alemanas.

En 1986, Bosch presentó el estándar CAN en el congreso SAE en Detroit. Un año después, Intel Corporation comenzó a enviar los primeros chips controladores CAN, cambiando para siempre la arquitectura electrónica de los automóviles. Si bien la reducción de peso fue un subproducto afortunado, el objetivo principal era la comunicación fiable y eficiente entre ECUs. El pesado cableado fue reemplazado por la ligera red de dos hilos del Bus CAN.

¿Cómo Funciona la Mensajería CAN?

Los dispositivos en un Bus CAN se denominan 'nodos'. Cada nodo típico consta de una CPU, un controlador CAN y un transceptor. El transceptor adapta los niveles de señal para enviar y recibir datos en el bus. Todos los nodos pueden enviar y recibir datos, pero no simultáneamente.

Los nodos no se envían datos directamente entre sí en el sentido tradicional. En cambio, envían sus datos al bus de la red, donde están disponibles para cualquier nodo que esté 'escuchando' y al que el mensaje esté dirigido (según su identificador). El protocolo CAN utiliza un método de arbitraje bit a bit para resolver las contenciones cuando varios nodos intentan transmitir al mismo tiempo. El mensaje con el identificador de menor valor (lo que indica mayor prioridad) gana el acceso al bus sin que los mensajes de menor prioridad se corrompan; simplemente esperan su turno.

Aunque todos los nodos están sincronizados para muestrear datos simultáneamente, los datos no se transmiten con una señal de reloj separada, por lo que CAN no es un bus verdaderamente síncrono como, por ejemplo, EtherCAT.

En CAN, todos los datos se envían en 'frames' o tramas. Existen cuatro tipos principales de tramas:

  • Tramas de Datos: Transfieren datos a uno o muchos nodos receptores.
  • Tramas Remotas: Solicitan datos de otros nodos.
  • Tramas de Error: Reportan condiciones de error detectadas por un nodo.
  • Tramas de Sobrecarga: Reportan condiciones de sobrecarga en un nodo o en el bus.

Hay dos variantes en la longitud del identificador del mensaje: estándar (11 bits) y extendida (29 bits). La diferencia principal en la estructura de la trama entre CAN estándar y extendido reside en el campo de arbitraje, que incluye un identificador adicional de 18 bits en la versión extendida.

Estructura Típica de una Trama de Datos CAN (CAN Frame)

Una trama de datos CAN tiene varios campos con funciones específicas:

CampoBitsDescripción
SOF (Start Of Frame)1Bit dominante que marca el inicio de un mensaje, sincronizando los nodos.
Identifier11 (Estándar) / 29 (Extendido)Campo de datos que establece la prioridad del mensaje. Valores más bajos indican mayor prioridad.
RTR (Remote Transmission Request)1Bit dominante cuando se solicita información de otro nodo.
IDE (Identifier Extension Bit)1Indica si se transmite un identificador estándar (0) o extendido (1).
R0 (Reserved)1Reservado para uso futuro.
DLC (Data Length Code)4Contiene el número de bytes de datos en la transmisión (0 a 8 para CAN 2.0, 0 a 15 para CAN FD donde los valores 9-15 indican 12, 16, 20, 24, 32, 48, 64 bytes).
Data0 - 64Los datos reales que se transmiten.
CRC (Cyclic Redundancy Check)16Suma de verificación utilizada para la detección de errores (15 bits de CRC + 1 bit delimitador).
ACK (ACKnowledgement)2Un nodo que recibe correctamente un mensaje sobrescribe este bit con un bit dominante para reconocerlo. Si un nodo detecta un error, deja el bit recesivo e ignora el mensaje (1 bit de ACK slot + 1 bit delimitador).
EOF (End Of Frame)7Campo de 7 bits recesivos que indica el final de la trama.
IFS (Inter Frame Space)3+Espacio mínimo entre tramas (al menos 3 bits recesivos).

El campo de arbitraje, compuesto por el identificador y el bit RTR/IDE, es crucial. Durante el arbitraje, si varios nodos transmiten a la vez, el que tenga el identificador más bajo (mayor prioridad) gana. Los bits dominantes (0 lógico) sobrescriben a los bits recesivos (1 lógico) en el bus, lo que permite que el nodo de mayor prioridad continúe transmitiendo mientras los de menor prioridad detectan la colisión y se detienen.

Es interesante notar que, a diferencia de la mayoría de los sistemas digitales donde 1 lógico es alto y 0 lógico es bajo, en el bus CAN es al revés. Un bit dominante (0 lógico) corresponde a un voltaje diferencial entre las líneas CAN-High y CAN-Low, mientras que un bit recesivo (1 lógico) corresponde a un voltaje diferencial cercano a cero. Los transceptores CAN suelen usar pull-ups para que el bus por defecto esté en estado recesivo (inactivo).

Variaciones del Bus CAN

El estándar ISO 11898 define varias versiones de CAN, pero las más comunes en la industria automotriz son:

Low Speed CAN (ISO 11898-2)

Utilizado para sistemas tolerantes a fallos que no requieren altas tasas de actualización. La tasa máxima de transferencia de datos es de 125 kbps. Su cableado es más económico que el de High Speed CAN y es más robusto ante fallos en los cables (puede seguir funcionando con una sola línea). En automoción, se usa para diagnósticos, controles del salpicadero, elevalunas eléctricos, etc.

High Speed CAN (ISO 11898-2)

Es el tipo más común de CAN. Utilizado para comunicaciones entre subsistemas críticos que requieren altas tasas de actualización y precisión de datos, como el sistema de frenos antibloqueo (ABS), control electrónico de estabilidad (ESC), airbags, unidades de control del motor (ECU de motor), etc. Las velocidades de transferencia de datos van de 1 kbit/s hasta 1 Mbit/s. Requiere terminación en ambos extremos del bus para evitar reflexiones de señal.

CAN FD (ISO 11898-1 enmendado)

Como se mencionó anteriormente, es la versión más reciente. Incrementa la longitud de los datos por mensaje (hasta 64 bytes) y la velocidad máxima de datos (hasta 8 Mbps). Es compatible con CAN 2.0 y se está implementando progresivamente en vehículos de mayor rendimiento antes de extenderse a toda la gama.

Estándares y Protocolos Adicionales sobre CAN

El Bus CAN es un protocolo de mensajería, pero no define cómo interpretar los datos dentro de los mensajes. Por ello, se han desarrollado otros estándares y protocolos que se ejecutan 'sobre' o 'dentro' de CAN para proporcionar funcionalidades adicionales. Algunos de los más conocidos son:

SAE J1939

Desarrollado inicialmente para camiones pesados y vehículos comerciales. Se ejecuta sobre la capa física de CAN (normalmente High Speed CAN a 250 o 500 kbps). Define cómo se empaquetan los datos (Parametros Suspectos - SPN, y Grupos de Parámetros - PGN) y cómo se direccionan los mensajes, incluyendo direcciones de origen y destino. Es un estándar clave en el mundo de los vehículos industriales, maquinaria agrícola y de construcción.

OBD II (On-Board Diagnostics II)

Este puerto de diagnóstico se encuentra en todos los coches fabricados desde 1996 (en EE. UU., con fechas ligeramente diferentes en otras regiones). Permite a talleres y propietarios diagnosticar problemas del vehículo conectando una herramienta de escaneo a un conector estándar de 16 pines. OBD II utiliza varios protocolos de comunicación en la capa física, y CAN es uno de los más comunes en vehículos modernos (conocido como ISO 15765-4). Permite leer códigos de diagnóstico de problemas (DTC) y acceder a docenas de canales de datos en tiempo real como RPM, velocidad, temperatura del refrigerante, etc.

XCP/CCP

El Protocolo Universal de Medición y Calibración (XCP) y su predecesor (CCP) están diseñados para conectar ECUs a sistemas de medición y calibración. XCP es 'universal' porque puede ejecutarse sobre varios buses, incluyendo CAN, CAN FD, FlexRay, Ethernet, etc. Permite a los ingenieros acceder a datos internos de la ECU y recalibrar parámetros en tiempo real, lo cual es fundamental durante el desarrollo y la validación del software de la ECU.

CANopen

Es un protocolo de capa superior utilizado para aplicaciones de control embebido, particularmente en sistemas de control de movimiento y automatización industrial. Define modelos de comunicación (Maestro/Esclavo, Cliente/Servidor, Productor/Consumidor), protocolos para configuración (SDO) y datos en tiempo real (PDO), perfiles de dispositivo y un 'diccionario de objetos' (Object Dictionary) que describe los datos y la configuración de cada dispositivo en la red. Aunque no es tan común en el Bus CAN interno de un coche, sí se usa en vehículos especializados, maquinaria móvil y equipos industriales relacionados con la automoción.

Buses de Comunicación Relacionados Utilizados en Vehículos

Además del Bus CAN y los protocolos que se ejecutan sobre él, los vehículos modernos utilizan una combinación de otros buses de comunicación, cada uno optimizado para diferentes tipos de datos y requisitos. Algunos de estos incluyen:

  • MOST (Media-Oriented Systems Transport): Un bus de alta velocidad (hasta 150 Mbps compartidos) diseñado para sistemas de infoentretenimiento y multimedia (audio, video, navegación).
  • Automotive Ethernet: Ethernet adaptado para el entorno automotriz (temperatura, vibración, EMI). Ofrece altas velocidades (100 Mbps por puerto y más) y se utiliza para sistemas de infoentretenimiento avanzados, cámaras, LIDAR y sistemas ADAS (Advanced Driver Assistance Systems).
  • SENT (Single Edge Nibble Transmission): Un protocolo de transmisión unidireccional de bajo costo para que los sensores envíen datos a las ECUs. Es simple y robusto ante el ruido.
  • FlexRay: Un bus determinístico y de alta velocidad (hasta 10 Mbps) utilizado para aplicaciones críticas de seguridad y control de chasis que requieren sincronización precisa (por ejemplo, control de suspensión activa, dirección asistida eléctrica). Es más caro que CAN pero ofrece garantía de tiempo y redundancia (si se usa con dos pares de cables).
  • LIN Bus (Local Interconnect Network): Una alternativa de bajo costo y baja velocidad (hasta 20 kbps) para el Bus CAN. Es una red simple maestro-esclavo de un solo cable utilizada para controlar componentes no críticos como elevalunas, cerraduras de puertas, luces interiores, etc.

Comparación de Buses de Vehículos

Aquí se presenta una tabla comparativa de alto nivel entre algunos de los buses más comunes en vehículos:

BusVelocidad TípicaTamaño de Datos por MensajeCableado TípicoTopologíaUso PrincipalDetección de ErroresRedundanciaDeterminismoCosto Relativo
LIN10-20 kbps8 BytesUn solo cableBusSensores, Actuadores no críticos (luces, espejos)CRC de 8 bitsNoNo$
CANHasta 1 Mbps8 BytesPar trenzado no blindado (UTP)BusRed principal, Carrocería, Chasis, Tren motrizCRC de 15 bitsNoPor Arbitraje de ID$$
CAN FDHasta 8 MbpsHasta 64 BytesUTPBus / Estrella pasivaCarrocería, Tren motriz, Control distribuido, Chasis (aplicaciones de mayor rendimiento)CRC de 17 o 21 bitsNoPor Arbitraje de ID$$$
FlexRayHasta 10 MbpsHasta 254 BytesUTP o STPBus / Estrella / MixtaTren motriz de alto rendimiento, Red principal, Control por cable (drive-by-wire), Chasis (crítico)CRC de 24 bitsSí (con doble par)Sí (TDMA)$$$$
MOST25-150 Mbps (compartidos)Hasta 370 Bytes (dependiendo de versión)UTP o Fibra ópticaAnillo, Estrella virtualSistemas de Información y EntretenimientoCRCSí (Anillo)Sí (Síncrono)$$$
Automotive Ethernet100 Mbps (por nodo) y másHasta 1500 BytesUTP o STPEstrella / Árbol / AnilloDiagnósticos, Programación de ECU, Infoentretenimiento avanzado, ADAS, Sensores de alta velocidadCRC de 32 bitsNo (inherente), posible a nivel de sistemaNo (inherente), posible con TSN$$

La elección de un bus de comunicación en un vehículo depende de los requisitos específicos de la aplicación, incluyendo la velocidad de datos necesaria, la criticidad de la seguridad, el costo, la topología de la red y la necesidad de determinismo (garantía de tiempo de entrega de mensajes).

Preguntas Frecuentes sobre el Bus CAN

¿Por qué mi coche tiene un Bus CAN?

Tu coche tiene un Bus CAN para permitir que las múltiples computadoras (ECUs) que controlan diferentes funciones (motor, frenos, airbags, radio, etc.) se comuniquen entre sí de manera eficiente, fiable y con un cableado mínimo. Esto reduce el peso, simplifica la fabricación y permite funciones de diagnóstico centralizadas.

¿Es el Bus CAN solo para coches?

No, aunque es muy prominente en la industria automotriz, el Bus CAN se utiliza en una amplia variedad de aplicaciones en otras industrias, como la automatización industrial, aeroespacial, equipos médicos y electrodomésticos, donde se requiere comunicación fiable y robusta entre dispositivos electrónicos.

¿Cuál es la diferencia principal entre CAN y CAN FD?

La principal diferencia es la velocidad de transmisión y la cantidad de datos que pueden enviarse en un solo mensaje. CAN 'clásico' (2.0) tiene una velocidad máxima de 1 Mbps y puede enviar hasta 8 bytes por mensaje. CAN FD puede alcanzar hasta 8 Mbps y enviar hasta 64 bytes por mensaje, además de ser compatible con versiones anteriores.

¿Puedo conectar mi ordenador al Bus CAN de mi coche?

Sí, utilizando interfaces CAN adecuadas (hardware) y software específico, es posible conectarse al Bus CAN (a menudo a través del puerto OBD II si es un coche moderno) para leer datos de diagnóstico, supervisar el comportamiento de las ECUs o incluso enviar mensajes para fines de prueba o calibración.

¿Es seguro el Bus CAN? ¿Puede ser hackeado?

El protocolo CAN en sí mismo no incluye características de seguridad inherentes como autenticación o cifrado. Fue diseñado en una época en la que no se consideraba que los vehículos estuvieran conectados externamente. Sin embargo, la seguridad del vehículo moderno se aborda en capas superiores y a nivel de sistema, implementando firewalls, pasarelas seguras y otras medidas para proteger el Bus CAN de accesos no autorizados externos.

Conclusión

El Bus CAN es una tecnología fundamental que ha revolucionado la arquitectura electrónica de los vehículos y muchos otros sistemas. Al proporcionar un método de comunicación fiable, eficiente y robusto para las unidades de control electrónico, ha permitido la implementación de características de seguridad, confort y rendimiento cada vez más avanzadas. Con la llegada de CAN FD y la coexistencia con otros buses especializados, las redes de comunicación en los vehículos seguirán evolucionando para satisfacer las demandas de la tecnología automotriz del futuro, desde la electrificación hasta la conducción autónoma.

Si quieres conocer otros artículos parecidos a El Bus CAN: La Red Neuronal de tu Coche puedes visitar la categoría Automoción.

Subir