TODOPIC
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
19 de Diciembre de 2014, 06:20:42

Ingresar con nombre de usuario, contraseña y duración de la sesión
Buscar:     Búsqueda Avanzada
352493 Mensajes en 39579 Temas por 41364 Usuarios
Último usuario: bibo
* Inicio Ayuda Buscar Calendario Ingresar Registrarse
Buscar en TodoPIC
+  TODOPIC
|-+  Microcontroladores PIC
| |-+  Lenguaje C para microcontroladores PIC (Moderadores: Modulay, pikman, pocher, vszener, Suky)
| | |-+  Conceptos: Bits de Paridad, un tema de pares e impares.
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Marcar como favorito Imprimir
Autor Tema: Conceptos: Bits de Paridad, un tema de pares e impares.  (Leído 11133 veces)
RedPic
Administrador
DsPIC33
*******
Conectado Conectado

Sexo: Masculino
Tibet Tibet

Mensajes: 5233



WWW
« : 26 de Abril de 2009, 18:11:00 »

Introducción Un poco de filosofía.

El concepto de paridad es algo inmensamente mas amplio que el objeto mucho mas modesto de este pequeño artículo. En su sentido científico siempre me ha fascinado sobremanera, su conservación o no en ciertas interacciones ha sido durante los últimos decenios un tema candente en la ciencia y objeto de encendidas controversias. (Recomiendo el libro Izquierda y derecha en el Cosmos de Martin Gardner que además de muy interesante es también divertido)

El concepto "vulgar" paridad  hace referencia a la igualdad de cosas entre sí y por ampliación a la comparación de algo con respecto a otro.

Esta idea ya se acerca mucho a lo que nosotros vamos a necesitar de él y originariamente nace en los primitivos humanos, los que comenzaron a contar, generando el concepto de número, con la idea que tuvieron de que había dos clases de estos: los que se podían dividir en dos partes iguales y los que no.

Era muy fácil darse cuenta de que distribuyendo en dos montones cualquier número de objetos había unos que generaban exactamente dos grupos iguales y sin embargo había otros en los que siempre sobraba uno. A aquellos números que generaban montones iguales los llamaron pares, o sea: iguales, a los otros los denominaron impares, o lo que es los mismo: desiguales.

Y ya tenemos definidos nuestros dos clases de números: los pares y los impares, los iguales y los desiguales, los divisibles por dos sin que me sobre ninguno y los que siempre me sobra uno.

Demos ahora otra pequeña vuelta de tuerca a nuestras ideas y afrontemos el concepto que vamos a necesitar.

Paridad Un problema de conservación.

Retomando los conceptos científicos a los que me refería mas arriba hace poco mas de un siglo se desarrolló el concepto, fundamentalmente en Mecánica Cuántica, de Conservación de la Paridad. Démosle un pequeño vistazo a esto.

Se vio que había ciertas transformaciones que podían realizarse en múltiples combinaciones de ciertas cantidades, pero que si la situación inicial era "par", y no vamos a entrar en que significa exactamente eso de situación "par", la transformación solo podía generar una situación "par", y que si por el contrario la cantidad inicial era "impar" la final debía ser indefectiblemente también "impar". Todo lo demás era posible combinarlo entre sí de muchas maneras pero siempre y cuando se respetase esta "ley de conservación de la paridad".

Simplificando: Transformaciones de pares generan pares, transformaciones de impares generan impares, la paridad siempre se conserva.

Verificando ¿Es verdad la verdad?.

Desde su mas tierna infancia la informática/electrónica se ha enfrentado al problema de la validación de datos.

Ha sido, es y será necesario verificar que lo que hemos escrito en una memoria o lo que hemos transmitido por un modem es exactamente lo que queríamos escribir o transmitir. Y los diseñadores de circuitos y protocolos has puesto en marcha mecanismos para poder verificar de forma fehaciente estos extremos.

Una primera idea a tener en cuenta en esto de la verificación es la de que la verificación debe realizarse de forma independiente en ambos extremos del asunto a verificar, ya que si todo lo verificable es traspasado de un punto a otro no tendríamos nada con lo que comparar. Debemos entonces ponernos de acuerdo en un método mediante el cual podamos en ambos extremos realizar alguna operación independiente sobre un mismo objeto y que ambos lleguen a una misma conclusión.

Esto es lo que se utiliza por ejemplo cuando utilizamos la técnica del CRC en la que calculamos un cierto valor en función de todo un contenido anterior. Puestos de acuerdo en el método de calcular el CRC puedo transmitir el contenido mas mi CRC calculado y al recibirse todo se recalcula el CRC y se compara con lo recibido. Si ambos CRC coinciden podemos inferir que los contenidos enviados y recibidos son el mismo.

Esta es la misma idea para la que vamos a utilizar para nuestro asunto de la paridades, salvo que el CRC lo utilizamos para contenidos "gruesos o pesados" y la paridad lo usamos para los "livianos o ligeros".

Bits y bloques de Bits Representando información.

La unidad mínima de información en Informática/electrónica es el bit. Con este bit solo podemos representar solo dos estados: el 0 y el 1.

Cualquier otra otra cantidad mayor de información que deseemos la podemos representar acumulando uno tras otro una mayor cantidad de bits, así llamaremos Nibble a 4 bits o Byte a 8 bits seguidos ... no tenemos límite alguno a la cantidad de bits que podemos acumular.

Sin embargo no es lógico ni usual utilizar enormes cantidades de bits acumulados, dividimos en "paquetes" como los mencionados nibbles, bytes ... etc y es difícil encontrar paquetes mayores a 128 en la mayoría de las aplicaciones.

Cuando transmitimos de un punto a otro un byte, por ejemplo, lo que hacemos es enviar una secuencia de 8 bits y cada uno de ellos pueden ser o ceros o unos indistintamente.

Tal como planteábamos antes deberíamos implementar algún mecanismo para validar si nuestro byte transmitido ha sido recibido correctamente. El mecanismo que vamos a utilizar es el de conservar la paridad.

Bits de Paridad Conservamos la paridad, sí o sí.

Podemos contar los bits 1 que tiene un byte y sabremos y este número es par (0,2,4,6,8) o impar (1,2,3,5,7) y vamos a poner de acuerdo a ambos extremos de nuestra comunicación para que el emisor siempre transmita un número "par" ó "impar" de bits a 1.

Transmitiríamos así nuestro byte con 9 bits en total: los 8 pertenecientes al byte a transmitir mas un bit, al que llamaremos "paridad" y que calcularemos según sea "par" o "impar" el número de unos del byte para que el total de los nueve bits transmitidos sean realmente "par" o "impar" según cual de los dos métodos hayamos decidido utilizar.

Así si decidimos que nuestra transmisión va a utilizar paridad "par" y nuestro byte a transmitir es 10001101 entonces el bit de paridad debería ser 0 ya que nuestro byte tiene 4 bits a 1 y por lo tanto no debemos añadir ningún 1 más. O sea: 100011010 que tiene 4 unos (número par de unos)

Pero si decidimos utilizar paridad "impar" y nuestro byte a transmitir es también 10001101 entonces el bit de paridad debería ser 1 ya que nuestro byte tiene 4 bits a 1 y por lo tanto debemos añadir un 1 más para obtener un número impar de unos. O sea: 100011011  que tiene 5 unos (número impar de unos)

Por supuesto es fundamental que ambos extremos de la comunicación "sepan" qué paridad es la que se aplica en cada caso, que el receptor reciba todo el contenido transmitido pero que calcule por sus propios medios el bit de paridad adecuado y que lo compare con el recibido para validar que lo recibido es correcto y se corresponde a lo transmitido.

El caso mas curioso de control de paridad que me he encontrado hasta ahora es el calculado en alguno de los modelos de transmisión Wiegand en los que se transmiten 26 bits: con 24 bits significativos precedidos por un bit de paridad "par" sobre los 12 bits siguientes y seguido por un bit de paridad "impar" sobre los 12 bits anteriores. Curioso pero cierto.

Implementación en C Unos ejemplos de cálculo de paridades

.... continuará.


En línea

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania
Marttyn
Colaborador
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 1731


Las cucarachas dicen "No al debugger!"


WWW
« Respuesta #1 : 27 de Abril de 2009, 20:00:58 »

A ver cuando continuas con esto Diego, que me dejas intrigado!  lol
La verdad antes de ponerme a aprender de paridad deberia aprender sobre tipos de transmision sincrona y asincrona... ya me picaste el gusanillo, asi que tendre que investigar, que seguro como de costumbre hay algunos parrafos tuyos sobre el tema aqui en el foro...
Bueno, cuando quieras continua, que a mi me gusta aprender  Mr. Green
En línea

La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.
RedPic
Administrador
DsPIC33
*******
Conectado Conectado

Sexo: Masculino
Tibet Tibet

Mensajes: 5233



WWW
« Respuesta #2 : 27 de Abril de 2009, 20:08:32 »

... asi que tendre que investigar, que seguro como de costumbre hay algunos parrafos tuyos sobre el tema aqui en el foro...

Ja, ja, ja, ja  lol lol lol lol

Fundamentos de la Transmisión Síncrona
Decodificando el protocolo ABA Track 2
El Protocolo Wiegand explicado
En línea

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania
falflores
PIC16
***
Desconectado Desconectado

Sexo: Masculino
Mexico Mexico

Mensajes: 170


El origen de una idea puede no ser tuyo :O


WWW
« Respuesta #3 : 04 de Abril de 2011, 18:25:37 »

Excelente texto, con todo y sus antedecentes históricos, perfecto para comprender la paridad, gracias RedPic.

Por cierto, ya va para un año y no has escrito el siguiente, lo esperamos con ansias...  rebotando
En línea

Los invito a mi blog "Control, electrónica y programación en español" www.robotnias.blogspot.com
TODOPIC
   

 En línea
Páginas: [1] Imprimir 
« anterior próximo »
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.20 | SMF © 2006-2008, Simple Machines XHTML 1.0 válido! CSS válido!
Página creada en 0.094 segundos con 23 consultas.