Hallo allerseits,
Ich habe mich schon eine Weile mit uC's beschaeftigt und will nun eine
Steuerung fuer mein Modellschiff entwerfen. Ich benutze einen AVR ATMega
328P, der an einem Empfaenger haengt, der mir ein serielles Signal
ausgibt.
Das Signal sieht wie folgt aus: alle 11ms gibt er mir 16byte aus. Das
Signal ist Asynchron, die Baudrate ist ca. 115200 und das Signal hat, so
wie ich das verstanden habe, 8 Datenbits, kein parity-bit und kein
stop-bit. Eine Signaleinheit ist 2byte breit. Das macht also 8
"Signaleinheiten" alle 11ms. Der Empfaenger sendet im ersten 16byte
Block in den ersten 2 byte wie viele solcher Bloecke vom Empfaenger
selber nicht ausgewertet werden konnten(Funkstoerung ect.), die anderen
14byte die uebrigbleiben, werden auf 7 Kanaele mit je 2Byte verteilt. Im
darauf folgenden Block sendet der Empfaenger den 8ten Kanal ebenfalls
nachdem die verpassen Bloecke ausgegeben werden. In den 16Bit eines
Kanals steckt die Kanalnummer und der Wert der siesem Kanal zugeordnet
wird. Das MSB jedes dieser 16bit Paktet sagt aus, ob das Paket eine
Kanalinformation beinhaltet oder nicht.
Nach zwei Bloecken a 16byte beginnt der Spass von vorne.
Gut illustriert hat das Protokoll dieser Herr aus Australien:
http://www.cgsy.com.au/archives/215
Meine Frage ist nun wie ich die Kanaele am besten auswerte, die
verpassten Frames des Empfaengers sind mir in diesem Zusammenhang
ziemlich egal, die Kanalinfo umso wichtiger. Der USART im AVR ist mir
noch ziemlich neu, desshal wuerde ich mich ueber ein PC-programm freuen,
das mir dabei hilft, das signal irgendwie "sichtbar" zu machen damit ich
es mir mal genauer anschauen kann. Ich nehme an, dass ich erstmal die 16
Byte auslesen muss, byte fuer byte, indem ich sie per Interrupt aus dem
Rx Puffer hole und irgendwo in den Speicher schreibe. sobald alle 16byte
drin sind habe ich ja dann fast 11 ms Zeit um mit den daten was
anzufangen, also meine Kanalnummer herauszufinden und dann den
dazugehoerigen Wert in eine globale Variable abzuspeichern, damit ich im
Hauptprogramm meinen Spass damit haben kann. Genaueres Zur bitverteilung
im Paket steht im Link, ich weiss nur nicht ganz was ich daraus fuer
Schlusesse ziehen soll.
Besten Dank schonmal,
Alexander Becker