Sistema de Codigos

Page 1

SISTEMAS DE CODIGOS

Circuitos Digitales


REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO POPULAR DE EDUCACIÓN SUPERIOR UNIVERSIDAD FERMÍN TORO SEDE CABUDARE – EDO. LARA DECANATO DE INGENIERIA COORD. SAIA

Autor: T.S.U. Aiza Aponte V-18.301.281 T.S.U. Alejandro Adames V-12.724.659 T.S.U. Maille Altuve V-14.584.829 T.S.U. Yenny Navarro V-13.314.943 Prof.: Ing. Juan José Osteriz CIRCUITOS DIGITALES Cabudare, Enero de 2012


INDICE GENERAL Pp. PORTADA

1

INTRODUCCIÓN

ii

DESARROLLO DEL TEMA

3

Código Gray

3

Código Ascii

7

Complemento A1

11

Complemento A2

13

Suma y Resta Binaria

13

CONCLUSIONES

21

REFERENCIAS BIBLIOGRAFICAS

22

REFERENCIAS ELECTRONÍCAS

23

ii


INTRODUCCIÓN

En la actualidad los circuitos digitales tienen una gran importancia debido al aumento de fiabilidad en el procesamiento y transmisión de la información ya que una pequeña degradación de la señal no influirá en su valor (o en su influencia como entrada en un circuito digital). A este motivo se le pueden añadir otros más, como pueden ser: se dispone de un soporte matemático adecuado, como son las álgebras discretas; existen tecnologías de fabricación adecuadas; contamos con una amplia distribución comercial debido a sus amplias aplicaciones en múltiples campos además su sistema de código. Se debe tener presente que los circuitos digitales trabajan con números y sólo con números existen muchísimas formas de representar el mismo número (de hecho, existen infinitas formas), pero sólo unas pocas son las que nos interesarán para los circuitos digitales. Es por ello que, debido al carácter discreta y a los componentes utilizados en hoy en día, dispositivos como transistores y diodos, no se va a emplear el sistema decimal sino el sistema binario. Por lo tanto, es necesario conocer la teoría de los sistemas numéricos, con vistas a su aplicación a la conversión entre los principales sistemas. Así, los sistemas numéricos más importantes son los sistemas decimal, binario, octal y hexadecimal. En este orden de ideas se puede comenzar el estudio de algunos de los códigos utilizados en el área de circuitos digitales como lo es: el código Gray, código Ascii, complemento A1, complemento A2, así como suma y resta binaria.


CODIGO GRAY

El código Gray es un sistema de numeración binario en el que dos valores sucesivos difieren solamente en uno de sus dígitos, es por ello que este sistema fue diseñado originalmente para prevenir señales ilegítimas de los switches electromecánicos. En el presente es usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales como algunos sistemas de televisión por cable y la televisión digital terrestre, también se sigue empleando para el diseño los mapas de Karnaugh, los cuales son, a su vez, utilizados en la implementación de circuitos combinacionales y circuitos secuenciales. Esto es debido a que el principio de diseño de buscar transiciones más simples y rápidas entre estados sigue vigente, a pesar de que los problemas de ruido y potencia se hayan reducido. Su característica es que entre una combinación de dígitos y la siguiente, sea ésta anterior o posterior, sólo hay una diferencia de un dígito. Se debe tener presente que el código GRAY es utilizado principalmente en sistemas de posición, ya sea angular o lineal. Sus aplicaciones principales se encuentran en la industria y en robótica.

Resulta oportuno señalar que utilizando el código Gray es posible resolver el problema de las Torres de Hanói, además puede incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada bit se puede ver como una dimensión. Convenientemente gracias a las propiedades de distancia de Hamming de los códigos de Gray, es usado en ocasiones en algoritmos genéticos. Es por ello que las computadoras antiguas indicaban posiciones abriendo y cerrando interruptores. Utilizando tres interruptores como

3


entradas usando Base 2, estas dos posiciones estarían una después de la otra: ... 011 100 ... Ahora bien, el problema con el código binario en base 2 es que con interruptores mecánicos, es realmente difícil que todos los interruptores cambien al mismo tiempo. En la transición de los dos estados mostrados arriba, tres interruptores cambian de sitio. En el lapso en el que los interruptores están cambiando, se pueden presentar salidas de información espurias. Si las salidas mencionadas alimentan un circuito secuencial, probablemente el sistema presentará un error en entrada de datos. En consecuencia, el código gray resuelve este problema cambiando solamente un dígito a la vez, así que no existe este problema: Decimal

Gray

Binario

0

000

000

1

001

001

2

011

010

3

010

011

4

110

100

5

111

101

6

101

110

7

100

111

Como resultado de esto se puede notar que desde el 7 podría pasar a 0 con un solo cambio de switch (el más significativo pasa a cero). Esta es la propiedad llamada "cíclica" del código de Gray. De la misma manera este

4


sistema es usado en informática y resulta útil en determinadas aplicaciones que intentan minimizar el error en un determinado proceso de transmisión de datos. Dado un sistema de numeración cualquiera, el cambio de un número del mismo al siguiente comporta el cambio de uno o varios dígitos: por ejemplo, en el sistema decimal, el paso de 46 a 47 implica un solo cambio, pero el de 999 a 1000 supone cuatro cambios. En otras palabras, el código Gray es un código cíclico que se puede definir como cualquier código en el que, para cualquier palabra de código, un corrimiento circular produce otra palabra del código. El código Gray es uno de los tipos más comunes de códigos cíclicos y tiene la característica de que las palabras de código para dos números consecutivos difieren sólo en un bit. Es decir, la distancia entre las dos palabras de código es 1. En general la distancia entre dos palabras de código binario es igual al número de bits en que difieren las dos palabras. Para la conversión de código binario a código gray se siguen los siguientes pasos:  El bit más significativo en el código gray, es el mismo de código binario.  Partiendo de izquierda a derecha, sumar cada par adyacente de los bits en código binario para obtener el siguiente bit en código gray.  Se descartan los acarreos. Para convertir de código gray a binario, se siguen los pasos siguientes:  El bit más significativo en código binario, es el mismo que el correspondiente bit en código gray.

5


 A cada bit del código binario generado, se le suma el bit en código gray de la siguiente posición adyacente. Se descartan los acarreos. Ejemplo 1. Defina un código Gray para codificar los números decimales del 0 al 15. Solución. Se necesitan cuatro bits para representar todos los números, y podemos construir el código necesario asignando al bit i de la palabra de código el valor 0 sí los bits i e i  1 del número binario correspondientes son iguales, y 1 en caso contrario. El bit más significativo del número siempre se debe comparar con 0 al utilizar esta técnica. El código resultante es:

Decimal

Binario

Gray

0

0000

0000

1

0001

0001

2

0010

0011

3

0011

0010

4

0100

0110

5

0101

0111

6

0110

0101

7

0111

0100

8

1000

1100

9

1001

1101

10

1010

1111

6


11

1011

1110

12

1100

1010

13

1101

1011

14

1110

1001

15

1111

1000

CODICO ASCII

En cuanto al código ASCII se puede comenzar señalando que ASCII, es acrónimo de American Standard Code for Information Interchange (Código Normalizado Americano para el Intercambio de la Información). Es un sistema que se basa en un conjunto de caracteres del alfabeto latino utilizado en el idioma inglés y otras lenguas del mundo occidental. Con el objetivo de controlar dispositivos digitales que manipulan texto o para representar textos en pantalla, la mayoría de los sistemas informáticos del día de hoy utilizan el código ASCII o un código compatible con mayores capacidades.

En

computación, un esquema de codificación que asigna valores numéricos a las letras, números, signos de puntuación y algunos otros caracteres. Al normalizar los valores utilizados para dichos caracteres, ASCII permite que los ordenadores o computadoras y programas informáticos intercambien información. Además que utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1 7


que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español. Por otra parte, ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986.

Se debe tener presente que en la actualidad define códigos para 33 caracteres no imprimibles, de los cuales la mayoría son caracteres de control obsoletos que tienen efecto sobre cómo se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración (empezando por el carácter espacio). Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto como el teclado. No deben confundirse los códigos ALT+número de teclado con los códigos ASCII. Cabe agregar que, el código ASCII reserva los primeros 32 códigos (numerados del 0 al 31 en decimal) para caracteres de control: códigos no pensados originalmente para representar información imprimible, sino para controlar dispositivos (como impresoras) que usaban ASCII. Por ejemplo, el carácter 10 representa la función "nueva línea" (line feed), que hace que una impresora avance el papel, y el carácter 27 representa la tecla "escape" que a menudo se encuentra en la esquina superior izquierda de los teclados comunes. Entonces el código 127 (los siete bits a uno), otro carácter especial, equivale a "suprimir" ("delete"). Aunque esta función se asemeja a otros caracteres de control, los diseñadores de ASCII idearon este código para poder "borrar" una sección de papel perforado (un medio de almacenamiento popular hasta la década de 1980) mediante la perforación de todos los

8


agujeros posibles de una posición de carácter concreta, reemplazando cualquier información previa. Dado que el código 0 era ignorado, fue posible dejar huecos (regiones de agujeros) y más tarde hacer correcciones. Significa entonces que muchos de los caracteres de control ASCII servían para marcar paquetes de datos, o para controlar protocolos de transmisión de datos (por ejemplo ENQuiry, con el significado: ¿hay alguna estación por ahí?, ACKnowledge: recibido o ", Start Of Header: inicio de cabecera, Start of TeXt: inicio de texto, End of TeXt: final de texto, etc.). ESCape y SUBstitute permitían a un protocolo de comunicaciones, por ejemplo, marcar datos binarios para que contuviesen códigos con el mismo código que el carácter de protocolo, y que el receptor pudiese interpretarlos como datos en lugar de como caracteres propios del protocolo. Cabe agregar que los diseñadores del código ASCII idearon los caracteres de separación para su uso en sistemas de cintas magnéticas. Es por ello que dos de los caracteres de control de dispositivos, comúnmente llamados XON y XOFF generalmente ejercían funciones de caracteres de control de flujo para controlar el flujo a hacia un dispositivo lento (como una impresora) desde un dispositivo rápido (como un ordenador), de forma que los datos no saturasen la capacidad de recepción del dispositivo lento y se perdiesen. Como consecuencia de esto, los primeros usuarios de ASCII adoptaron algunos de los códigos de control para representar "metainformación" como final-de-línea, principio/final de un elemento de datos, etc. Estas asignaciones a menudo entraban en conflicto, así que parte del esfuerzo de convertir datos de un formato a otro comporta hacer las conversiones correctas de metainformación. Por ejemplo, el carácter que representa el final-de-línea en

9


ficheros de texto varía con el sistema operativo. Cuando se copian archivos de un sistema a otro, el sistema de conversión debe reconocer estos caracteres como marcas de final-de-línea y actuar en consecuencia. Cabe decir entonces que, ASCII incluye 256 códigos divididos en dos conjuntos, estándar y extendido, de 128 cada uno. Estos conjuntos representan todas las combinaciones posibles de 7 u 8 bits, siendo esta última el número de bits en un byte. El conjunto ASCII básico, o estándar, utiliza 7 bits para cada código, lo que da como resultado 128 códigos de caracteres desde 0 hasta 127 (00H hasta 7FH hexadecimal). El conjunto ASCII extendido utiliza 8 bits para cada código, dando como resultado 128 códigos adicionales, numerados desde el 128 hasta el 255 (80H hasta FFH extendido). Debido a esto, en el conjunto de caracteres ASCII básico los primeros 32 valores están asignados a los códigos de control de comunicaciones y de impresora caracteres no imprimibles, como retroceso, retorno de carro y tabulación empleados para controlar la forma en que la información es transferida desde una computadora a otra o desde una computadora a una impresora. Los 96 códigos restantes se asignan a los signos de puntuación corrientes, a los dígitos del 0 al 9 y a las letras mayúsculas y minúsculas del alfabeto latino. Ejemplo: La palabra "Start" se representa en código ASCII como sigue 1010011 1110100 1100001 1110010 1110100 S

t

a

10

r

t


COMPLEMENTO A UNO Se puede definir complemento A1 de un número binario como una operación matemática muy importante en el campo de la computación, ya que nos permite la representación binaria de números negativos. Se obtiene al cambiar cada uno de los dígitos del número binario N por su complementario, esto es, cambiar los unos por ceros y los ceros por unos. Por ejemplo: Número binario = (001010110)2 = (86)10 Complemento a uno = (110101001)2 = (− 86)10 En este sistema de representación, los números positivos se expresan igual que en Signo Magnitud o que en Binario Puro. Sin embargo, para escribir los números negativos se utiliza el Complemento a la Base Menos 1. De forma normalizada, el Complemento a la Base Menos 1 de un número entero positivo N de base b, se expresa de la siguiente manera: Cb-1(N) = bn - 1 - N Visto desde la perspectiva anterior, el formato Complemento A1 (C-a-1) es al sistema binario lo que el formato C-a-9 es al sistema decimal. Es un formato por complementación a la base menos uno. Bueno, en realidad es una complementación para representar los números negativos al total de representaciones posibles, dado el espacio de trabajo y dada la base de la escritura posicional, menos uno. La justificación radica en que se agiliza el proceso de complentación al eliminar el paso de añadir uno y por ende las operaciones de Entrada/Salida con respecto al formato C-a-2. Pero claro, nada viene de gratis y esto implicará un paso adicional al hacer aritmética.

11


En todo caso, el formato Complemento A1 se define similar al formato Complemento-a-dos, tan sólo difieren del modo en hacer la complementación que en este caso el complemento se consigue buscando la diferencia de la cantidad al total de representaciones menos uno.

Como el total de

representaciones menos uno en binario se escribe 111...1, restar a esta cantidad implica que el resultado es justo igual al substraendo con los bits trastocados. Es decir, donde teníamos uno tendremos cero y viceversa. También, aquí los formatos que comienzan con cero corresponden a enteros positivos y los que comienzan con uno a negativos.

Por supuesto, al

representar el formato con caracteres hexadecimales, un carácter de 8 o más corresponde a un entero negativo. CONSECUENCIAS: Se simplifica la complementación al eliminar el paso de añadir uno. Al sumar, si hay carry-over, éste se añade al resultado. Tenemos duplicidad de representación para el cero. Ejemplo: En Complemento a 1, para n = 16, el número positivo 950310 se representa igual que en Signo Magnitud o que en Binario Puro:

Por tanto, 950310 = 0010010100011111C1 = 0010010100011111SM = 0010010100011111BP

12


COMPLEMENTO A2 En el complemento A2 los números negativos se representan mediante el patrón de bits mayor sin signo. De acuerdo con lo explicado anteriormente el cálculo del complemento A2 es muy sencillo y muy fácil de realizar mediante puertas lógicas, donde reside su utilidad. Para comenzar los números positivos se quedarán igual en su representación binaria. Los números negativos deberemos invertir el valor de cada una de sus cifras, es decir realizar el complemento a uno, y sumarle 1 al número obtenido Cabe recordar que debido a la utilización de un bit para representar el signo, el rango de valores será diferente al de una representación binaria habitual; el rango de valores decimales para «n» bits será:

Ejemplos: -210 con 5 dígitos es 11110, su opuesto es 210 (00010) 1210 con 5 dígitos es 01100, su opuesto es -1210 (10100)

SUMAS Y RESTAS BINARIOS Como ya se sabe el sistema binario, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). El número binario 11001010 en sistema decimal es 202.

13


Para eso, empezando desde el digito de la derecha, realizamos lo siguiente: 11001010 0 x 20 = 0 x 1 = 0 1 x 2¹ = 1 x 2 = 2 0 x 2³ = 0 x 4 = 0 1 x 2⁴ = 1 x 8 = 8 0 x 2⁵ = 0 x 16 = 0 0 x 2⁶ = 0 x 32 = 0 1 x 2⁷ = 1 x 64 = 64 1 x 2⁸ = 1 x 128 = 128 De estos resultados se realiza la suma, la cual nos da 202. Si tuviéramos algún 0 o 1 más seguiríamos haciendo las mismas operaciones elevando una potencia más el 2. Suma Pero la suma de 1+1, que sabemos que es 2 en el sistema decimal, debe escribirse en binario con dos cifras (10) y, por tanto 1+1 es 0 y se arrastra una unidad, que se suma a la posición siguiente a la izquierda.

Esta suma en números decimales es:

14


Número decimales...................................Número binario 0--------------------------------------------------------000 1--------------------------------------------------------001 2--------------------------------------------------------010 3--------------------------------------------------------011 4--------------------------------------------------------100 5--------------------------------------------------------101 6--------------------------------------------------------110 7--------------------------------------------------------111 8-------------------------------------------------------1000 9-------------------------------------------------------1001 10-------------------------------------------------------1010

Como

se

podrán

dar

cuenta

hay

un

patrón

a

seguir.

Con la suma pasa esto:

Después de haber realizado la suma y tener el resultado, para conocer el resultado real, se hace lo siguiente: En el resultado 1 1 0 1 0 1 1 0 se resta el segundo número 1 de izquierda a derecha, que en este caso es 64, menos la suma de los números 1 que le siguen, que en este caso la suma de estos es 22. Entonces el resultado seria

15


42. Pero ¿qué sucede con el primer número 1 de la izquierda? Este número 1 es precisamente el que representa el signo negativo (-). De esta forma obtenemos el resultado de – 42. Las posibles combinaciones al sumar dos bits son 0+0=0 0+1=1 1+0=1 1+1=1 Operamos como en el sistema decimal: comenzamos a sumar desde la derecha, en nuestro ejemplo, 1 + 1 = 10, entonces escribimos 0 en la fila del resultado y llevamos 1 (este "1" se llama arrastre). A continuación se suma el acarreo a la siguiente columna: 1 + 0 + 0 = 1, y seguimos hasta terminar todas la columnas (exactamente como en decimal). Ejemplo:

Esto con sus respectivos acarreados seria:

17


La primera suma a realizar es 1 + 1 + 1 + 1 = 4. De igual manera no podemos poner el número 4 en el resultado, así que lo convertimos a binario (100). Utilizamos la cifra del extremo derecho (0). Esta vez para acarrear utilizamos las dos cifras que nos sobraron. Como se podrán dar cuenta el número acarreado 1 no se ubicó en la columna siguiente. Esto es porque en esta ocasión también cuenta el 0 que nos sobraba (aunque no se escribe ahí está). De esta manera seguimos realizando la suma hasta obtener el resultado. Existe otro método el cual es muy sencillo y más práctico.

Esta vez, en vez de realizar la suma de cada columna tendremos en cuenta los siguientes tres puntos:  Si en la columna la cantidad de números 1 es par el resultado de la columna es 0.  Si en la columna la cantidad de números 1 es non el resultado de la columna es 1.  Por cada par de números 1 en la columna se acarrea un número 1.

18


Resta de números binarios El algoritmo de la resta en binario es el mismo que en el sistema decimal. Pero conviene repasar la operación de restar en decimal para comprender la operación binaria, que es más sencilla. Los términos que intervienen en la resta se llaman minuendo, sustraendo y diferencia. Las restas básicas 0-0, 1-0 y 1-1 son evidentes: 0-0=0 1-0=1 1-1=0 0 - 1 = no cabe o se pide prestado al próximo. La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente: 10 - 1 = 1 y me llevo 1, lo que equivale a decir en decimal, 2 - 1 = 1. Esa unidad prestada debe devolverse, sumándola, a la posición siguiente. Veamos un ejemplo:

Tenemos interiorizado el sistema decimal y hemos aprendido a restar mecánicamente, sin detenernos a pensar en el significado del arrastre. Para simplificar las restas y reducir la posibilidad de cometer errores hay varias soluciones:  Dividir los números largos en grupos. En el siguiente ejemplo, vemos cómo se divide una resta larga en tres restas cortas:

19


Utilizando el complemento a dos. La resta de dos números binarios puede obtenerse sumando al minuendo el complemento a dos del sustraendo. Veamos algunos ejemplos. Hagamos la siguiente resta, 91 - 46 = 45, en binario:

En el resultado nos sobra un bit, que se desborda por la izquierda. Pero, como el número resultante no puede ser más largo que el minuendo, el bit sobrante se desprecia.  Utilizando el complemento a 1. La resta de dos números binarios puede obtenerse sumando al minuendo el complemento a uno del sustraendo y a su vez sumarle el bit de overflow (bit que se desborda).

20


CONCLUSIONES Como ya quedo demostrado los sistemas de numeración son las distintas formas de representar la información numérica, es decir, cualquier cifra decimal se puede representar en binario, a esta codificación se le llama codificación binaria directa ó código binario natural. Se puede expresar que en cuanto al sistema gray se alcanzó a comprender que es un código binario, que tiene por característica, que entre una combinación de dígitos y la siguiente, sea ésta anterior o posterior, sólo hay una diferencia de un dígito además es utilizado principalmente en sistemas de posición, ya sea angular o lineal. Ahora bien en cuanto al código asca se pudo comprobar que es una transcodificación de caracteres alfabéticos y demás signos utilizados corrientemente al sistema binario; supone pues, representar con sólo caracteres binarios 0 y 1 todos los caracteres que, por ejemplo contiene la máquina de escribir. Por otra parte también se estudio el complemento A1 el cual se refiere a que, el complemento a1 de un número binario se obtiene cambiando cada 0 por 1 y viceversa. En otras palabras, se cambia cada bit del número por su complemento. Mientras que el complemento A2 es un sistema que nos permite representar números binarios de forma negativa, en donde el MSB (Bit más Significativo) es el bit del signo. Cabe considerar, por otra parte, las operaciones aritméticas con números en base 2 son muy sencillas. Las reglas básicas son: 1 + 1 = 10 y 1 × 1 = 1. El cero cumple las mismas propiedades que en el sistema decimal: 1 × 0 = 0 y 1 + 0 = 1. La adición, sustracción se realizan de manera similar a las del sistema decimal.

21


REFERENCIAS BIBLIOGRAFICAS

Tocci Ronald J., Neal S. Widmer. Sistemas Digitales 2da edici贸n, Pearsons Educaci贸n, M茅xico, 2003.

22


REFERENCIA ELECTRONICA

Introducción al estudio de los circuitos lógicos y sistemas numéricos. (S.F). Recuperado 27 de diciembre de 2011

desde

http://www.monografias.com/trabajos32/sistemas-numericos/sistemasnumericos.shtml

Sistemas de Numeración. (S.F). Recuperado 27 de Diciembre de 2011

desde

https://sites.google.com/site/sistemasdemultiplexado/principios-de-electrnicadigital-y-puertas-lgicas/1-1-sistemas-de-numeracionhtm

Tema más electrónica. (2004)

Recuperado 27 de diciembre de 2011 desde

http://lamont13.wikispaces.com/file/view/tema+electronica.pdf

Sistemas binarios: Aritmética binaria. (2009) Recuperado 27 de diciembre de 2011 desde http://platea.pntic.mec.es/~lgonzale/tic/binarios/aritmetica.html

Capitulo 2. Sistema de Numeración. (2002) Recuperado 10 de Enero de 2012 desde http://www.speccy.org/curso-cm/fr_cap2.html

Aritmética Binaria. (2004) Recuperado 10 de Enero de 2012 desde http://www.iuma.ulpgc.es/~jrsendra/Docencia/Electronica_Basica/download/trans parencias/aritmetica_binaria.pdf

23


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.