Códigos de Detecção e Correcção de Erros



Documentos relacionados
Introdução. Algumas terminologias. Camada de Enlace de Dados. Prof. Leandro Pykosz

REDES DE COMPUTADORES. Detecção e Correção de Erros

III-2 Cyclic Redundancy Check

Tratamento de erros. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede

Comunicação de Dados

UNIDADE III Aula 6 Cálculo do CRC. Fonte: Othon M. N. Batista

Camada de Ligação de Dados

Tecnologias de Redes Informáticas (6620)

Erros e Protocolos de Recuperação Códigos detectores e correctores de erros.

Codificação de Canal

Sistema de Numeração e Códigos. CPCX UFMS Prof. Renato F. dos Santos

FERRAMENTA DIDÁTICA PARA DISCIPLINA DE ELETRÔNICA DIGITAL

Circuitos Digitais 144L

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

Aula 04. Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

Códigos concatenados. Entrelaçamento. entrelaçadores de blocos. entrelaçadores convolucionais. Exemplos de códigos concatenados e entrelaçados

Eletrônica Digital para Instrumentação. Herman Lima Jr.

Fabio Bento

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE : SÃO CAETANO DO SUL - SP - CEP:

PARTE 1 (CONTROLE DE FLUXO)

Capítulo 2. Numéricos e Códigos Pearson Prentice Hall. Todos os direitos reservados.

Comunicação de dados. Introdução

16.36: Engenharia de Sistemas de Comunicação Aula 14: Códigos cíclicos e detecção de erros

CURSO: Engenharia Elétrica e Engenharia de Computação. DISCIPLINA: Circuitos Lógicos I Z520234

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Fundamentos de Redes de Computadores

Tecnologia - Conjunto de instrumentos, métodos e processos específicos de qualquer arte, ofício ou técnica.

Redes de Computadores II

Redes de Computadores

Miguel Nascimento Nº TIM LTM 12 Janeiro 2011

CODIFICADORES / DECODIFICADORES

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

3 Camada de ligação de dados

Tolerância a Falhas 1

LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) SÃO CAETANO DO SUL - SP - CEP:

Representação de Dados

Comunicação de Dados. Aula 5 Transmissão Analógica

Representação de Informação -- Texto -- Representação de Informação. Representação de Caracteres

Unidade 5: Sistemas de Representação

BREVE INTRODUÇÃO AO SISTEMA DA GESTÃO DE DOCUMENTOS DA CÂMARA MUNICIPAL DE MACAU PROVISÓRIA

PROJETO DE REDES

Redes de Computadores (11558)

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

Características. Conteúdo. Ligações. Tabela de Revisões

Sistemas Distribuídos e Tolerância a Falhas

Comunicações Digitais Manual do Aluno Capítulo 7 Workboard PCM e Análise de Link

RAID Redundat Arrays of Inexpensive Disks

1 - Cite o nome dos principais campos de um quadro Ethernet, explicando qual a funcionalidade de cada campo.

Apresentação de REDES DE COMUNICAÇÃO

Principais Meios de Transmissão Par Trançado Cabo Coaxial Fibra Ótica Micro Ondas

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Acrescenta um bit 1 ou um bit 0 às mensagem para que o número total de bits 1 seja par

Prof. Marcelo de Sá Barbosa REDE DE COMPUTADORES

Prof. Samuel Henrique Bucke Brito

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I: MEMÓRIA EXTERNA RAÍ ALVES TAMARINDO RAI.TAMARINDO@UNIVASF.EDU.BR

1 Problemas de transmissão

Introdução à estrutura e funcionamento de um Sistema Informático

2. A influência do tamanho da palavra

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio:

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Redes de Telecomunicações (11382)

Porta Série. Trabalhos Práticos AM 2007/2008. Porta Série. Objectivos

Comunicação de Dados. Aula 4 Conversão de Sinais Analógicos em digitais e tipos de transmissão

Estrutura do tema ISC

Redes de Computadores 1ª Colecção Exercícios diversos 2 de Novembro de 2006 Arquitecturas de comunicação, controlo de acesso ao meio

Sistemas de Telecomunicações 1

Universidade Federal de São João Del Rei - UFSJ

Capítulo 3. A camada de enlace de dados

Algoritmos DCC 119. Introdução e Conceitos Básicos

Prof. Marcelo Machado Cunha Parte 3

4. Tarefa 16 Introdução ao Ruído. Objetivo: Método: Capacitações: Módulo Necessário: Análise de PCM e de links

CODIFICAÇÃO PARA CONTROLO DE ERROS

Aritmética de Ponto Flutuante e Noções de Erro. Ana Paula

Sistemas de Telecomunicações I

Arquitetura de Computadores Universidade Guarulhos Prof. Erwin A. Uhlmann

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

Valor lógico UM (Verdade, 1): 5 Volts. Valor lógico ZERO (FALSO, 0): 0 Volts.

MEDIÇÃO EM QUÍMICA ERROS E ALGARISMOS SIGNIFICATIVOS

Departamento de Engenharia Electrotécnica e de Computadores Sistemas Digitais 2010/2011 Instituto Superior Técnico - Universidade Técnica de Lisboa

1 Esfera de aço 1 Transitor BC547

Exercícios do livro: Tecnologias Informáticas Porto Editora

CAPÍTULO I. UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE ENGENHARIA ELÉTRICA Apostila de Eletrônica Digital. Sistemas de Numeração. 1.

Hit dos Bits. Série Matemática na Escola

Nível da Arquitetura do Conjunto das Instruções

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.

Redes de Computadores

ARQUITECTURA DE COMPUTADORES CAPÍTULO V AULA III

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

Sistema de Memórias de Computadores

Combinatória e Teoria de Códigos

fx-82ms fx-83ms fx-85ms fx-270ms fx-300ms fx-350ms

WATCHDOG ELITE NTC OPÇÃO DE COMUNICAÇÕES SERIAIS

Binário e Hexadecimal. Como contam os computadores

Copyright 2013 VW Soluções

Transcrição:

Códigos de Detecção e Correcção de Erros Sistemas Distribuídos e Tolerância a Falhas Manuela Rodrigues M1379

Detecção e Correcção de Erros Características dos Erros Possíveis Abordagens Códigos de Detecção de Erros: Paridade, Checksum, CRC (Cyclic Redundancy Check) Códigos de Detecção e Correcção de Erros Correção de erros isolados: Código de Hamming Correção de erros em rajada (burst): BCH, Reed- Solomon, Reed-Muller, Golay

Erros (1) Um sistema de computação funciona em função da transferência de informação desde o nível de circuito integrados até aos níveis mais altos, como por exemplo gravação no disco ou comunicação entre computadores. Está sujeito a diversos erros, como os causados por interferências electromagnéticas, envelhecimento de componentes, curto-circuitos,...

Erros (2) Características dos erros 1. São inevitáveis em qualquer sistema de comunicação real; 2. A distribuição dos erros não é homogénea: bits isolados ou em rajadas (bursts) de erros, com 8 ou mais bits sucessivos errados; 3. Deve-se levar em conta o meio físico de transmissão de dados, para incluir maior ou menor redundância na transmissão, a fim de garantir que a informação recebida seja confiável.

Erros (3) Possíveis abordagens no tratamento de erros: 1. Ignorar o erro; 2. Eco (transmissão à origem de reflexos dos dados recebidos); 3. Sinalizar o erro; 4. Detectar e solicitar a retransmissão em caso de erro; 5. Detectar e corrigir os erros na recepção de forma automática.

Códigos de Detecção de Erros Códigos de Detecção de Erros Detectar um erro é uma tarefa mais simples do que detectar e corrigir; Nem sempre é possível solicitar uma retransmissão; Todos os métodos utilizam a inserção de bits extras; (Esses bits podem ser obtidos a partir da informação original e o receptor recalcula os bits extras) Um método ineficiente mas muito utilizado para detectar erros é a Paridade; Um método mais eficiente é o uso de um código polinomial ou CRC (Cyclic Redundancy Check);

Detecção de Erros Paridade (1) Paridade Consiste basicamente no acto do transmissor adicionar um bit de redundância após um determinado número de bits (normalmente um byte): nº par de 1 s paridade par nº impar de 1 s paridade impar 000, 011, 101, 110 são mensagens transmitidas sem erro, tendo em conta que o último bit é o de paridade

Detecção de Erros Paridade (2) Exemplo1: O caracter A no código ASCII é representado por 1000001 O bit P de paridade é calculado e transmitido: 1000001P nº par de 1 s P = 0 (paridade par ), logo transmitese 10000010 O receptor calcula a paridade da mensagem e compara-a com o bit P recebido: P = paridade transmissão correcta

Detecção de Erros Paridade (4) Este processo pode ser vulnerável se houver mais do que um erro, permitindo assim que este passe até ao destino sem ser identificado. Exemplo: 11010010 devolve valor 0 mas existe erro Usada em muitas aplicações de hardware (onde uma operação pode ser repetida em caso de dificuldade, ou onde é útil a simples detecção de erros). Exemplo: Bus PCI e SCSI.

Detecção de Erros Checksum (1) Checksum Consiste na transmissão de todas as palavras juntamente com o resultado da sua soma binária. Inclui o bit de transporte. Inversão do valor dos bits do checksum. A B Soma Transporte 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

Detecção de Erros Checksum (2) Exemplo: checksum de 2 palavras de 8 bits Dados iniciais: 00111101 00001101 Checksum é: 01001010 Checksum invertido: 10110101

Detecção de Erros Checksum (3) Dados enviados: 00111101 00001101 10110101 (checksum invertido) No receptor, as palavras são novamente somadas e comparadas com o checksum enviado: Se qualquer um dos dados transmitidos, incluindo o checksum, sofrerem algum erro então, a soma do novo checksum com o checksum enviado, será diferente de 1. 0 1 0 0 1 0 1 0 novo checksum (das palavras iniciais recebidas) 1 0 1 1 0 1 0 1 checksum enviado 1 1 1 1 1 1 1 1 sem erro

Detecção de Erros Checksum (3) Exemplo com erro: 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 novo checksum 1 0 1 1 0 1 0 1 checksum enviado 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 valor recebido incorrectamente, com erro no 3º ou 5º bit (de qualquer uma das palavras enviadas, incluindo o checksum)

Detecção de Erros CRC (1) CRC (Cyclic Redundancy Check) Esquema mais eficiente Emissor/receptor concordam num polinómio gerador G(x), em que quanto maior for o seu grau maior será a capacidade de detecção de erros Neste polinómio tanto o bit de maior ordem quanto o de menor ordem devem ser iguais a 1 Palavra inicial de k bits é representado por um polinómio de X de ordem k-1 palavra inicial = 10110001 polinómio = X 7 +X 5 +x 4 +1

Detecção de Erros CRC (2) Execução: o polinómio p(x) é representado pela palavra inicial somada aos bits de paridade e deve ser divisível por G(x); O receptor tenta dividir p(x) por G(x). Se houver resto 0, houve um erro de transmissão; Se houver um erro, em vez de se receber o polinómio T(x), recebe-se T(x)+E(x); Cada bit 1 em E(x) corresponde a um bit invertido; T(x)/G(x) é sempre zero, logo o resultado é E(x)/G(x).

Detecção de Erros CRC (3) Exemplo: Mensagem a transmitir:10111011 Polinómio gerador G(X) = x 4 +x+1 10011 Acrescenta-se à mensagem inicial, a quantidade de zeros equivalentes ao grau de G(x), ficando: 10111011 0000 Seguidamente divide-se a mensagem (ponto anterior) pelo polinómio gerador A divisão de dois polinómios (na sua forma binária) é feita recorrendo à operação XOR ( )

Detecção de Erros CRC (4) 1 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 Resto da Divisão O resto que da divisão é finalmente adicionado à mensagem original, pelo que a mensagem transmitida será: 101110111111

Detecção de Erros CRC (5) Para descodificar a mensagem, o procedimento deve ser repetido. 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0, logo a mensagem foi recebida com erro

Códigos de Detecção e Correcção de Erros Códigos de Correcção de Erros Códigos de correcção podem recuperar o dado original a partir do código com erros; Consistem na criação de códigos extras que detectam situações inválidas mas que mantém a identidade do dado original; O conceito mais básico e mais importante desses códigos é a distância de Hamming, utilizada para a criação de códigos de correcção.

Detecção e Correcção de Erros - Erros isolados Hamming (1) Códigos de Hamming - Codificação: 1. Os bits da palavra de código são numerados a partir da esquerda, começando por 1; 2. É acrescentada informação redundante em posições prédefinidas, ou seja, os bits que são potência de 2 vão ser bits de controlo (2 n ); 3. Os restantes são preenchidos com k bits de dados conhecidos, isto é, com a mensagem a transmitir; Mensagem: 1001 1=2 0 2=2 1 3 4=2 2 5 6 7 1º passo 2º passo 3º passo 1 0 0 1????? 1? 0 0 1

Detecção e Correcção de Erros - Hamming (2) 4. Cálculo dos bits de controlo, isto é, conversão para binário das posições 2 n e valor=1; 3 011 7 111 5. Aplicação do OR Exculsivo (XOR - ) aos valores obtido no ponto anterior 0 1 1 1 1 1 1 0 0 3ª 2ª 1ª

Detecção e Correcção de Erros - Hamming (3) 6. Inserção dos valores obtidos nas respectivas posições do bits de paridade (ponto 2.) 1=2 0 2=2 1 3 4=2 2 5 6 7 1º passo 1 0 1 0 2º passo??? 3º passo?? 1? 0 0 1 6º passo 0 0 1 1 0 0 1 7. Mensagem a transmitir: 0011001

Detecção e Correcção de Erros - Hamming (4) Códigos de Hamming - Descodificação: 1. Conversão para binário das posições = 1; 2. Aplicação do OR Exculsivo (XOR - ) aos valores obtido no ponto anterior: Se o resultado for = 0, não houve erros na transmissão Se for 0, o resultado obtido convertido para decimal é igual à posição do erro

Detecção e Correcção de Erros - Hamming (5) Sem erro: 0 0 1 1 0 0 1 3ª 4ª 7ª Com erro: 0 0 0 1 0 0 1 4ª 7ª Código Correcto: 0011001

Detecção e Correcção de Erros Burst errors Erros em rajada Burst Errors Conjunto de símbolos, recebidos sobre um canal de transmissão de dados, em que o primeiro e último símbolo são erros, e entre eles existe uma sequência de símbolos correctamente recebidos. O tamanho da rajada (burst) de erros é definida pelo nº de bits, desde o 1º erro até ao último (inclusive). O vector de erros B = (0 0 0 0 1 0 1 1 0 1 0 0 0 0 0) tem tamanho 6

Detecção e Correcção de Erros - BCH Códigos BCH (Bose - Chaudhuri - Hocquenghem): Um código BCH é um código polinomial, cíclico, detector e corrector de erros de tamanho variável. Estes códigos são a generalização dos códigos de Hamming, ou seja, t 1 Aplicações: Telefone VoIP, Modems Digitais Referências: Farrel, Patrick Guy Essentials of Error Control Coding Purser, Michael Introduction to Error Correcting Codes Wallace, Hank Error Detection and Correction Using the BCH Code

Detecção e Correcção de Erros Reed-Solomon Códigos Reed-Solomon: Os Códigos Reed-Solomon constituem uma sub-classe dos Códigos BCH. Aplicações: Gravação de CD s e DVD s, Modems de alta velocidade (ADSL), Televisão digital (DVB) Referências: Farrel, Patrick Guy Essentials of Error Control Coding Purser, Michael Introduction to Error Correcting Codes

Detecção e Correcção de Erros Reed-Muller Códigos Reed-Muller: Os códigos Reed-Muller fazem parte dos códigos de correcção de erros mais antigos. Aplicações: Inventados em 1954 e utilizados em 1972 pelo Mariner 9 para transmitir fotografias, a preto e branco, de Marte. Referências: http://www-math.mit.edu/phase2/ujm/vol1/cooke7ff.pdf http://ocw.usu.edu/electrical_and_computer_engineering/error_ Control_Coding/lecture9.pdf

Detecção e Correcção de Erros Golay Códigos Golay: O código Golay é um código perfeito linear de correcção de erros. Aplicações: Voyager 1 (1979) e 2 (1980), que precisavam de transmitir centenas de fotografias a cores de Júpiter e Saturno, com telecomunicações de largura de banda muito restritas. Referências: http://www.quadibloc.com/crypto/mi0602.htm http://mathworld.wolfram.com/golaycode.html