> ## 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.

# Protocolos serie

> Leer las casillas de un canal como los bits de una trama.

Oryx dibuja señales sin tiempo ni voltaje: un canal es una fila de casillas y
cada casilla vale alto o bajo. Un protocolo serie no necesita más que eso —**un
bit por casilla**— así que interpretar una trama es leer esa fila de ceros y
unos y decir qué significa cada tramo.

<Note>
  Los protocolos se interpretan **solo en modo digital**. En analógico el control
  queda deshabilitado: *"Los protocolos se interpretan en modo digital"*.
</Note>

## Cómo se escribe una trama

<Steps>
  <Step title="Dividir los pasos">
    Cada **sub-paso es un bit**. Con la herramienta **División** (`D`) se parten
    los pasos seleccionados en tantos bits como haga falta.
  </Step>

  <Step title="Dibujar los bits">
    Clic en cada sub-paso para ponerlo alto o bajo.
  </Step>

  <Step title="Elegir el protocolo">
    Con el control **Protocolo** de la cabecera: Ninguno, UART, CAN, I2C o
    Modbus.
  </Step>

  <Step title="Leer la interpretación">
    Aparece una franja debajo del canal, con una barra rotulada por campo.
  </Step>
</Steps>

## Un ejemplo completo: mandar la letra "A" por UART

Sirve para familiarizarse con el flujo. La letra `A` es `0x41`, o sea `01000001`
en binario.

<Steps>
  <Step title="Pon el protocolo en UART">
    Control **Protocolo** de la cabecera. Deja el formato de fábrica: 8 bits de
    datos, sin paridad, 1 bit de parada, LSB primero, reposo alto.
  </Step>

  <Step title="Calcula cuántos bits necesitas">
    Con ese formato, un carácter ocupa **10 bits**: 1 de arranque + 8 de datos +
    1 de parada.
  </Step>

  <Step title="Selecciona un paso y partilo en 10">
    Clic en un paso, después **División** (`D`), sube hasta 10 con `→` y `Enter`.
    Ahora ese paso tiene 10 casillas, una por bit.
  </Step>

  <Step title="Dibuja los bits, de izquierda a derecha">
    * **Bit 1 — arranque:** bajo.
    * **Bits 2 a 9 — datos, empezando por el menos significativo:** como `A` es
      `01000001`, al revés queda `1000 0010`.
    * **Bit 10 — parada:** alto.
  </Step>

  <Step title="Mira la lectura">
    Debajo del canal aparecen las barras: *Arranque*, *Datos* y *Parada*. Si
    pasas el mouse por la de datos, te muestra `0x41 · 65 · 01000001 · "A"`.
  </Step>
</Steps>

<Tip>
  Si la lectura no da lo que esperabas, lo más común es haber escrito los bits de
  datos al derecho. UART manda **primero el bit menos significativo**, así que el
  byte se dibuja al revés de como se escribe.
</Tip>

## Qué se ve

### La franja bajo el canal

Una barra por campo de la trama, con:

* Un **rótulo corto**: `SOF`, `ID`, `DLC`, `CRC`.
* El **valor** ya escrito para leer: `0x1A3`, `8`, `FF`.
* Un **color según el papel** que cumple el campo.
* Al dejar el mouse encima, el **texto largo** que explica qué es.

<Warning>
  Mientras se interpreta un protocolo, **su lectura ocupa el lugar de los números
  de paso**.
</Warning>

### Los colores

El color no es del protocolo sino del **papel que cumple el tramo**, así que dos
protocolos distintos pintan igual lo que se parece: el arranque siempre del
mismo color, los datos siempre de otro.

| Familia          | Qué agrupa                                           |
| ---------------- | ---------------------------------------------------- |
| **Inicio**       | Arranque de la trama                                 |
| **Dirección**    | A quién o de qué se habla                            |
| **Control**      | Cómo viene armada la trama                           |
| **Dato**         | La carga útil                                        |
| **Verificación** | Chequeos y acuses                                    |
| **Cierre**       | Final de la trama y silencio posterior               |
| **Relleno**      | Bits que agrega el protocolo y no llevan información |
| **Error**        | Lo que no cierra                                     |

### El cuadro de estado

En la tarjeta de nombre del canal aparece un resumen: cuántas tramas hay y si
están todas bien —*"3 tramas · todas OK"*— o cuántas fallaron —*"3 tramas · 1
con error"*. Se despliega para ver **la lectura completa**, trama por trama, con
sus problemas enumerados.

Cuando el canal todavía no tiene nada, el cuadro explica cómo empezar, con un
texto propio de cada protocolo.

## Los cuatro protocolos

<CardGroup cols={2}>
  <Card title="UART" icon="arrow-left-right" href="/protocolos/uart">
    Un canal. Formato de carácter configurable: bits de datos, paridad, bits de
    parada, orden de bits y nivel de reposo.
  </Card>

  <Card title="CAN" icon="car" href="/protocolos/can">
    Un canal. Tramas estándar y extendidas, con CRC verificado, bits de relleno
    y banderas de error.
  </Card>

  <Card title="I2C" icon="cable" href="/protocolos/i2c">
    Dos canales por bus: SDA y SCL. Varios buses a la vez.
  </Card>

  <Card title="Modbus" icon="network" href="/protocolos/modbus">
    RTU, ASCII y TCP, con los códigos de función y las excepciones traducidos.
  </Card>
</CardGroup>

## Dónde se configuran

El control **Protocolo** de la cabecera abre la ventana con todos los ajustes.
Cada protocolo tiene los suyos, y se guardan en el navegador junto con el resto
de la configuración.

<Note>
  Los ajustes de protocolo son de **toda la aplicación**, no de cada modo: como
  solo aplican en digital, no hace falta repetirlos por modo.
</Note>
