Eure Vorlieben bei RS232-Protokollen

Herakles

Profifragensteller
Moin!

Wenn RS232-Datenkommunikation zwischen zwei Teilnehmern vonstatten gehen muss, bevorzuge ich ein Protokoll, das nicht auf ASCII-Zeichen beruht, sondern Werte als Bytes überträgt. Die Schnittstelle bietet sich ja leider geradezu dafür an, ASCII-Zeichen zu nutzen, weil man sie dann schön mit anderen Meldungen über ein serielles Leseprogramm (bspw. minicom) ohne Hindernisse als Mensch lesen und verstehen kann.

Ich hoffe, das ist so "verständlich" erklärt. Beim ASCII-Versenden würde eine 100 als "0x31 0x30 0x30" versendet, beim Byte-Übertragen wäre das ein "0x64".

Ein offensichtlicher Nachteil dabei ist für mich der Aufwand der Daten, sprich: bei einer bspw. "100" werden drei Bytes versendet, beim Byte-Übertragen wird ein Byte verschickt. Weiterer Nachteil meines Erachtens ist die Implementierung einer Prüfsumme, die in der Implementierung bei "reinen Bytes" einfacher sein sollte, denn auf jeder Seite der Kommunikation müssten zuerst die ASCII-Daten zu Zahlen zu konvertiert werden um diese dann aufzurechnen.

Kurz gesagt: Mich würde interessieren, wie Ihr derartige Herausforderungen löst und wo Eure Präferenzen liegen, wenn ein Protokoll über RS-232 Daten austauschen soll.

Ich bin gespannt.

Grüße
Herakles
 
Ein weiterer Nachteil ist, dass man ASCII-formatierte Daten parsen muss, also mehr Code und dadurch potenziell mehr Bugs hat. Es kommt also ganz auf deine Anforderungen drauf an. Wenn du die Daten mit Ausgaben mischst und alles an einem menschlichen Empfänger vorbeirauscht, dann würde ich ein menschenlesbares Protokoll vorziehen. Wenn dein UART allerdings nur mit einem Programm kommuniziert, dann würde ich es binär lassen.

Die Prüfsumme finde ich jetzt nicht so schwer, die kannst du ja auch noch berechnen, nachdem du deine Binärdaten in Strings umgewandelt hast, und sie auf der anderen Seite vor der Umwandlung prüfen.
 
Zurück
Oben