Se subió a su automóvil, presionó el botón de inicio y el motor se encendió en poco tiempo, pero ¿cómo decidió su automóvil si debía arrancar o no?
Bueno, para hacer que el auto arranque, varias antenas y Unidades de Control Electrónico se comunicaron con el llavero. El protocolo de red de área del controlador (CAN) garantiza que la comunicación entre el llavero, las antenas y las ECU se realice correctamente dentro de su automóvil.
Entonces, ¿qué es el protocolo CAN y cómo ayuda a que los dispositivos de los sistemas de su vehículo funcionen juntos? Bueno, averigüémoslo.
¿Qué es el protocolo CAN y por qué es necesario?
En el pasado, los automóviles no tenían muchos dispositivos electrónicos. De hecho, si deseaba arrancar su vehículo a principios del siglo XX, tenía que salir de su vehículo y arrancar el motor a mano.
Los automóviles de hoy, por el contrario, tienen varios sensores electrónicos y los dispositivos electrónicos monitorean todo, desde la temperatura de la cabina hasta las revoluciones del cigüeñal.
Dicho esto, los datos recibidos de estos sensores no tienen valor hasta que se procesan. Este procesamiento de datos es realizado por dispositivos informáticos conocidos como Unidades de Control Electrónico (ECU).
A diferencia de una computadora con una sola CPU, un automóvil tiene varias ECU, cada una de las cuales es responsable de realizar una tarea en particular. Aunque estas ECU pueden realizar una sola tarea de manera eficiente, deben trabajar juntas para garantizar características como abdominales y ESC trabaja correctamente.
Debido a esto, todas las ECU de un automóvil deben estar conectadas. Se podría usar una topología de punto a punto para hacer estas conexiones, donde cada ECU está conectada directamente a cada otra ECU. Sin embargo, esta arquitectura haría que el sistema fuera complejo. De hecho, un vehículo moderno tiene más de 70 ECU, y conectarlos uno a uno aumentaría exponencialmente el peso del cableado.
Para resolver este problema, Bosch, junto con Mercedes-Benz e Intel, crearon el protocolo Controller Area Network en 1986. Este protocolo permitió que las ECU se comunicaran entre sí mediante un bus de datos compartido conocido como bus CAN.
¿Cómo funciona CAN?
El protocolo CAN es una metodología de comunicación basada en mensajes que se basa en un conjunto de cables de par trenzado para la transmisión de datos. Estos cables se conocen como CAN alto y CAN bajo.
Para permitir la transmisión de datos en estos cables, se cambian sus niveles de voltaje. Estos cambios en los niveles de voltaje se traducen luego a niveles lógicos que permiten que las ECU de un automóvil se comuniquen entre sí.
Para transmitir la lógica uno en el bus CAN, el voltaje de ambas líneas se establece en 2,5 voltios. Este estado también se conoce como estado recesivo, lo que significa que el bus CAN está disponible para que lo use cualquier ECU.
Por el contrario, el 0 lógico se transmite en el bus CAN cuando la línea CAN alta está a un voltaje de 3,5 voltios y la línea CAN baja está a 1,5 voltios. Este estado del bus también se conoce como el estado dominante, que le dice a cada ECU en el sistema que otra ECU está transmitiendo, por lo que deben esperar hasta que finalice la transmisión antes de comenzar a transmitir su mensaje.
Para habilitar estos cambios de voltaje, las ECU del automóvil están conectadas al bus CAN a través de un transceptor CAN y un controlador CAN. El transceptor es responsable de convertir los niveles de voltaje en el bus CAN a niveles que la ECU pueda entender. El controlador, por otro lado, se utiliza para administrar los datos recibidos y garantizar que se cumplan los requisitos del protocolo.
Todas estas ECU conectadas al bus CAN pueden transmitir datos en el cable trenzado, pero hay un problema, solo el mensaje con la prioridad más alta puede transmitirse en el bus CAN. Para comprender cómo una ECU transmite datos en el bus CAN, debemos comprender la estructura del mensaje del protocolo CAN.
Comprensión de la estructura del mensaje del protocolo CAN
Cada vez que dos ECU desean comunicarse, los mensajes con la estructura a continuación se transmiten en el bus CAN.
Estos mensajes se transfieren cambiando los niveles de voltaje en el bus CAN, y el diseño de par trenzado de los cables CAN evita la corrupción de datos durante la transmisión.
- SOF: Abreviatura de Start Of Frame, el bit SOF es un marco de datos de un solo bit dominante. Este bit lo transmite un nodo cuando quiere enviar datos en el bus CAN.
- Identificador: El identificador en el protocolo CAN puede tener un tamaño de 11 o 29 bits. El tamaño del identificador se basa en la versión del protocolo CAN que se utiliza. Si se utiliza la versión extendida de CAN, el tamaño del identificador es de 29 bits y, en otros casos, el tamaño del identificador es de 11 bits. El objetivo principal del identificador es identificar la prioridad del mensaje.
- RTR: La solicitud de transmisión remota o RTR es utilizada por un nodo cuando es necesario solicitar datos de otro nodo. Para ello, el nodo que quiere los datos envía un mensaje con un bit recesivo en la trama RTR al nodo deseado.
- Contenido descargable: El código de longitud de datos define el tamaño de los datos que se transmiten en el campo de datos.
- Campo de datos: Este campo contiene la carga de datos. El tamaño de esta carga útil es de 8 bytes, pero los protocolos más nuevos como CAN FD aumentan el tamaño de esta carga útil a 64 bytes.
- CDN: Abreviatura de verificación de redundancia cíclica, el campo CRC es un marco de verificación de errores. El mismo tiene un tamaño de 15 bits y es computado tanto por el receptor como por el transmisor. El nodo transmisor crea un CRC para los datos cuando se transmiten. Al recibir los datos, el receptor calcula el CRC para los datos recibidos. Si ambos CRC coinciden, se confirma la integridad de los datos. Si no, los datos tienen errores.
- Campo de reconocimiento: Una vez que se reciben los datos y están libres de errores, el nodo receptor alimenta un bit dominante en el marco de reconocimiento y lo envía de regreso al transmisor. Esto le dice al transmisor que los datos han sido recibidos y no tienen errores.
- Fin del cuadro: Una vez que se completa la transmisión de datos, se transmiten siete bits recesivos consecutivos. Esto asegura que todos los nodos sepan que un nodo ha completado la transmisión de datos y pueden transmitir datos en el bus.
Además de los bits anteriores, el protocolo CAN tiene algunos bits reservados para uso futuro.
Simplificando CAN a través de un ejemplo
Ahora que tenemos una comprensión básica de cómo se ve un mensaje en el bus CAN, podemos entender cómo se transmiten los datos entre diferentes ECU.
Para simplificar, digamos que nuestro automóvil tiene 3 ECU: Nodo 1, Nodo 2 y Nodo 3. De las 3 ECU, el Nodo 1 y el Nodo 2 quieren comunicarse con el Nodo 3.
Veamos cómo el protocolo CAN ayuda a garantizar la comunicación en tal escenario.
- Detección del estado del bus: Todas las ECU del automóvil están conectadas al bus CAN. En el caso de nuestro ejemplo, el Nodo 1 y el Nodo 2 quieren enviar datos a otra ECU; antes de hacer eso, ambas ECU deben verificar el estado del bus CAN. Si el bus está en un estado dominante, las ECU no pueden transmitir datos porque el bus está en uso. Por otro lado, si el bus está en estado recesivo, las ECU pueden transmitir datos.
- Envío del inicio del cuadro: Si el voltaje diferencial en el bus CAN es cero, tanto el Nodo 1 como el Nodo 2 cambian el estado del bus a dominante. Para hacer esto, el voltaje de CAN alto se eleva a 3,5 voltios y el voltaje de CAN bajo se reduce a 1,5 voltios.
- Decidir qué nodo puede acceder al bus: Una vez que se envía el SOF, ambos nodos compiten para acceder al bus CAN. El bus CAN utiliza el protocolo Carrier Sense Multiple Access/Collision Detection (CSMA/CD) para decidir qué nodo tiene acceso. Este protocolo compara los identificadores transmitidos por ambos nodos y da acceso al de mayor prioridad.
- Enviando datos: Una vez que el nodo tiene acceso al bus, el campo de datos, junto con el CRC, se envía al receptor.
- Comprobación y finalización de la comunicación: Al recibir los datos, el Nodo 3 comprueba el CRC de los datos recibidos. Si no hay errores, el nodo 3 envía un mensaje CAN al nodo transmisor con un bit dominante en la trama de reconocimiento junto con el EOF para terminar la comunicación.
Diferentes tipos de CAN
Aunque la estructura de mensajes utilizada por el protocolo CAN sigue siendo la misma, la velocidad de transmisión de datos y el tamaño de los bits de datos cambian para transferir anchos de banda de datos más altos.
Debido a estas diferencias, el protocolo CAN tiene diferentes versiones, y a continuación se proporciona una descripción general del mismo:
- CAN de alta velocidad: Los datos en los cables CAN se transmiten en serie y esta transmisión se puede realizar a diferentes velocidades. Para CAN de alta velocidad, esta velocidad es de 1 Mbps. Debido a esta alta velocidad de transmisión de datos, la lata de alta velocidad se utiliza para las ECU, que controlan el tren motriz y los sistemas de seguridad.
- CAN de baja velocidad: En el caso de CAN de baja velocidad, la velocidad a la que se transmiten los datos se reduce a 125 kbps. Como la baja velocidad puede ofrecer tasas de datos más bajas, se utiliza para conectar ECU que gestionan la comodidad del pasajero, como el aire acondicionado o el sistema de infoentretenimiento.
- Puede FD: Abreviatura de CAN tasa de datos flexible, CAN FD es la versión más nueva del protocolo CAN. Aumenta el tamaño de la trama de datos a 64 bytes y permite que las ECU transmitan datos a velocidades que van desde 1 Mbps a 8 Mbps. Esta velocidad de transmisión de datos puede ser administrada por las ECU en tiempo real según los requisitos del sistema, lo que permite que los datos se transfieran a velocidades más altas.
¿Cuál es el futuro de la comunicación automotriz?
El protocolo CAN permite que varias ECU se comuniquen entre sí. Esta comunicación habilita funciones de seguridad como el control electrónico de estabilidad y sistemas avanzados de asistencia al conductor como la detección de puntos ciegos y el control de crucero adaptativo.
Dicho esto, con la llegada de funciones avanzadas como la conducción autónoma, la cantidad de datos que transmite el bus CAN está aumentando exponencialmente. Para habilitar estas funciones, están ingresando al mercado versiones más nuevas del protocolo CAN, como CAN FD.