> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oryx.mechatronstudio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CAN

> Tramas estándar y extendidas, con CRC verificado y bits de relleno.

Cada sub-paso es un bit. El bus en reposo está en **recesivo**, y el **SOF** es
el primer bit dominante.

## Ajuste

| Ajuste              | Opciones   | Por defecto |
| ------------------- | ---------- | ----------- |
| **Nivel dominante** | Bajo, Alto | Bajo        |

> Un bus CAN en reposo queda recesivo. En el pin de un transceptor eso es nivel
> alto, así que el **dominante es el bajo**.

## Campos de la trama

| Campo                    | Qué es                                                                 |
| ------------------------ | ---------------------------------------------------------------------- |
| **SOF**                  | Inicio de trama: un bit dominante                                      |
| **ID**                   | Identificador de 11 bits. Cuanto menor es, mayor su prioridad          |
| **SRR**                  | Ocupa el lugar del RTR en las tramas extendidas. Siempre recesivo      |
| **IDE**                  | Dominante: trama estándar. Recesivo: trama extendida                   |
| **ID extendido**         | Los 18 bits que completan el identificador de 29                       |
| **RTR**                  | Dominante: trama de datos. Recesivo: solicitud de datos                |
| **r1 / r0**              | Bits reservados, se envían en dominante                                |
| **DLC**                  | Cuántos bytes de datos siguen (0 a 8)                                  |
| **Datos**                | Los bytes de carga útil                                                |
| **CRC**                  | 15 bits de verificación sobre todo lo anterior                         |
| **Delimitador de CRC**   | Un bit recesivo                                                        |
| **ACK**                  | Cualquier nodo que reciba bien la trama lo pone en dominante           |
| **Delimitador de ACK**   | Un bit recesivo                                                        |
| **EOF**                  | Fin de trama: 7 bits recesivos                                         |
| **IFS**                  | Espacio entre tramas: 3 bits recesivos                                 |
| **Bit de relleno**       | Lo agrega el protocolo después de 5 bits iguales; no lleva información |
| **Bandera de error**     | 6 o más bits dominantes seguidos                                       |
| **Delimitador de error** | 8 bits recesivos                                                       |

## Lo que se verifica

El intérprete **calcula el CRC** y lo compara con el dibujado, y revisa el
relleno de bits, los delimitadores y el encuadre.

| Etiqueta             | Qué no cerró                                                    |
| -------------------- | --------------------------------------------------------------- |
| **Error de relleno** | Falta el bit de relleno: hay 6 bits iguales seguidos            |
| **Incompleta**       | La trama termina antes de completarse                           |
| **Error de CRC**     | El CRC no coincide; el mensaje dice cuál es el valor calculado  |
| **Sin ACK**          | Nadie confirmó la recepción: la ranura de ACK quedó en recesivo |
| **Delimitador CRC**  | El delimitador de CRC debe ser recesivo                         |
| **Delimitador ACK**  | El delimitador de ACK debe ser recesivo                         |
| **Error de EOF**     | El fin de trama debe ser de 7 bits recesivos                    |
| **SRR dominante**    | En una trama extendida, el SRR debe ser recesivo                |
| **Bit reservado**    | Los bits reservados deben ser dominantes                        |
| **DLC > 8**          | DLC supera 8; de todos modos se transmiten 8 bytes              |
| **Bandera de error** | Hay una bandera de error en el bus                              |

## El resumen

Cada trama se resume en una línea con el identificador y lo esencial:

* `ID 0x1A3` · `DLC 8` · `CRC ✓`
* `ID 0x18FF50E5 ext` para las extendidas
* `RTR solicita 4 B` para una solicitud remota
* `CRC ✗`, `sin ACK`, `Trama incompleta` o `Bandera de error` cuando algo falla

## Cómo empezar

Sin nada dibujado, el cuadro de estado lo explica:

> *Aún no hay ninguna trama en este canal. Cada sub-paso es un bit: el bus en
> reposo está en recesivo y el SOF es el primer bit dominante.*
