lunes, 31 de octubre de 2011

Código EBCDIC



EBCDIC (Extended Binary Coded Decimal Interchange Code) es un código estándar de 8 bits usado por computadoras mainframe IBM. IBM adaptó el EBCDIC del código de tarjetas perforadas en los años 1960 y lo promulgó como una táctica customer-control cambiando el código estándar ASCII.
EBCDIC es un código binario que representa caracteres alfanuméricos, controles y signos de puntuación. Cada carácter está compuesto por 8 bits = 1 byte, por eso EBCDIC define un total de 256 caracteres.
Existen muchas versiones ("codepages") de EBCDIC con caracteres diferentes, respectivamente sucesiones diferentes de los mismos caracteres. Por ejemplo al menos hay 9 versiones nacionales de EBCDIC con Latín 1 caracteres con sucesiones diferentes.
El siguiente es el código CCSID 500, una variante de EBCDIC. Los caracteres 0x00–0x3F y 0xFF son de control, 0x40 es un espacio, 0x41 es no-saltar página y 0xCA es un guion suave.

Código BCD

Binary-coded decimal
El BCD (el binario decimal codificado) es una forma directa asignada a un equivalente binario. Es posible asignar cargas a los bits binarios de acuerdo a sus posiciones. Las cargas en el código BCD son 8, 4, 2, 1.    Ejemplo:
Para representar el digito decimal 6 en código BCD sería:.
0110
Ya que 0 x 8 + 1 x 4 + 1 x 2 ÷ 0+1 = 6.
Es posible asignar cargas negativas a un código decimal, tal como se muestra en el código 8, 4, -2, -1. En esta caso la combinación de bits 0110 se interpreta como el digito decimal 2, l obtenerse de 0 x 8 + 1 x 4 + 1 x (-2) + 0 x (-1)=2.
Un código decimal que se ha usado en algunos computadores viejos en el código de exceso a 3. Este último es un código sin carga, cuya asignación se obtiene del correspondiente valor en BCD una vez se haya sumado 3.
Los números se representan en computadores digitales en binario o decimal a través de un codigo binario. Cuando se estén especificando los datos, el usuario gusta dar los datos en forma decimal. Las maneras decimales recibidas se almacenan internamente en el computador por medio del código decimal. Cada digito decimal requiere por lo menos cuatro elementos de almacenamiento binario. Los números decimales ses convierten a binarios cuando las operaciones aritméticas se hacen internamente con números representados en binario. Es posible también realizar operaciones aritméticas directamente en decimal con todos los números ya dejados en forma codificada. Por ejemplo, el número decimal 395, cuando se convierte aq binario es igual a 112221211 y consiste en nueve digitos binarios. El mismo número representado alternamente en BCD, ocupa cuatro bits para cada digito decimal para un total de 12 bits:001110010101.
Decimal Binario BCD
395 112221211 001110010101.
En el código BCD: los cuatro primeros bits representan el 3.Los siguientes cuatro representan el 9 y los últimos cuatro el 5.
Es muy importante comprender la diferencia entre conversión de un número decimal binario y la codificación binaria de un número decimal. En cada caso el resultado final es una seria de bits. Los bits obtenidos de la conversión son dígitos binarios. Los bits obtenidos de la codificación son combinaciones de unos ceros arregladas de acuerdo a las reglas del código usado. Por tanto es extremadamente importante tener en cuenta que una serie de unos y ceros en un sistema digital puede algunas veces representar un número binario y otras veces representar alguna otras cantidad discreta de información como se especifica en un código binario dado. El código BCD por ejemplo, ha sido escogido de tal manera que es un código y una conversión binaria directa siempre y cuando los números decimales sean algún entero entre 0 y 9. Para números mayores que 9, la conversión y la codificación son completamente diferentes. Este concepto es tan importante que vale la pena repetirlo usando otro ejemplo: la conversión binaria del decimal 13 es 1101; la codificación decimal 13 con BCD es 00010011.
Decimal Conversión Binaria Codificación BCD
13 1101 00010011
El código BCD es uno de los más utilizados. Los otros códigos de cuatro bits tienen una característica en común que no se encuentra en BCD. El exceso a 3, el 2, 4, 2, 1 y el 8, 4, -2, -1, son códigos autocomplementarios, esto es que el complemento a 9 del número decimal se obtiene fácilmente cambiando los más por ceros y los ceros por más. Esta propiedad es muy útil cuando se hacen las operaciones aritméticas internamente con números decimales (en código binario) y la sustracción se hace por medio del complemento de 9.
El código biguinario mostrado a continuación es un ejemplo de un código de siete digitos con propiedades de detección de error. Cada dígito decimal consiste de 5 ceros y 2 unos colocados en las correspondientes columnas de carga.
La propiedad de detección de error de este código puede comprenderse si uno se da cuenta de que los sistemas digitales representan el binario 1 mediante una señal específica uno y el binario cero por otra segunda señal específica. Durante la trasmisión de señales de un lugar a otro puede presentarse un error. Uno o más bits pueden cambiar de valor. Un circuito en el lado de recepción puede detectar la presencia de más (o menos) de dos unos y en el caso de que la combinación permitida, se detectará un error.

Código ASCCI

ASCII (American Standard Code for Information Interchange — Código Estándar Americano para el Intercambio de Información), pronunciado generalmente [áski] o [ásci] , es un código de caracteres basado en el alfabeto latino, tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.
El código ASCII 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 que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.
ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. 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.
Los caracteres de control ASCII
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.
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 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.
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.
Los diseñadores del código ASCII idearon los caracteres de separación para su uso en sistemas de cintas magnéticas.
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.
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 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.
Actualmente los usuarios de ASCII usan menos los caracteres de control, (con algunas excepciones como "retorno de carro" o "nueva línea"). Los lenguajes modernos de etiquetas, los protocolos modernos de comunicación, el paso de dispositivos basados en texto a basados en gráficos, el declive de las teleimpresoras, las tarjetas perforadas y los papeles continuos han dejado obsoleta la mayoría de caracteres de control.

miércoles, 5 de octubre de 2011

No retorno a cero unipolar (Non-Return-To-Zero) [ NRZu ]

En telecomunicaciones, se denomina NRZ porque el voltaje no vuelve a cero entre bits consecutivos de valor uno.


La señal binaria es codificada usando pulsos rectangulares, amplitudes modulares con código polar non-return-to-zero








Mediante la asignación de un nivel de tensión a cada símbolo se simplifica la tarea de descodificar un mensaje. Esta es la teoría que desarrolla el código NRZ (non return to zero). La decodificación en banda base se considera como una disposición diferente de los bits de la señal on/off, de este modo se adapta la señal al sistema de transmisión utilizado. Para ello se emplean los códigos tipo NRZ.  Una clasificación atendiendo a las modulaciones situaría el código NRZ dentro de las portadoras digitales y las moduladoras digitales como los códigos Manchester, Bifase, RDSI, etc.

Atendiendo a la forma de onda binaria se pueden clasificar estos códigos como unipolares (el voltaje que representa los bits varía entre 0 voltios y +5voltios). Este tipo de código no es recomendable en largas distancias principalmente por dos motivos. En primer lugar presentan niveles residuales de corriente continua y en segundo lugar por la posible ausencia de suficientes números de transiciones de señal que permitan la recuperación fiable de una señal de temporización.

Los polares desplazan el nivel de referencia de la señal reduciendo a la mitad la diferencia de potencial necesaria con referencia a la Unipolar.

En el receptor y el transmisor se debe efectuar un muestreo de igual frecuencia. eso
Este código no es autosincronizante, y su principal ventaja es que al emplear pulsos de larga duración requiere menor ancho de banda que otros sistemas de codificación que emplean pulsos más cortos.
Dentro de los códigos NRZ se establece una clasificación, pudiendo tratar códigos del tipo NRZ-L o NRZ-I.
NRZ-L (No se retorna a nivel cero).
Donde 0 representa el nivel alto y 1 el nivel bajo.
NRZ-I (No se retorna a 0 y se invierte al transmitir el 1).
            Al transmitir un 0 no se produce transición y en cambio al enviar un 1 se produce una
            transición a nivel positivo o negativo.


Su principal aplicación es la grabación magnética, pero son demasiado limitados para la transmisión de señales.



Uno de los problemas que presenta este código se fundamenta en la longitud de las secuencias de unos y ceros. En estos casos el receptor necesita sincronizarse y del mismo modo llegar a comprobar que exista señal o si por el contrario no está disponible.
Una prolongada permanencia de la señal en nivel positivo o negativo durante la transmisión puede conducir a la situación denominada desplazamiento de la línea base, que dificulta al receptor la adecuada decodificación de la información.
Otro de los aspectos negativos se centra en el método que se debe emplear para que el emisor y el receptor estén en sincronismo. Para ello es necesario continuos cambios en la señal. Esto se ve dificultado cuando aparecen las mencionadas cadenas de unos y ceros que mantienen la tensión a niveles altos o bajos durante largos periodos de tiempo.
  • No tiene un ancho de banda eficiente.
  • Es susceptible a interferencias.
  • Los límites entre bits individuales pueden perderse al transmitir de forma consecutiva secuencias largas de 1 ó 0.