-
-
Neuer Benutzer
Öfters hier
Fehler bei der Bitauswertung
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
-
Erfahrener Benutzer
Robotik Einstein
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!
-
Neuer Benutzer
Öfters hier
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.
-
Neuer Benutzer
Öfters hier
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.
-
Erfahrener Benutzer
Roboter Genie
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?
-
Erfahrener Benutzer
Robotik Einstein
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.
-
Neuer Benutzer
Öfters hier
@shaun:
Wie schaffe ich es in der Praxis eine Präambel und den Manchestercode zu erzeugen.
Danke schon mal
-
Erfahrener Benutzer
Robotik Einstein
Ä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.
-
Erfahrener Benutzer
Roboter Genie
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
-
Neuer Benutzer
Öfters hier
@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?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen