11. generador/comprobador de paridad · 11. generador/comprobador de paridad en las transferencias...

18
Electrónica Digital. Tema 4. - 193 - 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos de un sistema a otro), se pueden producir errores. Estos errores se manifiestan a través de cambios indeseados en alguno de los bits que conforman el paquete de información. La probabilidad de que ocurra un error en una transmisión de este tipo es muy pequeña y de que ocurran dos todavía menor. Para la detección de estos errores se utiliza un bit de paridad. 11.1. Bit de paridad Es un bit que se añade a la izquierda del grupo de bits que forman el paquete de información a transmitir. El objetivo es conseguir que en todos los paquetes a transmitir, la cantidad de 1s sea par o impar según se establezca con anterioridad. Ejemplo: Acuerdo Paquete de información Paridad par Paridad impar ASCII A = 1000001 01000001 11000001 ASCII T= 1010100 11010100 01010100 Si un sistema trabaja con paridad par, todos los paquetes que recibe el sistema receptor deberan contener un número par de unos. Si no fuese así, en la transmisión habría ocurrido un error. Puede concluirse que mediante este sistema, solo se detecta si hay un número impar de errores por paquete de información, es decir, si en la transmisión hubiera 2 errores, el receptor no detectaría dicho error.

Upload: others

Post on 21-Jan-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 193 -

11. Generador/comprobador de paridad

En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión

de códigos de un sistema a otro), se pueden producir errores. Estos errores se

manifiestan a través de cambios indeseados en alguno de los bits que conforman el

paquete de información. La probabilidad de que ocurra un error en una transmisión de

este tipo es muy pequeña y de que ocurran dos todavía menor. Para la detección de estos

errores se utiliza un bit de paridad.

11.1. Bit de paridad

Es un bit que se añade a la izquierda del grupo de bits que forman el paquete de

información a transmitir. El objetivo es conseguir que en todos los paquetes a transmitir,

la cantidad de 1s sea par o impar según se establezca con anterioridad.

Ejemplo:

Acuerdo

Paquete de información Paridad par Paridad impar

ASCII A = 1000001 01000001 11000001

ASCII T= 1010100 11010100 01010100

Si un sistema trabaja con paridad par, todos los paquetes que recibe el sistema receptor

deberan contener un número par de unos. Si no fuese así, en la transmisión habría

ocurrido un error.

Puede concluirse que mediante este sistema, solo se detecta si hay un número impar de

errores por paquete de información, es decir, si en la transmisión hubiera 2 errores, el

receptor no detectaría dicho error.

Page 2: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 194 -

11.2. Generación y comprobación de paridad

Así pues, es necesario diseñar un sistema que genere el bit de paridad a añadir al

paquete de información y otro sistema que compruebe la paridad en el receptor. A este

tipo de circuitos se les denomina Generador de paridad y Comprobador de paridad ,

respectivamante.

Generador de paridad

Supongamos que se desea transmitir un paquete d einformación compuesot por dos bits

(A1 A0) y que el acuerdo preestablecido es la utilización de paridad par. En ese caso, la

tabla de verdad y el circuito correspondiente son los mostrados en la Figura 125.

Figura 125

Siguiendo el mismo razonamiento, si el paquete de información a enviar debe contener

tres bits (A2 A1 A0), la tabla de verdad par ael diseño del circuito sería la desarrollada en

la Figura 126.

Figura 126

Page 3: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 195 -

Transmisión

Una vez generado el bit de paridad, se añade al paquete a transmitir tal y como se

muestra en la Figura 127.

Figura 127

Page 4: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 196 -

Comprobador de paridad

Siguiendo con el último ejemplo, transmisión de un paquete de información compuesto

por tres bits con convenio de paridad par, la tabla de verdad correspondiente al circuito

comprobador de paridad se presenta enla Figura 128 junto con la función lógica y el

diagrama lógico obtenido apartir d ela misma.

Donde E = 1 indica que ha habido algún error

en la transmisión, es decir, ha detectado que el

númeor de 1s recibido ha sido impar cuando

debería haber sido par según el conveio

preestablecido.

E = A2 ⊕A1 ⊕ A0 ⊕ BP

Figura 128

A2 A1 A0 BP E

0 0 0 0 0

0 0 0 1 1

0 0 1 0 1

0 0 1 1 0

0 1 0 0 1

0 1 0 1 0

0 1 1 0 0

0 1 1 1 1

1 0 0 0 1

1 0 0 1 0

1 0 1 0 0

1 0 1 1 1

1 1 0 0 0

1 1 0 1 1

1 1 1 0 1

1 1 1 1 0

Page 5: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 197 -

11.3. Circuito comercial

Un circuito comercial es el 74280 y puede utilizarse tanto como generador como

comprobador de paridad haciendo un uso adecuado de sus entradas y salidas. Su tabla

de funcionamiento y encapsulado se presentan en la Figura 129 y en el siguiente

apartado se analizara su utidad a través de una aplicación.

Figura 129

11.4. Aplicación

En la Figura 130 se muestra un sistema de transmisión de datos. En él se han utilizado

un multiplexor, un demultiplexor, el generador/comprobador de paridad y un sistema de

almacenamiento. La función de este último bloque consiste en guardar los datos hasta

tener disponibles los 8 datos del paquete.

Para utilizarlo el 74280 como generador de paridad par utilizaríamos la salida Impar y

para utilizarlo como comprobador de paridad par también la salida Impar. Esta salida

determina si hay error en los datos de sus entradas pero esa señal de error solo será

válida en el momento en que se hayan transmitido los 8 bits. Para ello, se utiliza la

puerta AND que transmitirá el error cuando las entradas de selección sean todas 1.

Page 6: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 198 -

Figura 130

Error =1

Bit de paridad

Σ Impar

Σ Par

Σ Impar

Σ Par

Page 7: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 199 -

11.5. Método de paridad para la detección y corrección de errores: códigos de Hamming

Además de los bits de paridad, existen otros códigos específicos que también permiten

realizar la detección de errores. Uno de estos es el código Hammning mediante el cual

se puede detectar un error y corregirlo. El código Hamming extendido permite detectar

dos errores.

En el código Hammnig se emplean varios bits de paridad (BP) en lugar de un único bit

para todo el paquete de datos (o palabra) a enviar.

Cada uno de los bits de paridad se genera a partir de un grupo de bits (un subgrupo) de

la palabra (palabra: D0, D1, D2, ...Dn-1)) de datos. Por ello, el primer paso será decidir el

número de bits de paridad que habrá que añadir. Este numero debe cumplir la siguiente

inecuación:

2k ≥ n + k + 1 Þ Bp1, Bp2,…Bpk (Bits de paridad) Donde k es el número de bits de paridad a añadir a la palabra de n bits. Por lo tanto, la

palabra nueva tendrá k + n bits, y cada k bit es un bit de paridad de un subgrupo de bits

de la palabra a transmitir. Cada bit de paridad debe ocupar unaposición concreta en la

nueva palabra a transmitir. Esa posición se define utilizando la expresión:

PBpi = 2i-1 (i=1,..k)⇒ posición del bip de paridad i-ésimo

Posición 1 2 3 4 5 6 7

Posición P1 P2 P3 P4 P5 P6 P7

Bit en la

posición

BP1 BP2 D0 BP3 D1 D2 D3

El segundo paso será definir los grupos de bits (o subgrupos) a paritr de la nueva

palabra de datos, es decir la compuesta por los bits de información y los bits de paridad.

También ahbrá que asignar a cada subgrupo uno de los bits de paridad creados Bpk

(i=1,..k). Para ello, habrá que generar una lista de números desde 0 hasta (2k-1). A

continuación, esos números se deben expresar en binario natural. Teniendo en cuanta

ese formato, se analiza el valor de cada uno de los bits de todos los números de la lista,

es decir, los los bis de la posición 20 , los de la posición 21 y los de la posición 22 . En

cada caso, se anota el número que contiene un 1. Los números obtenidos así indican la

posición de los bits que formarán cada subgrupo. Un ejmeplo de aplicación se muestra

en la Figura 131. para un paquete de infrmación de 4 bits, es decir, n = 4.

Page 8: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 200 -

Subgrupo 1 (genera Bp1)= (P1, P3, P5, P7)

Subgrupo 2 (genera Bp2)= (P2, P3, P6, P7)

Subgrupo 3 (genera Bp3)= (P4, P5, P6, P7)

Figura 131

Se observa que cada subgrupos incluye la posición correspondiente aun bit de paridad,

lo cual no tiene ningún sentido, ya que, estos grupos son precisamnete para generar los

bits de paridad. Por ello, habrá que eliminar de cada subgrupo ese bit y ese grupo será el

que genere el bit de paridad que ha habido que eliminar.

11.6. Aplicación: transmisión de palabras de 4 bits

Ene ste apartado se va a diseñar el sistema de generación/comprobación/corrección

aplicando los códigos Hammning para un paquete de información de n = 4.

En primer lugar se obtienen los datos de partida:

• Número de bits de paridad = 3 que denominaremos Bp1Bp2Bp3 y ocupan las

posiciones, P0, P1, P4.

• Bits que corresponden en cada posicion:

Bp1Bp2D0Bp3D1D2D3 = P1P2P3 P4P5P6P7

• Agrupación de los bits (subgrupos que generan los bits de paridad):

Bp1 ∝ (P3P5P7); Bp2 ∝ (P3P6P7); Bp3 ∝ (P5P6P7)

A continuación se deben diseñenar los circuitos para generr los bits de paridad, detector

de error y el corrector de error.

22 21 20

0 0 0 0

1 0 0 1

2 0 1 0

3 0 1 1

4 1 0 0

5 1 0 1

6 1 1 0

7 1 1 1

Page 9: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 201 -

Circuito generador de bits de paridad

El diagrama de bloques para el circuito gnerador será el representado en la Figura 132:

Figura 132

Observando el diagrama de bloques se concluye que es necesario del diseño de tres

circuitos generadores de paridad, sin embargo, es evidente que basta con diseñar un

único bloque ya que la funcionalidad de los tres es la misma y únicamente varian los

nombres de las entradas y salidas. Así pues, la tabla de verdad será:

P7 P6 P5 P4=BP3

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

Tabla 32

Page 10: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 202 -

La función lógica que se obtiene es:

BP3 = P7 ⊕P6 ⊕ P5

Aplicando esa lógica a los otros dos bloques

BP2 = P7 ⊕P6 ⊕ P3

BP1 = P7 ⊕P5 ⊕ P3

Circuito detector de error

Una vez transmitida la información, hay que chequear si ha ocurrido algún error en la

transmisión. El diagrama de bloques correspondiente será:

Igual que en apartado anterior, basta con diseñar un único de los tres bloques que

aparecen en el diagrama ya que la funcionalidad de los tres es la misma y únicamente

varian los nombres de las entradas y salidas. Así pues, la tabla de verdad será:

Page 11: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 203 -

P7 P6 P5 P4=BP3 E3

0 0 0 0 0

0 0 0 1 1

0 0 1 0 1

0 0 1 1 0

0 1 0 0 1

0 1 0 1 0

0 1 1 0 0

0 1 1 1 1

1 0 0 0 1

1 0 0 1 0

1 0 1 0 0

1 0 1 1 1

1 1 0 0 0

1 1 0 1 1

1 1 1 0 1

1 1 1 1 0

Tabla 33

Donde E3 = 1 indicará que ha ahbido error, es decir, un número impar de 1s en las

entradas.

La función lógica que se obtiene es:

E3 = P7 ⊕P6 ⊕ P5 ⊕ P4

Aplicando esa lógica a los otros dos bloques

E2 = P3 ⊕ P6 ⊕ P7 ⊕ P2

E1 = P3 ⊕ P5 ⊕ P7 ⊕ P1

Page 12: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 204 -

Circuito corrector de error

Para implementar el circuito correcto de error, analicemos la información de las salidas

E1, E2, E3. Teniendo en cuenta que Ei = 0 indica que no hay error en el grupo

correspondiente, la combinación E1= 0 E2 = 0 y E3 = 1, significa que un bit del grupo E

ha conmutado y además ese bit no está en el grupo de E1 ni en el de E2. Por lo tanto,

deberá ser el bit de la posición 4.

Estudiando todas las combinaciones posibles de E1, E2, E3.componemos la Tabla 34

donde B.E. indica la posición del Bit Erroneo. Se observa que el número binario que

componen E3 E2 E1 indica la posición del bit erroneo.

MSB E3 0 0 0 0 1 1 1 1

E2 0 0 1 1 0 0 1 1 LSB E1 0 1 0 1 0 1 0 1

B.E - 1 2 3 4 5 6 7

Tabla 34

E = E3 E2 E1 (E =0, 1, 1, 3...7)⇒ E ≠ 0 ERROR

Así pues, con la información contenida en E, se puede conocer el bit erroneo y por lo

tanto corregirlo, es decir, complementarlo. El diagrama de bloques para este diseño se

presenta en la Figura 133 donde Cpi indica que se debe corregir el bit de la posición pi

con i =3,5,6,7 (los bits de estas posicione son los únicos que conllevan la información

que se deseaba transmitir). Las salidas Dic se corresponden con los datos transferidos y

corregidos.

Figura 133

Page 13: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 205 -

Las tablas de verdad para los bloques del diagrama son las siguientes:

1) Selector de línea erronea

La tabla de verdad será:

Observando dicha tabla puede concluirse que este circuito puede implementarse

utilizando puertas lógicas o un decodificador con tres entradas.

Figura 134

2) Corrector de errores

Si el dato Di debe corregirse, es decir, Zpi = 1, entonces, ese dato debe invertirse. La

tabla de verdad correspondientea esa lógica y la función lógica obtenida son:

Dic = Di ⊕ CDi

Di Cpi Dic

0 0 0

0 1 1

1 0 1

1 1 0

Page 14: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 206 -

Circuito completo

El circuito completo para la transmisión de una palabra de cuatro bits utlizando los

códigos Hammnig se presenta en la Figura 135.

Figura 135

Circuito detector de doble error

La detección del doble error es muy importante ya que de ocurrir, el circuito receptor no

detectaría error alguno puesto que el número de 1s leído sería par. Para detectar doble

error, basta con añadir otro bit de paridad sobre el grupo de bits compuesto por: los n

bits de la palabra inicial que contiene la información a transferir y, los k bits de paridad

generados. Por lo tanto, la nueva palabra está compuesta por n + k + 1 bits. Este bit

ocuparará la posición 8 y le denominamos Bp8

P8 = Bp8 ∝ ( P7 P6 P5 P4 P3 P2 P1 ).

En la Figura 136 se representan los diagramas de bloques para el emisor y el receptor

donde se han añadido los circuitos que generan Bp8 y E8. Este último circuito evaluará la

paridad sobre los n + k + 1 bits

Transmisión

Receptor

Page 15: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 207 -

Figura 136

En caso de detectar doble error, ante la imposibilidad de detectar qué dos bits han

mutado (ya que los ciruitos anteriores sólo son validos para el caso de un único error)

y por lo tanto corregirlos, deberá diseñarse un circuito que solicite el reenvio de la

información. Este circuito tendrá como entradas E1, E2, E3. E8 . Analizando la

combinación de esta información se concluye:

Si E = 0 y E8 = 0 Þ R = no ha habido error. no hay que solicitar el reenvio de datos

Si E ≠ 0 y E8 = 1 Þ R = ha habido un error en alguno de los subgrupos. Entonces, se

corrige y no hay que solicitar el reenvio de datos.

Si E ≠ 0 y E8 = 0 Þ R = ha habido doble error. Debe solicitarse el reenvio de datos.

Si E = 0 y E8 = 1 Þ R = ha habido error en el bit de paridad Bp8. No hay que solicitar

el reenvio de datos

A partir de las líneas anteriores, la tabla de verdad correspondiente al circuito que

debe dar la señal de reenvio de información será:

Page 16: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 208 -

R = 1 significará que se debe reenviar la

información.

La función lógica que se obtiene es:

( )8 3 2 11 2 3 8R E E E E E E E E= + + +

Si al circuito de la Figura 135. se le añade el circuito detector de dos errores el resultado

sería el presentado en la Figura 137.

Figura 137

E8 E3 E2 E1 R

0 0 0 0 0

0 0 0 1 1

0 0 1 0 1

0 0 1 1 1

0 1 0 0 1

0 1 0 1 1

0 1 1 0 1

0 1 1 1 1

1 0 0 0 0

1 0 0 1 0

1 0 1 0 0

1 0 1 1 0

1 1 0 0 0

1 1 0 1 0

1 1 1 0 0

1 1 1 1 0

Page 17: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 209 -

11.7. Ejemplo de aplicación de código Hamming

Se utilizará paridad par.

Datos a transmitir: 1010 , y su posición 3 5 6 7

Bits de paridad: P1 (D3D5D7 ) = 1

P2 (D3D6D7 ) = 0

P4 (D5D6D7 ) = 1

Paquete completo a transmitir

Posición 1 2 3 4 5 6 7

Palabra 1 0 1 1 0 1 0

Veamos cómo aplicando las funciones lógicas obtenidas, funciona correctamente la

codificación.

Supongamos error en la posición 3: 1 → 0

Posición 1 2 3 4 5 6 7

Palabra 1 0 0 1 0 1 0

C4 = D7 ⊕D6 ⊕ D5 ⊕ BP4 = 0

C2 = D3 ⊕ D6 ⊕ D7 ⊕ BP2 = 1 B. E. = 3, el bit erroneo está en la

posición 3

C1 = D3 ⊕ D5 ⊕ D7 ⊕ BP1 = 1

Supongamos error en la posición 2: 0 → 1

Posición 1 2 3 4 5 6 7

Palabra 1 1 1 1 0 1 0

C4 = D7 ⊕D6 ⊕ D5 ⊕ BP4 = 0

C2 = D3 ⊕ D6 ⊕ D7 ⊕ BP2 = 1 B. E. = 2, el bit erroneo está en la

posición 2

C1 = D3 ⊕ D5 ⊕ D7 ⊕ BP1 = 0

Supongamos error en la posición 3: 1 → 0 y en laposición 2: 0 → 1

Posición 1 2 3 4 5 6 7

Palabra 1 1 0 1 0 1 0

C4 = D7 ⊕D6 ⊕ D5 ⊕ BP4 = 0

Page 18: 11. Generador/comprobador de paridad · 11. Generador/comprobador de paridad En las transferencias de datos digitales (dentro de un sistema digital o en la transmisión de códigos

Electrónica Digital. Tema 4. - 210 -

C2 = D3 ⊕ D6 ⊕ D7 ⊕ BP2 = 0 B. E. = 1, la ecuación indica que el.

bit erroneo está en la posición 1, lo

C1 = D3 ⊕ D5 ⊕ D7 ⊕ BP1 = 1 cual es incorrecto

Si se añade P8 = 0 a los ejemplos anteriores

Posición 1 2 3 4 5 6 7 8

Palabra 1 0 1 1 0 1 0 0

Supongamos error en la posición 3: 1 → 0

Posición 1 2 3 4 5 6 7 8

Palabra 1 0 0 1 0 1 0 0

C4 = D7 ⊕D6 ⊕ D5 ⊕ BP4 = 0

C2 = D3 ⊕ D6 ⊕ D7 ⊕ BP2 = 1 B. E. = 3, el bit erroneo está en la

posición 3

C1 = D3 ⊕ D5 ⊕ D7 ⊕ BP1 = 1

C8 = 1

Supongamos error en la posición 3: 1 → 0 y en la posición 2: 0 → 1

Posición 1 2 3 4 5 6 7 8

Palabra 1 1 0 1 0 1 0 0

C4 = D7 ⊕D6 ⊕ D5 ⊕ BP4 = 0

C2 = D3 ⊕ D6 ⊕ D7 ⊕ BP2 = 0 Las ecuaciones indican que ha

habido dos errores

C1 = D3 ⊕ D5 ⊕ D7 ⊕ BP1 = 1

C8 = 0