Herakles
Profifragensteller
Moin!
Ich möchte gern zwei Chips (ein STM und ein ATMEL, beide mit www.freertos.com bestückt) via RS232 ohne ASCII-kodierung miteinander kommunizieren lassen. Die Datenpakete sind dabei von variabler Länge und haben immer unterschiedliche Inhalte.
Bisher habe ich sowas immer "quick & dirty" so implementiert, dass im Datenpaket selbst die Länge des Pakets stand und dann beim Empfangen gezählt wurde, wieviel schon empfangen wurde bis das komplette Paket da war. Dabei erkennt man natürlich keine Fehler wie "Einschalten einer Platine mitten in einer laufenden Übertragung" oder "Byte bei der Übertragung verloren", sondern rennt dann in Fehler wie "ich warte bis zum Sankt Nimmerleinstag auf Daten, weil ich glaube, noch gar nicht alles bekommen zu haben" oder "ich häre schon auf zu lesen, obwohl noch gar nicht alles da ist". Lösen könnte man sowas vielleicht über ein RX Timeout, aber sicher geht das auch noch anders...
Datenfehler selbst will ich nicht so abfangen, dafür möchte ich gerne eine CRC mit ins Protokoll stecken. Mein Frage ist eher:
Was ist ein wirklich gutes Protokoll, das ich hierfür verwenden kann? Wie machen die "Profis" sowas?
Vielen dank im Voraus für jeden Tipp,
Herakles
Ich möchte gern zwei Chips (ein STM und ein ATMEL, beide mit www.freertos.com bestückt) via RS232 ohne ASCII-kodierung miteinander kommunizieren lassen. Die Datenpakete sind dabei von variabler Länge und haben immer unterschiedliche Inhalte.
Bisher habe ich sowas immer "quick & dirty" so implementiert, dass im Datenpaket selbst die Länge des Pakets stand und dann beim Empfangen gezählt wurde, wieviel schon empfangen wurde bis das komplette Paket da war. Dabei erkennt man natürlich keine Fehler wie "Einschalten einer Platine mitten in einer laufenden Übertragung" oder "Byte bei der Übertragung verloren", sondern rennt dann in Fehler wie "ich warte bis zum Sankt Nimmerleinstag auf Daten, weil ich glaube, noch gar nicht alles bekommen zu haben" oder "ich häre schon auf zu lesen, obwohl noch gar nicht alles da ist". Lösen könnte man sowas vielleicht über ein RX Timeout, aber sicher geht das auch noch anders...
Datenfehler selbst will ich nicht so abfangen, dafür möchte ich gerne eine CRC mit ins Protokoll stecken. Mein Frage ist eher:
Was ist ein wirklich gutes Protokoll, das ich hierfür verwenden kann? Wie machen die "Profis" sowas?
Vielen dank im Voraus für jeden Tipp,
Herakles