51
1 Eletrônica Digital - Teoria Aula 04 Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros Prof. Otávio Gomes [email protected] sites.google.com/a/ifmg.edu.br/otavio-gomes/

Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

  • Upload
    lamdien

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

1 Eletrônica Digital - Teoria

Aula 04

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

Prof. Otávio Gomes [email protected]

sites.google.com/a/ifmg.edu.br/otavio-gomes/

Page 2: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

2 Eletrônica Digital - Teoria

Bytes

A maioria dos microcomputadores manipula e armazena informações e

dados binários em grupos de 8 bits de modo que uma sequência de 8

bits recebe um nome especial: denominado byte.

Page 3: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

3 Eletrônica Digital - Teoria

Números binários muitas vezes são divididos em grupos de 4 bits,

assim há um termo específico para esses grupos - nibble.

Nibbles

Page 4: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

4 Eletrônica Digital - Teoria

Bits, nibbles e bytes são termos que representam um número fixo de

dígitos binários. De forma geral, denominamos palavra (word) um

grupo de bits que representa uma certa unidade de informação.

Palavras (Word)

Page 5: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

5 Eletrônica Digital - Teoria

Código BCD

Page 6: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

6 Eletrônica Digital - Teoria

Código BCD

Quando números, letras ou palavras são representados por um grupo

especial de símbolos, dizemos que eles estão codificados, sendo o

grupo de símbolos denominado código.

CODIFICAÇÃO EM BINÁRIO PURO: Um númeo decimal é representado pelo

seu número binário equivalente.

DECIMAL CODIFICADO EM BINÁRIO: Cada dígito de um número decimal é

representado em binário. Esta codificação é denominada de BCD (Binary-

Coded-Decimal).

Para ilustrar, considere o número 874 em decimal:

Codificação em Binário Puro: 87410 = 11011010102

Decimal Codificado em Binário: 87410 =

Page 7: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

7 Eletrônica Digital - Teoria

Código BCD

Quando números, letras ou palavras são representados por um grupo

especial de símbolos, dizemos que eles estão codificados, sendo o

grupo de símbolos denominado código.

CODIFICAÇÃO EM BINÁRIO PURO: Um número decimal é representado

pelo seu número binário equivalente.

DECIMAL CODIFICADO EM BINÁRIO: Cada dígito de um número decimal é

representado em binário. Esta codificação é denominada de BCD (Binary-

Coded-Decimal).

Para ilustrar, considere o número 874 em decimal:

Codificação em Binário Puro: 87410 = 11011010102

Decimal Codificado em Binário: 87410 = 100001110100 (BCD)

8 7 4

Page 8: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

8 Eletrônica Digital - Teoria

Código BCD

A principal vantagem do código BCD é a relativa facilidade de

conversão para decimal e vice-versa. Apenas os grupos de 4 bits dos

dígitos de 0 a 9 precisam ser memorizados.

Essa característica de fácil conversão é especialmente importante do

ponto de vista do hardware porque nos sistemas digitais são os

circuitos lógicos que realizam as conversões mútuas entre BCD e

decimal.

Page 9: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

9 Eletrônica Digital - Teoria

Código Gray

Os sistemas digitais operam em altas velocidades e reagem a

variações que ocorrem nas entradas digitais. A fim de reduzir a

probabilidade de um circuito digital interpretar mal uma entrada que

está mudando, desenvolveu-se o Código Gray.

O Código Gray tem a característica distinta de que apenas um bit muda

entre dois números sucessivos.

Page 10: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

10 Eletrônica Digital - Teoria

Código Gray

Os sistemas digitais operam em altas velocidades e reagem a

variações que ocorrem nas entradas digitais. A fim de reduzir a

probabilidade de um circuito digital interpretar mal uma entrada que

está mudando, desenvolveu-se o Código Gray.

O Código Gray tem a característica distinta de que apenas um bit muda

entre dois números sucessivos.

Page 11: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

11 Eletrônica Digital - Teoria

Código Gray

Os sistemas digitais operam em altas velocidades e reagem a

variações que ocorrem nas entradas digitais. A fim de reduzir a

probabilidade de um circuito digital interpretar mal uma entrada que

está mudando, desenvolveu-se o Código Gray.

Page 12: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

12 Eletrônica Digital - Teoria

Código Gray

Os sistemas digitais operam em altas velocidades e reagem a

variações que ocorrem nas entradas digitais. A fim de reduzir a

probabilidade de um circuito digital interpretar mal uma entrada que

está mudando, desenvolveu-se o Código Gray.

O Código Gray tem a característica distinta de que apenas um bit muda

entre dois números sucessivos.

Para converter binário em Gray, comece com o bit mais significativo e

use-o como o Gray MSB. Em seguida, compare o binário MSB com o

próximo bit, se eles forem iguais então o bit na codificação Gray será 0,

se forem diferentes será 1. Repita a operação até o último bit.

Para converter Gray em binário, comece com o bit mais significativo e

use-o como o binário MSB. Nos passos seguintes, cada bit binário é

obtido comparando o bit binário à esquerda com o bit correspondente

em Código Gray. Bits similares produzem um 0 e bits diferentes

produzem um 1.

Page 13: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

13 Eletrônica Digital - Teoria

Código Gray

Para converter binário em Gray, comece com o bit mais significativo e

use-o como o Gray MSB. Em seguida, compare o binário MSB com o

próximo bit, se eles forem iguais então o bit na codificação Gray será 0,

se forem diferentes será 1. Repita a operação até o último bit.

910 = 10012 = 1101Gray

Page 14: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

14 Eletrônica Digital - Teoria

Código Gray

Para converter Gray em binário, comece com o bit mais significativo e

use-o como o binário MSB. Nos passos seguintes, cada bit binário é

obtido comparando o bit binário à esquerda com o bit correspondente

em Código Gray. Bits similares produzem um 0 e bits diferentes

produzem um 1.

1101Gray = 10012

Page 15: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

15 Eletrônica Digital - Teoria

A aplicação mais comum do código Gray é nos codificadores de

rotação de eixo. Esses dispositivos produzem um valor binário que

representa a posição de um eixo mecânico em rotação.

Código Gray

Page 16: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

16 Eletrônica Digital - Teoria

Códigos Alfa-Numéricos

Page 17: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

17 Eletrônica Digital - Teoria

Além de dados numéricos, um computador precisa ser capaz de

manipular informações não numéricas. O código alfanumérico mais

utilizado é o Código Padrão Americano para Troca de Informações

(American Standard Code for Information Interchange – ASCII).

O código ASCII é um código de 7 bits, portanto ele tem 27 = 128

representações codificadas. Isso é mais que o suficiente para

representar todos os caracteres de um teclado padrão, como também

funções do tipo <RETURN> e <LINEFEED>.

O código ASCII é usado para transferência de informação alfanumérica

entre um computador e dispositivos externos.

Códigos Alfa-Numéricos Códigos ASCII

Page 18: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

18 Eletrônica Digital - Teoria

Código ASCII (7 bits) Bits Bits superiores (mais significativos)

inferiores 000 001 010 011 100 101 110 111

0000 null dle 0 @ P ` p

0001 soh dc1 ! 1 A Q a q

0010 stx dc2 " 2 B R b r

0011 etx dc3 # 3 C S c s

0100 eot dc4 $ 4 D T d t

0101 enq nak % 5 E U e u

0110 ack syn & 6 F V f v

0111 bell etb ' 7 G W g w

1000 bsp can ( 8 H X h x

1001 ht em ) 9 I Y i y

1010 lf sub * : J Z j z

1011 vt esc + ; K [ k {

1100 ff fs , < L \ l |

1101 cr gs – = M ] m }

1110 so rs . > N ^ n ~

1111 si us / ? O _ o del

Page 19: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

19 Eletrônica Digital - Teoria

Códigos Alfa-Numéricos Códigos ASCII

Page 20: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

20 Eletrônica Digital - Teoria

Códigos Alfa-Numéricos Códigos ASCII

Page 21: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

21 Eletrônica Digital - Teoria

Sistemas de Detecção de Erros

Page 22: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

22 Eletrônica Digital - Teoria

A maioria dos equipamentos digitais modernos é projetado para ser

relativamente livre de ruído, e a probabilidade de erros deverá ser

baixa. Entretanto, sistemas digitais que transmitam centenas ou até

milhões de bits por segundo, mesmo com uma pequena taxa de

ocorrência de erros podem produzir erros aleatórios capazes de gerar

alguns desastres.

Uma das técnicas mais simples para detecção de erros é o método de

paridade.

Um bit de paridade consiste em um bit extra anexado ao conjunto de

bits do código a ser transferido de uma localidade para outra. O bit de

paridade pode ser 0 ou 1, dependendo do número de 1s contido no

conjunto de bits do código. Dois métodos diferentes são usados:

paridade par e paridade ímpar.

Sistemas de Detecção de Erros Método da Paridade

Page 23: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

23 Eletrônica Digital - Teoria

Considere que se deseja transmitir o caractere „C‟ cujo ASCII em 7 bits

é 1000011.

1 0 0 0 0 1 1

C

TRANSMISSOR

1

bit de paridade anexado

Considere paridade par.

Sistemas de Detecção de Erros Método da Paridade

Page 24: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

24 Eletrônica Digital - Teoria

Considere que se deseja transmitir o caractere „C‟ cujo ASCII em 7 bits

é 1000011.

1 0 0 0 0 1 1

C

TRANSMISSOR

1

bit de paridade anexado

1 1 0 0 0 1 1

C

RECEPTOR

1

Ruído

Como o número de 1s não é par, o

erro é detectado no receptor. Considere paridade par.

Sistemas de Detecção de Erros Método da Paridade

Page 25: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

25 Eletrônica Digital - Teoria

APLICAÇÃO: Quando é necessário transmitir caracteres ASCII entre

dois sistemas independentes, é preciso encontrar um forma de avisar

o receptor na transmissão.

Sistemas de Detecção de Erros Método da Paridade

Page 26: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

26 Eletrônica Digital - Teoria

Exemplos

1101Gray = ?BCD8421

00100001BCD8421 = ?Gray

00100101BCD8421 = ?Gray

1001Gray = ?BCD8421

001000012 = ?Gray

001001012 = ?Gray

Page 27: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

27 Eletrônica Digital - Teoria

Códigos BCD

Page 28: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

28 Eletrônica Digital - Teoria

Dígito decimal Cód. NBCD

(8421)

Cód.Aiken

(2421)

Cód.Stibitz

(8421 – 3)

Cód.7421

(7421)

Cód. 642-1

(642-1)

0 0000 0000 0011 0000 0000

1 0001 0001 0100 0001 0011

2 0010 0010 0101 0010 0010

3 0011 0011 0110 0011 0101

4 0100 0100 0111 0100 0100

5 0101 1011 1000 0101 0111

6 0110 1100 1001 0110 1000

7 0111 1101 1010 0111 1011

8 1000 1110 1011 1001 1010

9 1001 1111 1100 1010 1101

Códigos BCD

Page 29: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

29 Eletrônica Digital - Teoria

1. Dígito legal (entre 0 e 9), sem “vai-um”. Resultado está

correto e não existe “vai-um” para o dígito seguinte

2. Dígito ilegal sem “vai-um”. Resultado está entre 10 e 15

(em binário); para obter o dígito correto, subtrair 10 do

dígito (ou somar seis, o que é equivalente), e gerar um

“vai-um” para o dígito decimal seguinte

3. Dígito legal com “vai-um”. Quando o resultado cai entre 16

e 19; para obter o dígito correto subtrair 10 do dígito (ou

somar seis). O “vai-um” gerado está correto

Na soma de dois dígitos BCD (entre 0 e 9) em binário, o dígito resultante pode

estar em um de três casos:

Somas em BCD

Page 30: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

30 Eletrônica Digital - Teoria

A =

0000

1000

0011

0010

B = 0000 1001 1000 0011

Sejam A = 0832 e B = 0983

A+B = 1815

Soma em BCD

Page 31: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

31 Eletrônica Digital - Teoria

A =

1

0000

1000

0011

0010

B = 0000 1001 1000 0011

0001 0001 1011 0101

caso

1

caso

3

caso

2

caso

1

Sejam A = 0832 e B = 0983; A+B = 1815

Soma em BCD

Page 32: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

32 Eletrônica Digital - Teoria

A =

1

0000

1000

0011

0010

B = 0000 1001 1000 0011

0001 0001 1011 0101

caso

1

caso

3

caso

2

caso

1

1

0001 0001 1011 0101

0110 0110

0001 1000 0001 0101

Sejam A = 0832 e B = 0983; A+B = 1815

Tratando-se cada caso, tem-se:

Soma em BCD

Page 33: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

33 Eletrônica Digital - Teoria

A=0372 e B=0633

A = 0000 0011 0111 0010

B = 0000 0110 0011 0011

Soma em BCD

Page 34: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

34 Eletrônica Digital - Teoria

A=0372 e B=0633 ; A+B = 1005

A = 0000 0011 0111 0010

B = 0000 0110 0011 0011

0000 1001 1010 0101

caso

2

Soma em BCD

Page 35: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

35 Eletrônica Digital - Teoria

A=0372 e B=0633 ; A+B = 1005

A = 0000 0011 0111 0010

B = 0000 0110 0011 0011

0000 1001 1010 0101

caso

2

1

0000 1001 1010 0101

0110

0000 1010

caso

2

0000 0101

Com a correção do caso 2 tem-se:

E a correção deste caso fornece o resultado final (1005)

Soma em BCD

Page 36: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

36 Eletrônica Digital - Teoria

- soma 6 em todos os dígitos de um dos operandos antes da soma das duas parcelas - só existem dois casos a serem tratados, distinguidos pelo “vai-um”:

1. O resultado não deu “vai-um” e então caiu entre 6 e 15. Deve-se subtrair 6 para obter o dígito correto.

2. O resultado produziu um “vai-um”. Então este “vai-um” já foi propagado e o dígito está correto entre 0 e 9.

A = 0000 0011 0111 0010

soma de 6 0110 0110 0110 0110

0110 1001 1101 1000

Exemplo: seja A=0372 e B=0633

Algoritmo de Hellerman

Page 37: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

37 Eletrônica Digital - Teoria

1 1

A+6= 0110 1001 1101 1000

B= 0000 0110 0011 0011

0111

caso

1

0000

caso

2

0000

caso

2

1011

caso

1

Segunda etapa: soma de (A+6) com B:

Terceira etapa: somar 10 e ignorar “vai-um”:

0111 0000 0000 1011

1010 1010

0001 0000 0000 0101

Algoritmo de Hellerman

Page 38: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

38 Eletrônica Digital - Teoria

Dígito

decimal

NBCD

(8421)

Excesso-de-3

(8421 – 3)

0 0000 0011

1 0001 0100

2 0010 0101

3 0011 0110

4 0100 0111

5 0101 1000

6 0110 1001

7 0111 1010

8 1000 1011

9 1001 1100

Códigos BCD

Assim, a regra para a soma em excesso de três é simples: somam-se os dígitos usando aritmética binária; se um „vai-um‟ é gerado, somar 3 (0011) ao dígito decimal; senão, subtrair 3 (0011) ao dígito decimal (ou somar 1101 e desprezar o „vai-um‟).

Page 39: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

39 Eletrônica Digital - Teoria

• somente 2 bits com valor igual a 1 em cada código

• permite detecção de erros simples

• exceção: código de zero não usa os pesos, mas mantém dois 1‟s.

Dígito

decimal

Cód.

74210

0 11000

1 00011

2 00101

3 00110

4 01001

5 01010

6 01100

7 10001

8 10010

9 10100

Código de 5 bits ponderados

Page 40: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

40 Eletrônica Digital - Teoria

• somente 2 bits com valor 1 em cada código: um à esquerda e um à direita

• esquerda = 01 valor de 0 a 4; esquerda = 10 valor de 5 a 9

• incrementar em 1 = deslocar para a esquerda a parte da direita

Dígito decimal 50 43210

0 01 00001

1 01 00010

2 01 00100

3 01 01000

4 01 10000

5 10 00001

6 10 00010

7 10 00100

8 10 01000

9 10 10000

Código de 7 bits ponderados

Foi utilizado pela IBM

no modelo IBM650.

Também é denominado

de biquinário.

Page 41: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

41 Eletrônica Digital - Teoria

Códigos de Hamming

O código de Hamming é um código de bloco linear, foi

desenvolvido por Richard Hamming. É utilizado no processamento de

sinal e nas telecomunicações. A sua utilização permite a transferência e

armazenamento de dados de forma segura e eficiente.

Nas telecomunicações os códigos de Hamming utilizados são

generalizações do Hamming (7,4). Estes podem detectar erros até dois

bits e corrigir até um bit. Em contraste, o código de paridade não pode

corrigir erros, e pode detectar apenas um número ímpar de erros.

Page 42: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

42 Eletrônica Digital - Teoria

• “Distância de Hamming”: número de bits que é preciso alterar

para passar de um código válido para outro.

• Exemplo:

– entre 0100 e 0010, d = 2

– entre 0000 e 1111, d = 4

• Distância 1: não é possível detectar/corrigir erros;

• Distância 2: é possível apenas detectar erro em 1 bit;

• Distância 3: é possível detectar e corrigir erro em 1 bit; possível

detectar erros em 2 bits sem corrigir;

• Distância 2n+1: detecta 2n, corrige apenas n

Códigos de Hamming

Page 43: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

43 Eletrônica Digital - Teoria

Usa paridade par:

A - paridade de 1,3,5,7

B - paridade de 2,3,6,7

C - paridade de 4,5,6,7

128 combinações

só 16 válidas

Posição 1 2 3 4 5 6 7

Código A B 8 C 4 2 1

0 0 0 0 0 0 0 0

1 1 1 0 1 0 0 1

2 0 1 0 1 0 1 0

3 1 0 0 0 0 1 1

4 1 0 0 1 1 0 0

5 0 1 0 0 1 0 1

6 1 1 0 0 1 1 0

7 0 0 0 1 1 1 1

8 1 1 1 0 0 0 0

9 0 0 1 1 0 0 1

10 1 0 1 1 0 1 0

11 0 1 1 0 0 1 1

12 0 1 1 1 1 0 0

13 1 0 1 0 1 0 1

14 0 0 1 0 1 1 0

15 1 1 1 1 1 1 1

Códigos de Hamming

Page 44: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

44 Eletrônica Digital - Teoria

• Calcula-se o bit de paridade par de cada grupo e forma-se um número binário de 3 bits: cba

• se cba = 0, não há erro

• se cba 0, então há erro no bit apontado pelo valor decimal representado por cba

posição: 1 2 3 4 5 6 7

pesos: A B 8 C 4 2 1

valor: 1 0 1 0 0 1 0

c = 1 0 0 1 0

b = 0 0 1 1 0

a = 0 1 1 0 0

cba = 1002 (ou 410)

Códigos de Hamming - Correção

Page 45: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

45 Eletrônica Digital - Teoria

• Calcula-se o bit de paridade par de cada grupo e forma-se um número binário de 3 bits: cba

• se cba = 0, não há erro

• se cba 0, então há erro no bit apontado pelo valor decimal representado por cba

posição: 1 2 3 4 5 6 7

pesos: A B 8 C 4 2 1

valor: 1 0 1 0 0 1 0

c = 1 0 0 1 0

b = 0 0 1 1 0

a = 0 1 1 0 0

cba = 1002 (ou 410)

Códigos de Hamming - Correção

Page 46: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

46 Eletrônica Digital - Teoria

Usa paridade par:

A - paridade de 1,3,5,7

B - paridade de 2,3,6,7

C - paridade de 4,5,6,7

Exemplos:

0111010

1011001

1110110

Posição 1 2 3 4 5 6 7

Código A B 8 C 4 2 1

0 0 0 0 0 0 0 0

1 1 1 0 1 0 0 1

2 0 1 0 1 0 1 0

3 1 0 0 0 0 1 1

4 1 0 0 1 1 0 0

5 0 1 0 0 1 0 1

6 1 1 0 0 1 1 0

7 0 0 0 1 1 1 1

8 1 1 1 0 0 0 0

9 0 0 1 1 0 0 1

10 1 0 1 1 0 1 0

11 0 1 1 0 0 1 1

12 0 1 1 1 1 0 0

13 1 0 1 0 1 0 1

14 0 0 1 0 1 1 0

15 1 1 1 1 1 1 1

Códigos de Hamming

Page 47: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

47 Eletrônica Digital - Teoria

Códigos de Hamming

Considere uma palavra de 8 bits. Numere os bits de:

m1 m2 m3 m4 m5 m6 m7 m8

A esse dado de 8 bits vamos acrescentar 4 bits, formando o código de

Hamming de 12 bits.

Numere os bits do código de Hamming como sendo:

x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12

Page 48: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

48 Eletrônica Digital - Teoria

Códigos de Hamming

Sejam

x3 = m1

x5 = m2

x6 = m3

x7 = m4

x9 = m5

x10 = m6

x11 = m7

x12 = m8

Os 4 bits restantes são calculados conforme abaixo, onde representa a operação

ou-exclusivo (xor):

x1 = x3 x5 x7 x9 x11

x2 = x3 x6 x7 x10 x11

x4 = x5 x6 x7 x12

x8 = x9 x10 x11 x12

Page 49: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

49 Eletrônica Digital - Teoria

Códigos de Hamming

Seja y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 a mensagem recebida.

Calculamos:

k1 = y1 y3 y5 y7 y9 y11

k2 = y2 y3 y6 y7 y10 y11

k3 = y4 y5 y6 y7 y12

k4 = y8 y9 y10 y11 y12

Caso tenhamos k1 = k2 = k3 = k4 = 0, não há erro.

Caso contrário, o número binário codificado pelos 4 bits determina a posição do bit

errado (k4 k3 k2 k1 ).

Page 50: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

50 Eletrônica Digital - Teoria

Bibliografia

Capítulo 2 - TOCCI, Ronald; WIDMER, N. S. "Sistemas Digitais.

Princípios e Aplicações". 11ª Edição. Editora Prentice-Hall, 2011.

Capítulo 2 - PEDRONI Volnei A. "Eletrônica Digital Moderna e VHDL". 1ª

Edição. Editora Campus, 2010.

Capítulo 1 - KARIM, Mohammad A.; CHEN, Xinghao. "Projeto Digital -

Conceitos e Princípios Básicos". 1ª Edição. Editora LTC.

Page 51: Aula 04 - computacao-ifmg.weebly.comcomputacao-ifmg.weebly.com/.../6/5946176/eletrnica_digital_aula_04.pdf · Eletrônica Digital - Teoria 1 Aula 04 Código BCD, Códigos Alfa-numéricos

51 Eletrônica Digital - Teoria

sites.google.com/a/ifmg.edu.br/otavio-gomes/eletronica-digital