PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RS232 Fehlerkorrektur für Funkübertragung oder Alternative ?



Ronny81
24.05.2010, 22:03
Hallo zusammen,

ich stehe vor einem Problem und weiß nicht so recht, wie ich es lösen soll und kann.
Ich übertrage serielle Kommunikation (RS232 TTL 1200,8,N,1) über ein Funkmodul. Leider habe ich jetzt das Problem, dass die Funkübertragung mir teilweise die Bits etwas zu lang oder zu kurz überträgt. Sie werden also leicht "verzerrt". Es ist nicht viel, aber es reicht dafür, dass nicht alle übertragenen Werte richtig ankommen.
Ich habe mir jetzt überlegt, ob es nicht möglich ist die Bits über einen AVR laufen zu lassen und sie dort wieder auf die "richtige" Länge zu bringen.

Also mit:

Bitwait Pinc.1 , Set
Bitwait Pinc.1 , Reset

und einem Timer die Länge der Bits messen und dann
mit

Select Case Bit1
Case 10 To 20 : Gosub 1
Case 20 To 30 : Gosub 2
Case 30 To 40 : Gosub 3
...
End Select

Die "neuen" Bits wieder ausgeben. Nur weiß ich jetzt nicht wie ich mit Bascom einen Pind.1 für 0,8333 ms (Länge des Bits mit 1200 Baud) auf high setzen soll, ohne das Programm im Ablauf (also durch Wait) zu stoppen.

Ich hoffe es hat vielleicht jemand eine gute Idee und kann mir helfen. Danke schon mal.

Gruß Ronny

s.frings
25.05.2010, 14:32
Ich habe mal irgendwo gelesen, daß dieses Verhalten ganz normal sei. Bestimmte Bitfolgen können nicht zuverlässig übertragen werden, nämlich, wann immer mehr als 2 High oder Low Bits hintereinander kommen. Darüber hinaus müssen durchschnittlioch genau so viele High-Bits wie Low-Bits gesendet werden. Und für einen sicheren Start sollte man mehrmals hintereinander Bitfolgen wie 10101010 senden.

Also kommt es letztendlich nur auf eine geschickte Umcodierung der Daten an. Wenn Du mit Hilfe einer Tabelle jedes Byte auf zwei Bytes umcodierst, die diese Anforderungen erfüllen, sollte das relativ einfach sein.

Ronny81
25.05.2010, 21:41
Danke für den Tip, das könnte wirklich sein, dass ich keine zwei high hintereinander senden darf. Wenn ich mir die fehler ansehe, sind diese auch immer bei den Teilen wo zwei oder mehr Highbits kommen.

Nur leider kenne ich mit dem "Umcodierung" und Tabellen nicht so gut aus, kannst du mir noch einen Tip geben, wo ich da infos dazu finde? Danke.


Gruß Ronny

uwegw
25.05.2010, 22:41
Gibt denn die Doku zu den Funkmodulen nichts dazu her?
Wenn die Dinger wirklich so einfach gestrickt sind, dass eine externe Vorcodierung erforderlich ist, dann muss das doch dort beschrieben sein... Welche Module sind es denn?

Ronny81
25.05.2010, 22:55
Das ist ein Modul zu Video- und Audioübertragung. Ich übertrage GPS-Daten auch meinem Modellflieger an eine Bodenstation über den Audiokanal der Funkmoduls.
Funktionier ja auch recht gut, aber es muss so sein, dass wenn zwei Highbits kommen das nicht mehr richtig erkannt wird. Baudrat ist auch nicht sehr kritisch, geht von 1200 - 9600 alles gleich gut.