Dark Mode Light Mode
CAN Bus Automotriz: Cómo Diagnosticar la Red de Tu Vehículo
CAN Bus: Qué Es, Cómo Funciona y Diferencias con Ethernet

CAN Bus: Qué Es, Cómo Funciona y Diferencias con Ethernet

CAN bus: módulos en un bus con terminaciones frente a una red Ethernet con switch, laptop y servidor CAN bus: módulos en un bus con terminaciones frente a una red Ethernet con switch, laptop y servidor

Si ya sabes cómo viaja una trama Ethernet por un switch, tienes medio camino recorrido para entender CAN bus. Los dos son redes de capa 2 sobre par trenzado, pero organizan el acceso con filosofías opuestas: Ethernet conmutado da a cada equipo su propio enlace con el switch y direcciona nodos; CAN pone a todos en un mismo bus, direcciona mensajes y arbitra quién transmite.

Aquí te explico CAN con lo que ya manejas del temario: modelo OSI, tramas, acceso al medio, QoS, VLAN y segmentación.

Qué es CAN bus y dónde se usa

CAN bus (Controller Area Network) es un protocolo de comunicación serie, multinodo y orientado a mensajes: todos los dispositivos comparten un mismo par de cables y cada mensaje lleva un identificador que indica qué dato transporta y con qué prioridad. Es la red con la que los módulos electrónicos de un vehículo (las ECU) intercambian datos sin un cable dedicado entre cada par de equipos.

Topología de CAN bus: nodos conectados a una troncal de par trenzado CAN_H y CAN_L con resistencias de 120 Ω en los extremos
Red CAN de alta velocidad: troncal de par trenzado, derivaciones cortas y 120 Ω en cada extremo.

Bosch empezó a desarrollarlo en 1983 y lo presentó en febrero de 1986, en el congreso de la SAE en Detroit; la norma ISO 11898 se publicó en noviembre de 1993 (puedes consultar la historia oficial de CAN en CiA).

Su terreno principal sigue siendo el automóvil, pero sobre CAN funcionan también SAE J1939, pensado para camiones y autobuses, y CANopen, muy extendido en automatización y control embebido. También aparece en trenes, aeronaves, equipos médicos y ascensores: en general, en cualquier sistema donde muchos controladores pequeños tienen que compartir datos con poco cableado y tiempos predecibles.

CAN en el modelo OSI: qué capas cubre

CAN, por sí solo, cubre las capas 1 y 2 del modelo OSI. El resto lo aportan protocolos que viajan dentro de sus tramas. La tabla siguiente es una comparación funcional, no una equivalencia exacta: J1939 y CANopen, por ejemplo, abarcan varias capas.

Capa OSIEn una red CANEquivalente en una LAN
7 — AplicaciónJ1939, CANopen, diagnóstico UDS (ISO 14229)HTTP, SNMP
4 — TransporteISO-TP (ISO 15765-2): segmenta mensajes largos en varias tramas, con control de flujoTCP, UDP
3 — RedCAN no define una capa de red propia; depende del protocolo superior (algunas pilas, como J1939, añaden direccionamiento de nodos)IPv4, IPv6
2 — Enlace de datosISO 11898-1: trama, arbitraje, CRC, ACK y manejo de errores (subcapas LLC y MAC)MAC 802.3 y LLC 802.2
1 — FísicaISO 11898-2: par trenzado, señal diferencial, terminación1000BASE-T, 100BASE-TX

Dentro de cada módulo, la frontera entre capa 1 y capa 2 coincide con dos componentes físicos. El controlador CAN hace de MAC: arma las tramas y ejecuta el arbitraje. El transceptor hace de PHY: convierte las líneas lógicas TX y RX del controlador en la señal de los pines CAN_H y CAN_L. TX y RX nunca salen del módulo; lo que recorre la red es el par CAN_H/CAN_L.

Ojo con la fila de transporte: ISO-TP segmenta, reensambla y regula el envío con tramas de control de flujo (Flow Control); no establece conexiones ni retransmite lo perdido como TCP. Si lo piensas como «el TCP de CAN», vas a esperar garantías que no da.

Medio físico de CAN: par trenzado, señal diferencial y terminación

CAN usa una topología de bus: una troncal de par trenzado con derivaciones cortas hacia cada nodo, como los antiguos 10BASE2. El dato se codifica en la diferencia de tensión entre CAN_H y CAN_L, así que el ruido que se induce por igual en ambos conductores se cancela, el mismo principio que protege al par trenzado de Ethernet. En CAN de alta velocidad (ISO 11898-2), los niveles son estos:

Estado del busCAN_HCAN_LDiferencia
Recesivo (1 lógico)≈ 2,5 V≈ 2,5 V≈ 0 V
Dominante (0 lógico)≈ 3,5 V≈ 1,5 V≈ 2 V

En cada extremo de la troncal hay una resistencia de 120 Ω entre CAN_H y CAN_L que absorbe la señal para que no rebote al final de la línea, como hacían los terminadores de 10BASE2.

La variante de baja velocidad tolerante a fallas, ISO 11898-3 (hasta 125 kbit/s), funciona distinto: cada nodo lleva su propia terminación, una resistencia en CAN_H y otra en CAN_L. Se usaba en funciones de confort, donde importa más seguir comunicándose con un cable dañado que la velocidad.

La parte que más me interesa que retengas es la pareja dominante/recesivo. El transceptor solo puede forzar el estado dominante; el recesivo es el reposo del bus. Si un nodo transmite un 0 y otro un 1 al mismo tiempo, en el bus se lee 0. Todo el arbitraje de CAN se apoya en esa regla.

La trama CAN frente a la trama Ethernet

Una trama de datos CAN clásica lleva, en orden: bit de inicio (SOF), identificador de 11 bits (29 en el formato extendido), bits de control, DLC con la cantidad de bytes, de 0 a 8 bytes de datos, CRC de 15 bits, ranura de ACK y fin de trama.

La diferencia de fondo está en el identificador. Una trama Ethernet dice quién la envía y a quién va; una trama CAN dice qué es el dato, por ejemplo «velocidad de las cuatro ruedas», y además define su prioridad. Todos los nodos reciben todas las tramas y cada controlador decide con sus filtros de aceptación cuáles entrega al software. Imagina que cada trama fuera un broadcast y la tarjeta de red filtrara por contenido en lugar de por MAC.

De ahí sale una regla de diseño: cada identificador debe tener un único emisor en el bus. Para mí, este es el cambio mental más grande si vienes de Ethernet: en CAN clásico no preguntas «¿para quién es?», sino «¿qué dice?».

Campos de la trama CAN clásica frente a la trama Ethernet: identificador, DLC, datos, CRC y ACK
La trama CAN identifica el mensaje; la trama Ethernet, los nodos de origen y destino.

El otro detalle sin equivalente directo es el relleno de bits (bit stuffing). Como no hay línea de reloj, los receptores se resincronizan con los flancos de la señal; cada vez que aparecen cinco bits iguales seguidos, el emisor inserta uno de polaridad opuesta y el receptor lo descarta.

ConceptoTrama CAN clásicaTrama Ethernet
Qué indica el encabezadoEl contenido y la prioridad del mensajeLa MAC de origen y la de destino (unicast, multicast o broadcast)
Quién la procesaCada nodo que la acepte en sus filtrosEl destinatario, un grupo si es multicast o todos si es broadcast
Carga útil máxima8 bytes1500 bytes
Acuse de reciboBit ACK en la propia trama: basta con que un receptor confirme; no garantiza que todos la recibieranNo existe en capa 2

Arbitraje en CAN bus: bit a bit frente a CSMA/CD

En Ethernet half dúplex, una colisión destruye las dos tramas y ambas estaciones esperan un tiempo aleatorio para reintentar. CAN usa CSMA/CR (Carrier Sense Multiple Access with Collision Resolution): la colisión ocurre, pero se resuelve sin perder la trama ganadora.

Aquí entra la regla dominante/recesivo. Cada nodo lee el bus mientras transmite: si envió un recesivo y lee un dominante, sabe que perdió, deja de transmitir en ese mismo bit y reintenta cuando el bus quede libre. Míralo con dos nodos que arrancan a la vez, A con ID 0x1A4 y B con ID 0x1B0:

Bit109876543210
Nodo A (0x1A4)00110100100
Nodo B (0x1B0)0011011————
Nivel en el bus00110100100

En el bit 4, A envía dominante y B recesivo: B lee un valor distinto del que envió, pierde el arbitraje y pasa a escuchar, mientras la trama de A llega intacta. Entre tramas del mismo formato, el identificador numéricamente más bajo gana siempre (si una base y una extendida comparten los primeros 11 bits, gana la base). Por eso, al diseñar la red, los fabricantes asignan los ID bajos a los mensajes que necesitan menor latencia: frenos, motor, airbags.

El arbitraje solo decide entre tramas que empiezan a la vez: no interrumpe una transmisión en curso, así que un mensaje urgente puede esperar a que termine otro. Y el identificador cumple funciones que en Ethernet reparten la dirección y la QoS, aunque no es una MAC.

El mecanismo tiene un precio. Como todos los nodos deben ver el mismo bit a la vez, la señal tiene que recorrer el bus dentro de cada bit: a más velocidad, menos longitud. Son unos 40 m a 1 Mbit/s, y más distancia a velocidades menores. Es la misma física que obligaba a Ethernet compartido a una trama mínima de 64 bytes.

Errores y bus-off: cómo CAN aísla un nodo defectuoso

CAN detecta errores de bit, de relleno, de CRC, de forma y de ACK. Ante uno, un nodo en error-active invalida la trama para todos y el emisor la retransmite. En Ethernet, en cambio, un switch descarta en silencio la trama con FCS incorrecto y la recuperación queda en manos de las capas superiores.

Para que un nodo que genera errores no bloquee la red invalidándolo todo, cada controlador lleva dos contadores, TEC (errores al transmitir) y REC (errores al recibir):

EstadoCondiciónComportamiento
Error-activeTEC ≤ 127 y REC ≤ 127Funcionamiento normal; puede invalidar tramas con errores
Error-passiveTEC > 127 o REC > 127Sigue en el bus, pero ya no puede invalidar tramas ajenas
Bus-offTEC > 255Se desconecta del bus: no transmite ni confirma tramas

Es un aislamiento automático en capa 2: el nodo defectuoso se excluye solo. Si el medio físico está sano, la red sigue funcionando sin el nodo en bus-off; los demás dejan de recibir los mensajes de ese nodo.

Pero el bus-off solo aísla controladores, no averías eléctricas: un transceptor que mantiene el bus en dominante, un cortocircuito entre CAN_H y CAN_L o un corte en la troncal pueden dejar sin comunicación a todos los nodos, igual que un coaxial cortado tumbaba un segmento 10BASE2.

CAN FD, CAN XL y Ethernet automotriz

Ocho bytes y 1 Mbit/s limitan la eficiencia al actualizar el firmware de un módulo o mover datos pesados de sensores, y dejan poco espacio para autenticar cada mensaje.

CAN FD (Flexible Data-rate) amplía la carga útil de 8 a 64 bytes y permite cambiar a una velocidad mayor dentro de la misma trama. El arbitraje se mantiene a la velocidad nominal; una vez decidido el ganador, solo transmite un nodo y la fase de datos puede acelerarse a varios Mbit/s.

CAN XL, la tercera generación, ya forma parte de ISO 11898-1:2024:

  • Carga útil de 1 a 2048 bytes: cabe una trama Ethernet completa.
  • 20 Mbit/s o más en la fase de datos, según el diseño físico de la red.
  • Prioridad y direccionamiento separados: 11 bits para el arbitraje y un campo de aceptación de 32 bits, que puede indicar el nodo de destino o el contenido. Por primera vez, CAN separa «qué tan urgente es» de «quién debe procesarlo», una distinción parecida, no equivalente, a la de Ethernet entre la MAC y 802.1p.

Para el tráfico pesado se usa Ethernet automotriz, sobre un solo par trenzado en lugar de los cuatro de 1000BASE-T:

EstándarNorma IEEEVelocidadUso
10BASE-T1S802.3cg10 Mbit/sMultipunto: varios nodos en un mismo par
100BASE-T1802.3bw100 Mbit/sPunto a punto
1000BASE-T1802.3bp1 Gbit/sCámaras y enlaces troncales

10BASE-T1S compite con CAN en su terreno, porque es Ethernet en bus. Usa CSMA/CD y, de forma opcional, PLCA (Physical Layer Collision Avoidance), que asigna a cada nodo su turno y así evita las colisiones. En CAN, en cambio, todos compiten y gana el de mayor prioridad.

Arquitectura zonal con CAN bus y LIN en cada zona y una troncal Ethernet con switches hacia la computadora central
CAN y LIN en el borde de cada zona; Ethernet conmutado con VLAN y TSN en la troncal.

La tendencia es la arquitectura zonal. En cada zona física del vehículo, un controlador concentra los sensores cercanos, que siguen hablando CAN o LIN, y se conecta por Ethernet a una o pocas computadoras centrales. Esa troncal la reconocerías del temario: switches, VLAN 802.1Q para separar control, asistencia a la conducción e infoentretenimiento, prioridad 802.1p para clasificar el tráfico en clases de servicio y TSN (Time-Sensitive Networking).

Con la transmisión programada de IEEE 802.1Qbv, TSN reserva ventanas de tiempo para el tráfico crítico, porque la prioridad sola no garantiza que una trama salga de inmediato si el enlace ya está ocupado.

Ventajas y desventajas de CAN bus

VentajasDesventajas
Un solo par de cables reemplaza decenas de conexiones punto a puntoCarga útil de solo 8 bytes por trama en CAN clásico
Arbitraje no destructivo: cuando varias tramas compiten, accede primero la de mayor prioridadA más velocidad, menos longitud de bus admisible
Señal diferencial resistente al ruido eléctricoEl relleno de bits y los campos de control reducen la eficiencia
Un controlador que acumula errores pasa a bus-off y deja de transmitir; si el medio físico está sano, el resto sigue comunicándoseNo autentica ni cifra: cualquier nodo con acceso al bus puede transmitir tramas
Se pueden sumar receptores de un dato sin modificar al emisorUna avería física del transceptor o del cableado puede afectar al bus completo

CAN bus vs Ethernet: cuándo conviene cada uno

Mi veredicto: no son rivales, son piezas de una misma arquitectura. CAN conviene donde los mensajes son cortos, frecuentes y críticos, y donde cada centavo por nodo cuenta: sensores, actuadores, control en tiempo real, con décadas de herramientas y conocimiento acumulado a su favor. Ethernet conviene cuando el volumen crece (cámaras, firmware, datos agregados) o cuando quieres IP de punta a punta. La frontera entre los dos está en el gateway o en el controlador zonal.

Si quieres ver la otra mitad de la comparación con más detalle, repasa las características del protocolo Ethernet.

CriterioCAN / CAN FDEthernet
DireccionamientoPor mensaje (ID), difusión a todos los nodosPor nodo (MAC), con IP encima
Carga útil8 bytes (CAN) / 64 bytes (CAN FD)Hasta 1500 bytes
VelocidadHasta 1 Mbit/s; varios Mbit/s en la fase de datos de CAN FD10 Mbit/s a 1 Gbit/s y más
Acceso al medioArbitraje bit a bit en bus compartidoFull dúplex conmutado; CSMA/CD con PLCA opcional en 10BASE-T1S
DeterminismoPrioridad fija por ID; la latencia máxima depende de la carga y de la trama en cursoDepende de colas y QoS; TSN agrega garantías temporales
Costo por nodoBajo: controlador y transceptor simplesMayor: PHY, switch y pila de protocolos
AutenticaciónNo nativa (se añade con SecOC)No en capa 2 por defecto (MACsec o capas superiores)

Seguridad: un bus que confía en todos

CAN se diseñó en los años ochenta para una red cerrada: no autentica, no cifra y no lleva dirección de origen. Cualquier nodo con acceso al bus puede transmitir cualquier identificador, y los receptores no tienen forma de saber si la trama viene del emisor legítimo. Es una LAN plana sin port security ni 802.1X. Mientras la red estaba aislada, eso era aceptable; con equipos conectados a redes celulares, Bluetooth o wifi, deja de serlo.

Las contramedidas se parecen mucho a las de una red corporativa:

  • Gateway como firewall. Separa los buses y actúa como un router con listas de control de acceso: decide qué mensajes cruzan y en qué dirección.
  • Segmentación tipo DMZ. Lo que tiene contacto con el exterior (telemática, infoentretenimiento) va en un dominio separado de los buses de motor y frenos. Cada bus es un dominio de difusión, así que separarlos limita el alcance de un nodo comprometido.
  • SecOC. La Secure Onboard Communication de AUTOSAR añade a cada mensaje un código de autenticación y un valor de frescura contra ataques de repetición. En CAN clásico ambos se truncan para caber en 8 bytes, lo que reduce la protección; CAN FD y CAN XL dan más margen.
  • Detección de intrusiones. Como el tráfico CAN es muy periódico, un IDS puede detectar identificadores inesperados o frecuencias anómalas.

En el sector automotriz, el impulso regulatorio vino de la UNECE R155, que exige a los fabricantes un sistema de gestión de ciberseguridad para homologar sus vehículos; la norma técnica que suele usarse para cumplirlo es ISO/SAE 21434.

Preguntas frecuentes sobre CAN bus

¿Qué es el CAN bus y para qué sirve?

Es una red que permite que los módulos electrónicos de un vehículo o una máquina intercambien datos por un solo par de cables, con prioridad por mensaje y detección de errores integrada. Sirve para que el módulo del motor, el de frenos y el tablero, por ejemplo, compartan información en tiempo real sin cableado dedicado entre cada par.

¿Qué significa el sistema CAN bus?

CAN significa Controller Area Network, «red de área de controladores». «Bus» se refiere a la topología: todos los nodos se conectan al mismo medio compartido.

¿Ethernet va a reemplazar a CAN?

No a corto plazo. Ethernet se impone en las troncales y los enlaces de alto volumen, mientras CAN, CAN FD y LIN siguen siendo más baratos y suficientes para sensores y actuadores dentro de cada zona.

¿Se puede leer el tráfico CAN desde una computadora?

Sí, con una interfaz USB-CAN. En Linux, el kernel incluye SocketCAN, que presenta el bus como una interfaz de red (por ejemplo, can0), y el paquete can-utils trae candump, que muestra las tramas en tiempo real, al estilo de tcpdump. En muchos vehículos modernos el gateway bloquea el tráfico interno en el conector de diagnóstico. Y escuchar no es lo mismo que transmitir: inyectar tramas en un bus en uso puede alterar el funcionamiento del vehículo.

Agregar Comentario Agregar Comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Post Anterior
Módulos del vehículo conectados a la red CAN bus automotriz, con la ECU central y señales de diagnóstico de cada sensor

CAN Bus Automotriz: Cómo Diagnosticar la Red de Tu Vehículo

Anuncio