mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehleranfälligkeit serielle Schnittstelle?


Autor: Larou (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe jetzt kein konkretes Projekt, aber die Frage interessiert 
dennoch:

Angenommen ich habe einen Sensor dessen Werte laufend in einem µC 
gemessen und über die serielle Schnittstelle (RS-232) an einen Computer 
gesendet werden...Auf diesem Computer läuft eine Software, welche die 
empfangenen Werte für die weitere Berechnungen und Entscheidungen nutzt. 
Fehlerhaft empfangene Werte könnten z.B. einen Alarm auslösen.

Empfielt es sich bei solchen Anwendungen generell irgendwelche 
Fehlerkorrekturen auf höheren Schichten zu implementieren, um 
Datenübertragungsfehler bei der seriellen Übertragung vorzubeugen?
Bei RS-232 gibt es ja das Parity-Bit, aber ist das in der Praxis 
ausreichend, um Übertragunsfehler sicher zu erkennen? Ich habe mal in 
einem Artikel über Nachrichtentechnik gelesen, dass einzelne 
Fehlerkorrekturmechanismen auch nicht für alle Fehlerarten gleich gut 
geeignet sind und das je nach verwendeter Übertragunstechnik und Umfeld 
die tatsächliche Fehlerart stark variiert.

Wie würde man so etwas also professionell und so einfach wie möglich 
lösen, wenn man alle 100 ms einen Messwert von einem µC über 10 Meter 
RS-232 an einen Computer senden möchte? Daten in Paketen versenden, die 
wiederum mit CRC auf ihre korrektheit überprüft werden? Oder ist die 
serielle Schnittselle von der Funktionsweise her so robust, dass so 
etwas nur selten berücksichtigt werden muss?

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Denkbar ist alles von einfacher Paritätsüberwachung duch die Hardware 
über blockweise Übertragung mit CRC bis blockweise Übertragung mit 
Fehlerkorrektur (ECC).

Außerdem gibt es verschiedenen serielle Übertragungsverfahren:

RS232C arbeitet mit definierten Spannungen und ist daher empfindlich für 
Einstreuungen, andere Verfahren, z.B. RS422 arbeiten mit definierten 
Strömen und sind deutlich robuster.

Was man nimmt, hängt von der Umgebung ab, in der sich die Übertragung 
abspielt und von den Sicherheitsanforderungen.

Autor: Dirk Hofmann (arm-dran)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also erstmal gernerell.

Mit Sicherheitsmechanismen kann man Fehler nicht vorbeugen sondern nur 
erkennen und dann korrigieren.

Der Ablauf für eine sicherer Übertragung ist wie folgt:

1.) Über welche Entfernungen und mit welcher Datenrate willst Du 
übertragen
    bzw. wie ist das Störumfeld an den Leitungen (entsprechende 
Schirmung)
    Es kann dann zum Beispiel sinnvoll sein, RS485 oder RS422 statt 
RS232 zu
    benutzen, das heißt Differnzialpegel bei der Übertragung.
2.) Egal welche Art von Daten du dann überträgst, das ändert nichts an 
der
    Fehleranfälligkeit. Zum Erkennen von Fehlern kannst Du mehrere
    Mechanismen verwenden, wie z.B. Paritybit, Checksumme etc.
3.) Fehlerkorrektur durch erneutes senden des Datenstrings und evtl. 
Timeout
    Funktion. Falls dieser Fehler also mehrmals hintereinander auftritt,
    heisst das, daß irgendwas mit dem physikalischem Übertragungsweg 
etwas
    nicht stimmt.

Wie Du schreibst, alle 100ms auf 10m Distanz einen Messwert.
Das heisst 10x /sek einen Messwert.
Da kannst Du ja mit Deiner Datenübertragungsrate sehr weit runter gehen.
Selbst mit 1200 baud überträgst Du ca. 100-120 Bytes pro Sekunde.

Dirk

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.