Transmisión de Datos Práctica 4
Enviado por Eric • 23 de Abril de 2018 • 747 Palabras (3 Páginas) • 369 Visitas
...
while(true) {//Recibe datos cada 300ms (como en el PIC)
try{
int cont=0;//iniciamos el contador de unos en cero
byte data =(byte)com.receiveSingleCharAsInteger();//Se obtiene el valor recibido como número
int dataReceived =(int)data;//Se guarda también como número
for (int i = 0; i
if (((dataReceived >> i) & 1) == 1) {//Se recorre a la posición i del byte de datos y ve si es 1
cont++;//Cuenta el uno
}
}
System.out. println("numero de bits "+cont); //Se imprime el número de birs
if( ((cont%2)==1) == ((data & 0x80) != 0)){//si el chequeo de paridad es igual al bit más significativo enviado
System.out.println("No hay error");
} else System.out.println("Error de dato");
data=(byte) (data&0x7F);//Se enmascara el byte para omitir el bit de paridad
System.out. println("Temperatura: "+(int)data+"°C");
}catch(Com.ComException ex){
System.err.println(ex.getMessage());
}
Thread.sleep(300);//Espera .3 segundos
}
}else{
System.out.println("No hay puerto serial disponible");
}
}
}
Resultados
-
PIC
A continuación, se muestra la simulación. La terminal está configgurada para recibir los 7 bits de datos y un octavo bit de paridad impar.
[pic 3]
No se muestra ningún error y se lee correctamente por la terminal.
Ahora se le sumará un error en el DIPSWITCH
[pic 4]
Después de sumar el error se deja de actualizar la señal en la terminal y en el registro se muestra el error de paridad comprobando que se crea el erro correctamente. [pic 5]
Cuando se le agrega otro error la imparidad se cumple y empieza a transmitirse el error como es esperado
-
PC
Se lee el dato sin error
[pic 6]
Se suma un dato erróneo
[pic 7]
[pic 8]
Se suman 2 bits erróneos
No se detecta el error
Conclusión
El chequeo de paridad es un método simple de chequeo de error sin corrección que avisa cuando un dato no es correcto contando el número de unos e indicando si es par o impar (según sea la norma) y comparándolo con su respectivo bit de paridad. A pesar de que tiene una baja probabilidad en ráfagas pequeñas de bits, el problema viene cuando son grandes cantidades de bits pues la probabilidad aumenta drásticamente, tomando en cuenta que existe también la probabilidad que no se detecte el error debido a que si el número de errores es múltiplo de dos este completaría la paridad o imparidad de bits. Por este motivo se implementarán otros métodos de chequeo de error en prácticas futuras.
...