Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Funcionamento do CRC: Codificação de Verificação de Erros em Transmissões Digitais, Slides de Comunicação

Este documento explica o funcionamento do crc (cyclic redundancy check), uma técnica usada para detecção de erros na transmissão de dados digitais. O crc é baseado em aritmética polinomial e envolve a adição de check bits aos dados transmitidos para garantir a verificação de erros. O documento aborda a codificação de dados, as incapacidades do meio de comunicação, a importância de algoritmos de verificação de erros, e o funcionamento prático do crc.

O que você vai aprender

  • Qual é o objetivo da codificação de dados?
  • Como funciona a técnica CRC para detecção de erros em transmissões digitais?
  • Quais são as incapacidades do meio de comunicação que podem causar erros na transmissão de dados?
  • Qual é a importância de implementar algoritmos de verificação de erros em transmissões digitais?
  • Quais são os polinómios geradores comumente utilizados em CRC?

Tipologia: Slides

2022

Compartilhado em 07/11/2022

Botafogo
Botafogo 🇧🇷

4.5

(118)

218 documentos

1 / 15

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
Detecção de erros de
comunicação de dados
CRC
Rui Barbosa
12/04/ 2 0 1 1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe Funcionamento do CRC: Codificação de Verificação de Erros em Transmissões Digitais e outras Slides em PDF para Comunicação, somente na Docsity!

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Detecção de erros de

comunicação de dados

CRC

Rui Barbosa

Í N DI C E

1. INTRODUÇÃO

O objectivo da codificação de dados é a eficiência do transporte dos mesmos através de um meio específico. Esse meio pode ser um cabo de cobre de par entrelaçado, cabo coaxial de cobre, cabo óptico ou ar. Cada tipo de meio de comunicação tem uma série de incapacidades que se traduzem em erros na transmissão de dados. Estes erros podem incluir a reflexão do sinal, a atenuação do sinal, distorção harmónica, distorção de fase, eco, interferência, ruído gaussiano e de mudança de frequência. Todas estas deficiências afectam a capacidade de transporte de dados. Em alguns casos, esses factores podem causar um número excessivo de erros. Assim sendo é necessário implementar algoritmos de verificação de erros nos dados transmitidos. É possível a utilização de métodos ad-hoc para gerar checksums de verificação de dados, mas usa-se, normalmente, sistemas padrão com propriedades bem compreendidas como é o caso do CRC. Este documento tem como finalidade explicar e descrever o funcionamento do CRC.

2. CYCLIC REDUNDANCY CH ECK

O CRC (Cyclic Redundancy Check) é uma técnica usada para detecção de erros na transmissão de dados digitais No método CRC são adicionados check bits normalmente chamados de checksum. Estes são anexados à mensagem que irá ser transmitida. O receptor pode assim determinar se os check bits estão de acordo com os dados transmitidos e determinar com um certo grau de certezas se ocorreram erros na transmissão ou não. Se ocorrer um erro o receptor envia um “negative acknowledgement” (NAK) de volta ao emissor, pedindo para que a mensagem seja retransmitida.

2.1. FUND AMENTOS TEÓRICOS

O CRC é baseado em aritmética polinomial, em particular, sobre a computação do resto da divisão de um polinómio em GF(2) - Galois field with two elements - por outro. Um polinómio em GF (2) é um polinómio com uma única variável x cujos coeficientes são 0 ou 1. A adição e subtracção são feitas em módulo para 2. A aritmética módulo 2 pode ser facilmente calculada através de uma operação de ou-exclusivo realizada bit a bit entre os coeficientes do polinómio, ou seja, dos dígitos binários. Podemos notar que as duas operações tem sempre o mesmo resultado equivalente ao da operação lógica de ou exclusivo (ou XOR, da sigla em inglês exclusive OR). Como exemplo podemos somar o polinómio e. O primeiro passo é a transformação do polinómio em um número binário: e Procedemos então ao ou-exclusivo bit-a-bit (designada também por "soma polinomial em módulo 2"):

Resto: , em binário 1001 Quociente: , em binário: 110001

No CRC o são adicionados à trama bits checksum para que garantir que a trama final é divisível por um polinómio g(x) denominado por polinómio gerador. Assim sendo, podemos transformar uma trama F(x) numa trama T(x) que é divisível por g(x). Se houver erros em T(x), estes assumem a forma de uma string diferente E(x) e, no final, os bits recebidos são T(x)+E(x).

Quando o receptor recebe uma trama correcta, ela é dividida pelo polinómio g(x) e o resto da divisão obtida é nula. A questão que se coloca é quando é que a trama recebida T(x)+E(x) quando dividida pelo g(x) retorna um resto de divisão nulo?  Erro num único bit? Um erro num único bit significa que E(x) vai apenas ter um único termo. Se g(x) for de grau n a divisão nunca vai ser nula;  Erro em múltiplos bits? Diferentes polinómios geradores são usados com propriedades diferentes. Deve haver um factor no polinómio que assegura a detecção de erros em todos os bits impares (1,3,5,…) Alguns polinómios geradores comummente utilizados são:

 CRC 12 bits:  CRC 16 bits:  CRC 32 bits:

 CRC CCITT:

Pegando no Exemplo 1, anteriormente descrito, onde o nosso (11001) e considerando o nosso. Assim, se dividirmos o F(x) por g(x) e o resto for anexado ao F(x) obtém-se o T(x). Segundo os cálculos anteriores, T(x)= 1010111001. Quando estes dados forem recebidos são divididos e, se a recepção dos dados for correcta, o resto da divisão será nula.

2.2. UTILIZAÇ ÃO PRÁTICA

A Tabela 1 mostra os polinómios gerados mais usados para alguns CRC standards.

NOME

GERADOR

POLINÓMIO HEX

CRC - 12 80F

CRC - 16 8005

CRC - 32 1021

CRC CCITT 04C11DB

TABELA 1 - POLINÓMIOS GERADORES DE ALGUNS CRC STANDARD

2.2.1. CRC - 12

O CRC-12 é usado para transmissões de conjuntos de caracteres de 6bits, é usado ainda em conjuntos de caracteres de 8 bits ou ainda em dados arbitrários de 8 bits.

O diagrama de blocos é apresentado de seguida. Os dados são deslocados para a linha de entrada de dados. Após todos os dados serem deslocados, o resto será guardado nos registos de 0 a 11.

FIGURA 1- DIAGRAM A DE BLOCOS DO CRC-

2.2.4. CRC - 32

CRC – 32 é também conhecido como AUTODIN-II e ITU-TSS (ITU-TSS definiu tanto polinómios de 16 e 32 bits). É usado em PKZip, Ethernet, AAL5, (ATM Adaptation Layer 5), FDDI (Fiber Distributed Data Interface), o protocol IEEE-802 LAN/MAN e em algumas aplicações DOD.

O diagrama de blocos é apresentado de seguida. Os dados são deslocados para a linha de entrada de dados. Após todos os dados serem deslocados, o resto será guardado nos registos de 0 a 31.

FIGURA 4 - DIAGRAM A DE BLOCOS DO CRC-

2.3. HARDWARE

Como foi possível verificar anteriormente, a divisão de polinómios seria mais fácil se todos os coeficientes forem 1. Isto porque existe um circuito que pode realizar os cálculos de uma trama de forma continua. O circuito é construído através de portas lógicas XOR (ou-exlusivo) e shift registers.

FIGURA 5 - PORTAS LÓGICA XOR (À ESQUERDA) E SHIFT REGISTER (À DIREITA)

A tabela seguinte mostra as funções lógicas destas duas portas lógicas.

A B A XOR B

TABELA 2 - FUNÇÕES LÓGICAS DO XOR E DO SHIFT REGISTER

A saída do XOR dá a função de ou-exclusivo de dois sinais de entrada enquanto que a saída do shift register Q muda o valor de entrada quando se dá um rising do clock. Circuitos simples podem ser contruidos através desta lógica para realizar a divisão de polinómios. O circuito mostrado em baixo tem 5 shift registers o que corresponde a uma sequência de 5 bits de checksum (grau 5 do polinómio gerador) e um polinómio gerador de comprimento de 6 bits. Neste exemplo, o polinómio gerador é 100101 (o shift register mais à esquerda corresponde ao bit menos significativo do polinómio gerador).

Se houver apenas 0s no sistema e colocarmos à entrada os dados 101101011, obtém-se os seguintes estados:

D C Q

0  D

1  D

3. CONCLUSÃO

Este documento analisou e explicou o funcionamento do código de verificação de erros CRC. Quando a linha de transmissão é longa e é afectada por ruídos, técnicas mais avançadas de verificação de erros são implementadas. A redundância pode ser acrescentada ao código para garantir um melhor desempenho do sistema. Quando os sistemas são mais avançados devem ser usados códigos de controlo de erros mais complexos como é o caso de verificação de paridade, checksums, CRCs. Em todos os casos, a redundância resultante da utilização destes códigos permite ao sistema tolerar uma relação sinal/ruído menos para uma taxa de transmissão de dados fixa e, consequentemente, permite reduzir o número de erros na transmissão de dados.

4. ANEXOS