Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler bei der Bitauswertung
guckstdu0
06.03.2007, 14:57
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. <O:p</O:p
Hoffe ihr könnt uns bei diesem Problem weiterhelfen!!!
Vielen Dank
Hallo,
erstmal mit dem Hyperterminal probieren. Vlt liegt es an Matlab?
guidob
Hi,
Baudrate auf beiden Seiten gleich eingestellt?
Parity?
Stopbits?
Manchester_kodiert?
oder ueberhaupt nix :D ?
Sind die 434 MHz Module schnell genug, um die eingestellte Baudrate zu übertragen? Haben der Modulator bzw. der Demodulator einen galvanisch durchgekoppelten Ein/Ausgang, damits mit den MAX232 auch richtig funktioniert?
73 Gerd H
guckstdu0
07.03.2007, 14:31
@guidob: Wenn wir es mit dem Hyperterminal ausprobieren, gekommen wir laufend irgendwelche Störungen auf der Empfängerseite uu sehen.Habt ihr eine Idee, wie wir diese weg bekommen?
@Anatec: Bezüglich den Funkmodulen bitte ich dich, dir die beigestellten Datenblätter unter folgenden Links anzusehen:
http://www.conrad.at/goto.php?artikel=190238 (http://www.conrad.at/goto.php?artikel=190238) (Sender)
http://www.conrad.at/goto.php?artikel=190264 (http://www.conrad.at/goto.php?artikel=190264) (Empfänger)
Bautrate habe ich überprüft, wir fahren mit 9600.
@edgar: Wir haben leider gar nichts von diesen Varianten angewendet.
Glaubst du dass wir mit einer Kanalkodierung erfolg haben? Was ist die Manchester_Kodierung?
guckstdu0
07.03.2007, 15:30
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.
@guckstdu0,
habe geschaut. Laut Datenblatt schaffen die Module max 3kHz. Der Empfänger steht sogar mit typ 2,5kHz zu Buche. Das ist für 9k6 zu wenig. Mit dieser Bandbreite kann man max 1k2 übertragen. Weiterhin ist zu beachten, die angegebenen 200m sind eine Idealvorstellung im freien Gelände. Indoor kann sich die Reichweite auf wenige Meter verringern, so Wände im Weg sind.
73 Gerd H
Glaubst du dass wir mit einer Kanalkodierung erfolg haben? Was ist die Manchester_Kodierung?
Ganz bestimmt und ist unbedingt noetig.
Ich kenne die Aurel Produkte...die werden hier in der Naehe gefertigt.
Habe sie selbst mit at89C2051 Ansteuerung (cod /decod) getestet und das hat problemlos gearbeitet.
Fuer einen Batronixianer hatte ich sogar Code hier reingestellt: Manchster Codierung ! Das was fuer einen Alex wenn ich mich nicht taeusche.....mal suchen.
Max Baudrate wie Gerd (HALLOOO!;-) schon andeutete 1200, 2400 baud.
Jetzt Suchmaschinen anwerfen...es gibt was zu lernen! Manchester.....!
Ciao
Hi Ed,
Ganz bestimmt und ist unbedingt noetig.
Da gebe ich dir voll Recht. Der einfache Manchester Code stellt für die Module die "Optimalvariante" dar. Das Ein- und Ausschwingen der ZF wird in Grenzen gehalten, zumindest viel besser beherrscht als die reine RS232 Übertragung, bei der ja im ungünstigsten Fall wenig H und viel L auftreten kann. Mit dem Code kann man viel näher an die Frequenzgrenze gehen. Ähnlich arbeitet auch Packet Radio. Dort wird die Modulationsfrequenz umgetastet (Shift Keying). Die längste Zeit dauert das Ein und Auschalten des Senders. guckstdu0 hats oben selber beschrieben. Mit kontinuierlichen Rechtecken getastet, läuft der Laden ordentlich :-)
73 Gerd H
HIER
http://www.progforum.com/showthread.php?t=593&highlight=manchester
Beitrag nr 9 usw
der Gerd war damals auch dabei und mein Name war auch '''schon (gut)''':D
guckstdu0
08.03.2007, 09:27
Wir haben nun versucht, die Baudrate auf 1200 und 600 herunter zu setzen, erzielen aber immer wieder das selbe Ergebnis.
Lässt sich der Manchestercode auf dem beigestellten Link nur für Mikrocontroller anwenden?
Wir verwenden nämlich keinen Mikrocontroller.
Jetzt wissen wir nicht wie wir den Manchestercode in Matlab anwenden sollen.
Schon mal besten Dank.
Peter Dannegger
08.03.2007, 09:43
HIER
http://www.progforum.com/showthread.php?t=593&highlight=manchester
Wobei man aber sagen muß, das ist nur ein selbsterfundener Manchester ähnlicher Code und nicht Manchester.
Über die UART ist immer das 1.Bit 0 und das 10. Bit 1, also nicht komplementär zu den Datenbits.
Für die Funkübertragung ist das in der Regel aber tolerierbar, wenn die Bytes hintereinander ohne Pause gesendet werden.
Es reicht auch schon, wenn man nur solche Bytes sendet, die 4 Einsen und 4 Nullen beinhalten, da die AGC träge genug ist.
Aber man hat den Nachteil, daß die UART nicht wie Manchester auf jedes Bit neu synchronisieren kann.
Die UART bedingt also, daß auf beiden Seiten ein Quarz verwendet werden muß, während Manchester auch völlig problemlos mit dem internen RC-Oszillator geht.
Peter
Wir haben nun versucht, die Baudrate auf 1200 und 600 herunter zu setzen, erzielen aber immer wieder das selbe Ergebnis.
Mit 0k6 sollte das auch ohne Code funktionieren. Kann es sein, das die Module, auf irgend eine Art und Weise Spikes erzeugen oder sehen? Ich würde da schon mal einen schnelleren Oszi in Betrieb nehmen und mir die übertragenen Impulse genau anschauen. Die MAX232 sind recht schnell und können möglicher Weise ein Umschwingen der Schaltflanken als Impuls interpretieren. Leider kennen wir die Innenschaltung der Module nicht. Da könnte man schauen, ob die integrierte Tiefpässe haben, die Überschwingen verhindern würden.
73 Gerd H
Wobei man aber sagen muß, das ist nur ein selbsterfundener Manchester ähnlicher Code und nicht Manchester.
Ja Peter,
da kann ich behaupten die '''MAILAENDER''' Version von '''Manchester''' assembliert zu haben.:D
Wie beim Fussball so auch beim Kodieren...:) ...Toooor
guckmalhier,
als vorspeise: Manchester on the...
table: db 01010101b ;55 0
db 01010110b ;56 1
db 01011001b ;59 2
db 01011010b ;5A 3
db 01100101b ;65 4
db 01100110b ;66 5
db 01101001b ;69 6
db 01101010b ;6A 7
db 10010101b ;95 8
db 10010110b ;96 9
db 10011001b ;99 A
db 10011010b ;9A B
db 10100101b ;A5 C
db 10100110b ;A6 D
db 10101001b ;A9 E
db 10101010b ;AA F
versuche doch mal obige Bytes zu senden. Wenn 600bd usw richtig auf beiden Seiten laufen,dann muesstest Du etwas sinnvolleres als zuvor einlesen.
ach wat...Du sagtest ja Du hast keinen MC....irgendwie solltest Du die Daten wandeln....
Vielleicht kannst Du im Matlab? Daten erzeugen,die mit den Obigen uebereinstimmen...
ciao
Hallo,
mir ist noch was eingefallen: die Hersteller der Funkmodule schreiben meist ein
Tiefpaß vor dem Sender vor. Ich dachte das wäre nur gegen Oberwellen, könnte
aber auch die Übertragungssicherheit erhöhen.
guidob
Peter Dannegger
08.03.2007, 13:27
Ja Peter,
da kann ich behaupten die '''MAILAENDER''' Version von '''Manchester''' assembliert zu haben.:D
Kannst Du mir diesen Satz übersetzen ?
Ich verstehe ihn nicht.
Ich kenne keinen ''MAILAENDER'''-Code.
Peter
ganz einfache Assoziation:D :
Meine Phantasie fluestert mir zu,dass der Manchester Code in der Fussballerstadt Manchester geschrieben wurde.:)
Ich wohne dagegen in der Naehe der Fussballerstadt Mailand ...also ''Mailaender-Code''
ciao
Apropos Mailand: Die Bayern freuen sich schon auf Revanche...:D
Auch OT:
Hallo ED! War letzte Woche in Grosseto, am Mittelmeer entlang, konnte mich nicht halten, musste erst mal den großen Zeh reinhalten! 22° Luft, 15° Wasser (geschätzt!)
Ot oT
Kann ich gut glauben, Holger. Ich war heute SKIfahren auf 2200m.
Der Schnee war ueberraschend gut und der Himmel strahlend blau...einen halben Sonnenbrand habe ich mir auch geholt:D Saubere Luft da oben.
Das tut gut....gluecklicherweise wissen nur wenige von diesem (Schnee)Glueck...man konnte herrlich fahren. Mein Freund hat ein Chalet da oben gekauft und hat mich fast dazu ueberredet auch eines zu kaufen....Von CR aus brauche ich allerdings gerade 1,75 Std bis zum Sessellift...er ist Journalist und moechte da oben seine Artikel schreiben,das herrliche Panorama geniessen...und einige Kg s abbauen mit Wandern und Skifahren:)
Mir ist das Meer in Sizilien lieber.
nOT
Hast du schon einen kleinen LP 20-fuessler geflasht mit dem neuen USB -Ding?
Schoenes WE Dir & family
Hallo Ed,
nee, kam noch nicht dazu. Hab noch an nem anderen Proj zu tun, das muss fertig werden, soll Ende März "vom Band" dies hier (http://www.digimoba.de/gbs2020.htm): Hier soll der aber mal als "Nachfolger" für höhere PWM rein!
Hi,
das Üroblem ist, dass dioe Sendedauer der meisten Funkmodule beschränkt ist! Das Rechteck kommt deshalb durch, weil abwechselnd einsen und nullen gesendet werden. Überträgt der PC mehrere Einsen hintereinander, so gehen die letzten Einsen verloren! Deshalb ist bei diesen Modulen auch Manchester vorgeschrieben, da bei dieser Koduierung zwangspausen gemacht werden MÜSSEN.
Sendest Du z.B.
01011100, wird daraus
01011000, weil zu viele einsen hintereinander beschnitten werden.
Jetzt gibt es zwei Lösungen. Entweder ein µC, derf Manchester macht, oder direkt mit der PC schnittstelle und "Stopfbits" ='0' einfügen. Man zerschneidet jedes Byte in zwei nibbles und bläst diese mit nullen in jedem zweiten Bit auf. Empfängerseitig wirft man jedes zweite Bit wieder weg und hängt die beiden Nibbles wieder zu einem Byte zusammen.
Gruß
Elmar
Powered by vBulletin® Version 4.1.12 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.