Eletrônica Digital: Fundamentos e Aplicações Cotidianas
Códigos de Paridade: Detecção e Correção de Erros Digitais
Nesta parte do estudo, exploraremos como os códigos de paridade são utilizados para detecção (e, em alguns casos, correção) de erros em sistemas digitais. A confiabilidade nos sistemas de comunicação e armazenamento digitalIntrodução à Eletrônica Digital: Conceitos Básicos e AplicaçõesDescubra os conceitos e aplicações essenciais da Eletrônica Digital, do funcionamento de sinais binários aos transistores, e comece sua jornada tecnológica. depende bastante de técnicas que possam identificar, isolar ou até corrigir falhas na transmissão de bits. A seguir, apresentaremos o conceito de código de paridade, suas variações e exemplos de aplicação.
Motivação e Contexto🔗
Imagine um sistema que transmite dados por um canal sujeito a interferências (ruídos, falhas em conectores, distorções). Qualquer simples inversão de um bitSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. pode corromper a informação final. Para combater essa possibilidade, adiciona-se um bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade ou, em configurações mais elaboradas, múltiplos bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade para detectar (e possivelmente corrigir) erros.
Por que paridade?
O termo “paridade” indica se a quantidade de bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. “1” num conjunto é par ou ímpar. Ao final de um bloco de dados, a paridade fornece um indicador de integridade muito simples de se verificar.
Conceitos Fundamentais🔗
Bit de Paridade
O bitSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade é um bit adicional anexado a um conjunto de bits de dados com o objetivo de manter (ou verificar) se a quantidade de bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. “1” atende a uma regra pré-estabelecida (par ou ímpar).
- Paridade Par (Even Parity)
Neste esquema, o bit de paridade é escolhido de modo que o total de bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. “1” (dados + bit de paridade) seja sempre um número par.
- Exemplo: Para o byte
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. de dados
1010001
(7 bits “1”? Não, este é um exemplo de 7 bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. no total; vamos detalhar):
- Digamos que o byte
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. de dados seja:
1010001_
(faltando 1 bit para fechar 8 bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos.).
- Contaremos quantos “1” existem nesse grupo (sem contar o bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade, pois ainda não o definimos):
- Para manter o total par, precisamos que a soma final (3 + bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade) seja par.
- Como 3 é ímpar, o bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade precisa ser
1
para somar e formar um total par (4). - Então, o byte
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. com bit de paridade par ficaria:
10100011
.
- Digamos que o byte
- Paridade Ímpar (Odd Parity)
Aqui, o bit de paridade é definido para que o total de bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. “1” (dados + bit de paridade) seja ímpar.
- Usando o mesmo exemplo anterior (
1010001_
com 3 bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. “1”):
- Para a soma final ser ímpar, se já temos 3 bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. “1” (que é ímpar), então o bit de paridade deve ser
0
para não alterar a contagemRegistradores e Contadores: Contadores síncronos e assíncronos: sequências personalizadasAprenda as diferenças entre contadores assíncronos e síncronos, e descubra como utilizar sequências personalizadas para otimizar sistemas digitais..
- Nesse caso, o byte
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. resultante seria
10100010
.
- Para a soma final ser ímpar, se já temos 3 bits
Em ambos os esquemas, caso um bit seja invertido durante a transmissão, o total de bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. “1” vai deixar de respeitar a regra (não será mais par ou não será mais ímpar), indicando ao receptor que houve erro.
Importante: a paridade simples detecta erros de um número ímpar de bits (1, 3, 5...), mas não detecta erros de um número par de bits simultâneos (2, 4, 6...).
Detecção vs. Correção com Paridade🔗
Detecção de Erros
A utilização mais comum da paridade é a detecção de erros de bit único (ou de qualquer quantidade ímpar de bits alterados). Se a verificaçãoIntrodução ao SystemVerilog: História e EvoluçãoDescubra a trajetória do SystemVerilog, sua origem a partir do Verilog, e os marcos que transformaram a verificação de hardware na indústria digital. no receptor não corresponder à regra combinada (par ou ímpar), sabe-se que houve um erro. Entretanto, essa técnica não informa em qual posição o erro ocorreu, apenas detecta que existe algo de errado.
Codificação com Paridade Dupla (2D)
Uma abordagem possível para também corrigir erros de bitSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. único é a paridade bidimensional. Imagine os dados organizados numa matriz com m linhas e n colunas, cada uma com um bit de paridade na linha e na coluna. Esse arranjo forma uma espécie de “rede” de bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade:
1. Cada linha possui um bitSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade, garantindo a paridade par ou ímpar para aquela linha.
2. Cada coluna possui um bitSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade, garantindo a paridade geral para aquela coluna.
Se um bit for invertido, tanto a paridade da linha onde ocorreu o erro quanto a da coluna correspondente se tornarão inválidas. Assim, o sistema consegue localizar o bitSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. corrompido (interseção daquela linha e coluna) e corrigi-lo invertendo-o de volta. No entanto, esse esquema requer mais bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. para paridade (um para cada linha mais um para cada coluna) e é mais comum em aplicações que lidam com blocos de dados maiores.
Exemplo Prático de Verificação de Paridade🔗
Suponha que temos 4 bytesIntrodução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. (D1, D2, D3, D4) transmitidos em sequência. Cada byte
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. adota a paridade par:
Byte Original | Bits "1" (sem paridade) | Bit de Paridade | Byte Transmitido |
---|---|---|---|
D1 = 01010101 | 4 | 0 | 010101010 |
D2 = 11000001 | 3 | 1 | 110000011 |
D3 = 01111000 | 4 | 0 | 011110000 |
D4 = 00011110 | 4 | 0 | 000111100 |
Obs.: É comum representarmos cada byte como 8 bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. e o bit de paridade como um 9º bit adicional (ou um bit à parte, dependendo do protocolo).
1. No receptor, cada byte é analisado para conferir se a quantidade de bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. “1” está de acordo com a paridade par.
2. Se algum byte apresentar número de bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. “1” ímpar, sinaliza-se um erro de transmissão.
Vantagens e Limitações🔗
- Vantagens
- Simplicidade: fácil de implementar e de verificar.
- Baixo custo: requer apenas 1 bit extra (ou um arranjo simples de bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. adicionais no caso de paridade bidimensional).
- Limitações
- Detecção parcial: a paridade simples falha para erros em número par de bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos..
- Correção limitada: a paridade unidimensional não é capaz de corrigir erros, apenas detectá-los.
- Aumento de overhead: métodos
Métodos e Sobrecarga: Técnicas para Maior FlexibilidadeDescubra como métodos, tasks, functions e sobrecarga em SystemVerilog otimizam a programação orientada a objetos com exemplos práticos e dicas de boas práticas. bidimensionais adicionam mais bits overhead, o que pode ser inviável em algumas aplicações.
- Detecção parcial: a paridade simples falha para erros em número par de bits
Conclusão🔗
Os códigos de paridade são uma técnica fundamental e acessível para detecção de erros em sistemas digitais, presentes historicamente em protocolos de comunicação, memórias e dispositivos de armazenamento. Em configurações mais complexas (como a paridade bidimensional), também podem indicar a posição do erro, permitindo correção de falhas de bitSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. único.
Apesar de suas limitações frente a erros múltiplos ou cenários de alta densidade de falhas, os métodosMétodos e Sobrecarga: Técnicas para Maior FlexibilidadeDescubra como métodos, tasks, functions e sobrecarga em SystemVerilog otimizam a programação orientada a objetos com exemplos práticos e dicas de boas práticas. de paridade permanecem populares por sua eficiência e simplicidade de implementação. Em muitos casos, eles são a primeira barreira de defesa contra transmissões incorretas ou dados corrompidos, sendo usados em conjunto com outras técnicas de verificação
Introdução ao SystemVerilog: História e EvoluçãoDescubra a trajetória do SystemVerilog, sua origem a partir do Verilog, e os marcos que transformaram a verificação de hardware na indústria digital. para assegurar a integridade nos sistemas digitais.
Referência rápida:
- Paridade Par: total de “1” deve ser par → bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade ajusta para manter essa condição.
- Paridade Ímpar: total de “1” deve ser ímpar → bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de paridade ajusta para manter essa condição.
- Detecção vs. Correção: na forma simples, paridade apenas detecta erros (não diz onde nem corrige). Com paridade bidimensional (2D), é possível localizar e corrigir um erro de bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. único por bloco.
Dica prática: sempre verificar se o overhead (bits adicionais) e a complexidade compensam a proteção fornecida, levando em conta a taxa de erro real do canal ou dispositivo.
Com isso, finalizamos o estudo sobre códigos de paridade, abordando tanto a lógica básica de detecção quanto a possibilidade de correção em um arranjo de paridade bidimensional.
- Limitações
- Detecção parcial: a paridade simples falha para erros em número par de bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos..
- Correção limitada: a paridade unidimensional não é capaz de corrigir erros, apenas detectá-los.
- Aumento de overhead: métodos
Métodos e Sobrecarga: Técnicas para Maior FlexibilidadeDescubra como métodos, tasks, functions e sobrecarga em SystemVerilog otimizam a programação orientada a objetos com exemplos práticos e dicas de boas práticas. bidimensionais adicionam mais bits overhead, o que pode ser inviável em algumas aplicações.
- Detecção parcial: a paridade simples falha para erros em número par de bits
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- Hub de Eletrônica: www.electronicshub.org
- MIT OpenCourseWare: ocw.mit.edu
- Stack Exchange de Eletrônica: electronics.stackexchange.com
- Tudo Sobre Circuitos: www.allaboutcircuits.com
- Tutoriais de Eletrônica: www.electronics-tutorials.ws