-         

Ergebnis 1 bis 2 von 2

Thema: Übertragungsprotokoll problem mit Startbyte

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647

    Übertragungsprotokoll problem mit Startbyte

    Anzeige

    Hi,

    ich habe ein paar Sensoren an einem Atmel. Die Sensoren generieren einen 12bit Wert. Die Werte möchte ich an einen PC Senden. Ich habe mir also überlegt 2 Startbytes zu senden und dann immer ein Highbyte und ein Lowbyte. Der PC erkennt das Startbyte und zählt dann die Sensoren durch wobei er natürlich das High- und Lowbyte wieder zusammen setzt.

    Mein Problem ist jetzt, das ich nicht weiss wie die Startbytes aussehen sollen. Ursprünglich dachte ich an "255;255". Aber wenn das letzte lowbyte der Übertragung auch "255" ist dann verzählt sich der PC doch!?

    Beispiel einer Übertragungszeile (in DEZ):
    Code:
    255;255;20;124;............;5;255
    Die Semikolons werden nicht übertragen, die dienen hier nur der Darstellung!

    Wie kann ich jetzt die Startbytes wählen, das der PC sich nicht verzählt?
    Die Werte einfach als ASCII Zeichen zu übertragen, kommt nicht in Frage. Ich habe den Ehrgeiz die Übertragung mit möglichst wenig Bytes durchzuführen.

    Danke
    Gruß Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Stichwort: Escaping. Du musst in irgend einer Form differenzieren zwischen dem Startbyte und den Nutzdaten. Eine Möglichkeit ist Escaping, du definierst dir ein Sonderzeichen (255) und legst fest, dass 2xEscape den Start eines Pakets definiert. Escape+0 kann dann Beispielsweise den numerischen Wert 255 darstellen, das Protokoll erfordert also eine Übersetzung zwischen 255 in den Nutzdaten und Escape+0 im übertragenen Datenstrom.

    Eine Alternative wäre ein etwas komplexeres (paketorientiertes) Protokoll, bei dem du nach Übertragungsbeginn mitteilst, wieviele Messwerte kommen. Dann kann der PC einfach mitzählen und läuft nicht Gefahr, Nutzdaten falsch zu interpretieren.

    Noch ein letzter Gedanke: Bei 12-Bit-Werten (unsigned) hast du das Problem doch gar nicht! Da kann keine Sequenz von 2x255 auftreten, weil das 16 Bit wären. Eines der beiden Bytes wäre definitiv ungleich 255.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

Ähnliche Themen

  1. ATMega32 UART problem --> Problem gelöst
    Von ChristophB im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 12.03.2010, 19:45
  2. Problem mit Atmega644P Erkennung (Bascom-Versions-Problem)
    Von Rohbotiker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 11.08.2008, 19:52
  3. Übertragungsprotokoll
    Von Ozzy im Forum Software, Algorithmen und KI
    Antworten: 5
    Letzter Beitrag: 24.12.2007, 22:49
  4. RS232 fehlendes Übertragungsprotokoll
    Von arser im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 2
    Letzter Beitrag: 23.03.2007, 10:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •