Forum: Mikrocontroller und Digitale Elektronik RS232 Senden/Funken???


von Maruu (Gast)


Lesenswert?

Hallo!

kurze Frage, will ien kleines Fahrzeug mit nem µC (PIC) ausstatten der
dann mit dem PC kommuniziert. Jetzt is aber das problem das das
Fahrzeug kein Kabel oder sowas hat sondern batteriebetrieben is und ich
die Daten zum PC irgendwie funken oder senden muss. Hab gedacht ob es
irgendwie geht die RS232 Schnittstelle per IR zu senden???
Geht das und wenn ja wie weit udn gibt es da schon Schaltungen zu???
Bzw. was gibt es für bessere (einfache nicht sooo kostenaufwändige)
Lösungen, evt FUNK???

MFG

Hannes

von formtapez (Gast)


Lesenswert?

also ich würde das mit funk machen. bei infrarot wär mir das zu
unsicher, wegen sichtverbindung usw...

http://www.funkmodul.de/

MfG
formtapez

von Maruu (Gast)


Lesenswert?

Hallo!

Ahha mhhm naja sieht ja schon mal ganz gut aus ich hab nur leider keien
Ahnung von Funk. Was brauch ich denn dazu, einen Sender und einen
Empfänger reicht das??? Und kann ich da dann gleich die Pins der RS232
Schnittstelle anschließen oder wie funktioniert das???

MFG

Hannes

von formtapez (Gast)


Lesenswert?

wenn du nur eine unidirektionale datenübertragung haben möchtest reichen
natürlich 1x sender und 1x empfänger.

die rs232 pegel müsstest du aber noch mit z.b. einem MAX232 auf TTL
niveau bringen.

MfG
formtapez

von Maruu (Gast)


Lesenswert?

Ähh ne ne bidirektionale wäre besser, ich muss senden und empfangen
können. Welche Module würden sich denn eigenen und was kosten die denn
überhaupt???

MFG

Hannes

von NoName (Gast)


Lesenswert?

die kosten sackeviel (1 Transceiver 50,00 €, egal wo!).
Dafür aber bestimmt gut.

von Maruu (Gast)


Lesenswert?

Hi!

Naja 50€ wäre echt ein bissle viel, was is denn mit dem:

STX433saw
HF-Sendeplatine zur Eigenentwicklung eines Sendemoduls. Sendeleistung
6dBm/5V; 433,92MHz, SIL-Bauform
8,00 €

kann man unter Sende HF-Module hier finden:
http://www.funkmodul.de/Download-Files/Bestellformular/plfunk.pdf

Würde es des ding tun???

MFG

Hannes

von thkais (Gast)


Lesenswert?

Die Dinger funzen ganz gut. Allerdings brauchst Du für eine
bidirektionale Verbindung 2 davon und auch noch 2 Empfänger-Module. Die
Datenübertragung geht dann nur halbduplex. Auch wichtig: Bei diesen
AM-Modulen ist der Empfänger ein Pendelempfänger, d.h. idealerweise
ändert sich der Pegel andauernd. Such mal mit dem Stichwort
"manchester" hier im Forum.
Die Übertragung ist dann allerdings nur halbduplex, und bei ca. 2400
Baud ist Schluß.

von Maruu (Gast)


Lesenswert?

aha mhhm hab mich jetzt mal komplett durchgearbeitet aber bin nicht so
richtig zu nem Ergebnis gekommen. Also ich bräuchte 2 Sender und 2
Empfänger, was billiger wäre als 2 Transreciever. Dann müsste ich
anstatt nem RS232 Code nen Manchester Code ausgeben. Und dann müsste
ich noch schaun das das Senden und Empfangen richtig getimet ist sonst
überschneiden sich die Daten. Naja also Die Module von funkmodul.de
sind ja nicht sooo teuer. Aber wie bekomm ich nun den  Manchaster Code
hin????
Gibts da beispiele für den PIC????
Welche billigen Module gibts sonst noch bei Conrad kosten die 30€
aufwärts des is mir zuviel.

MFG

Hannes

von Phil (Gast)


Lesenswert?

Hallo!
Schaut mal bei http://www.rowalt.de/mc/index.htm rein! Sieht ganz
interessant aus!

von Maruu (Gast)


Lesenswert?

Leider komm ich bei deinem Link nicht ganz mit. Was meinst du genau auf
der Seite?? Das Fuchsjagd Ding, das is doch nur zur Peilung oder??

MFG

Hannes

von A. Arndt (Gast)


Lesenswert?

Hallo,

habe gerade neues Modul bei Conrad ausgemacht, 1 Paar Transceiver für
92 EUR, aber gleich mit AVR drauf, soll wohl ganz gut sein, lt.
Conrad...

Siehe auch Beitrag dazu vom 23.08.03

Gruss
A. Arndt

von Maruu (Gast)


Lesenswert?

92€ is aber auch noch viel naja evt werd ich mich mal an die
Sender und empfänger von Funkmodul.com machen und da mal dann versuchen
nen Manchaster Code in meinen PIC zu bekommen. Das Problem wird halt
noch sein das ich ja auf jeder Seite ein Sender und Empfänger brauch
für eine Bidirektionale Vebindung und dann muss ich noch das
Multiplexing hinbekommen damit ich senden und empfangen kann oder halt
irgendwie abwechselnd. Hat jemand beispiele für den PIC für sowas???

MFG

Hannes

von Hans (Gast)


Lesenswert?

Lass lieber die Finger von den AM Modulen.
Investiere lieber ein paar Euronzen mehr
für ein FM Modul. Es sei denn, Du willst
nur unter 5m überbrücken. Selbst da sehe
ich Probleme. Googel mal in den Groups,
dort findest Du einige gescheiterte
AM Geschädigte
=> Billig bis preiswert = Schrott
Ist leider so!

Es sein denn, wie gesagt, wenig(st)e Meter
Distanz...Dann KÖNNTE alles funzen!

Berichte mal von Deinen Tests!

  HANS

von NoName (Gast)


Lesenswert?

da denke ich ein bißchen anders.
bei 6dBm Sendeleistung und -100dBm Empfindlichkeit sollten auch mit AM
100m ohne weiteres möglich sein.
Daß FM besser und störsicherer ist steht ohne Zweifel, aber die 5m
gelten nur für Funksteckdosen (weniger als 1mW Sendeleistung und
vielleicht 90dBm Empfangsempfindlichkeit)

von Hans (Gast)


Lesenswert?

Schau mal in den Artikel:

Endlich ein Komplett-Funksystem mit Pfiff

Da schreibt jemand über seine Erfahrungen
mit den billig (also AM) Dingern.

In Deiner Antwort (NoName) sehe ich auch, das Du
noch keine praktische Erfahrung mit den Dingern
gemacht hast!? - Wenn doch, schreib mal wie sich
die AM Dinger bei Dir im Einsatz zeigen!?

  HANS

von NoName (Gast)


Lesenswert?

Mit Verlaub, bei DEINER Antwort stellt sich erst recht die Frage, woher
Du Dein gesichertes Wissen nimmst.
Mache Dir doch die Mühe und finde heraus, welche Leistungsdaten die
AM-Module aufweisen ,welche in dem gelobten Beitrag am Pranger stehen.
Und dann vergleiche mal mit meiner Behauptung (die natürlich, da von
mir als Unerfahrenem, nur ins Reich der Phantasie gehören und in einem
Forum nichts zu suchen haben!)
Nix für ungut, aber Du kannst eben auch nicht pauschal sagen: Eine
Taschenlampe leuchtet schwach (weil mal jemand ein oder zwei
verschiedene ausprobiert hat)

von Maruu (Gast)


Lesenswert?

Hi!

Danke für die Antworten. Bin grad noch an einem kleinen Projekt zwecks
Redezeit mitstoppenb und so aber wenn das fertig is und ich da mit I2C
hinbekommen hab kauf ich mir mal 2 so Sender und Empfänger von
Funkmodul.com und versuch nen Manchester Code hinzubekommen. Dann kann
ich ja berichten wies gelaufen ist. Zwecks Mancheseter hab ich noch ne
Frage, es heisst ja das der Gleichspannungsfrei is aber dies gilt doch
nur wenn ich z.B. +5 V und -5 V als Pegel verwende bei Logicpegeln wie
5V und 0V stimmt dies doch nicht oder???

MFG

Hannes

von NoName (Gast)


Lesenswert?

auf Deiner Platine stimmt das (da wären es 2,5V), aber auf der
Funkstrecke gibt es kein Bezugspotenzial, d.h. es sollte schlichtweg im
Mittel ausgeglichen sein, sonst werden die Daten entweder 0 oder
1-lastig. Dasselbe Problem gilt für optische Übertragung in
Glasfasernetzen.

von Maruu (Gast)


Lesenswert?

Aso ok Mhhm dann is das wohl trotzdem das Richtige Protokol.
Werd mal ein bissle basteln.

THX


Hannes

von thkais (Gast)


Lesenswert?

zu Hans: Ich benutze die AM-Dinger schon seit einiger Zeit. Wenn man nur
5m damit hinkriegt, hat man das falsche gekauft oder sich nicht richtig
damit beschäftigt. Bereits in den Datenblättern ist erwähnt, daß die
AM-Kisten nur max. 3000 Baud vertragen, mit Start/Stop-Bits und etwas
Klimbim kommen wir auf annähernd 2400. Dann noch Manchester
draufgepackt, schon haben wir gerade mal 1200 Baud Netto. Mehr ist
einfach nicht. Was viele auch nicht wissen: Die Manchester-Codierung
ist bei AM-Modulen Pflicht.
Die FM-Module sind eindeutig besser - das ist Prinzipbedingt und das
kann ich auch bestätigen. Bis zu 9600 Baud habe ich hinbekommen, aber
dafür hat die Sender-/Empfänger-Kombination 65 Euro gekostet.

@maruu:
Ich benutze einen kleinen Trick, um mir die Arbeit zu erleichtern: Ich
wandele das zu sendende Byte in 2 Byte Manchester um (aus "0" mach
"01" und aus "1" mach "10") und sende es dann weiterhin über den
normalen UART. Die Start-und Stop-Bits stören da nicht weiter. Der
Vorteil des Hardware-UART liegt in der besseren Störfestigkeit
gegenüber einer Software-Lösung, beim Atmel beispielsweise wird der
Port mit 16-facher Frequenz gescannt und eine Fehlerbehandlung
gemacht.
Auf der Empfänger-Seite hat man dann auch einen Vorteil: Solange man
"01" und "10" - Pakete empfängt, ist alles in Ordnung. Sollte mal
"00" oder "11" vorkommen, hat man einen Fehler in der Übertragung
entdeckt. So kann man sich sogar die Prüfsumme sparen. Ich nutze die
Manchester-Codierung sowohl im Funk- als auch im Powerline-Modem
Bereich mit Erfolg.

von Maruu (Gast)


Lesenswert?

Hallo!

Hab so nen ähnlichen Beitrag von dir schon gelesen, danke. Das is echt
interessant das mit dem Manchester over UART.
Hab mir das auch schon überlegt. Aber ich hab da so meine Gedanken
dazu. Ich will auch die UART und das mit dem Manchester benutzen aber
ich will nen Interrupt auslösen wenn ein Byte empfangen wurde (das
macht der PIC z.B. sonst muss ich Polling machen und das is zu
Rechenzeitaufwendig), aber wenn jetzt rauschen und co auftritt dann
interpretiert das der µC evt doch falsch und löst nen Interrupt aus
oder wie is es bei dir gibt es da Fehler bei der Übertragung??

MFG

Hannes alias Maruu

von thkais (Gast)


Lesenswert?

Ja, das Rauschen. Ist ein nettes Problem, kann aber auch per Software
bewältigt werden.
Um hinter den Grund des Rauschens zu kommen, muß man sich erstmal das
Prinzip der AM-Funkübertragung zu Gemüte führen. Bei AM ist die
Lautstärke für "0" oder "1" auschlaggebend. Dies hat den Nachteil,
daß ein Sender auch dann "leiser" wird, wenn er sich entfernt. Um nun
überhaupt größere Distanzunterschiede relaisieren zu können, werden
sog. "Pendelempfänger" genutzt. Diese stellen sich auf
unterschiedliche "Lautstärke"-Verhältnisse ein - ähnlich wie eine
automatische Aussteuerung bei der Aufnahme von Kassetten.
Nun hat das einen Nachteil: Sendet man z.B. sehr viele "0"
hintereinander, erkennt der Empfänger irgendwann nicht mehr, was nun
gesendet wird - weil er keinen Bezug zwischen "0" und "1"
herstellen kann. So, nun kommen wir zu des Pudels Kern: Viele AM-Sender
sparen sich das Senden einer "0" und schalten einfach ab. Eine "1"
bedeutet, daß er sendet. Wird nun eine Zeitlang nicht gesendet,
schraubt der Empfänger seine Empfindlickeit immer höher - und damit
bekommt man das Rauschen am Ausgang des Empfängers. Man muß also zu
Beginn einer Übertragung den Empfänger "trainieren", damit er sich
auf die aktuelle Lautstärke des Senders einstellen kann. Ich sende
hierzu eine "1" für eine Dauer von 5 Bits - das sorgt dafür, daß der
Empfänger aufwacht und sich einpegelt. Diesen langen Impuls frage ich
auf der Empfänger-Seite ab, so kann man zwischen Rauschen und
Nutzsignal unterscheiden. Es gibt nur noch ein Problem: Die Logik des
UART ist üblicherweise genau andersrum - Ruhepegel ist "1". Deshalb
einen Inverter vor den Sender schalten, bei dem Empfänger ebenfalls.
Dies ist aber abhängig vom Funkmodul - die bisher von mir benutzten
benötigten diesen Kunstgriff.
Ich sende also zuerst einen 5 Bit langen Impuls, dann eine 1-Bit Pause,
anschließend schalte ich den UART-Sender ein und sende meinen
Manchester-Code. Im Empfänger scanne ich den RXD-Pin "von Hand",
empfange ich eine fallende Flanke, starte ich einen Timer, den ich bei
einer steigenden Flanke wieder stoppe. Ist der Wert des Timers > 4,5
Bit, habe ich den Synchronimpuls erkannt. Dann wird der UART-Empfänger
eingeschaltet und nimmt seine Arbeit auf.
Gehe am besten Schritt für Schritt vor - z.B. erstmal sicher den
Synchronimpuls erkennen, dann mal ein Byte senden und schauen, ob das
klappt - und dann immer mehr.

von Maruu (Gast)


Lesenswert?

aha des is ja schon mal interessant. Mhhm jetzt hab ich mir was
überlegt, ich will ja eine Bidirektionale Verbindung herstellen und
dazu benötige ich 2 Sender un 2 Empfänger je einen Sender und Empfänger
am PC und am Fahrzeug. Nun ist das Problem das beides auf der gleichen
Frequenz läuft und ich nicht vom PC zum Fahrzeug senden kann wenn
gerade das Fahrzeug sendet. Ich muss also Multiplexen und da hab ich
mir gedacht das ich immer ein Byte Sende, wenn dies auf der Gegenseite
angekommen ist schickt die Gegenseite das Byte wieder zurück dann
wieder zurück und immer hin und her. Und will nun einer der Beiden
Daten Senden wird einfach das zu Sendende Byte anstelle des unnützen
Bytes das bei keinem Datenverkehr gesendet wird gesendet. Bist du
mitgekommen?? So würden wenigstens keine Kollisionen auftreten. Oder
gibt es da was Besseres??

MFG


Hannes

PS: Dadürch würde der empfänger auch nicht ins Pendeln kommen da ja
immer was gesendet wird, lieg ich da mit meiner Vermutung richtig???

von thkais (Gast)


Lesenswert?

Das "Pendeln" kommt durch den Manchester-Code. Wenn Du permanent
sendest, kann eigentlich nicht viel passieren, da der Empfänger immer
"scharf" ist.
Was Du meinst, ist halbduplex-Betrieb. Diese Übertragungsart wird auch
in anderen Bussystemen angewandt. Am besten versendet man kurze
Datenpakete. Da Du nur zwei Teilnehmer hast, kannst Du die Adressierung
weglassen - das macht es etwas einfacher. So kann man, wie Du schon
richtig vermutet hast, so eine Art "Ping-Pong" spielen. Ich vermute,
daß Du verschiedene Informationen übertragen möchtest. Was die Sache
vereinfacht: Einen der Teilnehmer als "Master" = aktiv und den
anderen als "Slave" definieren. Der Slave sendet Daten nur auf
Anforderung des Masters. So sendet der Master dem Slave beispielsweise:
"Lese A/D-Wandler Kanal 1" und der Slave sendet im Anschluß den Wert
zurück, oder der Master sendet "schalte Relais 5 an" und der Slave
schickt eine Bestätigung - falls diese Bestätigung ausbleibt, muß der
Master die Übertragung wiederholen oder eine Fehlermeldung ausgeben.
Schwieriger wird es, wenn man gleichberechtigte Teilnehmer hat - d.h.
jeder der Teilnehmer kann von sich aus eine Datenübertragung beginnen.
Dies ist aber relativ kompliziert (gleichzeitiger Beginn von
Übertragungen muß festgestellt werden) und bei zwei Teilnehmern nicht
sinnvoll.

von Maruu (Gast)


Lesenswert?

mhhm des is jetzt ne gute Frage, also der gleichzeitige beginn würde mit
meiner Methode, die immer ein Byte hin und her schickt und nur der der
das Byte besitzt darf Senden, ausgeschlossen werden. Aber eigendlich
wollte ich vom Fahrzeug alle 50ms oder so 20 Byte senden und der PC
sollte nur Steuercomands an das Fahrzeug senden, aber die Idee das der
PC halt anfragt und das Fahrzeug nur zurücksendet is auch ned schlecht,
des würde viel Zeit ersparen zwecks alle Eingänge abfragen und die 20
Bytes senden. Mhhm is zwar ein bissle komplizierter zu realisieren aber
dann kann ich das ganze auch Modular halten das ich einfach eine
Interruptroutine schreib die dann die verschiedenen Sensoren aufruft
und die ergebnisse sendet. Ausserdem würde es viel Datenverkehr
einsparen und als Pingpong könnte ich ja immernoch ein Byte senden das
wäre denke ich dann ideal.

Also nochmal meine Idee, ich schicke immer ein Ping pong Byte rum,
derjenige der das Byte hat darf senden, z.B. ein Anfragebyte oder zwei,
er bekommt dann ein oder 2 Antwortbytes zurück und dann geht das
Pingpongbyte wieder weiter. So könnte auch das Fahrzeug anfragen
starten und würde Antworten vom PC empfangen können.
Die Bytes sind natürlich als Manchestercode codiert und hierdurch wird
dann die gleichstromfreiheit erzeugt.
Das Pingpongbyte könnte ohne Stoppbits und Startbits so aussehen
10101010 um auch hier gleichstromfreiheit zu bewahren.

Was hälst du von der Realisierung bzw noch is es ja ne Idee und was
könnte man verbessern???

MFG

Hannes

von thkais (Gast)


Lesenswert?

Hört sich gut an. Datenübertragung nur, wenn notwendig. Das Fahrzeug
kann ja als Antwort auf das "Ping-Pong"-Byte einen Status
zurücksenden, z.B. wenn ein Endschalter erreicht wird, so daß der
Master als nächstes die Eingänge abfragt.
Erhält der Master nach drei Anfragen keine Antwort, ist die Funkstrecke
abgerissen - genauso der Slave: Bekommt er für eine gewisse Zeit keine
Übertragung, werden die Fahrmotoren abgeschaltet - als
Sicherheitsabschaltung.
Noch etwas zu den Funkmodulen: Die Antenne ist wichtig (bei mir
funktionierts ganz gut mit einer Wurfantenne, aber ich habe keine hohen
Ansprüche an die Reichweite), noch wichtiger ist die
Spannungsversorgung. Wenn Du Einstreuungen des Controllers auf der
Versorgungsspannung hast (z.B. den hochfrequenten Takt) kommt es
garantiert zu Störungen. Großzügige Masseflächen auf der
Prozessorplatine (am besten 2-seitig mit einer großen Massefläche) wirk
da Wunder. Man kann natürlich auch alles auf Lochraster aufbauen - da
ist es aber Glückssache, ob man die Reichweite erreicht, die man haben
möchte. Außerdem alle Digitalchips mit je einem 100nF - Kondensator
direkt an den Spannungsversorgungspins versehen - das stabilisiert die
Versorgungsspannung.

von Maruu (Gast)


Lesenswert?

Das mit den Kondensatoren is klar, mhhm aber zur Antenne:

Ich hab ja ned so viel Ahnung von den Funkdingen welche Arten ANtennen
gibt es und was is ne Wurfantenne???
Wie lanbge sollte die ANtenne sein???

Kann ich da evt da Gehäuse nehmen oder eine Antenne die nach oben steht
oder irgendwie ne Leitung missbrauchen???

MFG

Hannes

von thkais (Gast)


Lesenswert?

Eine "Wurfantenne" ist einfach ein Stück Kabel. Die einfachste, aber
auch schlechteste Lösung. Länge: 17 cm (für 433 Mhz).
Dann gibt es noch Stabantennen, Stabkurzantennen mit Wendel...
Bei http://www.funkmodul.com gibts eine kleine Auswahl. Für meine
Zwecke hat die Wurfantenne immer gereicht.

von Maruu (Gast)


Lesenswert?

Hallo!

Muss die ANtenne 17cm sein???

Ich hab hier noch eine Handyantenne die is mit Magnetfuß ausgestattet
und ca 20cm hoch. Tut es sowas auch???

MFG


Hannes

von thkais (Gast)


Lesenswert?

Das paßt nicht. Die Handyantenne ist, unabhängig von der Länge, für ganz
andere Frequenzen ausgelegt. Probieren kannst Du es ja mal, aber
optimale Reichweite bekommst Du damit höchstwahrscheinlich nicht. Das
hat mit der Wellenlänge zu tun, üblicherweise benutzt man lambda/4
-Antennen, bei 433 Mhz sind das 17,3 cm. Lambda ist die Wellenlänge der
Funkwelle - 17,3 cm ist ein viertel davon. Für optimale Reichweite
müßte dann die Antenne noch abgestimmt werden - auf eine sog.
"stehende Welle". Aber dazu braucht man spezielle Meßgeräte.

von Maruu (Gast)


Lesenswert?

Ahhhso mhhm ok dannw erd ich des wenn ich die Funkmodule hab mal vorerst
mit ner Wurfantenne probieren.

MFG

Hannes

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.