cÓdigos y circuitos conversores de...

26
CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO CÓDIGOS-1 R. ESPINOSA R. y P. FUENTES R. CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO 1. CODIFICACIÓN DE NÚMEROS Y TIPOS DE CÓDIGOS .................... (2) 2. CIRCUITOS CONVERSORES DE CÓDIGO .......................... (12) 3. PARIDAD ..................................................... (17) 4. CÓDIGOS PARA DETECCIÓN Y CORRECCIÓN DE ERRORES ......... (20) 5. EJERCICIOS .................................................. (25)

Upload: lamdieu

Post on 12-May-2018

234 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-1R. ESPINOSA R. y P. FUENTES R.

CÓDIGOS

Y

CIRCUITOS CONVERSORES

DE

CÓDIGO

1. CODIFICACIÓN DE NÚMEROS Y TIPOS DE CÓDIGOS . . . . . . . . . . . . . . . . . . . . (2)

2. CIRCUITOS CONVERSORES DE CÓDIGO . . . . . . . . . . . . . . . . . . . . . . . . . . (12)

3. PARIDAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (17)

4. CÓDIGOS PARA DETECCIÓN Y CORRECCIÓN DE ERRORES . . . . . . . . . (20)

5. EJERCICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (25)

Page 2: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-2R. ESPINOSA R. y P. FUENTES R.

La disponibilidad de una gran variedad de códigos para los mismos elementos discretos deinformación da como resultados el uso de códigos diferentes para distintos sistemas digitales. Esnecesario, en ocasiones, usar la salida de un sistema como entrada de otro, por lo que debe utilizarseun circuito de conversión entre los dos sistemas, si cada uno usa diferentes códigos para la mismainformación. De esta forma un conversor de código es un circuito que hace compatibles dos sistemasa pesar de que ambos tengan diferente código binario.

1. CODIFICACIÓN DE NÚMEROS Y TIPOS DE CÓDIGOSEn los sistema digitales la información numérica está generalmente representada en el sistema

numérico binario (u otro código binario relacionado). En los capítulos previos, se ha hecho énfasis enla importancia y utilización del sistema binario, sin embargo, también son importantes otros sistemasnuméricos, principalmente el octal, hexadecimal y decimal codificado en binario (BCD).

1.1. Sistema numérico binario

El sistema numérico binario es un sistema posicional, en el cual cada dígito binario (bit) lleva uncierto peso basado en su posición relativa al punto binario (separación de la parte entera y lafraccionaria). Cualquier número binario puede convertirse a su equivalente decimal sumando juntoslos pesos de las diferentes posiciones en el número binario que contienen un 1. Por ejemplo:

1 1 0 1 1 binario

24 +23 +21 +20 = 16 + 8 + 2 + 1

= 2710 (decimal)

El mismo método se emplea para números binarios que contienen una parte fraccional:

Ejemplo 1. Aplicar el método anterior para verificar las siguientes conversiones:

a) 1001102 = 3810b) 0.1100012 = 0.76562510c) 11110011.01012 = 243.31510

Se tienen diferentes maneras para convertir un número decimal a su representación equivalenteen el sistema binario. Un método, que es conveniente para números pequeños, es el reverso delproceso descrito previamente. El número decimal se expresa simplemente como una suma depotencias de 2 y luego se escriben unos y ceros asociados a las posiciones apropiadas de losbits. Por ejemplo:

Otro ejemplo:

Page 3: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-3R. ESPINOSA R. y P. FUENTES R.

Para números decimales mayores, el méto-do anterior es laborioso. Un método másconveniente, consiste en la conversiónseparada de las partes entera y fraccionaria.Por ejemplo, para el número decimal 25.375, el cual se convirtió previamente, el primerpaso es la conversión de la parte entera 25.Esto se hace dividiendo repetidamente 25por 2 y escribiendo los residuos después decada división, hasta obtener un cociente deceros, como se muestra en la figura adjunta:

La conversión deseada se obtiene escribien-do los residuos como se muestra en la figuraanterior. Obsérvese que el primer residuo esel bit menos significativo (bms) y el último elBit Más Significativo (BMS).

La parte fraccionaria del número (0.375), seconvierte a binario multiplicándola repetida-mente por 2 y anotando cualquier acarreo enla posición de los enteros, como se muestraen la figura adjunta:

Nótese que las multiplicaciones continúanhasta obtener un producto de 1.00 (la mayo-ría de las veces esto no ocurre y el procesose termina hasta alcanzar el número de bitsdeseado), puesto que las multiplicacionesposteriores resultan igual a cero. Obsérveseque el primer acarreo se escribe en la prime-ra posición a la derecha del punto binario.

Finalmente, la conversión completa para25.375 se escribe como la combinación delas conversiones entera y fraccionaria:

25.37510 = 11001.0112

EJEMPLO 2. Aplicar este método para comprobar la siguiente conversión:

632.8510 = 1001111000.110112

1.2. Sistema numérico octal

El sistema numérico octal es muy importante en el trabajo con computadoras digitales. El sistemaoctal tiene una base de ocho, significando que tiene ocho dígitos posibles: 0, 1, 2, 3, 4, 5, 6 y 7. Así,cada dígito de un número octal tiene los siguientes pesos:

------ 84 83 82 81 80 . 8-1 8-2 8-3 8-4 8-5 -----

punto octal

Un número octal puede convertirse fácilmente a su equivalente decimal, multiplicando cada dígitooctal por su peso posicional. Por ejemplo:

Page 4: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-4R. ESPINOSA R. y P. FUENTES R.

Otro ejemplo:

Los métodos para convertir un númerodecimal a su equivalente octal son los mismoscomo los usados para convertir de decimal abinario. Para convertir un entero decimal a octal,se divide progresivamente el número decimalpor 8, anotando los residuos después de cadadivisión. Los residuos representan los dígitos delnúmero octal, con el primer residuo como elmenos significativo (bms). Como ejemplo,convertir 26610 a octal:

Las fracciones decimales se convierten aoctal multiplicando progresivamente por 8 yescribiendo los acarreos en la posición despuésdel punto octal. Por ejemplo, 0.38 se convierte aoctal como sigue:

Note que el primer acarreo el bit más signifi-cativo (BMS) de la fracción. Se puede lograr unamayor precisión continuando el proceso paraobtener más dígitos octales.

Es útil cuando se convierte un númerodecimal relativamente grande a binario, conver-tirlo primero a octal. El número octal puedeentonces convertirse a binario. Este método esgeneralmente más rápido que la conversióndirecta decimal a binario, debido a la simplezade la conversión octal a binario.

La principal ventaja del sistema numéricooctal es la facilidad con la cual puede hacerse laconversión entre números binarios y octales. Laconversión desde octal a binario se ejecutaconvirtiendo cada dígito octal a su equivalente binario de 3 bits. Los ocho dígitos posibles seconvierten como se indica en la siguiente tabla:

Dígito octal 0 1 2 3 4 5 6 7

Equivalente binario 000 001 010 011 100 101 110 111

Usando estos equivalentes, cualquier número octal se convierte a binario por conversión individualde cada dígito. Por ejemplo, se puede pasar 4728 a binario como sigue:

Page 5: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-5R. ESPINOSA R. y P. FUENTES R.

4 7 2

9 9 9

100 111 010

Por consiguiente, el octal 472 es equivalente al binario 100111010. Como otro ejemplo,considérese la conversión de 54.318 a binario:

5 4 . 3 1

9 9 9 9 9

101 100 . 011 001

Así, 54.318 = 101100.0110012

La conversión de binario a octal es simplemente el inverso del proceso anterior. Los dígitos binariosse agrupan de tres en tres a cada lado del punto binario, añadiendo ceros en cualquier lado cuandoello sea necesario para completar un grupo de tres. Entonces cada grupo de tres bits se convierte asu equivalente octal. Como ilustración, considérese la conversión de 11010.1011 a octal

011 010 . 101 100

9 9 9 9 9

3 2 . 5 4

Note que se añadieron ceros a cada lado para completar los grupos de a tres. Así, la conversióndeseada es 32.548.

1.3. Sistema numérico hexadecimal

El sistema numérico hexadecimal usa la base 16. Así, tiene 16 símbolos digitales posibles. Usa losdígitos 0-9 más las letras A, B, C, D, E y F como los 16 símbolos digitales.

Hexadecimal Decimal Binario

01234

01234

00000001001000110100

56789

56789

01010110011110001001

ABCDEF

101112131415

101010111100110111101111

La tabla anterior muestra las relaciones entre los sistemas numéricos hexadecimal, decimal ybinario. Note que cada dígito hexadecimal representa a un grupo de cuatro dígitos binarios. Algunascomputadoras utilizan el sistema hexadecimal para propósitos de exposición en preferencia al octal.Las conversiones entre hexadecimal y binario se hacen exactamente de la misma manera como entreoctal y binario, excepto que se usan grupos de 4 bits. En el siguiente ejemplo se ilustra la conversiónde binario a hexadecimal y de hexadecimal a binario:

Page 6: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-6R. ESPINOSA R. y P. FUENTES R.

1.4. Códigos

Cuando se representa números, letras o palabras por un grupo especial de símbolos, se llamacodificación y al grupo de símbolos se le denomina un código. Probablemente uno de los códigosmás familiares es el código Morse, en el cual las letras del alfabeto se representan por series depuntos y rayas.

Ya se ha visto que cualquier número decimal puede representarse por un número binarioequivalente. Puede pensarse que el grupo de ceros y unos en el número binario es un código querepresenta al decimal. Cuando se representa un número decimal por su número binario equivalente,se llama codificación binaria directa.

Los sistemas binarios usan todos alguna forma de números binarios para sus operaciones internaspero el mundo externo es de naturaleza decimal. Esto significa que se deben ejecutar conversionesfrecuentes entre los sistemas decimal y binario. Hemos visto que las conversiones entre decimal ybinario pueden llegar a ser largas y complicadas para números grandes. por esta razón, algunas vecesse usan otros medios para codificar los números decimales que combinan algunas características delos sistemas decimal y binario.

1.4.1 Código decimal codificado en binario (BCD) (Binary Coded Decimal)

Si cada dígito de un número decimal se representa por su equivalente binario, esto produce uncódigo llamado decimal codificado en binario (abreviado BCD por sus siglas en inglés Binary CodedDecimal). Puesto que un dígito decimal puede ser tan grande como 9, se requieren 4 bits para codificarcada dígito (el código binario para 9 es 1001).

Para ilustrar el código BCD, tomemos un número decimal tal como 874. Cada dígito se cambia asu equivalente binario como sigue:

8 7 4

9 9 9

1000 0111 0100

Como otro ejemplo, cambiemos 94.3 a su representación en código BCD:

9 4 . 3

9 9 9 9

1001 0100 . 0011

Una vez más, cada dígito decimal se cambia a su equivalente binario directo. Note que siemprese usan 4 bits para cada dígito.

Page 7: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-7R. ESPINOSA R. y P. FUENTES R.

El código BCD, entonces representa cada dígito del número decimal por un número binario de 4bits. Claramente, sólo los números binarios de 4 bits desde 0000 hasta 1001 se usan. El código BCDno usa los números 1010, 1011, 1100, 1101, 1110 y 1111. En otras palabras, sólo 10 de los 16 gruposcodificados posibles de 4 bits se usan. Si cualesquiera de estos números prohibidos de 4 bits algunavez se presentan en una máquina que usa el código BCD, generalmente indica que ha ocurrido unerror.

EJEMPLO 3. Convertir el número BCD 0110100000111001 a su equivalente decimal:

SOLUCIÓN

0110 1000 0011 1001

9 9 9 9

6 8 3 9

EJEMPLO 4. Convierta el número BCD 011111000001 a su equivalente decimal:

0111 1100 0001

7 9 1grupo de código prohibido indica error en el número BCD

Al hacer una comparación entre BCD y binario común, es importante darse cuenta que un númeroBCD no es lo mismo que un número binario común. Un código binario común toma el número decimalcompleto y lo representa en binario, mientras que el código BCD convierte cada dígito decimal abinario en forma individual. Para ilustrar, tome el número 137 y compare las representaciones binariacomún y codificada:

El código BCD requiere 12 bits mientras que el código binario común requiere sólo 8 bits pararepresentar 137. Es siempre verdadero que el código BCD para un número decimal dado requiere másbits para código que el código binario común. Esto es porque BCD no usa todos los grupos posiblesde 4 bits, como se señaló antes y es por consiguiente algo ineficiente.

La principal ventaja del código BCD es la facilidad relativa para convertir a y desde decimal. Sólose requiere recordar los grupos codificados de 4 bits para los dígitos decimales del 0 al 9. Estafacilidad de conversión es especialmente importante desde el punto de vista de circuitos, porque enun sistema digital son los circuitos lógicos los que ejecutan las conversiones a y desde decimal.

BCD se usa en máquinas digitales siempre y cuando se aplique información digital, ya sea comoentradas o mostradas como salidas. Los voltímetros digitales, contadores de frecuencia y relojesdigitales usan todos BCD, porque despliegan la información de salida en decimal. Las calculadoraselectrónicas usan BCD porque los números de entrada vienen en decimal vía el teclado y los númerosde salida son mostrados en decimal.

BCD no se usa a menudo en computadoras digitales modernas de alta velocidad por dos buenasrazones. Primero, como ya fue señalado, el código BCD para un número decimal dado requiere másbits que el código binario directo y es por consiguiente menos eficiente. Esto es importante encomputadoras digitales porque el números de lugares en memoria donde estos bits pueden seralmacenados es limitado. Segundo, los procesos aritméticos para números representados en códigoBCD son más complicados que en binario ordinario y requieren así de circuitería más compleja. Lacircuitería más compleja contribuye a una disminución en la velocidad a la cual tienen lugar lasoperaciones aritméticas. Las calculadoras que usan BCD son, por consiguiente, considerablementemás lentas en su operación que las computadoras.

Page 8: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-8R. ESPINOSA R. y P. FUENTES R.

1.4.2. Código exceso-3

El código exceso-3 está relacionado con el código BCD y usado a veces en lugar de él porqueposee ventajas en ciertas operaciones aritméticas. El código exceso-3 para un número decimal seejecuta de la misma manera que en BCD excepto que se añade 3 a cada dígito decimal antes decodificarlo en binario. Por ejemplo, para codificar el número decimal 4 en el código exceso-3, debemosprimero añadir 3 para obtener 7. Luego el 7 se codifica en código binario equivalente de 4 bits paraobtener 0111.

Como otro ejemplo, convirtamos 46 a su representación en código exceso-3:

4 6 +3 +3 añada 3 a cada dígitoS)Q S)Q 7 90111 1001 convierta a código binario de 4 bits

La siguiente tabla muestra las listas para las representaciones BCD y exceso-3 para los dígitosdecimales. Note que ambos códigos usan sólo 10 de los 16 posibles grupos codificados de 4 bits. Elcódigo exceso-3, sin embargo, no usa los mismos grupos codificados. Para exceso-3, los gruposcodificados no válidos son 0000, 0001, 0010, 1101, 1110 y 1111.

Decimal BCD Exceso-3

0123456789

0000000100100011010001010110011110001001

0011010001010110011110001001101010111100

1.4.3. Código Gray

El código Gray pertenece a una clase de códigos llamados códigos de cambios mínimo, en loscuales sólo cambia un bit en el grupo codificado cuando se va de un paso al siguiente. El código Grayes un código no ponderado, significando que las posiciones de los bits en los grupos codificados notienen un peso específico asignado. Debido a esto, el código Gray no es apropiado para operacionesaritméticas, pero encuentra aplicaciones en dispositivos de entrada/salida y en algunos tipos deconvertidores analógicos a digital.

La siguiente tabla muestra la representación en código Gray para los números decimales 0 al 15,junto con el código binario directo. Si examinamos los grupos codificados Gray para cada númerodecimal, puede verse que al ir desde cualquier número decimal al siguiente, sólo un bit del códigoGray cambia. Por ejemplo, al ir desde 3 a 4, el código Gray cambia de 0010 a 0110, con solo elsegundo bit desde la izquierda experimentando cambio. Yendo de 14 a 15 los bits del código Graycambian de 1001 a 1000, con la sola variación en el último bit. Esta es la principal característica delcódigo Gray. Compare esto con el código binario en el cual de uno a todos los bits cambian al pasarde un número al siguiente.

Page 9: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-9R. ESPINOSA R. y P. FUENTES R.

Decimal Código binario Código Gray

0123456789

101112131415

0000000100100011010001010110011110001001101010111100110111101111

0000000101100010011001110101010011001101111111101010101110011000

El código Gray se usa a menudo donde otros códigos tales como el binario, pudieran producirresultados erróneos o ambiguos durante esas transiciones en las cuales más de un bit del código estácambiando. Usando el código binario, por ejemplo, y yendo de 0111 a 1000 requiere que todos loscuatro bits cambien simultáneamente. Dependiendo del dispositivo o circuito que está generando losbits, puede haber una diferencia significativa en los tiempos de transición de los diferentes bits. Si estoes así, las transiciones de 0111 a 1000 pudiera producir uno o más estados intermedios. Por ejemplo,si el bit más significativo cambia más rápido que el resto, ocurrirán las siguientes transiciones:

0111 6 decimal

1111 6 código erróneo

1000 6 decimal 8

La ocurrencia de 1111 es sólo momentánea pero pudiera concebiblemente producir una operaciónerrónea de los elementos que están siendo controlados por los bits. Obviamente, usando el códigoGray se eliminaría este problema, puesto que sólo ocurre el cambio de un bit por transición y no puedeocurrir una carrera.

Cualquier número binario puede convertirse a su representación en código Gray como sigue:

1. El primer bit del código Gray es el mismo como el primer bit del número binario.

2. El segundo bit del código Gray es igual a la operación O EXCLUSIVA del primer y segundo bits delnúmero binario; esto es, será 1 si estos bits del código binario son diferentes y 0 si son losmismos.

3. El tercer bit del código Gray es igual a la O EXCLUSIVA del segundo y tercer bits del númerobinario y así sucesivamente.

Para ilustrar esto, convirtamos el binario 10110 al código Gray:

1 0 1 1 0 Código binario 9`9`9`9`9 1 1 1 0 1 Código Gray

El primer bit del código Gray es el mismo como el primer bit del código binario. El primero ysegundo bits del código binario son diferentes, dando un 1 para el segundo bit Gray. El segundo ytercer bits del número binario son diferentes, dando un 1 para el tercer bit gray. El tercero y cuarto bitsdel número binario son lo mismo, así que el cuarto bit Gray es 0. Finalmente el cuarto y quinto bitsbinarios son diferentes, dando un quinto bit Gray de 1.

Page 10: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-10R. ESPINOSA R. y P. FUENTES R.

Otro ejemplo es como sigue:

1 0 0 1 1 0 0 1 binario9`9`9`9`9`9`9`91 1 0 1 0 1 0 1 Gray

Para convertir de Gray a binario se requiere el procedimiento opuesto dado previamente.

1. El primer bit binario es el mismo que el primer bit Gray.

2. Si el segundo bit Gray es 0, el segundo bit binario es el mismo como el primero; si el segundo bitGray es 1, el segundo bit binario es el inverso del primer bit binario.

3. El paso 2 se repite para cada bit sucesivo.

Para ilustrar esto, convirtamos 1101 de Gray a binario:

1 1 0 1 Gray9 9 9 91606061 binario

El primer bit Gray es 1, así que el primer bit binario se escribe como un 1. El segundo bit Gray esun 1, así que el segundo bit binario se hace un 0 (inverso del primer bit binario). El tercer bit Gray esun 0, así que el tercer bit binario se hace un 0 (lo mismo como el segundo bit binario). El cuarto bitgray es 1, haciendo el cuarto bit un 1 (inverso del tercer bit binario).

Este proceso puede ser visto de otra manera: Cada bit binario (exceptuando el primero) puedeobtenerse tomando la O EXCLUSIVA del bit correspondiente del código Gray y el bit binario previo.

Finalmente, en las siguientes tablas, se presentan los códigos Gray y los ponderados exceso-3,8 4-2-1 y Biquinario, referidos al código BCD:

CÓDIGO

DECBCD GRAY EXCESO 3

8 4 2 1 8 4 2 1 8 4 2 1

0123456789

0000000011

0000111100

0011001100

0101010101

0000000011

0000111111

0011110000

0110011001

0000011111

0111100001

1001100110

1010101010

10|

15

X|X

X|X

X|X

X|X

X|X

X|X

X|X

X|X

X|X

X|X

X|X

X|X

Page 11: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-11R. ESPINOSA R. y P. FUENTES R.

CÓDIGO

DECBCD 8 4 -2 -1 BIQUINARIO

8 4 2 1 8 4 -2 -1 5 0 4 3 2 1 0

0123456789

0000000011

0000111100

0011001100

0101010101

0000011111

0111100001

0010011001

0001010101

0000011111

1111100000

0000100001

0001000010

0010000100

0100001000

1000010000

10!15

x!x

x!x

x!x

x!x

x!x

x!x

x!x

x!x

x!x

x!x

x!x

x!x

x!x

x!x

x!x

En las tablas anteriores, se indican los términos indiferentes (prohibidos).

1.4.4. Códigos alfanuméricos

Hemos estudiado varios códigos que se usan para representar datos numéricos, esto es,números. Muchos sistemas digitales, tales como la computadora, usan también datos alfabéticos(letras) y caracteres especiales (tales como símbolos de puntuación y matemáticos) en adición anúmeros. Tales códigos se llaman códigos alfanuméricos.

La siguiente tabla muestra dos de los diferentes códigos alfanuméricos que están en usocorriente. El código interno de 6 bits se usa a menudo en computadoras para representar internamentecaracteres alfanuméricos.

Carácter 6-bitCódigo interno

7-bitCódigo ASCII

ABCDE!VWXYZ

010 001010 010010 011010 100010 101

!110 101110 110110 111111 000111 001

100 0001100 0010100 0011100 0100100 0101

!101 0110101 0111101 1000101 1001101 1010

0123!789

000 000000 001000 010000 011

!000 111001 000001 001

011 0000011 0001011 0010011 0011

!011 0111011 1000011 1001

Espacio.(|/,=

110 000011 011111 100

|110 001111 011001 011

010 0000010 1110101 1000

|010 1111010 1100011 1101

El código interno de 6 bits puede representar hasta 64 caracteres diferentes, ya que 26=64. Lanecesidad de representar más de 64 caracteres, en ciertas aplicaciones, da lugar a códigos de 7 y 8

Page 12: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-12R. ESPINOSA R. y P. FUENTES R.

bits. Uno de tales códigos es el ASCII (Código Estándar Americano para Intercambio de Información -American Standard Code for Information Interchange), el cual se usa en la transmisión de informacióndigital. El ASCII mostrado en la tabla tiene 7 bits, lo cual indica que puede representar 27=128caracteres diferentes. Sólo algunos de éstos se muestran en la tabla.

2 CIRCUITOS CONVERSORES DE CÓDIGO.Para convertir el código binario A al código binario B, las líneas de entrada deben dar una

combinación de bits de los elementos, tal como se especifica por el código A y las líneas de salidadeben generar la correspondiente combinación de bits del código B.

EJEMPLO 1: Realizar un circuito mínimo conversor de código de BCD a GRAY para cuatro variablesde entrada A, B, C, D, utilizando inversores, una compuerta O y compuertas No O.Considere las condiciones irrelevantes.

SOLUCIÓN

a) Tabla funcional:

DECB C D G R A Y

A B C D G3 G2 G1 G0

0123456789

0000000011

0000111100

0011001100

0101010101

0000000011

0000111111

0011110000

0110011001

10|

15

x|x

x|x

x|x

x|x

b) Variables de Conmutación: Como el logigrama deberá realizarse con compuertas No-O, lasfunciones de conmutación a la salida del conversor, deberán expresarse como producto demaxitérminos:

c) Minimización de las funciones de conmutación: Reduciendo por el método de Karnaugh, seobtiene:

Page 13: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-13R. ESPINOSA R. y P. FUENTES R.

Las funciones mínimas son:

d) Logigrama:

EJEMPLO 2. Realice un circuito mínimo conversor de código exceso 3 (BCD) a 8,4,-2-1, utilizandosólo inversores.

Page 14: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-14R. ESPINOSA R. y P. FUENTES R.

SOLUCIÓN

a) Tabla funcional:

DECCÓDIGO

exceso 3mi

8 4 -2 -1

E1 E2 E1 E0 A B C D

0123456789

0000011111

0111100001

1001100110

1010101010

3456789

101112

0000011111

0111100001

0110011001

0101010101

10!15

0-2!

13-15

x|x

x|x

x|x

x|x

Obsérvese que el código exceso-3 sólo puede generarse hasta el 9 decimal, puesto que se tomacomo base el código BCD. Asimismo, los minitérminos de entrada para el código 8,4,-2-1, sonlos que genera el código exceso-3, los cuales se indican en la columna mi. También, lostérminos indiferentes corresponden a aquellos que no aparecen a la salida del código exceso-3,puesto que no se generarán.

b) Funciones de Conmutación: Las funciones de conmutación a la salida del código 8,4,-2,-1,pueden expresarse como suma de minitérminos, ya que no existe una condición previa:

c) Reducción de las funciones de conmutación: Utilizando los mapas K para la minimización delas funciones de conmutación, se obtiene:

Page 15: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-15R. ESPINOSA R. y P. FUENTES R.

d) Funciones de conmutación minimizadas: De los mapas K anteriores, se obtiene:

Page 16: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-16R. ESPINOSA R. y P. FUENTES R.

e) Logigrama:

3 PARIDADLa transmisión de datos binarios de una localización a otra es un lugar común en todos los

sistemas digitales. Se presentan cuatro ejemplos de esto:

1. Salida de datos binarios desde una computadora y que están registrándose en cinta magnética.

2. Transmisión de datos binarios por línea telefónica, tal como entre una computadora y unaconsola remota.

3. Un número se toma de la memoria de la computadora y se coloca en la unidad aritmética, endonde se añade a otro número. La suma es luego regresada a la memoria.

4. Información almacenada en un disco flexible se leen para cargarse en la memoria de unacomputadora personal.

Lo anterior se ejemplifica en la figura adjun-ta:

El proceso de transferir datos está sujeto aerror, aun cuando el equipo moderno ha sidodiseñado para reducir la probabilidad de error. Sinembargo, aún errores relativamente infrecuentespueden causar resultados inútiles, así que esdeseable detectarlos siempre que ello sea posi-ble. Uno de los esquemas usados más amplia-mente para la detección de errores es el métodode paridad.

Un bit de paridad es un bit extra que seagrega a un grupo codificado en el cual se trans-mite de una localización a otra. El bit de paridadse hace ya sea 0 ó 1, dependiendo del número de unos que están contenidos en el grupo codificado.

Se usan dos métodos diferentes. En el método de paridad par el valor del bit de paridad seescoge de tal manera que el número total de unos en el grupo codificado (incluyendo el bit de paridad)sea un número par. Supóngase por ejemplo, que el grupo codificado es 10110. El grupo codificadotiene tres unos. Por tanto, se añade un bit de paridad de 1 para hacer el número total de unos un valorpar. El nuevo grupo codificado, incluyendo el bit de paridad es:

Page 17: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-17R. ESPINOSA R. y P. FUENTES R.

1011018

bit de paridad añadido

Si el grupo codificado contiene un número par de unos inicialmente, el bit de paridad recibe unvalor de cero. Por ejemplo, si el código es 10100, el bit de paridad asignado sería 0, así que el nuevocódigo, incluyendo el bit de paridad sería 101000.

El método de paridad impar se usa exactamente de la misma manera, excepto que el bit deparidad se escoge de tal modo que el número total de unos (incluyendo el bit de paridad) sea unnúmero impar. Por ejemplo, para el grupo codificado 01100, el bit de paridad asignado sería un 1.Para el grupo 11010, el bit de paridad sería un 0.

Sin importar si se usa paridad par o impar,el bit de paridad se añade a la palabra codificaday es transmitido como parte de la palabra codifica-da. La figura adjunta muestra como se usa delmétodo de paridad:

Los bits del grupo codificado están represen-tados por A, B y C. Estos bits pudieran venir delas salidas de un conversor de código. Se alimen-tan entonces a un circuito generador de paridad,el cual es un circuito lógico que examina los bitsde entrada y produce un bit de paridad de salidadel valor correcto. El bit de paridad se transmitejunto con los bits de entrada, como lo muestra lafigura adjunta.

La siguiente tabla muestra la forma de obtener los bits de paridad para el código binario de 3 bits.Pp y Pi, son las funciones resultantes de aplicar paridad par e impar, respectivamente.

DEC A B C Pp Pi

0 0 0 0 0 1

1 0 0 1 1 0

2 0 1 0 1 0

3 0 1 1 0 1

4 1 0 0 1 0

5 1 0 1 0 1

6 1 1 0 0 1

7 1 1 1 1 0

Las funciones de conmutación correspondientes a los bits de verificación son:

Tanto de la tabla como de las ecuaciones, se observa que Pp y Pi son complementarios.Reduciendo Pp por mapas K :

Page 18: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-18R. ESPINOSA R. y P. FUENTES R.

La función reducida es:

Como Pi es el complemento de Pp, entonces:

El logigrama de Pp junto con una posi-ble aplicación es:

Cuando los bits transmitidos alcanzansu destino, son alimentados a un circuitocomprobador de paridad, el cual es un cir-cuito lógico que examina todos los bits paradeterminar si la paridad correcta está pre-sente. En un sistema de paridad par, elcomprobador de paridad generará unasalida baja de error si el número de entradas1 es un número par y una salida de erroralta (indicando un error) si el número deentradas 1 es impar. En un sistema deparidad impar sería al contrario.

Si ocurre un error en uno de los bitstransmitidos, el circuito comprobador deparidad lo detectará. Por ejemplo, supongamos que los bits del grupo codificado son 0110 y queestamos usando un sistema de paridad impar. El circuito generador de paridad generará entonces un1 para un bit de paridad, así que será transmitido 01101. Si estos bits llegan al comprobador deparidad sin cambio, éste producirá una salida 0 (ningún error). Sin embargo, si uno de los bits cambiaantes de llegar al verificador de paridad (tal como 00101 en lugar de 01101), el comprobador deparidad se hará alto indicando que ha ocurrido un error en la transmisión. La salida de error puedeusarse para sonar una alarma, detener la operación del sistema o activar un indicador de error.

Page 19: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-19R. ESPINOSA R. y P. FUENTES R.

Debería ser aparente que este método de paridad puede detectar errores únicos pero no puededetectar errores dobles. Esto es porque un error doble no cambiará la paridad del grupo de bits, asíque el verificador de paridad indicará ningún error. También, este método de paridad no señala alerror; esto es, no determina al bit erróneo. Para detectar y señalar errores dobles, deberán usarsemétodos más sofisticados, que permitan hacer correcciones. Tal es el caso del método de Hamming,tratado a continuación.

4 CÓDIGOS PARA DETECCIÓN Y CORRECCIÓN DE ERRORESUno de los métodos más empleados para detectar y corregir errores es el código desarrollado

por Hamming. A continuación se presenta algunas definiciones iniciales:

Distancia: La distancia en un código, se define como el número de cambios (0 ó 1) que existenentre un caracteres consecutivos.

Distancia mínima: La distancia mínima M de un código, se define como el número mínimo de bitsen que pueden diferir dos caracteres consecutivos cualesquiera de un código.

La expresión que relaciona la distancia mínima, detección y corrección de errores es:

M - 1 = D + C para toda C # D . . . . . . . . . . . . . . . . . . . . . . . . (1)

Donde:

M = Distancia mínimaD = Bits erróneos que se detectanC = Bits erróneos que se corrigen

La Tabla 1, muestra la relación para diferentes valores de M, C y D:

TABLA 1M D C

012

001

000

3 21

01

Código deHamming

4 32

01

5432

012

Considerando a:

k = Número de bits de verificación de paridad

y

M = k

Entonces, la relación entre los bits de paridad y los bits del código original, está dada por lasiguiente expresión:

2k - 1 = k + n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (2)

donde:

Page 20: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-20R. ESPINOSA R. y P. FUENTES R.

n = No. de bits del código originalk+n = No. de bits del nuevo código

La siguiente Tabla, muestra la relación entre k y n, para algunos valores de k:

k n k+n

0 0 0

1 0 1

2 1 3

3 4 7

4 11 15

5 26 31

De la tabla anterior, se observa que entre más bits de seguridad se deseen en el código deinterés, el número de bits de éste aumenta considerablemente.

Para un código original de cuatro bits A, B, C, D, al que le corresponden tres bits de paridad C1,C2, C3, éstos se colocan en las posiciones 2n, con n=0, 1, 2; es decir, en las posiciones 1,2,4, comose muestra a continuación:

1 2 3 4 5 6 7

C1 C2 A C3 B C D

Cada bit de paridad se selecciona para generar paridad (par o impar) en las siguientesposiciones:

C1 6 1,3,5,7C2 6 2,3,6,7C3 6 4,5,6,7

Una manera sencilla de recordar las posiciones para generar paridad de cada uno de los bits deparidad, se muestra en la siguiente tabla:

1 2 3 4 5 6 7 Posición

C1 1 0 1 0 1 0 1 1, 3, 5, 7

C2 0 1 1 0 0 1 1 2, 3, 6, 7

C3 0 0 0 1 1 1 1 4, 5, 6, 7

Por ejemplo, si se quiere transmitir 910=10012 con paridad par, el nuevo será:

1 2 3 4 5 6 7

C1 C2 A C3 B C D

0 0 1 1 0 0 1 NUEVO CÓDIGO

Para C1: En las posiciones 3,5 y 7, se tienen dos UNOS, obteniéndose paridad par, lo que indicaque hay que colocar un 0 en la posición 1.

Para C2: En las posiciones 3, 6 y 7, se tienen dos UNOS, obteniéndose paridad par, lo que indicaque hay que colocar un 0 en la posición 2.

Page 21: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-21R. ESPINOSA R. y P. FUENTES R.

Para C3: En las posiciones 5, 6 y 7, se tiene un sólo UNO, lo que indica que hay que colocar un1 en la posición 4, para obtener paridad par.

EJEMPLO 3. Dado el código exceso 3 (BCD), obtener el nuevo código con distancia mínima de3 (M=3) y diseñar el circuito transmisor.

a) Tabla funcional:

DECCÓDIGO EXCESO 3

mi

CÓDIGO A TRANSMITIR

E3 E2 E1 E0 C1 C2 E3 C3 E2 E1 E0

0123456789

0000011111

0111100001

1001100110

1010101010

3456789

101112

1101010100

0011010011

0000011111

0100101101

0111100001

1001100110

1010101010

10|

15

0-2|

13-15

x|x

x|x

x|x

b) Funciones de conmutación: Las funciones correspondientes a los bits de verificación son:

c) Reducción por mapas K: Los mapas K para las bits de verificación son:

Page 22: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-22R. ESPINOSA R. y P. FUENTES R.

De los mapas, se obtienen las siguientes funciones reducidas:

d) Logigrama:

Page 23: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-23R. ESPINOSA R. y P. FUENTES R.

EJEMPLO 4. Determinar las posiciones de paridad para los bits de verificación para k=4 (Distanciamínima igual a 4).

Sustituyendo el valor de k en la Ecuación (1), se obtiene:

2k-1 = 24-1 = 15 = k + n

Por tanto, el número de bits del código original, n, es igual a 11. El código a transmitir es de 15bits (k+n).

La posición para determinar la paridad de los bits de verificación se obtiene de la siguiente tabla:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

C1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

C2 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

C3 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

C4 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Para C1: Se debe tener paridad par en las posiciones: 1,3,5,7,9,11,13,15Para C2: Se debe tener paridad par en las posiciones: 2,3,5,7,10,11,14,15Para C3: Se debe tener paridad par en las posiciones: 4,5,6,7,12,13,14,15Para C4: Se debe tener paridad par en las posiciones: 8,9,10,11,12,13,14,15

Como los bits de verificación deben quedar en una posición correspondiente a una potencia dedos (1,2,4,8), entonces el código a transmitir es:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

C1 C2 X10 C3 C9 X8 X7 C4 X6 X5 X4 X3 X2 X1 X0

Donde: C1, C2, C3, C4 son los bits de verificación y X10, X9,..., X0, corresponden al código original.

Page 24: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-24R. ESPINOSA R. y P. FUENTES R.

5 EJERCICIOS

1. Realice un circuito convertidor de código de Gray a binario para 4 bits, de tal manera que seutilicen sólo compuertas O EXCLUSIVAS.

2. Realice los siguientes conversores de código:

a) De BCD a 8 4-2-1.

b) De BCD a 2 4 2 1.

BCD8 4 -2 -1 2 4 2 1

A B C D W X Y Z

0123456789

0000011111

0111100001

0110011001

0101010101

0000011111

0000101111

0011010011

0101010101

10|

15

X|X

X|X

X|X

X|X

NOTA: CONSIDERE LOS TÉRMINOS INDIFERENTES.

3. Obtenga el diagrama lógico mínimo del conversor de código de exceso 3 (BCD), a un códigoBCD autocomplementario, cuyas combinaciones 0,1,2,3 y 4 están excedidas en 2 y las restantestienen un exceso en 4.

Obtenga el mayor número de relaciones exclusivas posibles para realizar el diagrama lógico.

4. Diseñe el circuito que permita transmitir el código excedido en 3 (BCD) con distancia mínima de3. Considere las condiciones indiferentes.

5. Se desea transmitir el No. 5710 empleando la técnica de Hamming. ¿Cuál es el código deseado?

6. Si se recibe el siguiente mensaje:

110000011101101

Determine si existe error y en que posiciónse encuentra.

7. Codificar el carácter de información01101110101 de acuerdo con el código deHamming de 15 bits.

8. Si existe, determinar cuál bit está equivoca-do en el carácter con código de Hamming1100111.

9. Dado el siguiente diagrama a bloques de uncircuito combinacional:

Page 25: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-25R. ESPINOSA R. y P. FUENTES R.

NOTA: A, E3 y C1 son las variables de mayor peso binario

a) Obtenga las salidas mínimas del bloque (1) como suma de productos.b) Obtenga las salidas mínimas del bloque (2) como suma de productos.c) Realice el logigrama de a) y b) utilizando sólo inversores y compuertas No Y.

NOTA: Considere los términos indiferentes.

10. Dado el siguiente diagrama a bloques deun circuito combinatorio:

NOTA: A, H1 y E3 son las variables de mayor pesobinario

a) Obtenga las salidas mínimas delbloque (1) como un producto desumas.

b) Obtenga las salidas mínimas delbloque (2) como un producto desumas.

c) Realice el logigrama de a) y b) utili-zando sólo inversores y compuertasNo O.

NOTA: Considere los términos indiferentes.

11. Dado el código 8 4-2-1 (BCD), determine el nuevo código de Hamming con distancia mínimade 3 y obtenga el logigrama reducido utilizando sólo inversores y compuertas No O.Considere los términos indiferentes.

12. Diseñe un circuito mínimo de segundoorden para convertir una entrada decimalcodificada en binario a una salida biqui-naria (0 de 2 de 7). Como se indica en laFigura (a), deberá contar con 4 entradasy siete salidas. Los códigos para la en-trada y la salida correspondientes a losdígitos decimales se dan en la Figura (b).Se puede suponer que las seis combina-ciones posibles de entrada no anotadasen ella (correspondientes a 10-15) nuncase podrán producir.

Figura (a)

Page 26: CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGOazul2.bnct.ipn.mx/academia/apuntes/codigos_circuitos_co...De esta forma un conversor de código es un circuito que hace compatibles dos sistemas

CÓDIGOS Y CIRCUITOS CONVERSORES DE CÓDIGO

CÓDIGOS-26R. ESPINOSA R. y P. FUENTES R.

DÍGITOB C D BIQUINARIO

D8 D4 D2 D1 B5 B0 Q4 Q3 Q2 Q1 Q0

0123456789

0000000011

0000111100

0011001100

0101010101

0000011111

1111100000

0000100001

0001000010

0010000100

0100001000

1000010000

Figura (b)