Me preguntaba cómo crear un protocolo de comunicación UART/USB seguro. Lo necesito para la comunicación entre un microcontrolador y una PC. Tengo ~ 10 comandos y pensé en usar 10 comandos de reconocimiento separados para cada uno de ellos.
El intercambio debería ser así:
0x01
~0x01
cuando termina (niego el número para crear una "distancia" mayor entre los dos números)0x01
y está esperando ~0x01
de la PC. Si ~0x01
vuelve a aparecer algo diferente, el µC sabrá que algo salió mal y enviará una nueva solicitud o un mensaje de error.El caso de que el µC envíe 0x01
, la PC lo comprenda 0x02
y ~0x02
lo devuelva, pero el µC lee ~0x01
debido a algún ruido sería bastante malo.
¿Qué tan seguro es eso en términos de transmisión, o cómo puedo hacer esto más seguro?
Creo que debería definir comandos más largos, incluida probablemente la suma de comprobación o CRC, y esperar una condición de error o ACK/NACK.
Puede tomar ejemplos de protocolos sencillos como TFTP ( RFC 1350 )
Para una comunicación segura, debe considerar todos los hilos posibles a su línea de comunicación. Por lo tanto, debe definir si el sistema es accesible desde el exterior (sistemas de terceros, por ejemplo, inalámbricos)
En general, tienes que pensar en los siguientes hilos:
Las medidas estándar contra hilos son:
Eugenio Sh.
Efervescencia
Java para principiantes
Neil_ES
usuario3629249
vladimir cravero
Java para principiantes
keith
chris stratton
Super gato
usuario65586