¿Qué es el CANbus? Te lo explicamos.
Desde que se empezó a usar elementos electrónicos en los coches, hemos tenido la necesidad de transmitir datos entre las diferentes unidades de control. En 1986 la empresa alemana Bosch presentó al mundo su nuevo sistema de transmisión de datos mediante los buses CAN, por sus siglas Controller Area Network.
Hasta esa fecha los fabricantes conectaban los diferentes elementos electrónicos entre sí (ver imagen más abajo). Lo que al final daba lugar a tener kilómetros de cables y el coste del vehículo se encarecía. Había otros problemas como el de que hacer si un cable se rompe y se tiene que sustituir, la identificación del mismo y su substitución era una tarea casi imposible.
Para que os hagáis una idea, hoy en día un vehiculo dispone de unas 80 ECU’s si todas ellas tienen que estar conectadas entre sí (suponiendo que estén todas separadas por un metro de distancia) necesitaríamos unos 3160 metros de cable (suponiendo que solo necesitásemos un cable para unirlas). La realidad es que necesitaríamos alrededor de 5 o 6 cables por cada una de ellas, así que al final nos da un total de 19 Km de cable. Totalmente inviable.
El bus CAN
Cómo ya os hemos comentado en el primer párrafo, dada la necesidad de transmitir datos de una manera fiable, sencilla y con un coste el más bajo posible se diseñó este sistema. El bus can se compone de dos cables que permiten conectar en paralelo tantos elementos como queramos (ver imagen más abajo).
Debido a los requerimientos actuales tenemos dos tipos de buses CAN, el primero es el bus can de alta velocidad para aquellos elementos que necesitan de una comunicación muy rápida cómo los sistemas ADAS, la transmisión o el motor. Y el segundo es el bus CAN de baja velocidad para el aire acondicionado, la radio…
El bus can en cualquier caso tiene dos cables, el CAN_L o CAN low y el CAN_H o CAN high. El bus tiene dos estados, el dominante y el recesivo.
- El estado recesivo es el estado que ambos voltajes están en el common mode voltage.
- El estado dominante es el estado en el que existe una diferencia de voltaje entre ellos.
El estándar CAN no especifica ningún conector, sin embargo comúnmente se usa el 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
Transmisión de datos
Según las especificaciones del bus, un bit dominante equivale al valor lógico 0 y un bit recesivo equivale al valor lógico 1. Cuando el bus no envía datos se dice que está en modo inactivo y este modo equivale a estar en estado recesivo.
Cuando dos nodos intentan mandar datos al mismo tiempo se considera que hay una colisión. En ese caso, el nodo que iba a mandar un bit recesivo se para y queda en modo inactivo escuchando el otro nodo. Esto se le llama arbitraje.
El arbitraje se produce durante los primeros bits de la trama. Al final del proceso de arbitraje solo debe quedar un nodo transmitiendo y los demas escuchando.
Nombre del campo | Longitud (bits) | Finalidad |
---|---|---|
Inicio de trama | 1 | Demarca el comienzo de una transmisión. |
Identificador – ID (verde) | 11 | Un identificador (único) que también representa la prioridad de la trama. |
Petición de transmisión remota – RTR (cian) | 1 | Dominante (0) para tramas de datos y recesivo (1) para tramas de peticiones remotas. |
Bit de extensión de identificador – IDE | 1 | Dominante (0) para el formato base (identificador de 11 bits). |
Bit reservado (r0) | 1 | Bit reservado. Debe ser dominante (0), pero aceptado tanto dominante como recesivo. |
Código de longitud de datos – DLC (amarillo) | 4 | Número de bytes de datos en el mensaje, entre 0 y 8. Si este campo es mayor que 8 el mensaje será de 8 bytes como máximo de cualquier modo. |
Campo de datos (rojo) | 0–64 (0-8 bytes) | Datos de la trama (la longitud del campo viene dada por el código de longitud de datos o DLC). |
CRC | 15 | Verificación por redundancia cíclica. Código que verifica que los datos fueron transmitidos correctamente. |
Delimitador CRC | 1 | Debe ser recesivo (1). |
Hueco de acuse de recibo – ACK | 1 | El transmisor emite recesivo (1) y cualquier receptor emite dominante (0). |
Delimitador ACK | 1 | Debe ser recesivo (1). |
Fin de trama EOF | 7 | Debe ser recesivo (1). |
El bus CAN y ADAS
Ya os podéis imaginar que el bus CAN y su sucesor que veremos en la próxima entrega, el FlexRay, son elementos básicos y necesarios para poder tener los sistemas ADAS e ir avanzando hacia un futuro coche conectado.
Si no tuviésemos esta capacidad de transmisión de datos a semejante velocidad y de manera tan simplificada, hasta las tareas más simples como dar la orden de activar el AEB por parte de la ECU ADAS se volvería una misión ardua y compleja que haría retrasar o incluso desaparecer estos sistemas.
En la siguiente entrega veremos como funciona el FlexRay y porque es el sucesor del sistema CAN, hasta entonces espero que hayan disfrutado de este post.