Você está na página 1de 16

INFORME PROYECTO Nº 1

DOCENTE: ING. RAMIRO AUGUSTO RÍOS PAREDES

Integrantes:

 Joel Lema
 Luis Yanez

NRC: 2016

Sangolquí, 03 de Enero del 2018


1
Contenido
1.OBJETIVOS............................................................................................................................................ 3
1.1 Objetivo General: ............................................................................................................................. 3
1.2 Objetivos Específicos: ...................................................................................................................... 3
2.MATERIALES Y EQUIPOS:................................................................................................................ 3
3.Planteamiento del problema ........................................................................................................ 4
4.-Diagrama de Bloques ............................................................................................................................. 5
5.- Bloques de transmision de datos.......................................................................................................... 5
6.-Tabla de codigo hamming con 3 bits de entrada .................................... Error! Bookmark not defined.
7.-Bloques de recepcion de datos ............................................................................................................ 10
8.-Diagrama del circuito optimizado ...................................................................................................... 15
9. CONCLUSIONES Y RECOMENDACIONES ................................................................................. 16

2
1. OBJETIVOS
1.1 Objetivo General:

Diseñar e implementar circuitos combinacionales que permitan generar códigos de errores,


detectar y corregir un bit errado, usando circuitos de baja y mediana escala de integración.

1.2 Objetivos Específicos:


1.2.1 Implementar un circuito detector y corrector de error basado en la codificación
hamming.
1.2.2 Aplicar los conocimientos adquiridos acerca de los elementos MSI Y SSI para el
diseño.
1.2.3 Estudiar y comprender los aspectos relacionados con el código Hamming.

2. MATERIALES Y EQUIPOS:
Materiales

 Dip switch de 3 posiciones.


 Dip switch de 6 posiciones
 Diodos leds.
 Resistencias.
 Display 7 segmentos ánodo común.
 Decodificadores BCD 74LS48.
 Decodificadores BCD 7442.
 Compuertas XOR 74LS86.
 Compuertas 74LS04

3
3. Planteamiento del problema

Diseñar un generador, detector y corrector de errores mediante el código de Hamming, de


acuerdo al siguiente gráfico:

GENERADOR DETECTOR Y
PARIDAD CORRECTOR
HAMMING HAMMING

El primer bloque (Transmisor) debe permitir el ingreso de información de 3 bits, y generar el


código Hamming completo el cual queda listo para ser transmitido.

En el segundo bloque (Receptor) se ingresa el código Hamming generado, el cual, si llegó sin
errores, se entrega tal cual se transmitió para su respectivo procesamiento. Caso contrario,
éste bloque debe detectar el bit errado y corregirlo, presentando finalmente la información
correcta para su respectivo procesamiento.

4
4. Diagrama de bloques

Fig. 1Diagrama de bloques para la generación de código hamming y corrección de error de un bit para 3 bits de información.

5. Explicación clara y detallada del bloque de transmisión

Desde que Claude Shanon desarrollo su teoría de la información, la transmisión de la


información digital presenta un reto constante, puesto que los medios de transmisión pueden
corromper y dañar los datos, por ende es necesario crear métodos que permitan detectar
errores y mejor aún corregirlos; uno de estos métodos es el método de Hamming, desarrollado
por Richard Wesley Hamming.
El método de Hamming nos permite genera un código único, agregando bits de información a
cada palabra enviada en posiciones específicas, con lo cual podemos detectar hasta 1 bit
errado aplicando un procedimiento sencillo e incluso hallar la posición de éste, en caso de que
exista, para poder corregirlo.

 El proceso para generar un código Hamming es:

En el bloque de transmisión se ingresa los bits de información 𝑎2 ,𝑎1 , 𝑎0 para generar el código
Hamming.

Primeramente hay que determinar el número de bits total de la cadena del mensaje para esto
las variables para la generación del código debe cumplir la ecuación:
2𝑐 ≥ 𝑛 + 𝑝 + 1

Dónde:
n: número de bits del código original que se pretende transmitir
p: número de bits de paridad par generados en el transmisor, o sea, número de líneas que
añadimos al código inicial.
c: número de bits detectores de paridad par generados por el receptor.

5
El valor de p = c, ya que los bits de paridad generados tanto en el transmisor como en el receptor
debe ser la misma.

En nuestro caso para 3 bits de información:


2𝑐 ≥ 𝑛 + 𝑝 + 1
23 ≥ 3 + 3 + 1
8≥7
Observamos que si se tienen 3 bits de información se necesitan entonces que c=p=3.

 Número de bits total de la cadena del mensaje: 𝑛 + 𝑝 = 3 + 3 = 𝟔

Para ver como se genera el código Hamming se insertan los bits de datos en las posiciones
apropiadas de las siguientes tablas y los bits de paridad se generan calculando la paridad par.

 Obtener los respectivos valores para cada bit de paridad

Para obtener los respectivos valores que corresponden a cada bit de paridad, nos ayudaremos
la operación lógica “or exclusiva”, la cual será aplicada sobre ciertos elementos de la palabra
original, como se explicará a continuación.

Sea una palabra Hamming de “n” número bits, representada por:

𝑋1 𝑋2 𝑋3 𝑋4 𝑋5 … … … 𝑋𝑛

Podemos representar a cada posición con su respectivo equivalente en binario, recordando


que todos deberán contar con el mismo número de bits para hacerlo, es decir, si se necesitan
“m” bits para representar la posición de 𝑋𝑛, se utilizarán “m” bits para representar cada una de
las demás posiciones

Recordemos ahora que cada bit de paridad cuenta con su respectiva posición, la cual resulta
ser una potencia de 2; si a cada una de estas posiciones le asignamos su respectivo
equivalente en código binario, podemos observar que cada una cuenta con un único “1”, la
posición de éste nos indicara los términos en la palabra Hamming entre los cuales deberemos
ejecutar la operación lógica “or exclusiva”, siendo estos, todos los que contengan un “1” en la
misma posicion que el respectivo bit de paridad a encontrar.

𝐻𝑚 = P1 P2 d1 P4 d2 d3

Los bits de paridad que necesitamos encontrar son: 𝑋1, 𝑋2, 𝑋4, 𝑋8

En donde sus posiciones pueden ser representadas como:

P1: 0001; P2: 0010; P4: 0100

6
Los elementos a tomar en cuenta para hallar el bit de paridad P1 serán todos aquellos que
contengan un 1 en su última posición. Asi mismo, los elementos a tomar en cuenta para hallar
P2 serán todos aquellos que contengan un 1 en si penúltima posición. De igual forma se repite
para hallar P4.

Tomando en cuenta que las posiciones de los demás bits son:

d1: 0011; d2: 0101; d3: 0110

Los bits de paridad se generan mediante la operación o-exclusiva de los bits de información
utilizando compuertas XOR (CI:74LS86) de acuerdo a las siguientes relaciones:

𝒑𝟏 = 𝑑1 ⊕ 𝑑2
𝒑𝟐 = 𝑑1 ⊕ 𝑑3
𝒑𝟑 = 𝑑2 ⊕ 𝑑3

De esta forma podemos hallar el respectivo código Hamming para cualquier posible
combinación que se dé con 3 bits de información.

Bloque del generador de paridad y de código hamming.

Aplicando la teoría usando compuertas XOR (CI: 74LS86) generaremos los bits de paridad,
así como se muestra a continuación.

7
Proceso de generación de código Hamming, para las diferentes
combinaciones.

𝒑𝟏 𝒑𝟐 𝒅𝟏 𝒑𝟑 𝒅𝟐 𝒅𝟑
Posición 0001 0010 0011 0100 0101 0110
(1) (2) (3) (4) (5) (6)
Palabra original 0 0 0
𝒑𝟏 0 0 0
𝒑𝟐 0 0 0
𝒑𝟑 0 0 0
Palabra+Paridad 0 0 0 0 0 0
Tabla 1 Generación código Hamming para la combinación 000

𝒑𝟏 𝒑𝟐 𝒅𝟏 𝒑𝟑 𝒅𝟐 𝒅𝟑
Posición 0001 0010 0011 0100 0101 0110
(1) (2) (3) (4) (5) (6)
Palabra original 0 0 1
𝒑𝟏 0 0 0
𝒑𝟐 1 0 1
𝒑𝟑 1 0 1
Palabra+Paridad 0 1 0 1 0 1
Tabla 2 Generación código Hamming para la combinación 001

𝒑𝟏 𝒑𝟐 𝒅𝟏 𝒑𝟑 𝒅𝟐 𝒅𝟑
Posición 0001 0010 0011 0100 0101 0110
(1) (2) (3) (4) (5) (6)
Palabra original 0 1 0
𝒑𝟏 1 0 1
𝒑𝟐 0 0 0
𝒑𝟑 1 1 0
Palabra+Paridad 1 0 0 1 1 0
Tabla 3 Generación código Hamming para la combinación 010

𝒑𝟏 𝒑𝟐 𝒅𝟏 𝒑𝟑 𝒅𝟐 𝒅𝟑
Posición 0001 0010 0011 0100 0101 0110
(1) (2) (3) (4) (5) (6)
Palabra original 0 1 1
𝒑𝟏 1 0 1
𝒑𝟐 1 0 1
𝒑𝟑 0 1 1
Palabra+Paridad 1 1 0 0 1 1
Tabla 4 Generación código Hamming para la combinación 011
𝒑𝟏 𝒑𝟐 𝒅𝟏 𝒑𝟑 𝒅𝟐 𝒅𝟑
Posición 0001 0010 0011 0100 0101 0110
(1) (2) (3) (4) (5) (6)
Palabra original 1 0 0
𝒑𝟏 1 1 0
𝒑𝟐 1 1 0
𝒑𝟑 0 0 0
Palabra+Paridad 1 1 1 0 0 0
Tabla 5 Generación código Hamming para la combinación 100

𝒑𝟏 𝒑𝟐 𝒅𝟏 𝒑𝟑 𝒅𝟐 𝒅𝟑
Posición 0001 0010 0011 0100 0101 0110
(1) (2) (3) (4) (5) (6)
Palabra original 1 0 1
𝒑𝟏 1 1 0
𝒑𝟐 0 1 1
𝒑𝟑 1 0 1
Palabra+Paridad 1 0 1 1 0 1
Tabla 6 Generación código Hamming para la combinación 101

𝒑𝟏 𝒑𝟐 𝒅𝟏 𝒑𝟑 𝒅𝟐 𝒅𝟑
Posición 0001 0010 0011 0100 0101 0110
(1) (2) (3) (4) (5) (6)
Palabra original 1 1 0
𝒑𝟏 0 1 1
𝒑𝟐 1 1 0
𝒑𝟑 1 1 0
Palabra+Paridad 0 1 1 1 1 0
Tabla 7 Generación código Hamming para la combinación 110

𝒑𝟏 𝒑𝟐 𝒅𝟏 𝒑𝟑 𝒅𝟐 𝒅𝟑
Posición 0001 0010 0011 0100 0101 0110
(1) (2) (3) (4) (5) (6)
Palabra original 1 1 1
𝒑𝟏 0 1 1
𝒑𝟐 0 1 1
𝒑𝟑 0 1 1
Palabra+Paridad 0 0 1 0 1 1
Tabla 8 Generación código Hamming para la combinación 111

9
6. Tabla completa de la generación del código Hamming para 3 bits de
información

Bits de información Código Hamming


𝒂𝟐 𝒂𝟏 𝒂𝟎 𝒃 𝟓 𝒃𝟒 𝒃𝟑 𝒃𝟐 𝒃𝟏 𝒃𝟎
0 0 0 0 0 0 0 0 0
0 0 1 0 1 0 1 0 1
0 1 0 1 0 0 1 1 0
0 1 1 1 1 0 0 1 1
1 0 0 1 1 1 0 0 0
1 0 1 1 0 1 1 0 1
1 1 0 0 1 1 1 1 0
1 1 1 0 0 1 0 1 1
Tabla 9 Código Hamming corrector de errores de un bit obtenido a
partir de la información de 3 bits.

7. Explicación clara y detallada del bloque de recepción

El bloque de recepción recibirá el código Hamming generado anteriormente para


los 3 bits de información.

 Proceso de detección de error.

Para saber si existe un error en la transmisión o si el mensaje se transmitió


correctamente este bloque realiza una comprobación de paridad par entre
determinadas variables de la siguiente manera y con la ayuda de compuertas
XOR (CI:74LS86):

𝒄𝟏 = 𝑏5 ⊕ 𝑏3 ⊕ 𝑏1
𝒄𝟐 = 𝑏4 ⊕ 𝑏3 ⊕ 𝑏0
𝒄𝟑 = 𝑏2 ⊕ 𝑏1 ⊕ 𝑏0

Si los datos de 𝑐1 ,𝑐2 , 𝑐3 nos dan cero en todos el mensaje se transmitió sin error
pero si uno o varios de estos elementos se convierten en 1 quiere decir que hay
un error.

 La posición del bit errado estará determinada por la combinación


𝒄𝟑 𝒄𝟐 𝒄𝟏

10
 Corregir bit errado

La corrección del código se realiza mediante un decodificador BCD a Decimal


(CI:7442) el cual entrega la posición del bit errado y mediante la función
generada en la Tabla 10.

A B F
0 0 0
0 1 1
1 0 1
1 1 0
Tabla 10 Generación de la función para corregir el bit errado.

A es el bit del código recibido

B es la señal enviada por el decodificador

𝐹 = 𝐴̅𝐵 + 𝐴𝐵̅

𝐹 =𝐴⊕𝐵

Fig. 2 Circuito combi nacional que permite


corregir el bit errado del código.

Colocamos un inversor para no tener problemas de incompatibilidad de niveles,


ya que el Decodificador 7442, tiene sus salidas activas en bajo o low, y en la
compuerta XNOR los datos de entrada deben estar en alto.

11
Bloque detector de error y su posición.

Para ingresar el código Hamming que se ha generado con anterioridad, y poder


manipularlo a voluntad con el fin de comprobar si el método está funcionando
correctamente, se ha diseñado el ingreso de datos como se muestra en la figura,
utilizando un Dipswitch, con el cual ingresaremos el código.

Utilizando las compuertas XOR(74LS86) realizaremos las comparaciones.

La posición del bit que esta con error estará determinada por la
combinación 𝑐3 𝑐2 𝑐1

Esta combinación mediante un decoder (CI:74LS48), la podremos visualizar


en un display de 7 segmentos, como se muestra a continuación, para poder
visualizar el error de una manera más cómoda.

12
 Corregir bit errado

Una vez hallados los bits de corrección, nos ayudaremos del circuito integrado
U5: 7442 Decoder, el cual nos permitirá obtener una salida (en Low), y
utilizaremos inversores 74LS04 para cambiar el nivel con el que los datos van a
entrar en las compuertas XOR, evitando problemas de compatibilidad de niveles.

Y en caso de presentarse un error en el código hamming que se recibió,


posteriormente será corregido con la ayuda de los integrados CI:7486.

Cabe destacar que el código Hamming solo permite detectar y corregir cuando
en el proceso de envío de datos, cambio un solo bit del código, es decir cuando
el código tiene un solo error, si el código contiene varios errores, no podremos
corregirlo.

13
Ejemplo:

Bits de información 010


Código Hamming generado 100110
Suponiendo que el código se transmite con un error en 𝑏0

𝒃𝟓 𝒃𝟒 𝒃𝟑 𝒃𝟐 𝒃𝟏 𝒃𝟎
1 0 0 1 1 1

Comprobamos la paridad par de los bits del código:

𝒄𝟏 = 1 ⊕ 0 ⊕ 1 = 0
𝒄𝟐 = 0 ⊕ 0 ⊕ 1 = 1
𝒄𝟑 = 1 ⊕ 1 ⊕ 1 = 1

La combinación 𝑐3 𝑐2 𝑐1 es 110, equivalente al número decimal 6, que


corresponde precisamente a 𝒃𝟎

Posición: 1 2 3 4 5 6

𝒃𝟓 𝒃𝟒 𝒃𝟑 𝒃𝟐 𝒃𝟏 𝒃𝟎
1 0 0 1 1 1 bit errado

Corrección de error
Código enviado por el Decodificador
𝒃𝟓 𝒃𝟒 𝒃𝟑 𝒃𝟐 𝒃𝟏 𝒃𝟎
1 1 1 1 1 0
Al atravesar los inversores
𝒃𝟓 𝒃𝟒 𝒃𝟑 𝒃𝟐 𝒃𝟏 𝒃𝟎
0 0 0 0 0 1
Mediante las compuertas XOR con la función
𝐹 =𝐴⊕𝐵

A es el bit del código recibido

B es la señal enviada por el decodificador

𝒃𝟓 𝒃𝟒 𝒃𝟑 𝒃𝟐 𝒃𝟏 𝒃𝟎
𝟎⊕1 =1 𝟎⊕0 =0 𝟎 ⊕ 0=0 𝟎 ⊕ 1=1 𝟎⊕1= 1 𝟏⊕1= 0

El código corregido es
𝒃𝟓 𝒃𝟒 𝒃𝟑 𝒃𝟐 𝒃𝟏 𝒃𝟎
1 0 0 1 1 0
8. Diagrama electrónico optimizado

15
9. Conclusiones y recomendaciones

Conclusiones

 Se ha logrado diseñar e implementar un circuito combinacional que


permite generar códigos de errores para los bits de información
ingresados además detectar y corregir un bit errado en un determinado
código mediante la utilización de circuitos de baja y mediana escala de
integración.
 El codigo Hamming posee además de los bits de información, bits de
paridad par, generados mediante la operación o - exclusiva de ciertos
bits específicos.
 En la transmisión de los datos se puede producir errores en el código los
cuales se pueden detectar y corregir para ser presentados finalmente
para su respectivo procesamiento.

Recomendaciones

 Se debe tener especial atención de no confundir los bits más


significativos con los menos significativos.
 Identificar cuando se trabaja con lógica mixta y modificar el diseño para
evitar discontinuidades de nivel.
 Un correcto análisis al momento de diseñar ayuda a que el circuito
combinacional sea más óptimo.

10. Bibliografía

[1]Pérez, E., & Rodríguez, Y. (2008). Sistemas electrónicos digitales. Barcelona:


MARCOMBO,EDICIONES TÉCNICAS.
[2]Whakerly, J. (2011). Diseño digital: Principios y prácticas. México: PEARSON
EDUCACIÓN.
[3]Morris, M. (2003). DISEÑO DIGITAL.Tercera edición. México: PEARSON
EDUCACIÓN.

[4]Tocci, R., & Widmer, N. (2003). SISTEMAS DIGITALES Principios y aplicaciones.


México: PEARSON EDUCACIÓN.
[5]Alldatasheet. (2003-2017). 74LS04. Recuperado el 19 de Juinio de 2017, de
http://www.alldatasheet.es/datasheet-pdf/pdf/51021/FAIRCHILD/74LS04.html
[6]Alldatasheet. (2003-2017). 74LS86. Recuperado el 19 de Junio de 2017, de
http://www.alldatasheet.es/datasheet-pdf/pdf/12605/ONSEMI/74LS86.html
[7]Alldatasheet. (2003-2017). 7442. Recuperado el 19 de Juinio de 2017, de
http://www.alldatasheet.com/datasheet-pdf/pdf/50908/FAIRCHILD/7442.html
[8]Alldatasheet. (2003-2017). 74LS48. Recuperado el 19 de Junio de 2017, de
http://html.alldatasheet.com/html-
pdf/5727/MOTOROLA/74LS48/257/1/74LS48.html

16

Você também pode gostar