Ich habe mich gefragt, wie man ein sicheres UART / USB-Kommunikationsprotokoll erstellt. Ich brauche es für die Kommunikation zwischen einem Mikrocontroller und einem PC. Ich habe ~ 10 Befehle und dachte, ich würde 10 separate Bestätigungsbefehle für jeden von ihnen verwenden.
Der Austausch sollte so verlaufen:
- Der PC sendet einen Weckbefehl über UART
- µC erkennt, dass der PC angeschlossen ist, und sendet seinen Befehl an den PC, z.
0x01
- Der PC macht das, worum er gebeten wurde (einige Hardware-Dinge) und antwortet,
~0x01
wenn es fertig ist (ich negiere die Zahl, um einen größeren "Abstand" zwischen den beiden Zahlen zu schaffen). - µC weiß, dass es gesendet hat
0x01
und~0x01
vom PC erwartet . Wenn etwas anderes als~0x01
zurückkommt, weiß der µC, dass ein Fehler aufgetreten ist, und sendet eine neue Anfrage oder eine Fehlermeldung
Der Fall, dass der µC sendet 0x01
, der PC versteht 0x02
und zurücksendet, ~0x02
aber der µC ~0x01
aufgrund von Rauschen liest , wäre ziemlich schlecht.
Wie sicher ist das in Bezug auf die Übertragung oder wie kann ich dies sicherer machen?