lunes, 27 de agosto de 2007

CÓDIGO Y PROTOCOLO de computadoras


Las computadoras procesan y almacenan la información en forma de dígitos o bits binarios, por lo tanto en un sistema digital un número decimal se representa con una cadena de bits. Así por ejemplo, si se asigna 000 al decimal 0, 0001 al 1, 0010 al 2 y 0011 al 3, entonces el número decimal de tres dígitos 123 se puede representar con la cadena de 12 bits 0001 0010 0011. En la práctica se suele agrupar un número decimal de 2 dígitos en un byte de 8 bits, que por lo tanto puede representar cualquier número decimal comprendido entre 0 y 99.
Un código como el anterior se llama código de dígitos decimales codificados en binario o código BCD.
En general, cualquier conjunto de objetos se puede representar mediante una serie de cadenas de bits en las que las diferentes combinaciones de bits representan distintos objetos. Este conjunto de combinaciones de bits se llama código, y una cadena de bits particular dentro del conjunto se llama palabra código.
La asignación de las palabras del código a los objetos se hace mediante una expresión algebraica o una tabla.
Se van a describir y a ejemplificar, a continuación, los principales códigos de computadoras utilizados

Códigos de caracteres.

Código Decimal Codificado en Binario (BCD). Sirve para representar los dígitos decimales del 0 al 9 y es un ejemplo de un código ponderado, es decir, cada posición de bit en el código tiene un valor o peso numérico fijo asociado a ella.
Este código asigna una representación binaria sin signo de 4 bits a cada dígito entre 0 y 9, no usándose las palabras del código entre 1010 y 1111.
La conversión entre las representaciones BCD y decimal se puede llevar a cabo simplemente sustituyendo 4 dígitos BCD por cada dígito decimal y viceversa. Sin embargo, en la práctica se suelen agrupar dos dígitos BCD en un byte de 8 bits, que por tanto puede representar cualquier valor comprendido entre 0 y 99.


Ejemplo.
Codificar el número N = (9750)10 en BCD.


Después se encadenan los códigos individuales para obtener
N = (1001011101010000)


El código BCD se puede utilizar en operaciones aritméticas. Para sumar dos números en formato BCD se siguen los siguientes pasos:

Se suman utilizando las reglas de la suma binaria.
Si una suma de cuatro bits es igual o menor que 9, es un número BCD válido.
Si una suma de 4 bits es mayor que 9, o si se genera un acarreo en el grupo de 4 bits, el resultado no es válido. En este caso, se suma 6 (0110) al grupo de 4 bits para saltar así los 6 estados no válidos y pasar al código BCD. Si se genera un acarreo al sumar 6, éste se suma al grupo de 4 bits siguiente.


Código ASCII. El código ASCII (
acrónimo inglés de American Standard Code for Information Interchange — Código Estadounidense Estándar para el Intercambio de Información), pronunciado generalmente [áski], 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.
Es el código de caracteres más utilizado en las aplicaciones de cómputo.
En general, una cadena de bits puede representar cualquier carácter, numérico o no. Dado que la mayoría de los procesadores de datos incluyen texto, los caracteres que se usan más frecuentemente forman parte de un alfabeto, que se representa en el computador con una cadena de bits particular.
En este código, cada carácter se representa con una cadena de 7 bits. Este código codifica 128 caracteres diferentes, incluyendo mayúsculas y minúsculas, números, algunos signos de puntuación, y una serie de caracteres de control.

Los números escritos mediante solamente 0 y 1, se llaman números binarios.
Cada 1 representa la base 2 elevada a una potencia, de manera que los “2” con sus exponentes representan los siguientes números :



Cada comando y cada entrada se convierten en datos digitales, una cadena de 0's y 1's.





Código Gray. Un código cíclico 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.
Yendo 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.
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

- 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:













Protocolo:
- Este consiste en:

1) dividir el tiempo en intervalos regulares para mantener una sincronización.

2) dar un estado a cada valor, éste puede ser 0 ó 1. (Ya que es un código binario)
3) bit inicio: opuesta al estado en el que se mantiene la línea normalmente, generalmente la línea se mantiene en estado “1” para saber que la corriente de energía funciona correctamente)
4) Concordar el orden en el que se van a mandar los bits, (generalmente se hace de b7 a b0).
5) Establecer la cantidad de bit que se van a enviar por carácter.
6) Finalmente bit fin: opuesto al bit de inicio, por más de que ya sepamos de cuantos bits va a ser cada carácter es necesario enviar un bit de fin para que la comunicación se mantenga sincronizada.