Mi chiedevo come creare un protocollo di comunicazione UART / USB sicuro. Ne ho bisogno per la comunicazione tra un microcontrollore e un PC. Ho ~ 10 comandi e ho pensato di usare 10 comandi di riconoscimento separati per ognuno di essi.
Lo scambio dovrebbe andare così:
- Il PC invia il comando di sveglia tramite UART
- µC riconosce che il PC è collegato e invia il suo comando al PC, ad es.
0x01
- Il PC fa quello che gli è stato chiesto (alcune cose hardware) e risponde
~0x01
quando ha finito (annullo il numero per creare una "distanza" maggiore tra i due numeri) - µC sa che ha inviato
0x01
e si aspetta~0x01
dal PC. Se qualcosa di diverso da quello che~0x01
ritorna, l'µC saprà che qualcosa è andato storto e invierà una nuova richiesta o un messaggio di errore
Nel caso in cui µC invii 0x01
, il PC capisce 0x02
e rispedisce ~0x02
, ma µC legge a ~0x01
causa di un po 'di rumore sarebbe piuttosto male.
Quanto è sicuro in termini di trasmissione o come posso renderlo più sicuro?