Saltar al contenido
[Fundamentals · 02]

Tramas CAN y arbitraje: cómo decide un bus sin maestro quién transmite

CAN no tiene maestro, ni testigo (token), ni ranuras de tiempo; aun así, todos los nodos se ponen de acuerdo sobre quién transmite a continuación en el tiempo de un solo bit. El mecanismo es el propio formato de la trama. Cuando se sabe leer una trama bit a bit, se puede razonar sobre la latencia, la carga del bus y cada tipo de error que notifica el protocolo.

Reading time
13 min
Updated
7 de octubre de 2026
Diagrams
03
Sections
09

Un bus sin maestro

Cualquier nodo de una red CAN puede empezar a transmitir siempre que el bus esté libre. No hay planificador central ni direccionamiento de receptores: una trama lleva un identificador que designa su contenido y fija su prioridad, todos los nodos reciben todas las tramas y cada uno decide localmente si esa trama le concierne. La capa de enlace de datos que lo hace posible está especificada en ISO 11898-1, cuya edición de 2024 abarca las tres generaciones del protocolo: CAN clásico, CAN FD y CAN XL.

Dos propiedades de la capa física, descritas en Capa física CAN, sostienen todo el diseño. Un bit dominante siempre se impone a uno recesivo, y cada transmisor relee el bus mientras emite. Juntas permiten que varios nodos empiecen a la vez y resuelvan el conflicto sin corromper un solo bit de la trama ganadora.

Anatomía de una trama de datos clásica

Una trama de datos del CAN clásico en formato base transporta de 0 a 8 bytes de datos envueltos en 44 bits de sobrecarga de protocolo, seguidos de una breve pausa antes de que pueda comenzar la trama siguiente. De izquierda a derecha:

Fig. 01Interactive
bits
11
Identifier

Names the message and sets its priority. The lower the value, the higher the priority.

Use Tab and the arrow keys to explore.

Fig. 01La trama de datos clásica en formato base: inicio de trama, campo de arbitraje, campo de control, campo de datos, campo CRC, campo de acuse de recibo y fin de trama.
Table 01Campos de una trama de datos del CAN clásico en formato base
CampoBitsNivel o contenidoFunción
Inicio de trama (SOF)1DominanteMarca el inicio; todos los nodos realizan una sincronización dura con su flanco
Identificador11CualquieraDesigna el contenido y fija la prioridad; gana el valor más bajo
RTR1Dominante en las tramas de datosPetición de transmisión remota; en recesivo indica una trama remota
IDE1Dominante en formato baseExtensión del identificador; en recesivo anuncia un identificador de 29 bits
r01DominanteReservado; ISO 11898-1:2015 denomina esta posición FDF, el bit de formato FD
DLC40–8Código de longitud de datos: el número de bytes de datos
Datos0–64CualquieraCarga útil, empezando por el bit más significativo
Secuencia CRC15CalculadaComprobación de redundancia cíclica desde el SOF hasta el final de los datos
Delimitador de CRC1RecesivoSeparador de forma fija
Ranura ACK1Se envía en recesivo y se sobrescribe en dominanteLos receptores confirman que la trama es correcta
Delimitador de ACK1RecesivoSeparador de forma fija
Fin de trama (EOF)7RecesivoCierra la trama
Intermisión3RecesivoPausa mínima antes de la trama siguiente

Inicio de trama e identificador

Una trama solo puede comenzar después de que el bus haya permanecido en recesivo durante el periodo de intermisión. El único bit SOF, dominante, crea un flanco de recesivo a dominante con el que cada receptor realinea su reloj de bit: es la sincronización dura (hard synchronisation). A continuación viene el identificador, empezando por el bit más significativo. En formato base tiene 11 bits, lo que da 2048 valores, de 0x000 a 0x7FF.

El identificador no es una dirección. Describe lo que contiene la trama, y su valor numérico es la prioridad de la trama: cuanto menor es el número, mayor es la prioridad. Cada identificador de datos debe tener exactamente un transmisor. Si dos nodos enviaran tramas de datos con el mismo identificador y distinto contenido, el arbitraje no podría separarlas y la colisión aparecería como errores de bit en el campo de datos.

Campo de control y longitud de los datos

El campo de control indica a los receptores cómo leer el resto de la trama. IDE distingue el formato base del extendido, el bit reservado permanece dominante en las tramas clásicas y el código de longitud de datos de cuatro bits indica el número de bytes de datos. En el CAN clásico, los códigos 0 a 8 corresponden directamente a 0 a 8 bytes; los códigos 9 a 15 son admisibles en el bus, pero siguen significando 8 bytes. CAN FD asigna nuevos significados a esos códigos superiores, como se explica en CAN clásico frente a CAN FD.

CRC, acuse de recibo y fin de trama

El transmisor calcula un CRC de 15 bits sobre todos los bits comprendidos entre el SOF y el final del campo de datos, antes del relleno. Los receptores repiten el cálculo, y cualquier discrepancia constituye un error de CRC. El polinomio generador está fijado por ISO 11898-1:

Formula
g(x) = x¹⁵ + x¹⁴ + x¹⁰ + x⁸ + x⁷ + x⁴ + x³ + 1 (0x4599)
El CRC-15 del CAN clásico: dentro de la longitud de una trama CAN, permite identificar cualquier combinación de hasta cinco errores de bit distribuidos aleatoriamente y cualquier ráfaga de errores de menos de 15 bits.

A continuación llega el único bit que el transmisor espera que escriba otro nodo. El transmisor envía la ranura ACK en recesivo, y cada receptor que ha encontrado la trama correcta hasta ese punto la fuerza a dominante. Por tanto, un ACK dominante indica al transmisor que al menos un nodo ha recibido la trama intacta, aunque no cuál ni cuántos. Una ranura ACK recesiva es un error de acuse de recibo, y el transmisor vuelve a intentarlo. Siete bits EOF recesivos cierran la trama, y les siguen tres bits de intermisión.

Identificadores de 11 y de 29 bits

CAN 2.0B introdujo el formato extendido, con un identificador de 29 bits. Este formato divide el identificador en una parte base de 11 bits y una extensión de 18 bits, separadas por dos bits recesivos: SRR (substitute remote request, sustitución de la petición remota) e IDE, que anuncia la extensión.

Table 02Comparación entre el formato base y el formato extendido
PropiedadFormato base (CAN 2.0A)Formato extendido (CAN 2.0B)
Longitud del identificador11 bits29 bits (11 + 18)
Valores de identificador2048536.870.912
Trama con 8 bytes de datos, sin relleno108 bits + 3 de intermisión128 bits + 3 de intermisión
Peor caso con relleno e intermisión135 bits160 bits
Usos típicosLa mayoría de las redes de turismos; diagnóstico ISO 15765-4SAE J1939, ISO 11783; diagnóstico ISO 15765-4 (opción de 29 bits)

Ambos formatos pueden compartir un mismo bus, y el arbitraje los trata de forma coherente. Cuando una trama base y una trama extendida comparten los 11 primeros bits de identificador, gana la trama base: su bit RTR dominante se encuentra con el bit SRR recesivo de la trama extendida, y su IDE dominante, con el IDE recesivo de esta.

Los vehículos pesados utilizan el formato de 29 bits para dar estructura al propio identificador. SAE J1939 lo divide en una prioridad, un número de grupo de parámetros y una dirección de origen, como se explica en SAE J1939 para camiones, autobuses y maquinaria.

Arbitraje bit a bit, paso a paso

Cuando el bus queda libre, todos los nodos con una trama pendiente pueden empezar en el mismo SOF. Cada transmisor envía entonces su identificador bit a bit mientras supervisa el bus. Mientras el nivel del bus coincida con lo que ha enviado, continúa. Un nodo que envía recesivo y lee dominante ha perdido: otro nodo está enviando un identificador menor. Deja de transmitir de inmediato, recibe el resto de la trama como cualquier otro nodo y vuelve a intentarlo la próxima vez que el bus quede libre.

En el proceso no se pierde nada. La trama ganadora nunca se corrompe, porque los nodos perdedores solo han aportado bits recesivos que el nivel dominante ha sobrescrito. Por eso el arbitraje CAN se denomina no destructivo, y por eso la trama pendiente de mayor prioridad obtiene siempre el bus, sin más retraso que el de la trama que ya está en curso.

Fig. 02Interactive
0 is dominant and overwrites 1. A node that sends 1 but reads 0 stops and listens.
Identifier (hex)109876543210
01010100100
01010100000
01111110000
Bus···········

Press Step or Play to start arbitration.

0 is dominant and overwrites 1. A node that sends 1 but reads 0 stops and listens.

Fig. 02Tres nodos empiezan a la vez; cada uno se retira en el primer bit en el que envía recesivo y lee dominante, de modo que el identificador más bajo completa su trama.
Table 03Ejemplo resuelto: arbitraje entre tres nodos (0 = dominante, 1 = recesivo; el bit 10 del identificador se envía primero)
Nodo109876543210
A, 0x12300100100011
B, 0x12F00100101 (pierde)–––
C, 0x3A001 (pierde)–––––––––
Nivel del bus00100100011

El nodo C se retira en el bit 9 y el nodo B en el bit 3, mientras que el nodo A completa su trama sin haberse dado cuenta de la contienda. B y C vuelven a participar en cuanto el bus queda libre de nuevo. B arbitra entonces frente a cualquier otra trama pendiente y, salvo que esté esperando un identificador menor, es el siguiente en transmitir.

Qué asegura el arbitraje y qué no

  • La prioridad es estricta. Siempre gana el identificador pendiente más bajo. En un bus muy cargado, una trama de baja prioridad puede retrasarse indefinidamente, por lo que las prioridades deben reflejar los plazos reales.
  • Una transmisión en curso no se interrumpe. Una trama urgente que queda lista un bit después de que haya empezado otra debe esperar a que esta termine: hasta 135 tiempos de bit en una trama de formato base con 8 bytes de datos, es decir, 270 µs a 500 kbit/s.
  • Las tramas de datos se imponen a las tramas remotas con el mismo identificador, porque el bit RTR de la trama de datos es dominante.
  • El arbitraje necesita un viaje de ida y vuelta dentro de un bit. Cada nodo debe ver el nivel combinado del bus antes de muestrear, lo que vincula la longitud máxima del bus a la tasa de bits. CAN FD sortea este límite pasando a una tasa más rápida solo después del arbitraje; consulte Tasas de bits y tipos de bus.

Tramas remotas

Una trama remota es una trama de datos sin datos, enviada con el bit RTR en recesivo, que pide al propietario de un identificador que transmita. Sigue existiendo en la norma, pero es poco habitual en los vehículos modernos. La mayoría de las redes transmiten de forma cíclica o cuando se produce un cambio, las recomendaciones de CANopen desaconsejan las tramas remotas, J1939 utiliza en su lugar un mensaje de petición específico, y CAN FD eliminó por completo las tramas remotas al sustituir la posición RTR por el bit RRS, siempre dominante.

Relleno de bits y longitud de la trama

CAN utiliza una codificación sin retorno a cero (NRZ): una larga secuencia de bits idénticos no produce flancos, y sin flancos los receptores no pueden mantener alineados sus relojes. El relleno de bits (bit stuffing) resuelve este problema. Tras cinco bits consecutivos del mismo nivel, el transmisor inserta un bit de nivel opuesto, que los receptores vuelven a eliminar. El relleno se aplica desde el SOF hasta el final de la secuencia CRC; los delimitadores, el campo ACK y el EOF nunca llevan relleno.

El relleno tiene dos consecuencias. Asegura un flanco de recesivo a dominante al menos cada 10 bits, lo que acota la deriva de reloj que deben absorber los receptores. Y hace que seis bits idénticos consecutivos no estén permitidos dentro de una trama, que es precisamente la propiedad que aprovechan los indicadores de error. El precio es una longitud de trama que depende de los datos. Para una trama con n bytes de datos, el peor caso es:

Formula
Formato base: L_max = 8n + 47 + ⌊(34 + 8n − 1) / 4⌋ · Formato extendido: L_max = 8n + 67 + ⌊(54 + 8n − 1) / 4⌋
Longitud de trama en el peor caso, en bits, incluida la intermisión de 3 bits. Para n = 8: 135 bits (base) y 160 bits (extendido).
Table 04Duración de una trama con 8 bytes de datos
Tasa de bitsTiempo de bitBase, sin relleno (111 bits)Base, peor caso (135 bits)Extendido, peor caso (160 bits)
125 kbit/s8 µs888 µs1080 µs1280 µs
250 kbit/s4 µs444 µs540 µs640 µs
500 kbit/s2 µs222 µs270 µs320 µs
1 Mbit/s1 µs111 µs135 µs160 µs

Ejemplo resuelto: carga del bus

La carga del bus es la fracción del tiempo durante la que el bus está ocupado. Tomemos una red del grupo motopropulsor a 500 kbit/s que transporta 15 tramas cada 10 ms y 40 tramas cada 100 ms, todas en formato base con 8 bytes de datos:

  1. 01
    Tramas por segundo

    15 × 100 + 40 × 10 = 1900 tramas por segundo.

  2. 02
    Bits por trama

    Sin relleno, cada trama ocupa 111 tiempos de bit, intermisión incluida; en el peor caso, 135.

  3. 03
    Carga

    1900 × 111 = 210.900 bit/s, es decir, el 42 % de 500 kbit/s. Con relleno en el peor caso: 1900 × 135 = 256.500 bit/s, es decir, el 51 %.

  4. 04
    Interpretación

    El tráfico real queda entre ambas cifras. Como las tramas de menor prioridad hacen cola detrás de todas las que tienen por encima, la latencia en la parte baja de la escala de prioridades aumenta bruscamente a medida que crece la carga. Por eso los diseñadores de redes mantienen un margen holgado y verifican los tiempos de respuesta en el peor caso, no los típicos.

Cinco maneras de descubrir un error

Cada nodo comprueba cada trama, incluidas las que envía él mismo. ISO 11898-1 define cinco tipos de error:

Table 05Tipos de error de CAN
ErrorLo identificaCondición
Error de bitTransmisorEl nivel releído difiere del nivel enviado (fuera del arbitraje y de la ranura ACK)
Error de rellenoTodos los nodosSeis bits idénticos consecutivos donde se aplica el relleno
Error de CRCReceptoresEl CRC recibido no coincide con el calculado
Error de formaTodos los nodosUn bit de forma fija (delimitador de CRC, delimitador de ACK, EOF) tiene un nivel incorrecto
Error de acuse de reciboTransmisorNo hay nivel dominante en la ranura ACK

Un nodo que advierte un error no se limita a descartar la trama en silencio. Transmite un indicador de error (error flag): seis bits dominantes que infringen deliberadamente la regla de relleno, de modo que todos los demás nodos adviertan también un error. Un error local se convierte en global, todos los nodos descartan la trama a la vez y el transmisor la repite automáticamente. Salvo excepciones muy poco frecuentes relacionadas con el último bit de la trama, o todos los nodos aceptan una trama o no la acepta ninguno.

En el bus, una trama de error consiste en el indicador de error seguido de un delimitador de error recesivo de ocho bits. Como los demás nodos responden con sus propios indicadores, la parte dominante puede alargarse de seis a doce bits. Un error de CRC solo se señaliza después del delimitador de ACK, de modo que la trama está visiblemente completa antes de ser rechazada.

Contadores de errores, error pasivo y estado bus-off

Un nodo que destruye tramas una y otra vez porque su propio transceptor o su cableado están averiados no debe poder bloquear la red. El confinamiento de fallos (fault confinement) de CAN dota a cada nodo de dos contadores: un contador de errores de transmisión (TEC) y un contador de errores de recepción (REC). Los errores los incrementan, las tramas correctas los reducen, y sus valores determinan el estado del nodo:

Table 06Estados del confinamiento de fallos
EstadoCondiciónComportamiento
Error activoTEC ≤ 127 y REC ≤ 127Funcionamiento normal; señaliza los errores con indicadores de error activos (dominantes)
Error pasivoTEC > 127 o REC > 127Sigue comunicando, pero señaliza los errores con indicadores pasivos (recesivos) que no pueden destruir las tramas de otros nodos, y espera 8 bits adicionales antes de volver a transmitir
Bus-offTEC > 255Desconectado; no transmite nada hasta que se ha recuperado
  • Un transmisor que advierte un error suma 8 a su TEC; cada transmisión correcta resta 1.
  • Un receptor que advierte un error suma por lo general 1 a su REC, y 8 en casos concretos, como un bit dominante inmediatamente después de su propio indicador de error; cada recepción correcta resta 1.
  • El balance es, por tanto, de ocho a uno: un transmisor que falla con más frecuencia que, aproximadamente, una trama de cada nueve asciende de forma constante hacia el estado bus-off.
  • Un nodo en estado bus-off solo puede volver a incorporarse tras observar 128 apariciones de 11 bits recesivos consecutivos, y se reinicia con ambos contadores a cero.

Los contadores explican también por qué las averías de la capa física se manifiestan como síntomas intermitentes. Un nodo que pierde una trama de cada cien recupera sus contadores entre un error y otro, y nunca abandona el estado de error activo. Un nodo con una conexión peor sube a error pasivo y después a bus-off, desaparece, se recupera y reaparece, y cada desaparición suele quedar registrada por las demás ECU como una avería por pérdida de comunicación.

Cómo se ven las tramas en un osciloscopio

Un osciloscopio de dos canales conectado a CAN-H y CAN-L, o una sola sonda diferencial, muestra las estructuras descritas sin necesidad de decodificar el protocolo:

Fig. 03Interactive
CH1 · CAN-H · 1 V/divCH2 · CAN-L · 1 V/div2 µs/div0 V

CAN-H rises and CAN-L falls by the same amount around 2.5 V. Edges are sharp and the recessive level is flat.

Fig. 03CAN-H y CAN-L en un osciloscopio de dos canales: cada bit dominante separa las líneas en torno a 2,5 V. Compare un bus sano con uno sin terminación, con un cortocircuito a masa y con los hilos intercambiados.
  • Inicio de trama: el primer bit dominante tras un largo reposo en recesivo. Dispare con el flanco ascendente de CAN-H, con un tiempo mínimo de reposo previo cuando el osciloscopio ofrezca esa opción.
  • Anchura de bit: el impulso más estrecho de una trama equivale a un tiempo de bit, 2 µs a 500 kbit/s. El relleno asegura que ninguna secuencia dentro de la trama supere cinco bits idénticos.
  • Ranura de acuse de recibo: un único bit dominante cerca del final de la trama, a menudo con una amplitud ligeramente distinta, porque lo excita un receptor y no el transmisor.
  • Fin de trama: al menos once bits recesivos (delimitador de ACK, siete bits EOF y tres bits de intermisión) antes de que pueda aparecer el siguiente SOF.
  • Indicadores de error: seis o más bits dominantes seguidos. El tráfico válido no puede contenerlos, así que cada una de estas secuencias demuestra que algún nodo ha advertido un error.

Estas comprobaciones visuales complementan las mediciones de resistencia y tensión de Diagnóstico en campo. Indican si las tramas se completan y reciben acuse de recibo, lo que a menudo basta para decidir si una avería es eléctrica o se encuentra en otra parte.

Preguntas frecuentes

¿Un identificador más bajo significa una trama más importante?

Significa una prioridad más alta en el bus, que los diseñadores de redes asignan en función de los plazos temporales. Una trama con un identificador alto puede transportar igualmente contenido relevante para la seguridad cuando su plazo es holgado.

¿Pueden dos ECU enviar el mismo identificador?

No como tramas de datos con distinto contenido. El arbitraje no podría separarlas, y la colisión aparecería como errores de bit en el campo de datos. Cada identificador de datos de una red tiene exactamente un transmisor.

¿Un acuse de recibo demuestra que el receptor previsto ha recibido la trama?

No. Solo confirma que al menos un nodo ha recibido la trama sin errores. Cuando importa la confirmación de extremo a extremo, la proporcionan los protocolos de capas superiores, por ejemplo las respuestas UDS o los acuses de recibo del protocolo de transporte de J1939.

¿Cuántas tramas de error son aceptables?

En la red de un vehículo en buen estado, prácticamente ninguna en funcionamiento normal. Pueden aparecer algunas durante las transiciones de alimentación, como el arranque del motor o el despertar de la red, pero una tasa de errores continua apunta siempre a un problema físico o de configuración.

¿Por qué la misma avería provoca síntomas distintos según el día?

Porque el confinamiento de fallos es un balance continuo. La temperatura, las vibraciones y la carga del bus cambian la frecuencia con la que falla un nodo al límite y, con ella, que el nodo permanezca en error activo, derive a error pasivo o llegue al estado bus-off.

End of articleUpdated 7 de octubre de 2026
[Santim SC-1]

Every CAN vehicle. Ready from day one.

Santim SC-1 supports every classic CAN and CAN FD vehicle on the market. When a new vehicle launches, it is compatible instantly. No waiting, no requests. A next-generation CAN device.

The Santim SC-1 CAN device