PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mancheseter-Codier-Schaltung



Phönix
02.05.2006, 17:40
Hallo!

Befasse mich gerade mit einer Funkübertragung von Pc zu Roboter mit Hilfe der billigen Conrad Am-Funkmodule. Sind ja wie ich gehört hab nicht die allerbesten, aber für den Preis kann mal sie ja ausprobieren.

Meine Frage: Da die Übertragung Manchester-Code verlangt, wollte ich wie wissen, ob diese nur softwaremäßig realisierbar wäre, oder ob es auch eine Hardwarelösung mittels zB logikschaltungen usw. gibt. Ich möchte gerne dazu die serielle schnittstelle desPCs und Mikrocontrollers nutzen. Und würde beispielseise nicht auch die Start- und Stopbits der seriellen Schnittstelle das schon (in dem Fall softwaremäßig aufberitetem Signal) enorm stören und die Datensicherheit beieinträchtigen?

Crazy Harry
03.05.2006, 09:57
Hi :)

hab mir gestern auch 2 Sender und 2 Empfänger bestellt - mal experimentieren :)

Falls du was findest melde dich bitte - mach ich dann auch :)

frank-findus
03.05.2006, 11:16
Das mit dem Manchester-Code ist nur eine Empfehlung, ein Beispiel. Aus dem Empfänger kommt - mehr oder weniger - das Signal wieder raus, das du am Modulationseingang des Senders anlegst, der Sender wird damit getastet.

D.h. du kannst - solange du innerhalb der garantierten Bandbreite bleibst (z.B. 2400 Baud) ein ganz normales serielles Signal (TX --> RX) verwenden, es ist nicht erforderlich, zusätzlichen Aufwand zu treiben.

Möglicherweise spielt es noch eine Rolle, ob du das Signal invertiert sendest oder nicht. Gibts größere Sendepausen, sollte der Sender nicht auf Dauer-An getastet werden. Andererseits könnte der Empfänger bei abgeschaltetem Sender (und hochlaufender Regelung) irgendwelchen Mist aufschnappen und fehlinterpretieren - ein stehendes Sendersignal hielte den Kanal frei ...

Frank

Frank

oc2k1_
03.05.2006, 14:44
Manchster Kodieren ist sehr einfach, da muss eingendlich nur das Signal mit dem um 90Grad phasenverschobenem Taktsignal Xor verknüpft werden.

Das Dekodieren ist leider viel schwerer. Eine normale Serielle Übertragung mit 1 Startbit 8 Daten bits 1 Parity und 2 zwei Stopbits benötigt weniger bandbreite.

Der Vorteil am Manchestercode ist ein anderer: 50% aller Bit sind 1 und 50% sind 0, Schaltungstechnisch bringt das einen gewaltigen vorteil: Am analogem Ausgang des Empfängerskann man mit hilfe eines Integrators das Signal viel besser wiederherstellen. Noch einfacher ist das Prinzip:
Mit einem Tiefpasses (RC kombination) wird die durchschnittliche Spannung abgreifen und mit einem Komperator (Opamp) zwischen dem durchschnittlichem Pegel und aktuellem Pegel unterschieden. Am Opampausgang liegt dann der Manchestercode wieder an.

Am besten ist es die Manchester dekodierung per µC zu machen, man muss bei den Flanken nur unterschieden ob ein anders Bit kommt oder ob es das Taktsignal ist...

So kölnnte man hardware mäßig rangehen:
Wenn der sendende µC über eine Synkrone Serielle schnittstelle verfügt sollte man einfach das Taktsignal und das Datensignal mit einem xor gatter verknupfen. Am Ausgang liegt der Manchestercode an.
Im Empänger ist es nicht ganz so einfach: Wir müssen das Taktsignal zurück gewinnen: Jeder Flanke kannein Taktsignal sein, also muss als erstes eine Schaltung die Flanken in impulse verwandelt: Wieder ein equivalenz (Not Xor) gatter, bei dem ein eingang mit dem Signal gespeist wird und der andere eingang mit dem dem Ausgang zurück gekoppelt wird (Jedes mal wenn sich der eingangs signal ändert kippt der Ausgang um und der zweite Eingang kippt das Signal zurück)
Danach müssen die Nichttaktsignalflanken ausgesiebt werden: Mit dem Ausgang des Gatters wird ein Monoflop getriggert, welches etwa 0,75 Taktperioden anhält und nicht retriggerbar sein darf. Rest dürfte dann fast klar sein... Ein Dflipflop kann mit dem so erzeugtem Taktsignal die Bits wieder aus dem Manchestercoder rausfischen...

Phönix
03.05.2006, 16:22
Hallo!

Erstmal danke für die Antworeten!

@frankfindus
Ob das ohne Manchesercode geht, bin ich mir nicht sicher, da ich es schon ohne verucht habe und es nicht geklappt hat. Aber des mit dem Kanal freihalten ist eine gute Idee, denn es werden wohl längere Sendepausen auftreten.

@oc2k1_
Deine Schaltung klingt einleuchtend, die mit den Logikgattern. Das mit dem OpAmps und dem Tiefpass misstraue ich ein bisschen, denn mit so etwas hab ich frustrierende Erfahrungen gemacht. Werde ich aber auch mal ausprobieren.

Kann es sein, wenn der Schnittstellentreiber MAX232, der das Signal vom PC aufbereitet direkt neben den Sender auf der Platine ist die Pegel stört?

Und bei der Verwendung einer Sendeantenne (ausgerechnet mit lambda/2-Dipol 433MHz ==> l(Länge der Antenne) = 1/2 x (c/f) = 35cm) verringert sich Reichweite auf 5cm. Da kann doch auch was nicht stimmen, oder? Ist meine Rechnung vielleicht falsch oder sollte man an der vorgefertigten Platinenantenne nichts ändern?

Grüße Phönix