Saya bertanya-tanya bagaimana cara membuat protokol komunikasi UART / USB yang aman. Saya membutuhkannya untuk komunikasi antara mikrokontroler dan PC. Saya punya ~ 10 perintah dan saya pikir saya akan menggunakan 10 perintah pengakuan terpisah untuk masing-masing.
Pertukarannya harus seperti ini:
- PC mengirimkan perintah bangun melalui UART
- μC mengakui bahwa PC terhubung dan mengirimkan perintahnya ke PC, mis.
0x01
- PC melakukan apa yang diminta (beberapa perangkat keras) dan merespons
~0x01
ketika selesai (saya meniadakan nomor untuk membuat "jarak" yang lebih besar antara dua angka) - μC tahu bahwa itu dikirim
0x01
dan diharapkan~0x01
dari PC. Jika sesuatu selain~0x01
kembali, μC akan tahu bahwa ada yang tidak beres dan akan mengirim permintaan baru atau pesan kesalahan
Kasus yang dikirim μC 0x01
, PC memahami 0x02
dan mengirim ~0x02
kembali tetapi μC membaca ~0x01
karena beberapa kebisingan akan sangat buruk.
Seberapa aman itu dalam hal transmisi, atau bagaimana saya bisa membuatnya lebih aman?