La paridad y el número de bits transmitidos son controlados por la configuración del dispositivo UART (Receptor/Transmisor Asíncrono Universal) en cada pieza de equipo. Este componente convierte los datos escritos en él en formato paralelo de byte (usualmente) al flujo de bits de datos que se envía de forma serial entre el cliente y el servidor (en tu ejemplo).
Para transmitir en 7E1, el UART está configurado para ignorar el bit más significativo (MSB) y luego agregar el bit de paridad como el último bit de datos transmitidos, dando un total de 8 bits de datos transmitidos. En 8N1, el UART transmite los 8 bits de datos. Por convención, los datos se transmiten primero en el bit menos significativo (LSB).
Al observar tus datos, sospecho que donde escribiste B realmente querías decir 8 (esto encajaría con los modos de transmisión de datos especificados).
Cuando se transmite los datos sobre una conexión 7E1, entonces los 8 bits transmitidos para tus datos serán
Dato Paridad Byte Transmitido
06 0 0x06
02 1 0x82
05 0 0x05
02 1 0x82
0D 1 0x8D
0A 0 0x0A
¿Son los tres bytes intermedios representaciones ASCII de los valores que has declarado en tu pregunta (2 ->0x32, 5->0x35)? Si es así, los datos recibidos coincidirán con los datos transmitidos con la adición de un bit de paridad.
Dato Paridad Byte Transmitido
06 0 0x06
32 1 0xB2
35 0 0x35
32 1 0xB2
0D 1 0x8D
0A 0 0x0A
0 votos
El modo de paridad tiene que ser el mismo en ambos extremos del canal (es decir, servidor y cliente) para hacer una interpretación significativa de los datos.
0 votos
Gracias Itisravi. Sí, en realidad es un protocolo de comunicación de capa física. Por lo tanto, el protocolo requiere que la paridad sea cambiada en una etapa particular, así como la velocidad de baudios. Entonces, lo que hace el cliente es cambiar sus parámetros a los que espera del servidor después de enviar su información. El problema es cómo ocurre ese cambio en el carácter.
0 votos
¿Estás manejando correctamente los bits de inicio y de parada de 8N1? Es fácil que se desfasen.