Ich arbeite an einem Projekt, bei dem ich Befehle unterschiedlicher Länge von meinem PC an einen Mikrocontroller übermitteln muss. (mit usb to uart bridge) Ich mache bereits ein kleines Protokoll (Startbyte, einige Daten, Prüfsumme ...), aber ich muss es an meine neuen Bedürfnisse anpassen.
Ich frage mich, ob es dafür bereits einen Standard oder einen gemeinsamen Weg gibt.
Befehle mit variabler Länge
Viele Leute bevorzugen Befehle mit fester Länge. Wenn Sie Befehle mit variabler Länge benötigen, müssen Sie Folgendes bedenken:
Allgemeine Tipps zum Protokolldesign
Es gibt viele mehr oder weniger einfache Protokolle, die im Wikibook "Serial Programming" aufgeführt sind .
Wenn Sie Glück haben, ist vielleicht einer davon bereits perfekt für Ihre Anwendung. Oder zumindest nah genug, dass es nur ein wenig Anpassung erfordert, um zu passen.
So ziemlich jeder, der erfolgreich ein neues Protokoll entwickelt, durchläuft diese Phasen:
Es stehen viele Protokolle zur Verfügung. Einer meiner Favoriten ist der Modbus. Modbus-Protokoll
Wenn es nur eine Master-Slave-Verbindung gibt, klingt es so, als hätten Sie alles getan, was Sie tun müssen. Verwenden Sie einen Standard-CRC-Prüfsummenalgorithmus, aber das ist alles, was Sie für eine sinnvolle Standardisierung benötigen. Machen Sie sich keine Sorgen über ein offizielles ISO/IEEE-Protokoll.
Ich weiß nicht, wofür Ihre Anwendung gedacht ist, aber wenn Sie versuchen, etwas in einem "definierten Markt" zu tun, dann recherchieren Sie diesen Markt und versuchen Sie, etwas zu verwenden, das dort implementiert ist. In SCADA ist Modbus in einer seiner zwei oder drei Versionen (zwei sind seriell und eine ist IP) eine gute Wahl. Bei CCTV ist Pelco D eine gute Wahl. Alle diese Protokolle sind einfach zu implementieren und dokumentiert. Außerdem gibt es noch andere Protokolle auf dem gleichen Markt, also haben Sie Spaß bei der Entscheidung, was Sie tun möchten. Jedes Protokoll, das Sie finden können, kann "verbessert" sein, aber wenn Sie vorhaben, eine Schnittstelle zu einigen "echten" Geräten herzustellen, verwenden Sie deren Protokoll, erfinden Sie nicht Ihr eigenes.
davidcary