El bus CAN explicado: cómo se comunican los controladores, los BMS y las pantallas

En una máquina eléctrica moderna, los componentes no solo intercambian energía: también intercambian información. El controlador necesita conocer el estado de la batería, la pantalla muestra la velocidad y las temperaturas, y un segundo controlador recibe la información del primero. El método más común para esto proviene de la industria automotriz: el bus CAN. Esta guía explica cómo funciona y cómo cablearlo correctamente.

Lo esencial

  • El protocolo CAN conecta varios dispositivos a través de un par de cables trenzados, denominados CAN alto y CAN bajo.
  • Se necesita una resistencia de 120 ohmios en cada uno de los dos extremos del bus, y únicamente en los extremos.
  • Cada mensaje tiene un identificador que también sirve como prioridad: el mensaje más importante siempre se procesa primero.
  • Todos los dispositivos deben utilizar la misma velocidad de comunicación.

Un autobús, no una conexión

Una conexión serie clásica conecta dos dispositivos. El CAN, por otro lado, es un bus: todos los dispositivos están conectados a los mismos dos cables, y cada uno puede comunicarse con todos. Para añadir un dispositivo, simplemente se conecta al bus, sin tener que tirar de un nuevo cable hasta el controlador. Esto es lo que lo ha hecho imprescindible en la industria automotriz, donde decenas de unidades de control comparten solo unos pocos pares de cables.

En un vehículo ligero, típicamente se encuentran uno o varios controladores, el sistema de gestión de la batería (BMS), una pantalla, un módulo de telemetría o un cargador.

Dos cables, una diferencia

El protocolo CAN utiliza un par de cables, CAN alto y CAN bajo. La información no se transmite a través de la tensión de un cable con respecto a la masa, sino a través de la diferencia entre los dos:

  • En repos (en el modo "apagado"), ambos cables tienen la misma tensión, aproximadamente la mitad del voltaje de alimentación del circuito;
  • Para emitir un bit "dominante", el transmisor separa los dos cables: el cable superior se eleva y el cable inferior desciende.

Una perturbación eléctrica, como la que produce un controlador que suministra cientos de amperios, afecta a los dos cables de la misma manera. Sin embargo, la diferencia entre ellos permanece intacta. Esto es lo que hace que el protocolo CAN sea tan robusto en un entorno eléctrico con mucho ruido, siempre y cuando los dos cables estén trenzados juntos.

Las resistencias de terminación

Un bus CAN debe tener una resistencia de 120 ohmios entre los pines CAN alto y CAN bajo en cada una de sus dos terminales físicas. Estas resistencias evitan que las señales se reflejen al final del cable y permiten que el bus vuelva a su estado de reposo.

  • La prueba ha terminado bien: al medir entre el cable CAN alto y el cable CAN bajo, con los dispositivos apagados, se encuentra aproximadamente 60 ohmios (el equivalente a dos resistencias de 120 ohmios en paralelo).
  • Aproximadamente 120 ohmios: falta una resistencia de terminación.
  • Un valor significativamente inferior a 60 ohmios: esto indica que hay demasiados terminadores activos, lo que suele ocurrir cuando varios dispositivos tienen el suyo habilitado.

Una conexión ausente o incorrecta es la principal causa de una comunicación inestable.

Identificadores y prioridad

Cada mensaje CAN lleva un identificador, un número que indica de qué se trata (por ejemplo, "estado de la batería" o "orden de velocidad del motor delantero"). Los dispositivos leen todos los mensajes y solo conservan aquellos que les son relevantes.

Cuando dos dispositivos comienzan a transmitir al mismo tiempo, comparan sus identificadores bit por bit, a través del mismo cable. Un bit dominante sobrescribe a un bit recesivo: el dispositivo que emite un bit recesivo y recibe un bit dominante comprende que ha perdido y deja de transmitir. El identificador más pequeño siempre gana, sin que ningún mensaje se vea afectado. Esto se conoce como arbitraje: los mensajes críticos reciben los identificadores más pequeños.

Confiabilidad integrada

  • Cada mensaje contiene un código de control: si un mensaje está dañado, se detecta y se retransmite.
  • Cada receptor confirma la correcta recepción mediante un bit de confirmación.
  • Un dispositivo que acumula errores se desconecta automáticamente para evitar bloquear todo el sistema.

La velocidad del bus

Todos los dispositivos en un bus deben utilizar la misma velocidad. Los valores más comunes son 250 y 500 kilobits por segundo, y a veces 1 megabit. Cuanto más rápido es el bus, más corta es su longitud máxima, pero en un vehículo ligero, de unos pocos metros como máximo, la longitud nunca es una limitación. Una versión más reciente, el CAN FD, transporta más datos por mensaje a una velocidad más alta.

Ejemplo: dos controladores conectados

En un patinete con doble motor, dos controladores conectados mediante CAN se comportan como uno solo: el que recibe la señal del acelerador la transmite al otro, y un solo software de configuración ve ambos. Esto es así en los controladores VESC, como se explica en nuestra guía "El VESC explicado de forma sencilla".

Consejo para el taller.

Siempre conecte los cables CAN alto y CAN bajo juntos, manténgalos alejados de los cables de fase, y verifique la resistencia de 60 ohmios con un multímetro antes de encender el dispositivo por primera vez. Cinco minutos de verificación pueden evitar horas de búsqueda de problemas de comunicación intermitente.

Preguntas frecuentes

¿Transporta el bus CAN corriente para alimentar los dispositivos?

No, el par CAN solo transporta información. Los dispositivos tienen su propia fuente de alimentación, que a veces se proporciona a través de otros cables del mismo conjunto.

¿Por qué la comunicación CAN funciona de forma intermitente?

Las causas más frecuentes son la falta o el exceso de terminación, cables no trenzados que pasan cerca de los cables de alimentación, un conector desgastado, o dos dispositivos que no tienen la misma velocidad de bus.

¿Se puede conectar cualquier dispositivo CAN a cualquier otro?

Eléctricamente, sí, siempre y cuando compartan la velocidad del bus. Sin embargo, para que puedan comunicarse, deben utilizar el mismo "lenguaje": los mismos identificadores y el mismo contenido en los mensajes. Dos marcas diferentes no se entenderán sin una adaptación.