PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Übertragung serieller Daten mit Sende/Empfängerset



irgendsowas
08.07.2004, 11:14
hi
hab mir von Conrad für 15€ das Sende/Empfängerset gekauft. (für den preis ja eigentlich einen versuch wert) ich will jetzt ein byte seriell vom pc über den comport senden. also brauch ich die programmierung. (sollte ich was vergessen haben, korrigiert mich bitte!) wie bekomm ich jetzt den high-pegel, den der empfänger ausgibt (0,8V laut betriebsanleitung) auf ttl-pegel?? den sender kann ich ja mit 3-12V versorgen. jetzt meine fragen:

1. Wie Programmiere ich die Ser. Schnittstelle??
2. Wie schliesse ich den Empfänger an meine C-Control M-unit an??
3. Wie werte ich die empfangenen Daten aus??
4. Was ist eigentlich ein startbit, stoppbit, prüfsumme, handshake...
5. Brauch ich sonst noch was??


mein robby läuft soweit, will ihn nur später mit meinem handspring oder meinem palm fernsteuern. bekomme aber dazu in zwei tagen noch ein buch.
gibts vielleicht seiten, wo ich das mit der SS vom pc nachlesen kann?

Gottfreak
08.07.2004, 11:30
1. Wie Programmiere ich die Ser. Schnittstelle??

Einfach Bytes senden kannst du mit einem Terminalprogramm. AVR-Terminal find' ich z.B. gut dafür(ist auch ganz klein).


2. Wie schliesse ich den Empfänger an meine C-Control M-unit an??

0,8V sind wirklich wenig. Das könnte gerade reichen um einen Transistor zu schalten(hinter dem NPN-Transistor kommt ein Pullup auf 5V, wenn der Transistor durchschaltet, hast du gnd-Pegel). Wenn du die Schnittstelle nicht softwareseitig invertieren kannst(keine Ahnung, ob das geht), musst du noch einen zweiten Transistor dahinterschalten damit das Signal wieder "richtig rum" ist. Ansonsten könnte es auch mit einem OpAmp gehen.


3. Wie werte ich die empfangenen Daten aus??

Steht im Handbuch der C-Control. Auswendig weis ich's leider auch nicht.
4.


4. Was ist eigentlich ein startbit, stoppbit, prüfsumme, handshake...

Startbit und Stoppbit müssen auf beiden Seiten gleich eingestellt sein(daran erkennt der Empfänger den Begin und das Ende der Übertragung.).
Eine Prüfsumme ist ein aus den verherigen Bits ermittelter Wert(z.B., ob die Summe gerade ist.), der es ermöglicht, bei einem einzelnen falschen Bit die Übertragung als fehlerhaft zu identifizieren(sollte auch einfach auf beiden Seiten gleich eingestellt sein).
Handshake ermöglicht es, eine Verbindung zu erkennen, auch wenn nix gesendet wird(unterstützt die C-Control meines Wissens nicht(kann man aber vielleicht per Software machen), deshalb am PC ausmachen).


5. Brauch ich sonst noch was??

Keine Ahnung, was bei dem Sender/Empfängerset dabei ist. Kabel, Strom usw. sollten ja selbstverständlich sein.

irgendsowas
08.07.2004, 11:45
danke schonmal für die schnelle und ausführliche antwort!



Einfach Bytes senden kannst du mit einem Terminalprogramm. AVR-Terminal find' ich z.B. gut dafür(ist auch ganz klein).

wohert bekomm ich das programm??



0,8V sind wirklich wenig. Das könnte gerade reichen um einen Transistor zu schalten(hinter dem NPN-Transistor kommt ein Pullup auf 5V, wenn der Transistor durchschaltet, hast du gnd-Pegel). Wenn du die Schnittstelle nicht softwareseitig invertieren kannst(keine Ahnung, ob das geht), musst du noch einen zweiten Transistor dahinterschalten damit das Signal wieder "richtig rum" ist. Ansonsten könnte es auch mit einem OpAmp gehen

man kann mit der cc negativieren.



Startbit und Stoppbit müssen auf beiden Seiten gleich eingestellt sein(daran erkennt der Empfänger den Begin und das Ende der Übertragung.).

also muss ich in meinem mC programmieren, dass er anspringt wenn er einen low-pegel misst? und dass er aufhört, wenn er alles empfangen hat und einen high-pegel misst. oder brauch ich das vielleicht garnicht?? wie werden denn die bytes aus diesem terminalprogramm gesendet?? mit startbit/stopbit?

muss ich die übertragungsrate bei meiner ccontrol einsellen?? warscheinlich schon! dieses set hat manchester-codirung, was heisst das??
THX

Gottfreak
08.07.2004, 12:24
wohert bekomm ich das programm??

http://www.rowalt.de/mc/index.htm
Unter Tools gibt's das zum downloaden.


man kann mit der cc negativieren.

Dann kannst du das machen und brauchst nur einen Transistor (dessen Schaltschwelle muss natürlich unter 0,8V liegen.)


also muss ich in meinem mC programmieren, dass er anspringt wenn er einen low-pegel misst? und dass er aufhört, wenn er alles empfangen hat und einen high-pegel misst. oder brauch ich das vielleicht garnicht??

Ich GLAUBE, die C-Controll hat fertige Routinen zum seriellen Empfangen.


wie werden denn die bytes aus diesem terminalprogramm gesendet?? mit startbit/stopbit?

Das kannst du recht einfach einstellen. Die Voreinstellung sollte gehen(1 Stoppbit, keine Parität).


muss ich die übertragungsrate bei meiner ccontrol einsellen??

Ich glaube, die C-Control unterstützt nur 9600 Baud. Du musst also am PC (und ggf. am Empfänger) die Baudrate auf die 9600 der C-Control einstellen.


dieses set hat manchester-codirung, was heisst das??

Hier z.B. erklärt(erstes Suchergebnis bei yahoo :? ):
http://members.gaponline.de/afj/rechnernetze/whiteboard/rn_course_13.2.3.html
Muss dich eigentlich nicht kümmern, wenn dein Sender die Daten vom Uart nimmt und am Empfänger wieder solche 'rauskommen(der Kram dazwischen geht dann ja ohne dein Mitwirken.). Hast du denn dazu kein Datenblatt oder so?

irgendsowas
12.07.2004, 19:02
hab nur die bedienungsanleitung, die ist ca. 4cmx3cm gross!!
aber ich werds mal versuchen! danke erstmal!

batti112
12.07.2004, 20:07
Hi irgendsowas!

Bitte poste mal deine Ergebnisse, mich würd mal interessieren ob das "Zeug" etwas taugt.
Mich hat auch der Preis aufmerksam gemacht, konnte mich aber nicht dazu durchringen es zu kaufen.

MfG
Batti

Isnogud
13.07.2004, 11:30
So ein zufall, das gleiche habe ich mir auch bestellt. Ich bin auch an den Ergebnissen interessiert.

Ich wollte das Modul zur komunikation zwischen zwei AVRs unter verwendung der UART schnittstelle (asynchrone serielle übertragung) verwenden. Die schnittstelle alleine funktioniert super auch zwischen PC und AVR.

Zubeachten ist beim PC jedoch, das die RS-232 schnittstelle mit +/- 12V
arbeitet. Man kann dies aber zum beispiel mit dem MAX202 oder anderen ICs aus dieser Reihe konvertieren (in 0V/5V) bzw. umgekehrt. Man kann dann theoretisch auf Handshake und steuerleitungen komplett verzichten.

Wenn noch jemand fragen zu Programmierung der Seriellen Schnittstelle hat, kann ich z.B. Delphi Sources zur verfügung stellen (ohne inpout32.dll, nur mit windows routinen, also absolut 'sauber')

Isnogud
13.07.2004, 11:33
mir fällt gerade noch auf handshake funktioniert bei diesem modul sowieso nicht, da es nur unidirektional funktioniert.

und hier gibts ein tool zum senden empfangen von bytes über den seriellen port, überwachen und einstellen der steuerleitungen, einstellen von stopbits uvm. kann ich nur empfehlen

http://www.domis.de/cms/index.php?module=ContentExpress&func=display&ceid=7

Isnogud
14.07.2004, 15:49
So, jetzt ist das Modul auch da.

Die Anleitung kann man total vergessen. Das einzige was drin steht ist das die Seriellen Daten nach dem Manchester Code codiert werden sollen.
Zur Erklärung: Der Manchaster Code (verwendet z.B. bei den alten 10 Mbit netzwerken) stellt jedes Bit durch einen Übergang zwischen zwei Bits da, Hi->Lo oder Lo->Hi, wodurch bei jedem Bit ein Übergang statt findet und so die Taktfrequenz leichter zu Synchronisieren ist. Außerdem werden negative Spannung zum darstellen von Lo verwendet, was eine ansteuerung per AVR erschwert.

Außerdem habe ich bis jetzt noch nicht rausgefunden ob der Empfänger die Daten auch wieder Manchaster codiert ausgibt oder anders.

Falls jemand schonmal mit dieser Codierung gearbeitet hat würde ich mich freuen wenn er sich melden würde.

Blackbird
15.07.2004, 13:56
Naja, wenn die Daten kodiert reingehen, kommen sie auch kodiert wieder raus. Die Module ändern da nichts dran. Sie verfälschen höchstens die Bits - deshalb der "Vorschlag" mit der Kodierung. Ohne Kodierung (wahrscheinlich ist hier eine Redundanz gemeint) kann das serielle Signal eben gestört sein. Oder man macht die Überprüfung (und gegebenfalls die Retransmission) in einem Übertragungsprotokoll.

Manchester-Code ist dafür da, die Abstände zwischen den Pegelwechseln nicht zu klein werden zu lassen und möglichst immer (im Mittel) gleichviel Low- wie auch High-Pegel zu haben ("gleichspannungsfrei").


Blackbird

16.07.2004, 08:18
Naja, wenn die Daten kodiert reingehen

wer hat denn gesagt, dass die kodiert reingehen?? die werden im sender kodiert und wahrscheinlich im empfänger wieder dekodiert!!

Blackbird
16.07.2004, 10:54
Das einzige was drin steht ist das die Seriellen Daten nach dem Manchester Code codiert werden sollen.


Von wem?
Vom Sendemodul oder vom Benutzer?
Wenn sie vom Sendmodul kodiert werden, wird wohl auch das Empfangsmodul sie lesen (und nicht nur empfangen) können. Sonst passen die beiden nicht zueinander. Wenn doch, sind sie auch wieder dekodiert.

Wo ist das Problem?

Blackbird

mcssch
20.07.2004, 14:35
Ich habe mir die Module auch gekauft und auch schon mit einem MAX232 an einen PC angeschlossen (vorerst den Empfänger). Bei ersten Versuchen, ein von einem PIC ausgesandtes Signal zu empfangen, ist mir ein weiteres Problem aufgefallen: die Positionierung und Ausrichtung der Antennen. In der Beschreibung steht, sie sollen parallel zueinander verlaufen. Damit funktioniert die Kommunikation immerhin besser als mit nicht parallelen Antennen.

MfG,
mcs

PS: Hat von euch jemand ein ähnliches Problem?

28.07.2004, 10:21
ich hab die letzten tage rumexperimentiert, mir 3 bücher gekauft (PC-Schnittstellen unter Windows ; MSR mit Palm OS ; Donald Duck auf der suche nach der Wunderlampe :cheesy: ) und ich habs zum laufen bekommen!!!
ich sende von meinem palm m100 bytes und ganze strings zu meinem pc! das ist natürlich nicht die endgültige anwendung, der empfänger kommt auf meinen roboter und der sender bleibt in meinem palm! sieht cool aus!!
ich benutze KEINEN Pegelwander (max323..) mein palm macht zwar nur rs232-kompatible pegel, aber der sender verkraftet ja bis zu 12 V. mein empfänger wird vorerst über die txd-leitung der s.schnittstelle gespeist(eine z-diode und eine diode ssetzen die spannung pos. und auf 5V. Der Data-Output wird durch einen BC547C "geboostet" und erreicht damit ca. 5V! Ausserdem hab ich beim Sender die Spannungsversorung an die Datenleitung gelegt. Dadurch brauch ich keine Manchestercodierung.
Jetzt zur Reichweite, Antennen...
Ich hab am Sender 20cm Draht gen himmel und am emfänger auch! ich schaffe es zwar so nicht durch wände, aber gut 10m sind schon realistisch!! die reichweiteangabe von conrad ist theoretisch mit einer antenne von ca 21,5m zu erreichen. das ist kein blödsinn, wenn man die wellenlänge berechnet dan kommt auf diese länge einer drahtantenne!!

ich wünsch noch viel spass mit meinen tips, wenn jemand noch was spezielles über palm, hotpawbas... zu diesem thema wissen will, was nicht ins forum passt, dann kann er mir ja schreiben!!

mfG irgendsowas

irgendsowas
28.07.2004, 10:22
war ich!! sitz hinter nem router, flieg dauernd raus

28.07.2004, 10:45
@irgendsowas:

Du hast geschrieben:



reichweiteangabe von conrad ist theoretisch mit einer antenne von ca 21,5m zu erreichen. das ist kein blödsinn, wenn man die wellenlänge berechnet dan kommt auf diese länge einer drahtantenne!!


Wie kommst du auf 21,5 m ?????

Das ist doch ein 433 oder 866 MHz-Modul oder nicht ?

Theoretisch ergibt bei mir der Wert 433MHz eine Länge von etwa 68 cm und bei 866MHz ziemlich genau die hälfte.

Also rechne nochmal nach und sag uns dein Ergebniss

MfG Freddy

irgendsowas
28.07.2004, 11:21
lass mich nochmal nachrechnen:
die geschwindigkeit der ausbreitung der wellen: 300.000km/s=300.000.000(lichtgeschw.)
durch die frequenz: 433.000.000Hz
ergibt die Wellenlänge: 0.69m uuups.. :oops:

ok, ich nehms zurück!!

irgendsowas
28.07.2004, 11:22
ich müssts eigentlich können, ich hab nämlich amateurfunker lizenz.
:oops:

28.07.2004, 11:53
Ach du auch, hier DB7TE

28.07.2004, 13:57
DB6IB
wo issen dein QTH??
wie hasten du dein zeugnis gemacht??
ich hab mir die unterlagen besorgt und drauflosgelernt!
ich hab aber kein gerät mehr hier stehen, ist schon länger her!!
ich wollte damals sowieso nur mit 50W auf 11m brennen, ohne dass mich einer anscheißt!! aber danach hats richtig spass gemacht, mit amateurfunk!! musstes du in deiner prüfung morsezeichen wissen?? ich nit!

irgendsowas
28.07.2004, 13:59
mist, schon wieder zu lange geschrieben, ich schmeiss meinen router ausm fenster!!

13.10.2004, 15:42
8-[ kann mir jemand mal erklären wie der cw-mode (vdd am dateneingang des senders, siehe geschriebenes weiter oben, 28.07 10:21) funktioniert und warum ich dafür keine manchestercodierung benötige. möchte gerne mit einem micrf103 von micrel daten von einem controller zu einem anderen senden. mein problem ist der ask-pin, hab leider keine ahnung, ob ich da einfach eine uart(tx) anklemmen kann und den sender mittels ask(cw)-mode zum senden bringen kann.
wer kann mir da helfen?