You are on page 1of 10

Captulo 3

Cdigos Binarios

Cdigos Binarios
No toda la informacin que maneja un sistema digital es numrica, e inclusive, para la
informacin numrica a veces no es conveniente utilizar el sistema binario descrito en los captulos anteriores. Por ello es conveniente idear formas diferentes de representar (codificar) informacin diversa usando solamente ceros y unos. en este captulo se describen algunos cdigos tanto para informacin numrica como alfanumrica, cuyo uso se ha generalizado por diversas razones, la mayora de las veces de conveniencia, aunque no siempre. 3.1.- CDIGOS NUMRICOS Existen varias situaciones en las que no es conveniente utilizar el binario natural para manejar informacin numrica, entre ellas se pueden mencionar las siguientes:

o Cuando se busca una conversin ms sencilla decimal - binario (cdigos BCD) o Cuando adems de lo anterior se van a manejar nmeros negativos (Cdigos BCD
autocomplementarios)

o Cuando se busca minimizar errores de sensado en encoders de posicin de una cantidad a


otra (cdigo gray)

o Cuando se quiere detectar errores en transmisin de datos (cdigo de paridad) o Cuando se quiere detectar y corregir errores en transmisin de datos (cdigo Hamming)
A continuacin se tratan algunos de estos cdigos. 3.1.1.- DECIMAL CODIFICADO EN BINARIO (BCD) Los cdigos BCD nos permiten representar cada uno de los dgitos decimales (0,...,9) mediante 4 bits.

O El ms sencillo de los cdigos BCD es el BCD8421 o BCD natural, que consiste simplemente en
representar cada dgito decimal por su binario equivalente. As tenemos Dgito Decimal 0 1 2 3 4 BCD8421 0000 0001 0010 0011 0100 Dgito Decimal 5 6 7 8 9 BCD8421 0101 0110 0111 1000 1001

Ejemplo: Expresar e 937.2510 en BCD. 937.2510 = 1001 0011 0111 0010 0101BCD Ejemplo: Expresar el nmero N= (10010110010111)BCD escrito en cdigo BCD8421, en decimal.

19

Captulo 3

Cdigos Binarios
q

separando de LSB a MSB en grupos de 4: N=(10,0101,1001,0111)BCD = 259710 3.1.2.- CDIGO BCD EXCESO-3

O El cdigo BCD exceso-3 se obtiene a partir del cdigo BCD natural, simplemente sumando 310
(00112) a cada cdigo BCD de cada dgito decimal. Esto se resume en la siguiente tabla

Dgito Decimal 0 1 2 3 4

BCD EXCESO-3 0011 0100 0101 0110 0111

Dgito Decimal 5 6 7 8 9

BCD EXCESO-3 1000 1001 1010 1011 1100

Este cdigo resulta de utilidad en aplicaciones donde se requiere realizar operaciones aritmticas usando complementos. Este cdigo es llamado autocomplementario porque el complemento a 9 de un numero decimal puede ser obtenido complementando cada bit individualmente y el resultado sigue siendo un cdigo vlido en BCD exceso 3. Ejemplo: Representar el numero 90710 en BCD exceso-3 y usar el complemento a 1 para encontrar el complemento a 9 del nmero: 90710 = 1100 0011 1010exc-3 0011 1100 0101exc-3 complemento a 1 = 09210 complemento a 9 3.1.3.- CDIGO BCD 2421 Este es otro cdigo BCD autocomplementario, y su nombre (2421) indica la ponderacin de sus bits para obtener su equivalente en decimal y biceversa. en la siguiente tabla se ilustra este cdigo Dgito Decimal 0 1 2 3 4 BCD 2421 0000 0001 0010 0011 0100 Dgito Decimal 5 6 7 8 9 BCD 2421 1011 1100 1101 1110 1111

Ejemplo: Representar el numero 90710 en BCD exceso-3 y usar el complemento a 1 para encontrar el complemento a 9 del nmero:

20

Captulo 3
90710 = 1111 0000 11012421 0000 1111 00102421 complemento a 1 = 09210 complemento a 9

Cdigos Binarios
q

3.1.4.- CDIGO 2 DE 5 (BIQUINARIO) El cdigo 2 de 5 es un cdigo multibit no ponderado, es decir, los cdigos no pueden obtenerse usando una expresin polinomial; este cdigo est diseado para la deteccin de errores en diferentes tipos de clculos y operaciones con registros de corrimiento. Se usan cinco bits para representar los dgitos decimales (0-9). Como el nombre lo implica slo dos de los cinco bits son 1. Dgito Decimal 0 1 2 3 4 Cdigo 2 de 5 00011 00101 00110 01001 01010 Dgito Decimal 5 6 7 8 9 Cdigo 2 de 5 01100 10001 10010 10100 11000

Ejemplo: Representar el numero decimal 23710 en cdigo 2 de 5. 23710 = 00110 01001 100102 de 5 3.2.- CDIGO GRAY Este es un cdigo binario no ponderado y tiene la propiedad de que los cdigos para dgitos decimales sucesivos difiere en un slo bit. al cdigo Gray tambin se le llama autorreflejado, o cclico. En la siguiente tabla se muestra dicho cdigo para los nmeros del 0 al 16 Dgito Decimal 0 1 2 3 4 5 6 7 Cdigo Gray 0000 0001 0011 0010 0110 0111 0101 0100 Dgito Decimal 8 9 10 11 12 13 14 15 Cdigo Gray 1100 1101 1111 1110 1010 1011 1001 1000 q

21

Captulo 3
3.2.1.- CONVERSIN GRAY - BINARIO Para convertir de Binario a Gray puede seguirse el siguiente procedimiento

Cdigos Binarios

@ Algoritmo
1.- El MSB se deja igual 2.- Avanzando de MSB a LSB se suma cada bit con el siguiente despreciando el acarreo para obtener el siguiente bit del cdigo Gray Ejemplo Escribir en Cdigo Gray el nmero 4510 Como 4510 = 1011012 Al aplicar el algoritmo a este nmero binario, tenemos:
1d 0 d1 d1 d0 d1 o o o o o o 1 1 1 0 1 1
/ / / / /

Es decir, 4510=1 1 1 0 1 1gray Para convertir de Gray a Binario puede seguirse el siguiente procedimiento

@ Algoritmo
1.- El MSB se deja igual 2.- Avanzando de MSB a LSB a cada bit obtenido en binario se le suma sin acarreo el siguiente bit de cdigo Gray. Ejemplo Obtener el equivalente decimal del siguiente cdigo gray: N= 011011gray

0 1 1 0 1 1 + + + + + 0 1 0 0 1 0 q

Al aplicar el algoritmo a este nmero binario, tenemos: Es decir, N= 0100102 = 1810 3.2.2.- APLICACIN A SENSORES PTICOS

La principal caracterstica del cdigo gray (que slo cambia un bit entre dos cdigos consecutivos) es muy utilizada en sensores pticos para codificar la posicin (angular o lineal) mediante discos o cintas codificadas en gray, dependiendo del caso. Por ejemplo, en la siguiente figura se ilustra la codificacin en dos colores (blanco y negro) de un disco que ser montado sobre la flecha de un motor. Se usa el cdigo gray de 4 bits para codificar la posicin angular de la flecha. Cada sector en el disco tiene un cdigo de posicin de 0,a 15. Se usarn sensores opto electrnicos reflectivos para determinar la posicin de la flecha en un sector o

22

Captulo 3

Cdigos Binarios

sea, con una resolucin de 1/16 de vuelta, o de 22.5. si se desea una mejor resolucin se debern usar ms bits, y por lo tanto mayor nmero de sectores.

4 5 6 7 8 9 10 11

3 2 1

giro

0 15 14 13 12 Sensor ptico

0 0 0 0 MSB LSB

Aunque el disco pudiera se codificado en binario natural, el hacerlo en gray tiene la ventaja de que si el sensor queda ubicado entre dos sectores, la lectura producida producir un error de cuando mucho media posicin. En cambio, si es en binario este error puede ser tan grande como 180.

3.5.- CDIGOS ALFANUMRICOS Muchas aplicaciones de sistemas digitales (especialmente las computadoras o la transmisin de textos) requieren del procesamiento de datos los como nmeros, letras y smbolos especiales. Para manejar estos datos usando dispositivos digitales, cada smbolo debe estar representado por un cdigo binario. El cdigo alfanumrico ms generalizado en la actualidad es el denominado ASCII (American Standard Code for Information Interchange). Este es un cdigo de 7 bit. La siguiente tabla muestra una parte del cdigo ASCII: Ejemplo: la palabra "Start" se representa en cdigo ASCII como sigue 1010011 S 1110100 t 1100001 a 1110010 r 1110100 t q

23

Captulo 3

Cdigos Binarios

Carac hex dec ASCII Carac hex dec ASCII Carac hex dec ASCII Carac hex dec ASCII ter A6A5A4A3A2A1A0 ter A6A5A4A3A2A1A0 ter A6A5A4A3A2A1A0 ter A6A5A4A3A2A1A0 nulo SOH STX ETX EOT ENQ ACK BELL BS HT LF VT FF return SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB EM SUB ESC FS GS RS US 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 19 1A 1B 1C 1D 1E 1F 0 1 2 3 4 5 6 7 8 9 0000000 0000001 0000010 0000011 0000100 0000101 0000110 0000111 0001000 0001001
espacio

20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F

32 0 1 0 0 0 0 0 33 0 1 0 0 0 0 1 34 0 1 0 0 0 1 0 35 0 1 0 0 0 1 1 36 0 1 0 0 1 0 0 37 0 1 0 0 1 0 1 38 0 1 0 0 1 1 0 39 0 1 0 0 1 1 1 40 0 1 0 1 0 0 0 41 0 1 0 1 0 0 1 42 0 1 0 1 0 1 0 43 0 1 0 1 0 1 1 44 0 1 0 1 1 0 0 45 0 1 0 1 1 0 1 46 0 1 0 1 1 1 0 47 0 1 0 1 1 1 1 48 0 1 1 0 0 0 0 49 0 1 1 0 0 0 1 50 0 1 1 0 0 1 0 51 0 1 1 0 0 1 1 52 0 1 1 0 1 0 0 53 0 1 1 0 1 0 1 54 0 1 1 0 1 1 0 55 0 1 1 0 1 1 1 56 0 1 1 1 0 0 0 57 0 1 1 1 0 0 1 58 0 1 1 1 0 1 0 59 0 1 1 1 0 1 1 60 0 1 1 1 1 0 0 61 0 1 1 1 1 0 1 62 0 1 1 1 1 1 0 63 0 1 1 1 1 1 1

@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _

40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F

0 1 2 3 4 5 6 7 8 9

1000000 1000001 1000010 1000011 1000100 1000101 1000110 1000111 1001000 1001001

` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~

60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F

0 1 2 3 4 5 6 7 8 9

1100000 1100001 1100010 1100011 1100100 1100101 1100110 1100111 1101000 1101001

! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

10 0 0 0 1 0 1 0 11 0 0 0 1 0 1 1 12 0 0 0 1 1 0 0 13 0 0 0 1 1 0 1 14 0 0 0 1 1 1 0 15 0 0 0 1 1 1 1 16 0 0 1 0 0 0 0 17 0 0 1 0 0 0 1 18 0 0 1 0 0 1 0 19 0 0 1 0 0 1 1 20 0 0 1 0 1 0 0 21 0 0 1 0 1 0 1 22 0 0 1 0 1 1 0 23 0 0 1 0 1 1 1 24 0 0 1 1 0 0 0 25 0 0 1 1 0 0 1 26 0 0 1 1 0 1 0 27 0 0 1 1 0 1 1 28 0 0 1 1 1 0 0 29 0 0 1 1 1 0 1 30 0 0 1 1 1 1 0 31 0 0 1 1 1 1 1

10 1 0 0 1 0 1 0 11 1 0 0 1 0 1 1 12 1 0 0 1 1 0 0 13 1 0 0 1 1 0 1 14 1 0 0 1 1 1 0 15 1 0 0 1 1 1 1 16 1 0 1 0 0 0 0 17 1 0 1 0 0 0 1 18 1 0 1 0 0 1 0 19 1 0 1 0 0 1 1 20 1 0 1 0 1 0 0 21 1 0 1 0 1 0 1 22 1 0 1 0 1 1 0 23 1 0 1 0 1 1 1 24 1 0 1 1 0 0 0 25 1 0 1 1 0 0 1 26 1 0 1 1 0 1 0 27 1 0 1 1 0 1 1 28 1 0 1 1 1 0 0 29 1 0 1 1 1 0 1 30 1 0 1 1 1 1 0

10 1 1 0 1 0 1 0 11 1 1 0 1 0 1 1 12 1 1 0 1 1 0 0 13 1 1 0 1 1 0 1 14 1 1 0 1 1 1 0 15 1 1 0 1 1 1 1 16 1 1 1 0 00

17 1 1 1 0 0 0 1 18 1 1 1 0 0 1 0 19 1 1 1 0 0 1 1 20 1 1 1 0 1 0 0 21 1 1 1 0 1 0 1 22 1 1 1 0 1 1 0 23 1 1 1 0 1 1 1 24 1 1 1 1 0 0 0 25 1 1 1 1 0 0 1 26 1 1 1 1 0 1 0 27 1 1 1 1 0 1 1 28 1 1 1 1 1 0 0 29 1 1 1 1 1 0 1 30 1 1 1 1 1 1 0 31 1 1 1 1 1 1 1

CAN 18

31 1 0 1 1 1 1 1 del

En resumen, el cdigo ASCII consta entre otros, de los siguientes grupos de caracteres:

Rango (hexadecimal) 0 al 19 30 al 39 41 al 5A 61 al 7A

Caracteres cdigos de control y comunicaciones dgitos del 0 al 9 letras maysculas de la A a la Z letras minsculas de la a a la z

3.5.1.- CODIGO DE SIETE SEGMENTOS.

24

Captulo 3

Cdigos Binarios

Un dispositivo muy generalizado por su sencillez y bajo costo en dispositivos digitales de visualizacin es el exhibidor o display de siete segmentos, el cual consiste en un arreglo de siete indicadores luminosos (LEDs) u opacos (cristal lquido) arreglado como se muestra en la siguiente figura. Existen dos tipos de exhibidores de siete segmentos construidos con LEDs, estos son los de nodo comn y los de ctodo comn, los cuales se muestran tambin en la figura. Este tipo de displays permite la representacin de informacin de tipo numrico principalmente, sin

a f g e b

c a b c d e f g ctodo comn a b c d e f nodo comn g

d arreglo de siete segmentos

embargo, tambin permite algunos caracteres alfabticos, tales como: a, A, b, c, C, d, E, F, G, H, y, j, L, o, O, p, q, r, s, u, z. En la siguiente tabla se muestra el cdigo de 7 segmentos para un display de nodo comn para los dgitos decimales y el equivalente en BCD:

Deci mal 0 1 2 3 4 5 6 7 8 9

BCD 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1

a 0 1 0 0 1 0 0 0 0 0

b 0 0 0 0 0 1 1 0 0 0

c 0 0 1 0 0 0 1 0 0 0

d 0 1 0 0 1 0 1 1 0 0

e 0 1 0 1 1 1 1 1 0 1

f 0 1 1 1 0 0 1 1 0 0

g 1 1 0 0 0 0 1 1 0 0

display

3.6.- CDIGOS PARA DETECCIN Y CORRECCIN DE ERRORES Los sistemas digitales pueden cometer errores de vez en cuando. Aunque los dispositivos en circuito integrado tales como microprocesadores, puertas lgicas o circuitos de memoria carecen de partes mviles y por lo tanto tienen alta confiabilidad. pero los dispositivos que tienen interaccin con partes mviles son menos confiables. Se pueden producir errores por polvo en las cabezas lectoras de una unidad de disco. Tambin es muy comn la ocurrencia de errores en la transmisin de datos a distancia. Los datos que se transmiten por modem (a travs de lnea telefnica) pueden recibirse incorrectamente si la lnea tiene ruidos. Tambin la perturbaciones en el suministro de energa elctrica pueden producir errores. En resumen, cuando se leen, escriben o transmiten

25

Captulo 3

Cdigos Binarios

caracteres de un sitio a otro, pueden producirse errores. En esta seccin se ilustran dos cdigos que permiten detectar errores y, en algunos casos, incluso corregirlos. 3.6.1 TRANSMISIN SERIE Y PARALELO Existen dos mtodos bsicos para transmitir informacin entre dos dispositivos digitales, como se ilustra en la siguiente figura, la transmisin de datos digitales en paralelo ocupa una lnea fsica por cada bit de los datos a enviar, esto hace que este tipo de transmisin sea usada en distancias relativamente cortas (unos cuantos metros), ya que de otra manera se vuelve muy costosa.
1 0 1 0 0 0 1 1 0

MSB

Transmisor
LSB

Receptor

Transmisin paralela del caracter "F" Por otro lado, la transmisin de datos a distancias muy grandes (del orden de cientos de metros a miles de kilmetros) hace necesario usar menos lneas fsicas. en este caso puede usarse el esquema de la figura siguiente o transmisin en serie, la cual utiliza una sola lnea para enviar el nmero de bits que se desee.
MSB LSB

Transmisor

Receptor

Transmisin serie del caracter "F" Aunque la transmisin en serie resulta econmica por el nmero reducido de lneas que requiere, e inclusive, por el hecho de que permite usar en lugar de lneas conductoras, el aire o el vaco cuando en lugar de pulsos elctricos se usa radiacin electromagntica (luz, ondas de radio, ultrasonido, etc.). A cambio de esta economa, el transmisor y el receptor se vuelven un poco ms complejos, adems de que el trayecto que recorre la informacin (por ser largo) se vuelve ms susceptible a interferencias. 3.6.2.- CDIGO DE PARIDAD

Un mtodo muy simple, pero ampliamente utilizado por su sencillez para detectar errores en transmisin de datos consiste en aadir un bit de paridad (p) a cada carcter, normalmente en la posicin ms significativa. En el cdigo de paridad par, el bit de paridad (p) se elige de manera que el nmero de bits 1 del dato sea un nmero par incluyendo el bit de paridad. En el cdigo de paridad impar, el bit de paridad se elige de modo que el nmero de bits 1 (incluyendo el de paridad) del dato sea impar.

26

Captulo 3

Cdigos Binarios

De esta manera, cuando cambia un bit durante la transmisin, el nmero de unos en el carcter recibido tendr la paridad equivocada y el receptor sabr que se ha producido un error. Ejemplo: La siguiente tabla muestra un cdigo de paridad par de 8 bits para los caracteres ASCII FIE. . Bit de paridad P 1 1 1 0 Cdigo ASCII de 7 bits Caracter A6 1 1 1 0 A5 A4 A3 A2 A1 A0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 F I E .

Ejemplo Si un transmisor enva la informacin anterior y hay errores en la transmisin, suponiendo que el receptor recibe la siguiente informacin, en la siguiente tabla se anota los datos que llegaron errneos y si se detect o no el error, agrega en la columna vaca cuantos bits cambiaron en la transmisin

Dato enviado 1100,0110 (F) 1100,1010 (I) 1100,0101 (E) 0010,1110 (.)

Dato recibido (supuesto) 1100,1110 (+) 0110,1011 (k) 1100,0101 (E) 0010,1101 (-)

error SI SI NO SI

paridad mal mal bien bien

bits errneos

1 3 0 2

Como puede verse, el cdigo de paridad No siempre resulta efectivo para detectar errores. Qu tipo de errores si detecta y cuales no? q

3.6.3.- CDIGO DE HAMMING Richard Hamming (1950) ide un mtodo no slo para detectar errores sino tambin para corregirlos, y se conoce como cdigo Hamming. En l se aaden k bits de paridad a un carcter de n bits, formando un nuevo carcter de n + k bits. Los bits se enumeran empezando por 1, no por 0, siendo el bit 1, el de la izquierda, el ms significativo. Todo bit cuyo nmero sea potencia de 2 es un bit de paridad y todos los dems se utilizan para datos. Para un carcter ASCII de 7 bits, se aaden 4 bits de paridad. Los bits 1, 2, 4 y 8 son bits de paridad; 3, 5, 6, 7, 9, 10 y 11 son los 7 bits de datos. Cada bit de paridad comprueba determinadas posiciones de bit y se ajusta de modo que el nmero total de unos en las posiciones comprobadas sea par, si se trata de paridad par. Las posiciones de los bits comprobados por los de paridad son: El El El El bit bit bit bit 1 2 4 8 comprueba comprueba comprueba comprueba los los los los bits bits bits bits 1, 2, 4, 8, 3, 3, 5, 9, 5, 7, 9 y 11. 6, 7, 10 y 11. 6 y 7. 10 y 11.

27

Captulo 3

Cdigos Binarios

En general, el bit n es comprobado por los bits b1, b2,....,bj, tales que b1 + b2 + .... + bj = n. Por ejemplo, el bit 5 es comprobado por los bits 1 y 4 porque 1 + 4 = 5. El bit 6 es comprobado por los bits 2 y 4 porque 2 + 4 = 6. Ejemplo: Usando paridad par, construir el cdigo de Hamming para el carcter "b". Cdigo ASCII para "b" 1 Cdigo de Hamming para "b"
nmero de bit 1 2 3 4 5 6 7 8 9 10 11

El carcter ASCII "b" se representa por el nmero binario 1100010. El cdigo de Hamming para "b" en binario es 00111001010. Considrese que pasara si el bit 1 se modificara durante la transmisin. El carcter recibido sera 10111001010 en lugar de 00111001010. El receptor comprobara los 4 bits de paridad con los resultados siguientes: Bit Bit Bit Bit de de de de paridad paridad paridad paridad 1 2 4 8 incorrecto ( los bits 1, 3, 5, 7, 9 y 11 contienen tres unos). correcto ( los bits 2, 3, 6, 7, 10 y 11 contienen dos unos). correcto ( los bits 4, 5, 6 y 7 contienen dos unos). correcto ( los bits 8, 9, 10 y 11 contienen dos unos).

El nmero total de unos en los bits 1, 3, 5, 7, 9 y 11 debera de ser par, ya que se est usando paridad par. El bit incorrecto debe ser uno de los bits comprobados por el bit de paridad 1, es decir, uno de los bits 1, 3, 5, 7, 9 u 11. Como el bit de paridad 2 es correcto, sabemos que los bits 2, 3, 6, 7, 10 y 11 son correctos, de forma que el error no estaba en los bits 3, 7 u 11. Esto deja los bits 1, 5 y 9. El bit de paridad 4 es correcto, lo cual significa que los bits 4, 5, 6 y 7 no contienen errores.. Esto reduce la eleccin al 1 9. El bit de paridad 8 tambin es correcto y, por lo tanto, el bit 9 es correcto. Por consiguiente, el bit incorrecto debe ser el 1. Dado que se recibi como un 1, debera haberse transmitido como un 0. En esta forma se pueden corregir los errores.

28

You might also like