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 para Bytes

Conversor de Bits para Bytes

Divida por 8 a contagem de bits de uma captura UART, SPI, I²C ou CAN e veja quantos bytes os buffers do firmware realmente guardam, com a sobrecarga do enquadramento incluída.

Transformando bits no barramento em bytes no seu buffer

Quando você coloca um analisador lógico numa linha UART, SPI, I²C ou CAN, a captura vem medida em bits. O firmware, porém, trabalha em bytes: um buffer de recepção de 64 posições, um mapa de 12 registradores, um campo de dados limitado a 8 bytes. Toda vez que você troca de visão está dividindo por oito, e fazer essa conta de cabeça às três da manhã, com um quadro falhando na soma de verificação, é assim que erro de contagem por uma unidade acaba entrando em produção.

O fator: bytes = bits ÷ 8 (o mesmo que bits × 0,125). Um quadro CAN 2.0A de 108 bits dá 108 ÷ 8 = 13,5 bytes de tempo bruto de linha — e apenas 8 deles são a sua carga útil.

A divisão é trivial. O que confunde é saber quais bits você acabou de contar. Um byte de dados da aplicação quase nunca ocupa exatamente oito tempos de bit num enlace físico, porque enquadramento, sincronismo e detecção de erro tomam espaço no mesmo fio.

Bits de linha e bits de carga útil

O osciloscópio conta toda transição no fio, inclusive bits de início, de parada, de paridade e de preenchimento. Dividir isso por oito devolve tempo de linha em equivalentes de byte, não uma contagem de bytes que o seu microcontrolador vá guardar.

Larguras de registrador

As folhas de dados descrevem periféricos em bits — um resultado de conversor A/D de 12 bits, um acumulador de 24 bits, uma amostra de sensor de 40 bits. Converter para bytes mostra quantas posições de buffer e quanto preenchimento cada leitura custa de verdade.

Orçamento de tempo

O tempo de bit é a unidade que importa para latência de interrupção e dimensionamento de DMA. Converta em bytes os bits de uma rajada e você sabe se a sua FIFO esvazia antes de chegar o próximo quadro.

Convertendo uma captura passo a passo

1

Conte os bits que você realmente quer

Decida antes se está contando os bits de carga útil ou todos os bits que o analisador viu. Para um byte UART em 8N1 são 8 e 10, respectivamente — duas respostas diferentes para a mesma pergunta.

2

Digite a contagem de bits

Coloque o número no campo de bits. O valor em bytes acompanha a digitação, então dá para percorrer o detalhamento de um quadro inteiro sem apertar nada. Exportações longas de decodificador costumam vir com espaços ou vírgula decimal — os dois são aceitos e os espaços são ignorados.

3

Copie o número direto para o código

O botão de copiar de cada campo devolve o número puro, sem unidade e sem separadores, que é justamente o que você quer quando o valor vai para um #define, um tamanho de buffer ou uma verificação de teste.

4

Inverta o sentido quando voltar para a bancada

Use o botão de inverter unidades para partir de bytes e chegar a bits — útil quando você sabe que a carga útil tem 32 bytes e precisa dos tempos de bit que ela vai ocupar. Os dois menus de unidade têm busca, então também dá para pular para kilobits ou bytes por segundo sem sair da página.

Sobrecarga do enquadramento UART: da taxa em baud aos bytes úteis por segundo

A configuração clássica 8N1 embrulha cada byte de dados em um bit de início e um de parada, então dez tempos de bit carregam oito bits de carga útil — um imposto fixo de 25 %. É por isso que a estimativa ingênua de "dividir a taxa em baud por oito" sempre exagera o que o enlace consegue entregar.

Taxa em baud (bit/s) Conta ingênua: bits ÷ 8 Carga útil real (8N1, 10 bits/byte) Tempo de um 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

Acrescente um bit de paridade e o quadro passa a onze tempos de bit, derrubando 9.600 baud para algo próximo de 873 bytes úteis por segundo. Dois bits de parada custam mais uma posição. Nada disso muda a aritmética do ÷8 — muda quantos bits você deve jogar nela.

Os dois campos acompanham a comparação entre quadros

Digite em qualquer uma das caixas e a outra responde na hora, então você segura o número da carga útil de um lado e o do tempo de linha do outro sem redigitar nada.

Saída legível para rajadas longas

Os milhares saem separados por espaço e capturas muito grandes passam para notação científica, o que mantém um traço de milhões de bits legível em vez de virar um paredão de dígitos.

Todas as unidades do barramento em um menu

Os menus de unidade com busca cobrem bits, kilobits, bytes e unidades de taxa por segundo, então um número de CAN, SPI ou UART pode ser reexpresso sem procurar outra página.

Nada sai da bancada

Toda a aritmética roda no navegador depois que a página carrega, então números tirados da captura de um cliente nunca são transmitidos para lugar nenhum.

Dúvidas sobre protocolos seriais

Por que um enlace de 9.600 baud move 960 bytes por segundo, e não 1.200?

Porque o baud conta símbolos no fio, não bits de carga útil. Numa UART binária comum um símbolo é um bit, então 9.600 baud são 9.600 tempos de bit por segundo — mas dez desses tempos são consumidos por byte de dados no enquadramento 8N1. Dividir por 8 dá os teóricos 1.200 B/s que você veria se a linha carregasse só dados; dividir por 10 dá os 960 B/s que a sua aplicação de fato recebe.

O que os bits de início, de parada e de paridade acrescentam à contagem?

O bit de início é uma borda de descida que manda o receptor começar a amostrar; o bit de parada mantém a linha em repouso o suficiente para que a próxima borda de início não seja ambígua. Nenhum dos dois carrega informação. A paridade, quando ativada, acrescenta um nono bit junto aos dados apenas para detectar erro de um bit. Assim, um quadro 8E1 tem 11 tempos de bit — 1,375 equivalentes de byte de tempo de linha para um byte de carga útil.

A ordem MSB primeiro ou LSB primeiro muda quantos bytes eu obtenho?

Não — a contagem é idêntica dos dois jeitos, só o valor montado muda. A UART desloca LSB primeiro, enquanto SPI e I²C convencionalmente deslocam MSB primeiro. Trocar um pelo outro produz bytes com os bits invertidos que ocupam exatamente o mesmo número de tempos de bit, e é justamente por isso que o sintoma parece dado corrompido, e não diferença de comprimento.

Como os bits de preenchimento do CAN mudam a relação entre bits e bytes?

O CAN insere um bit complementar depois de cinco bits iguais seguidos para que os receptores mantenham o sincronismo de relógio. Um quadro padrão com identificador de 11 bits e carga útil completa de 8 bytes tem 108 bits antes do preenchimento e pode chegar a cerca de 135 bits no pior caso. Esses bits extras são puro tempo de linha: a sua carga útil continua com 8 bytes por mais bits de preenchimento que o transceptor tenha injetado.

Meu decodificador exporta o tamanho da rajada em bits — como comparo isso com o buffer de recepção?

Divida o número exportado pelo tamanho do quadro, não por oito, e compare essa contagem de bytes com a profundidade do buffer. Uma rajada de 12.000 bits em 8N1 são 1.200 quadros, ou seja, precisa de 1.200 bytes de espaço; o valor bruto 12.000 ÷ 8 = 1.500 descreve a ocupação da linha. Jogar o número errado num cálculo de dimensionamento de FIFO é causa comum de falsos avisos de estouro.

b
B

Tamanhos de quadros seriais

8 bits (só a carga útil)=1 B
10 bits (quadro 8N1)=1,25 B
11 bits (quadro 8E1)=1,375 B
64 bits (campo de dados CAN)=8 B
108 bits (quadro CAN 2.0A)=13,5 B
9.600 bits (1 s a 9.600 baud)=1.200 B

Bit (b)

Um tempo de bit no barramento. A 115.200 baud um bit dura 8,68 µs, e tudo o que o analisador desenha — bordas de início, níveis de parada, bits de preenchimento — é contado nessa unidade.

Byte (B)

Oito bits de carga útil, e a unidade que o seu microcontrolador de fato armazena: uma posição da FIFO, uma entrada do mapa de registradores, um elemento do campo de dados de oito bytes do CAN.

Digite o total de tempos de bit do seu analisador, não só os bits de dados — o 8N1 gasta 10 tempos de bit por byte
O botão de copiar de cada campo devolve o número puro, pronto para colar num #define ou num tamanho de buffer
Use inverter unidades para o caminho contrário, quando você sabe a carga útil em bytes e precisa do comprimento dela no fio
Os dois menus de unidade têm busca, então um valor em kilobits ou em bytes por segundo fica a uma tecla de distância
Quer saber mais? Leia a documentação →
1/5

Conversor de Armazenamento

Bytes to Kilobytes Bytes to Megabytes Conversor de Bits para Bytes (página atual) Conversor de Bytes para Bits Conversor de Bytes para Gigabytes Conversor de Kilobytes para Kibibytes Conversor de Kilobytes para Kilobits Conversor de Kilobytes para Megabytes Conversor de Mebibytes para Gibibytes Conversor de Mebibytes para Kibibytes Conversor de Mebibytes para Megabytes Conversor de Megabits para Megabytes Conversor de Megabits por segundo para Megabytes por segundo Conversor de Megabytes para Bytes Conversor de Megabytes para Gigabytes Conversor de Megabytes para Kilobytes Conversor de Megabytes para Mebibytes Conversor de Megabytes para Megabits Conversor de Megabytes para Terabytes Conversor de Petabytes para Terabytes Conversor de Tebibytes para Gibibytes Conversor de Tebibytes para Terabytes Conversor de Terabytes para Gigabytes Conversor de Terabytes para Megabytes Conversor de Terabytes para Petabytes Conversor de Terabytes para Tebibytes Gibibytes para Gigabytes Gibibytes para Mebibytes Gibibytes para Tebibytes Gigabits por segundo para Gigabytes por segundo Gigabits to Gigabytes Gigabytes para Bytes Gigabytes para Gibibytes Gigabytes para Gigabits Gigabytes to Megabytes Gigabytes to Terabytes Kibibytes to Kilobytes Kibibytes to Mebibytes Kilobits to Kilobytes Kilobytes to Bytes
Comece a digitar para pesquisar...
Pesquisando...
Nenhum resultado encontrado
Tente pesquisar com palavras-chave diferentes