Idioma
English English Vietnamese (Tiếng Việt) Vietnamese (Tiếng Việt) Chinese (简体中文) Chinese (简体中文) Portuguese (Brazil) (Português do Brasil) Portuguese (Brazil) (Português do Brasil) Spanish (Español) Spanish (Español) Indonesian (Bahasa Indonesia) Indonesian (Bahasa Indonesia)
Conversor de Bits a Bytes

Conversor de Bits a Bytes

Divide entre 8 los bits capturados en un bus UART, SPI, I²C o CAN y obtén los bytes reales que caben en los búferes de tu firmware, con la sobrecarga de entramado incluida.

De los bits que viajan por la línea a los bytes que guarda tu búfer

Cuando pones un analizador lógico sobre una línea UART, SPI, I²C o CAN, la captura se mide en bits. Tu firmware, en cambio, trabaja en bytes: un búfer de recepción de 64 posiciones, un mapa de 12 registros, un campo de datos limitado a 8 bytes. Cada vez que saltas de una vista a la otra estás dividiendo entre ocho, y hacerlo de cabeza a las tres de la madrugada mientras una trama falla la suma de verificación es justo como se cuelan los errores de una unidad.

El factor: bytes = bits ÷ 8 (equivale a bits × 0,125). Una trama CAN 2.0A de 108 bits son 108 ÷ 8 = 13,5 bytes de tiempo de línea en bruto, de los cuales solo 8 son tus datos.

La división no tiene misterio. Lo que despista es saber cuáles bits acabas de contar. Un byte de datos de aplicación casi nunca ocupa exactamente ocho tiempos de bit en un enlace físico, porque el entramado, la sincronización y la detección de errores piden sitio en ese mismo cable.

Bits de línea frente a bits de datos

El osciloscopio cuenta cada transición del cable, incluidos los bits de arranque, de parada, de paridad y de relleno. Si los divides entre ocho obtienes tiempo de línea expresado en equivalentes de byte, no un recuento de bytes que tu microcontrolador vaya a almacenar.

Anchos de registro

Las hojas de datos describen los periféricos en bits: un resultado de ADC de 12 bits, un acumulador de 24 bits, una muestra de sensor de 40 bits. Pasarlo a bytes te dice cuántas posiciones de búfer y cuánto relleno cuesta de verdad cada lectura.

Presupuestos de tiempo

El tiempo de bit es la unidad que manda en la latencia de interrupción y en el dimensionado del DMA. Convierte a bytes los bits de una ráfaga y sabrás si tu FIFO se vacía antes de que llegue la siguiente trama.

Convertir una captura paso a paso

1

Cuenta los bits que de verdad quieres contar

Decide primero si estás contando bits de datos o todos los bits que vio el analizador. En un byte UART 8N1 son 8 y 10 respectivamente: dos respuestas distintas a la misma pregunta.

2

Escribe el número de bits

Introduce la cifra en el campo de bits. El valor en bytes se actualiza mientras escribes, así que puedes recorrer el desglose de una trama entera sin pulsar nada. Las exportaciones largas de un decodificador suelen traer espacios o coma decimal: ambas se aceptan y los espacios se ignoran.

3

Copia el número directo al código

El botón de copiar de cada campo entrega el número pelado, sin unidad ni separadores, que es justo lo que necesitas cuando el valor va a un #define, al tamaño de un búfer o a una aserción de prueba.

4

Invierte el sentido al volver al osciloscopio

Pulsa el botón de intercambiar unidades para trabajar de bytes a bits, útil cuando sabes que tu carga útil son 32 bytes y necesitas los tiempos de bit que ocupará. Los dos menús de unidades tienen buscador, así que también puedes saltar a kilobits o a bytes por segundo sin salir de la página.

Sobrecarga de entramado UART: de baudios a bytes por segundo reales

La clásica configuración 8N1 envuelve cada byte de datos en un bit de arranque y otro de parada, de modo que diez tiempos de bit transportan ocho bits útiles: un peaje fijo del 25 %. Por eso la estimación ingenua de «dividir los baudios entre ocho» siempre promete más de lo que el enlace entrega.

Velocidad en baudios (bit/s) División ingenua bits ÷ 8 Carga útil real (8N1, 10 bit/byte) Tiempo de un byte
9 6001 200 B/s960 B/s1 042 µs
19 2002 400 B/s1 920 B/s521 µs
38 4004 800 B/s3 840 B/s260 µs
57 6007 200 B/s5 760 B/s174 µs
115 20014 400 B/s11 520 B/s86,8 µs
921 600115 200 B/s92 160 B/s10,9 µs

Añade un bit de paridad y la trama pasa a once tiempos de bit, con lo que 9 600 baudios bajan a unos 873 bytes útiles por segundo. Dos bits de parada cuestan otra ranura. Nada de eso cambia la aritmética del ÷8: cambia cuántos bits deberías meterle.

Los dos campos siguen vivos mientras comparas tramas

Escribe en cualquiera de las casillas y la otra reacciona al instante, así que puedes sostener la cifra de carga útil en una mano y la de tiempo de línea en la otra sin volver a teclear nada.

Salida legible para ráfagas largas

Los millares se separan con un espacio y las capturas muy grandes pasan a notación científica, lo que mantiene legible una traza de varios millones de bits en lugar de un muro de dígitos.

Todas las unidades del bus en un mismo menú

Los menús de unidades con buscador cubren bits, kilobits, bytes y unidades de velocidad por segundo, así que una cifra de CAN, SPI o UART se puede reexpresar sin ir a buscar otra página.

Nada sale del banco de pruebas

Toda la aritmética se ejecuta en el navegador una vez cargada la página, así que las cifras sacadas de la captura de un cliente no se transmiten a ningún sitio.

Preguntas sobre protocolos serie

¿Por qué un enlace a 9 600 baudios mueve 960 bytes por segundo y no 1 200?

Porque el baudio cuenta símbolos en el cable, no bits de datos. En una UART binaria estándar un símbolo es un bit, así que 9 600 baudios son 9 600 tiempos de bit por segundo, pero diez de esos tiempos se consumen por cada byte de datos con entramado 8N1. Dividir entre 8 da los 1 200 B/s teóricos que verías si la línea solo llevara datos; dividir entre 10 da los 960 B/s que tu aplicación recibe de verdad.

¿Qué aportan al recuento los bits de arranque, parada y paridad?

El bit de arranque es un flanco de bajada que indica al receptor cuándo empezar a muestrear; el de parada mantiene la línea en reposo el tiempo suficiente para que el siguiente flanco de arranque no sea ambiguo. Ninguno transporta información. La paridad, cuando está activada, añade un bit contiguo a los datos solo para detectar errores de un bit. Por eso una trama 8E1 son 11 tiempos de bit: 1,375 equivalentes de byte de tiempo de línea por cada byte útil.

¿El orden MSB primero o LSB primero cambia cuántos bytes obtengo?

No: el recuento es idéntico en ambos casos, solo cambia el valor que se arma. La UART desplaza primero el bit menos significativo, mientras que SPI e I²C lo hacen por convención con el más significativo. Confundirlos produce bytes con los bits invertidos que siguen ocupando exactamente los mismos tiempos de bit, y por eso el síntoma parece dato corrupto y no un desajuste de longitud.

¿Cómo altera el relleno de bits de CAN la relación entre bits y bytes?

CAN inserta un bit complementario tras cinco bits idénticos consecutivos para que los receptores mantengan la sincronización de reloj. Una trama estándar con identificador de 11 bits y carga útil completa de 8 bytes son 108 bits antes del relleno y puede llegar a unos 135 bits en el peor caso. Esos bits de más son puro tiempo de línea: tu carga útil sigue siendo de 8 bytes por muchos bits de relleno que haya inyectado el transceptor.

Mi decodificador exporta la longitud de una ráfaga en bits: ¿cómo la comparo con el búfer de recepción?

Divide la cifra exportada entre la longitud de la trama, no entre ocho, y compara ese recuento de bytes con la profundidad del búfer. Una ráfaga de 12 000 bits en 8N1 son 1 200 tramas, así que necesita 1 200 bytes de espacio; la cuenta cruda 12 000 ÷ 8 = 1 500 describe la ocupación de la línea. Meter la cifra equivocada en el dimensionado de un FIFO es una causa habitual de banderas de desbordamiento fantasma.

b
B

Tamaños de tramas serie

8 bits (solo carga útil)=1 B
10 bits (trama 8N1)=1,25 B
11 bits (trama 8E1)=1,375 B
64 bits (campo de datos CAN)=8 B
108 bits (trama CAN 2.0A)=13,5 B
9 600 bits (1 s a 9 600 baudios)=1 200 B

Bit (b)

Un tiempo de bit en el bus. A 115 200 baudios un bit dura 8,68 µs, y todo lo que dibuja el analizador —flancos de arranque, niveles de parada, bits de relleno— se cuenta en estos.

Byte (B)

Ocho bits de carga útil, y la unidad que tu microcontrolador almacena de verdad: una posición del FIFO, una entrada del mapa de registros, un elemento del campo de datos CAN de ocho bytes.

Introduce los tiempos de bit totales del analizador, no solo los bits de datos: una trama 8N1 gasta 10 tiempos de bit por byte
El botón de copiar de cada campo entrega el número pelado, listo para pegarlo en un #define o en el tamaño de un búfer
Pulsa Intercambiar unidades para ir al revés cuando conoces la carga útil en bytes y necesitas su longitud en la línea
Los dos menús de unidades tienen buscador, así que una cifra en kilobits o en bytes por segundo está a una pulsación
¿Quieres aprender más? Leer documentación →
1/5

Conversor de Almacenamiento

Bytes to Megabytes Conversor de Bits a Bytes (página actual) Conversor de Bytes a Bits Conversor de Bytes a Gigabytes Conversor de Bytes a Kilobytes Conversor de Kilobytes a Kibibytes Conversor de Kilobytes a Kilobits Conversor de Kilobytes a Megabytes Conversor de Mebibytes a Gibibytes Conversor de Mebibytes a Kibibytes Conversor de Mebibytes a Megabytes Conversor de Megabits a Megabytes Conversor de Megabits por segundo a Megabytes por segundo Conversor de Megabytes a Bytes Conversor de Megabytes a Gigabytes Conversor de Megabytes a Kilobytes Conversor de Megabytes a Mebibytes Conversor de Megabytes a Megabits Conversor de Megabytes a Terabytes Conversor de Petabytes a Terabytes Conversor de Tebibytes a Gibibytes Conversor de Tebibytes a Terabytes Conversor de Terabytes a Gigabytes Conversor de Terabytes a Megabytes Conversor de Terabytes a Petabytes Conversor de Terabytes a Tebibytes Gibibytes a Gigabytes Gibibytes a Mebibytes Gibibytes a Tebibytes Gigabits por segundo a Gigabytes por segundo Gigabits to Gigabytes Gigabytes a Bytes Gigabytes a Gibibytes Gigabytes to Gigabits Gigabytes to Megabytes Gigabytes to Terabytes Kibibytes to Kilobytes Kibibytes to Mebibytes Kilobits to Kilobytes Kilobytes to Bytes
Comience a escribir para buscar...
Buscando...
No se encontraron resultados
Pruebe con otras palabras clave