Seite 1 von 1

electronics:projects:threebx

Verfasst: Fr Aug 17, 2012 9:32 pm
von cloidnerux
http://www.proggen.org/doku.php?id=elec ... ts:threebx
Hab mal kurz nen kleines Protokoll von mir Dokumentiert.
Vlt kann ja mal wer drüberlesen.

MfG cloidnerux.

Re: electronics:projects:threebx

Verfasst: So Aug 19, 2012 10:31 am
von Xin
Ich habe mal einige Rechtschreibfehler korrigiert und evt zu eventuell und egt zu eigentlich. ^^

Was mache ich egt, wenn ich als Datum eine 0 senden will und evt der Empfänger aus dem Takt gekommen ist?

Re: electronics:projects:threebx

Verfasst: So Aug 19, 2012 6:28 pm
von cloidnerux
Was mache ich egt, wenn ich als Datum eine 0 senden will und evt der Empfänger aus dem Takt gekommen ist
Im Stream sieht ja eine Übertagung so aus:
0x00 0x01 0xYY 0x00 0x02 0xZZ 0x00 0x01 0xYY 0x00 0x01 0xYY
Da du ein Datenpaket erst aus dem Übergang 0->Nicht 0 erkennt, ist die Folge 0x00 0x00 0x01 erst mit dem Übergang vom 2 auf das 3 Byte als neues Datenpaket zu erkennen.
Du musst aber beachten, dass dein Datum noch nicht/falsch übernommen wurde und du daher das Datum kontinuierlich senden solltest, dafür ist das Protokoll ausgelegt.

Um das ganze nochmal theoretischer zu behandeln:
Du hast eine FSM mit 3 Zuständen: wait, type, data.
Im default oder reset fall gehst du zu wait, im Fehlerfall auch.
von wait geht es nur zu type, wenn es die Kombination 0 und Nicht-0-Byte kommt. Das Nicht-0-Byte wird dann im type-Zustand ausgewertet und dann zu data gesprungen. In data übernimmst du das nächste Byte und springst zurück auf wait.
Sollte in type ein unbekannter Typ sein, ist es ein Fehlerfall.