PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler bei der Bitauswertung



guckstdu0
06.03.2007, 12:30
Hallo!
Wir haben bei unsere Diplomprüfung folgendes Problem und hoffen ihr könnt uns weiter helfen.

Wir verwenden Funkmodule mit der Frequenz 434 MHz. Vom PC aus werden Daten über die RS 232 Schnittstelle und über einen Pegelwandler (MAX 232) zum Sendemodul schickt. Das gleiche geschieht in umgekehrter Reihenfolge beim Empfängermodul.

Problem:
Beim Senden eines Strings in Matlab (z.B: "ssss") werden die Bits auf der Empfängerseite zwar empfangen, aber nicht richtig ausgegeben. -> Beim Auslesen des Strings werden nicht identifizierbare Sonderzeichen ausgegeben.

Hoffe ihr könnt uns bei diesem Problem weiterhelfen!!!
Vielen Dank

shaun
06.03.2007, 14:57
Deine Beschreibung sagt ungefähr gar nichts über euren Aufbau aus. Was für Funkmodule? Welche mit integriertem Prozessor, der ein störungstolerantes Protokoll auf der Funkstrecker implementiert und RS232 nach aussen bereitstellt? Dann würde ich mal die Pegel und die Baudraten prüfen. So oder so brauchen wir mehr Info!

guckstdu0
07.03.2007, 13:28
Bezüglich den Funkmodulen bitte ich dich, dir die beigestellten Datenblätter unter folgenden Links anzusehen:
http://www.conrad.at/goto.php?artikel=190238 (Sender)
http://www.conrad.at/goto.php?artikel=190264 (Empfänger)

Bautrate habe ich überprüft, wir fahren mit 9600.

guckstdu0
07.03.2007, 14:31
Noch eine Info bezüglich Funkmodul:
Die Schaltung (samt MAX232 und RS232, Funkmodul) wurde folgender Maßen getestet und für funktionstüchtig gehalten:

Es wurde am mittels Frequenzgenerator ein Rechtecksignal eingespeist, welches auf der Empfängerseite wunderbar empfangen werden konnte.

robocat
07.03.2007, 15:46
im datenblatt des empfängers steht etwas von max. 3kHz square wave output. wenn ich es richtig interpretiere sind 9600baud dann um einiges zu schnell. habt ihr schon versucht, mit der übertragungsrate runterzugehen?

shaun
07.03.2007, 18:14
Der Test ist völlig daneben, diese Module brauchen eine Präambel, damit sich die Empfänger-AGC einregeln kann. Danach darfst Du dann unter Einhaltung bestimmter Voraussetzungen (max. Bandbreite, regelmäßige Flankenwechsel usw) Daten senden. Dadurch dass Du ein Rechteck gesendet hast, konnte sich zum einen die AGC einstellen, zum anderen hast Du regelmäßige Pegeländerungen. Ein RS232-Signal ist dagegen das reinste Chaos.
Zunächst musst Du eine entsprechende Präambel generieren. Danach kannst Du Dir um eine geeignete Codierung Deiner Nutzdaten Gedanken machen, Manchester-Code ist hier normalerweise das Mittel der Wahl. Und bei alldem musst Du natürlich empfängerseitig erkennen, wann ein Rahmen beginnt bzw wann eine Präambel zuende ist. Zudem musst Du die Bandbreite strikt einhalten und dann noch eine Fehlerkorrektur implementieren, denn Störungen werden IMMER auftreten.

guckstdu0
08.03.2007, 08:38
@shaun:
Wie schaffe ich es in der Praxis eine Präambel und den Manchestercode zu erzeugen.

Danke schon mal

shaun
08.03.2007, 13:34
Ähhh... indem Du ein Programm dafür schreibst? Nein mal im Ernst: Du informierst Dich beim Modulhersteller über die Zeit, die der Sender zum Anschwingen und die AGC zum Regeln braucht sowie über maximale Frequenz usw. und dann schreibst Du eine Software, die genau dieses Verhalten implementiert.

Bluesmash
08.03.2007, 13:43
wenn es die diplomprüfung erlaubt würde ich einfach die easy-radio module verwenden dann must du dir keine gedanken über codierung und fehlererkennung machen... oder sind diese funkmodule vorgeschrieben?

gruss bluesmash

guckstdu0
09.03.2007, 11:34
@Bluesmash:
Nein, Funkmodule dürfen beliebig gewählt werden. Es ist lediglich eine bidirektionale Übertragung vorgeschrieben.

Was méinst du mit easy-radio module. Warum muss man bei diesen keine Rücksicht auf die Codierung nehmen?

shaun
09.03.2007, 15:02
Weil in denen ein Controller integriert ist, der Dir genau das abnimmt. RS232 rein, RS232 raus. Keine Gedanken machen um Codierung, Anschwingverhalten, Fehlerkorrektur usw.

Bluesmash
09.03.2007, 15:53
und es gibt ransreceiver module mit denen kann man senden und empfangen aber nicht beides gleichzeitig... somit brauchst du nicht auf jeder seite ein modul zum senden und eins zum empfangen...

guckst du hier:
http://www.shop.robotikhardware.de/shop/catalog/index.php?cPath=76&osCsid=4a1de136cea92d7acad01e2f2619aaf1

es gibt auch fertige boards dafür... dann kann man sie direkt an die rs 232 des pc's anschliessen....

gruss bluesmash