FuelTech ManualsGlosarioBuscar

2. Fundamentos de la red CAN

Versión 1.2Software: FuelTech Vision 3.0Firmware: 00.03.00.01Productos: FT700, FT470, VisionFT2026-10-13

#Qué es CAN

CAN (Controller Area Network, red de área de controladores) es una red de comunicación creada en los años 1980 para conectar los módulos electrónicos de un vehículo con pocos cables. En lugar de un cable por señal, todos los módulos comparten un único par de cables, el bus, e intercambian mensajes cortos por él. La norma que define la red es la ISO 11898.

Tres ideas explican casi todo sobre CAN:

En la práctica, la VCU usa CAN para conversar con los dispositivos FuelTech (sonda, módulo de ignición, drivers de inyección, paneles), con equipos de otras marcas y con los módulos originales del vehículo.

#Capa física: los cables

El bus CAN de alta velocidad usa dos cables, CAN_H (CAN alto) y CAN_L (CAN bajo), trenzados entre sí. La información está en la diferencia de tensión entre ellos, no en la tensión de cada uno respecto a tierra. Por eso la red tolera bien el ruido eléctrico del motor: una interferencia que entra en los dos cables al mismo tiempo no cambia la diferencia.

Niveles eléctricos del bus CAN. El bit dominante (0) siempre gana al recesivo (1).
Niveles eléctricos del bus CAN. El bit dominante (0) siempre gana al recesivo (1).

Los dos estados posibles son:

Si un módulo transmite dominante y otro recesivo en el mismo instante, el bus queda dominante. Esta regla simple es la base del arbitraje y de la confirmación de recepción.

#Topología y terminación

El bus es una línea, con un comienzo y un fin. Cada módulo se conecta a ella por una derivación corta. En los dos extremos de la línea, y solo en ellos, va una resistencia de 120 Ω entre CAN_H y CAN_L, llamada terminador (resistencia de terminación). Absorbe la señal que llega al final del cable y evita que vuelva reflejada y se mezcle con los bits siguientes.

Bus en línea con un terminador de 120 Ω en cada extremo.
Bus en línea con un terminador de 120 Ω en cada extremo.

Reglas prácticas de instalación:

La longitud total de la red limita la velocidad, porque la señal necesita ir y volver dentro de un bit. Los valores siguientes son referencias usuales de cable para CAN de alta velocidad:

Velocidad de transmisiónLongitud máxima de referencia
1 Mbit/s40 m
500 kbit/s100 m
250 kbit/s250 m
125 kbit/s500 m

En un vehículo de competición las distancias son cortas y cualquiera de estas velocidades suele funcionar. Lo que suele fallar es la terminación incorrecta, el empalme mal hecho y la derivación larga.

#La trama CAN

Cada mensaje viaja dentro de una trama (frame). La trama tiene campos fijos antes y después de los datos: sirven para identificar el mensaje, indicar cuántos bytes tiene y verificar si llegó sin error.

Estructura de la trama CAN clásica, estándar y extendida.
Estructura de la trama CAN clásica, estándar y extendida.
CampoQué hace
SOFStart of Frame, inicio de la trama. Un bit dominante que sincroniza todos los módulos.
Identificador (ID)El nombre del mensaje y, al mismo tiempo, su prioridad. Tiene 11 bits en la trama estándar (0x000 a 0x7FF) o 29 bits en la extendida (hasta 0x1FFFFFFF).
RTR, IDE, SRRBits de control: indican si el ID es estándar o extendido y si la trama es de datos o una solicitud remota (rara hoy).
DLCData Length Code, código de longitud de datos: cantidad de bytes de datos, de 0 a 8 en el CAN clásico.
DatosDe 0 a 8 bytes. Aquí están las señales (RPM, temperatura, presión...).
CRCCódigo de verificación calculado sobre la trama. Quien recibe lo recalcula y compara.
ACKConfirmación. Cualquier módulo que recibió la trama sin error fuerza este bit a dominante.
EOFEnd of Frame, fin de la trama.

Los ID suelen escribirse en hexadecimal, con el prefijo 0x. El ID 0x640, por ejemplo, es 1600 en decimal. Los archivos DBC escriben el ID en decimal; las pantallas y los analizadores suelen usar hexadecimal.

#Arbitraje: quién habla primero

Cuando el bus queda libre, cualquier módulo puede comenzar a transmitir. Si dos comienzan al mismo tiempo, cada uno sigue enviando su ID bit a bit y, al mismo tiempo, leyendo el bus. Como el bit dominante (0) gana al recesivo (1), el módulo que envía 1 y lee 0 percibe que perdió, deja de transmitir y pasa a escuchar. El ganador ni siquiera nota la disputa: su trama sigue intacta.

Arbitraje entre dos módulos. Gana el menor ID.
Arbitraje entre dos módulos. Gana el menor ID.

La consecuencia práctica es que un ID menor tiene mayor prioridad. Los mensajes críticos, como RPM y torque, suelen tener ID bajos. Un módulo que transmite un ID muy bajo con mucha frecuencia puede retrasar a todos los demás.

#Velocidad de transmisión y punto de muestreo

Todos los módulos de un bus necesitan usar la misma velocidad de transmisión (baud rate; en la pantalla Puertas CAN, Tasa de Baud, en kbps, lo mismo que kbit/s). Las velocidades más comunes en vehículos son 500 kbit/s y 250 kbit/s; los equipos de competición y la red FTCAN de FuelTech usan 1 Mbit/s. Un módulo con velocidad distinta no entiende nada y, peor, genera errores que afectan a los demás.

División de un bit en cuantos de tiempo (quanta) y el punto de muestreo.
División de un bit en cuantos de tiempo (quanta) y el punto de muestreo.

Cada bit se divide en pequeños cuantos de tiempo. El punto de muestreo es el instante, dentro de cada bit, en que el controlador lee si el bus está en 0 o en 1. Se expresa como porcentaje de la duración del bit y normalmente queda entre 75% y 87,5%. Los módulos con puntos de muestreo muy diferentes pueden incluso funcionar en el banco de pruebas y fallar con cable largo o con ruido.

#Detección de errores

CAN es una red muy robusta porque todos los módulos vigilan todas las tramas. Los principales mecanismos son:

Al detectar un error, el módulo destruye la trama con una señal de error y el transmisor lo intenta de nuevo. Cada módulo mantiene contadores de error. Con pocos errores trabaja normalmente; con errores de más pasa a un modo restringido y, en el límite, se desconecta del bus para no afectar a los demás. Este estado se llama bus-off. La velocidad de transmisión distinta, la terminación incorrecta y CAN_H y CAN_L invertidos son las causas más comunes de un módulo en bus-off.