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 BCD 8421 o BCD natural, que consiste simplemente en representar cada dgito decimal por su binario equivalente. As tenemos 1 0 0 1 9 0 1 0 0 4 1 0 0 0 8 0 0 1 1 3 0 1 1 1 7 0 0 1 0 2 0 1 1 0 6 0 0 0 1 1 0 1 0 1 5 0 0 0 0 0 BCD 8421 Dgito Decimal BCD 8421 Dgito Decimal Ejemplo: Expresar e 937.25 10 en BCD. 937.25 10 = 1001 0011 0111 0010 0101 BCD q Ejemplo: Expresar el nmero N= (10010110010111) BCD escrito en cdigo BCD 8421 , en decimal. Captulo 3 Cdigos Binarios 19 separando de LSB a MSB en grupos de 4: N=(10,0101,1001,0111) BCD = 2597 10 q 3.1.2.- CDIGO BCD EXCESO-3 O El cdigo BCD exceso-3 se obtiene a partir del cdigo BCD natural, simplemente sumando 3 10 (0011 2 ) a cada cdigo BCD de cada dgito decimal. Esto se resume en la siguiente tabla
1 1 0 0 9 0 1 1 1 4 1 0 1 1 8 0 1 1 0 3 1 0 1 0 7 0 1 0 1 2 1 0 0 1 6 0 1 0 0 1 1 0 0 0 5 0 0 1 1 0 BCD EXCESO-3 Dgito Decimal BCD EXCESO-3 Dgito Decimal 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 907 10 en BCD exceso-3 y usar el complemento a 1 para encontrar el complemento a 9 del nmero: 907 10 = 1100 0011 1010 exc-3 0011 1100 0101 exc-3 complemento a 1 = 092 10 complemento a 9 q 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 1 1 1 1 9 0 1 0 0 4 1 1 1 0 8 0 0 1 1 3 1 1 0 1 7 0 0 1 0 2 1 1 0 0 6 0 0 0 1 1 1 0 1 1 5 0 0 0 0 0 BCD 2421 Dgito Decimal BCD 2421 Dgito Decimal Ejemplo: Representar el numero 907 10 en BCD exceso-3 y usar el complemento a 1 para encontrar el complemento a 9 del nmero: Captulo 3 Cdigos Binarios 20 907 10 = 1111 0000 1101 2421 0000 1111 0010 2421 complemento a 1 = 092 10 complemento a 9 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. 1 1 0 0 0 9 0 1 0 1 0 4 1 0 1 0 0 8 0 1 0 0 1 3 1 0 0 1 0 7 0 0 1 1 0 2 1 0 0 0 1 6 0 0 1 0 1 1 0 1 1 0 0 5 0 0 0 1 1 0 Cdigo 2 de 5 Dgito Decimal Cdigo 2 de 5 Dgito Decimal Ejemplo: Representar el numero decimal 237 10 en cdigo 2 de 5.
237 10 = 00110 01001 10010 2 de 5 q 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 1 0 0 0 15 0 1 0 0 7 1 0 0 1 14 0 1 0 1 6 1 0 1 1 13 0 1 1 1 5 1 0 1 0 12 0 1 1 0 4 1 1 1 0 11 0 0 1 0 3 1 1 1 1 10 0 0 1 1 2 1 1 0 1 9 0 0 0 1 1 1 1 0 0 8 0 0 0 0 0 Cdigo Gray Dgito Decimal Cdigo Gray Dgito Decimal Captulo 3 Cdigos Binarios 21 3.2.1.- CONVERSIN GRAY - BINARIO Para convertir de Binario a Gray puede seguirse el siguiente procedimiento 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 45 10 Como 45 10 = 101101 2 Al aplicar el algoritmo a este nmero binario, tenemos: 1 / d 0 / d 1 / d 1 / d 0 / d 1 o o o o o o 1 1 1 0 1 1 Es decir, 45 10 =1 1 1 0 1 1 gray q 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= 011011 gray Al aplicar el algoritmo a este nmero binario, tenemos: Es decir, N= 010010 2 = 18 10 q 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 Captulo 3 Cdigos Binarios 22 0 1 1 0 1 1 0 1 0 0 1 0 + + + + + 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. 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 1110100 1100001 1110010 1110100
S t a r t q Captulo 3 Cdigos Binarios 23 1 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 MSB LSB Sensor ptico giro
3.5.1.- CODIGO DE SIETE SEGMENTOS. Captulo 3 Cdigos Binarios 24 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 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: 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 Captulo 3 Cdigos Binarios 25 0 0 1 0 0 0 0 1 0 0 1 9 0 0 0 0 0 0 0 1 0 0 0 8 1 1 1 1 0 0 0 0 1 1 1 7 1 1 1 1 1 1 0 0 1 1 0 6 0 0 1 0 0 1 0 0 1 0 1 5 0 0 1 1 0 0 1 0 1 0 0 4 0 1 1 0 0 0 0 0 0 1 1 3 0 1 0 0 1 0 0 0 0 1 0 2 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 g f e d c b a BCD Deci mal a b c d e f g ctodo comn nodo comn arreglo de siete segmentos a b c d e f g a b c d e f g display 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. 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. 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 O 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. O 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. Captulo 3 Cdigos Binarios 26 1 0 1 0 0 0 1 1 0 Transmisor Receptor Transmisin paralela del caracter "F" MSB LSB Transmisor Receptor Transmisin serie del caracter "F" MSB LSB 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. . . 0 1 1 1 0 1 0 0 E 1 0 1 0 0 0 1 1 I 0 1 0 1 0 0 1 1 F 0 1 1 0 0 0 1 1 A 0 A 1 A 2 A 3 A 4 A 5 A 6 Caracter Cdigo ASCII de 7 bits Bit de paridad P 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 2 bien SI 0010,1101 (-) 0010,1110 (.) 0 bien NO 1100,0101 (E) 1100,0101 (E) 3 mal SI 0110,1011 (k) 1100,1010 (I) 1 mal SI 1100,1110 (+) 1100,0110 (F) bits errneos paridad error Dato recibido (supuesto) Dato enviado 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 bit 1 comprueba los bits 1, 3, 5, 7, 9 y 11. El bit 2 comprueba los bits 2, 3, 6, 7, 10 y 11. El bit 4 comprueba los bits 4, 5, 6 y 7. El bit 8 comprueba los bits 8, 9, 10 y 11. Captulo 3 Cdigos Binarios 27 En general, el bit n es comprobado por los bits b 1 , b 2 ,....,b j , tales que b 1 + b 2 + .... + b j = 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" 0 1 0 0 0 1 1 Cdigo de Hamming para "b" 0 1 0 1 0 0 1 1 1 0 0 11 10 9 8 7 6 5 4 3 2 1 nmero de bit 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 de paridad 1 incorrecto ( los bits 1, 3, 5, 7, 9 y 11 contienen tres unos). Bit de paridad 2 correcto ( los bits 2, 3, 6, 7, 10 y 11 contienen dos unos). Bit de paridad 4 correcto ( los bits 4, 5, 6 y 7 contienen dos unos). Bit de paridad 8 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. Captulo 3 Cdigos Binarios 28