moin moin,

ein Frame sollte immer mit einem Startzeichen beginnen und mit einem Stopzeichen enden. Diese dürfen im Frame nicht in der Form vorkommen. Somit kann jeder Hörer bei Datenverlust neu synchronisieren.
Den Datensatz würde ich so aufbauen:
Start
Adresse
Befehl
(nun können noch Daten zu diesem Befehl kommen)
Prüfsumme
Stop

Die Antwort wäre dann so:
Start
Adresse
Echo (was der Befehl zurückliefert)
Prüfsumme
Stop

Warum willst Du Strings separieren? Als Befehl reicht doch oft ein Byte.
Und in C sollte es Zeichenkettenvergleiche geben.

MfG
Peter