viernes, 27 de abril de 2012

Codigos, Manejo de informacion, Deteccion de Errores, CRC y Hamming (RESUMEN)


 CODIGOS
Algunos ejemplos de códigos son:
ASCII
EBCDIC
EXCESO 3
GRAY

Manejo de Información Empaquetada y Desempaquetada
Es muy importante el manejo de información en la memoria del microprocesador. Por ejemplo, información codificada en ASCII se puede almacenar en la memoria en forma empaquetada o desempaquetada: supongamos que se desea almacenar los caracteres hexadecimales A, B, C y D.
Ejemplo: Código ASCII: A (41H), B (42H), C (43H), D (44H)
Empaquetada Desempaquetada
41 42 41
43 44 42
43 44
La ventaja de utilizar la forma empaquetada, es que se emplea mejor la memoria, sin embargo, en forma desempaquetada, la información se puede manejar más fácil y rápidamente.

 Códigos Detectores y Correctores de Errores
La capacidad para detectar posibles errores en la información manipulada por las
Computadoras es esencial para poder confiar en los resultados ofrecidos.
El error es la alteración del valor correcto en uno o más bits de información producida durante su almacenamiento, transmisión o manipulación.
Un concepto muy importante relativo a la corrección y detección de código de errores es el término “distancia”. La distancia entre dos números binarios es igual a la cantidad de bits que difieren entre sí, es decir, es la cantidad de bits diferentes entre un número y otro.

Chequeo de Redundancia Cíclica (CRC)
Este método es mucho más efectivo que los anteriores en la detección de errores en los sistemas de comunicaciones. No permite la corrección de errores.
En este método, en forma similar a los anteriormente descriptos, se envía uno o más caracteres adicionales de redundancia denominados FCS ("frame check sequence") o BCC ("block check caracter"), que difieren fundamentalmente en la forma de calcularlo.

El CRC consiste en considerar a los bits a ser transmitidos como un polinomio en x (para n bits el orden es n-1) tal que la presencia de un término significa un "1", y la ausencia, un "0"; es decir: sean 1010101 los bits a transmitir, entonces el mensaje podrá ser considerado como un polinomio G(x) tal que: G(x) = x7 + x5 + x3 + 1. Un mensaje de código cíclico consiste en un número de bits de datos y el BCC. Sea n el número total de bits y k el número de bits de datos, por lo tanto, el número de bits del BCC es n - k. El código del mensaje (BCC) se obtiene de 2 polinomios:
·        Polinomio generador P(x)
·        Mensaje polinomial G(x) (bits de datos).
Dados:
·         P(x): polinomio generador
·         G(x): polinomio de mensaje de datos

Se desea hallar F(x), código del mensaje polinomial, como sigue:
·        Multiplicar el mensaje G(x) por x, siendo n - k el número de bits del BCC para dar lugar al BCC (multiplicar por x, es lo mismo que desplazar el mensaje polinomial de datos n-k lugares completando con ceros a la derecha).
G(x) * xn-k
·        Dividir el producto resultante G(x) * xn-k por el polinomio generador P(x).
G(x) * xn-k = Q(x) P(x) + C(x)
·        Despreciar el cociente y sumarle a G(x) * xn-k el resto C(x) de la división para producir el código de mensaje polinomial F(x).
F(x) = G(x) * xn-k + C(x); Mensaje Polinomial a Transmitir

El efecto general que se observa en el chequeo por medio del CRC, es que cualquier bit se refleja en varios bits por un tiempo considerable después que éste fue transmitido. Esto es muy importante, ya que se ha comprobado que la mayoría de los problemas de errores en comunicación de datos se producen en pequeños grupos de bits ("burst").

Características más significativas del CRC:
·        Detecta todos los errores de 1 y 2 bits (errores simples y dobles).
·        Detecta todos los errores de un “Burst” menor que el grado de P(x)
·        Detecta el 99 % de los errores de un “Burst” mayor que el grado de P(x)

Códigos Hamming
El código Hamming es un código de distancia 3, capaz de detectar errores dobles y corregir si hay un error simple. El código Hamming se forma por n bits de información (Mn, Mn-1,... M1) y k bits de chequeo (Ck, Ck-1,..... C1) de paridad par o impar. El mensaje codificado está formado por n + k bits, siendo k el menor entero que cumple que: 2k ≥ n+k+1 [7] (por ejemplo, si n = 7, entonces k = 4). Hamming es un código capaz de corregir un error simple por lo tanto debe identificar un bit erróneo en una cadena de bits. Entonces la ecuación [7] nos dice que el número de combinaciones de los bits de chequeo (2k) debe ser al menos igual al número de bits del mensaje más los bits de redundancia más una combinación extra para identificar que no hubo errores.

Los bits de chequeo ocupan posiciones específicas en el mensaje codificado. Esas posiciones son potencias enteras de 2, es decir 1, 2, 4,8,.... 2k-1, es decir que los bits de paridad se ubican en los posiciones que tienen un único bit a 1 en su ordinal. Los valores de cada Ci se calculan chequeando la paridad en lugares específicos del mensaje original M. Por ejemplo para un código de 6 bits de mensaje, el mensaje codificado será:
M6 M5 C4 M4 M3 M2 C3 M1 C2 C1
1010 1001 1000 0111 0110 0101 0100 0011 0010 0001
C1 = M1 M3 M5 M7 M9.......
C2 = M2 M3 M6 M7 M10.......
C3 = M4 M5 M6 M7............
C4 = M8 M9 M10. .............
Para el cálculo de los coeficientes Ci´s, los valores de Mi´s empleados, se refieren a la posición que ocupan los elementos en el mensaje codificado, tomando a M1 igual a cero (ya que corresponde al valor de Ci del mensaje codificado) para el cálculo inicial.

Perturbaciones (RESUMEN)


Perturbaciones en una transmisión
Durante la comunicación se pueden producir diferentes alteraciones y esto no ocurre solo en el aspecto humano, sino que también podemos encontrarnos con problemas en las comunicaciones de datos o redes computacionales.
Las perturbaciones en una transmisión de señales analógicas o digitales es inevitable, pues existen una serie de factores que afectan a la calidad de las señales transmitidas por lo que nunca serán iguales a las señales recibidas.

PERTURBACIONES EN LA TRANSMISIÓN
Todos los dispositivos eléctricos y electrónicos emiten interferencias y/o son susceptibles a estas.
Algunos problemas que afectan la transmisión de datos son:

  • Ruido.
  • Distorsión de retardo. 
  • Atenuación y distorsión de atenuación.

  • Atenuación:
El ruido debe ser sensiblemente menor que la señal original (para mantener la energía de la señal se utilizan amplificadores o repetidores).
Es la pérdida de potencia que se produce en el medio de transmisión por la longitud que esta presenta, pues la potencia de la señal recibida es inversamente proporcional a la distancia entre el transmisor y el receptor.

  • Ruido:
Es el conjunto de señales extrañas a la transmisión que se introducen en el medio de transmisión provocando alteraciones de amplitud del voltaje y variaciones de frecuencia. El ruido es toda aquella señal que se inserta entre el emisor y el receptor de una señal dada.

  • Distorsión de retardo:
Si la señal se transmite mediante guías de ondas la velocidad de propagación varía con la frecuencia, por lo que los distintos armónicos o componentes del espectro de frecuencias de la señal no viajen todas a la misma velocidad y las frecuencias centrales aumenten su velocidad. Por lo que se presentará la distorsión de retraso y para contrarrestar esto se requiere el uso de ecualizadores.

Capacidad del canal:
Se llama capacidad del canal a la velocidad a la que se pueden transmitir los datos en un canal de comunicación de datos.

 Eco:
 Consiste en la aparición de una señal no deseada de las mismas características pero atenuada y retrasada en el tiempo respecto a esta.

MEDIO FISICOS DONDE SE PRODUCE LA COMUNICACION
El medio físico viene a ser básicamente el "cable" que permite la comunicación y transmisión de datos, y que define la transmisión de bits a través de un canal.

Cable de par trenzado sin apantallar:
Este tipo de cable es el más utilizado. Tiene una variante con apantallamiento pero la variante sin apantallamiento suele ser la mejor opción para una PYME.

Conector UTP:
El estándar para conectores de cable UTP es el RJ-45. Se trata de un conector de plástico similar al conector del cable telefónico. Las siglas RJ se refieren al estándar Registred Jack, creado por la industria telefónica.
       
 Cable de par trenzado apantallado:
Una de las desventajas del cable UTP es que es susceptible a las interferencias eléctricas.

Cable Coaxial:
El cable coaxial contiene un conductor de cobre en su interior. Este va envuelto en un aislante para separarlo de un apantallado metálico con forma de rejilla que aísla el cable de posibles interferencias externas.

Cable de fibra óptica:
El cable de fibra óptica consiste en un centro de cristal rodeado de varias capas de material protector. Lo que se transmite no son señales eléctricas sino luz con lo que se elimina la problemática de las interferencias.

 Distribuidores y Concentradores:
 Se encargan de repartir o agrupar la señal eléctrica entre diversos receptores o emisores.

Antenas:
Son los dispositivos que permiten que una señal eléctrica se propague por un canal inalámbrico y viceversa.

Amplificador:
En Comunicación a larga distancia, la señal sufre perdidas y es necesario amplificarla para que llegue integra a su destino. Es un dispositivo que amplia o restaura la señal de los dispositivos.

lunes, 23 de abril de 2012

DETECCION DE ERRORES


Chequeo de paridad vertical ó paridad de carácter (VRC).

Se trata de la técnica más simple usada en los sistemas de comunicación digitales (Redes Digitales, Comunicaciones de Datos) y es aplicable a nivel de byte ya que su uso está directamente relacionado con el código ASCII.
Como se recordará, el código ASCII utiliza 7 bits para representar los datos, lo que da lugar a 128 combinaciones distintas. Si definimos un carácter con 8 bits (un byte) quedará un bit libre para control, ese bit se denomina bit de paridad y se puede escoger de dos formas:

Paridad par

Paridad impar

Según que el número total de unos en esos 8 bits, incluyendo el octavo bit (el de paridad), sea par ó impar,. Por sus características la técnica se denomina también paridad de carácter.

Chequeo de paridad horizontal (LRC), longitudinal ó de columna. 

Este chequeo de paridad horizontal ó longitudinal (HRC ó LRC) en vez de estar orientado al carácter lo está al mensaje, y consiste en que cada posición de bit de un mensaje tiene bit de paridad, así por ejemplo se toman todos los bits de los caracteres que componen el mensaje y se calcula un bit de paridad par o impar, según el criterio definido, este bit de paridad es el bit b0 de un carácter adicional que se transmite al final del mensaje, y se procede luego sucesivamente con los demás bits incluyendo el de paridad.

Chequeo longitudinal LRC

Históricamente entre el 75 y el 98% de los errores presentes son detectados por LRC, los que pasan desapercibidos se deben a limitaciones propias del método, así por ejemplo un error en b2 en dos diferentes caracteres simultáneamente produce un LRC válido.

Código de redundancia cíclica CRC.

Los métodos basados en el uso de paridad son sencillos de comprender y de implementar, suministran cierto grado de protección contra los errores pero son limitados y su efectividad es cuestionable en determinadas aplicaciones. Por ello se utilizan solamente cuando resulta muy complicado ó muy costoso implementar otros métodos. Además, el de paridad vertical requiere que cada carácter lleve su protección contra errores, lo que lo hace adecuado en entornos asíncronos, en entornos síncronos el uso de tantos bits de detección de errores consume un porcentaje importante de la capacidad del canal y resulta oneroso. Por ello es necesario, en entornos síncronos, emplear métodos que tengan en cuenta dos factores importantes:

1. Detección más segura de los errores. Dado que los datos se envían en bloques un solo error corrompe toda la información contenida en él, que es considerable, además muchas veces los errores se presentan en “ráfagas”, por ello se requieren esquemas más poderosos

2. Eficiencia. No se deben consumir demasiados recursos dejando libre la mayor parte del canal para datos.

Un grupo de métodos que cumplen con dichos requisitos son los llamados códigos de redundancia cíclica, que se basan en propiedades matemáticas de los códigos empleados para la transmisión de datos.