Forum: Mikrocontroller und Digitale Elektronik RS232 per ASK 433Mhz Funk


von Erich (Gast)


Lesenswert?

Hallo!

Ich möchte gerne 2 µC per 433MHz ASK Funk mit dem RS232 Protokoll 
miteinander kommunizieren lassen.

Nun habe ich mir von RS-Componentes diese besagten ASK Funkmodule 
bestellt und erstmal angeschlossen und ausprobiert, am Empfänger kommen 
schon so sehr sehr viele Störungen an, und ich wollte mal Fragen ob das 
schonmal jemand probiert hat, und wie ich diese Störungen umgehen kann 
um trotzdem eine stabile ordentliche Verbindung erreichen zu können?

danke!

MfG
Erich

von Hc Z. (mizch)


Lesenswert?

Erich schrieb:
> stabile ordentliche Verbindung

und

> per 433MHz [...] Funk

widerspricht sich.

Du kannst nur ein fehlertolerantes Protokoll drüberlegen und für den 
Fall, dass zeitweise nichts durchkommt, Vorsorge treffen.

von Erich (Gast)


Lesenswert?

Heißt also RS232 kann ich nicht direkt übermitteln sondern muss es zuvor 
codieren und danach wieder decodieren, seh ich das so richtig ? Oder 
ists per RS232 garnicht zu machen?

von Hc Z. (mizch)


Lesenswert?

Du musst Deine Nutzdaten irgendwie verpacken, damit Du sie hinterher auf 
Richtigkeit überprüfen kannst, jedenfalls wenn Du sicher sein willst, 
dass Du keine falschen Daten weiter verarbeitest.  Wenn Du auch sicher 
sein willst, dass alle Daten ohne Verlust auf der anderen Seite 
ankommen, musst Du weiteren Aufwand treiben - von Vorwärtskorrektur bis 
zur Sendewiederholung, je nach Anforderung.

Mit RS232 hat das wenig zu tun.  Das ist nur eine Pegel- und 
Leitungsfestlegung für serielle Daten, über das Datenformat und die 
Integrität der Daten sagt RS232 nichts aus.

Schau mal in die Codesammlung hier.  Wenn ich mich richtig erinnere, 
müsste sich dort eine fehlerabgesicherte Übertragung mit den 
RFM12-Modulen befinden.  Ich kenne sie allerdings nicht genauer und kann 
zu den Eigenschaften nichts sagen.

von Erich (Gast)


Lesenswert?

Ja die Codesammlung habe ich schon durchgeschaut und diese übertragung 
mit den RFM12 Modulen gefunden, nur hab ich ja diese leider nicht.

Naja dachte deshalb RS232 da das ja gleich im µC integriert ist und es 
das vereinfacht hätte ;)

Das heißt also ich muss einen fehlersicheren code finden, bzw. mit dem 
ich festellen kann wenn ein Fehler aufgetreten ist, um eine Anforderung 
zur Wiederholung der Sendung zu geben, richtig? Welcher Code bietet sich 
hierfür an? hast du da einen Vorschlag ?

Danke

von Hc Z. (mizch)


Lesenswert?

RS232 ist nicht im µC integriert.  Du verwechselst das mit asynchroner 
serieller Übertragung.  Kein mir bekannter µC liefert RS232-Pegel.

Ich habe vor über 10 Jahren, als 2,4 GHz noch leer war, mal was mit 
serieller Übertragung samt Absicherung gemacht, seither nicht mehr.  Je 
nach Anforderungen lässt sich der Aufwand fast beliebig hoch schrauben. 
Z.B. reicht es zur Übermittlung einer Temperatur aus, durch CRC o.ä. 
abgesicherte Telegramme zu senden; der Verlust eines oder mehrerer 
Telegramme lässt sich verschmerzen, solange nur ab und zu was Richtiges 
durchkommt.  Willst Du dagegen eine Datei übertragen, musst Du quittiern 
und landest schnell bei Fensterprotokollen mit Paketdurchnummerierung 
und allem PiPaPo.  Echtzeit kannst Du grundsätzlich vergessen, denn im 
433-MHz-Band (und Funk generell) darf jeder Dich stören - und sei es nur 
der Wettergott mit seinem Blitz - und Zeiten lassen sich deshalb sowieso 
nicht garantieren.

Wer Funk kennt, nimmt Kabel.

von Erich (Gast)


Lesenswert?

Wohl wahr, ich meinte nur das normale Serielle Protokoll, also zb. 
Startbit 8-bit parity bit - 1-2 Stop bits

Die Pegel sind natürlich nicht richtig, die der µC ausgibt, dazu ja zb. 
der MAX232

Naja es geht drum Text zu übermitteln, zeitkritisch ist das nicht, aber 
es sollte hald auch nichts verloren gehen. Das sollte doch per 433Mhz 
noch funktionieren, soweit ich das beurteilen kann oder doch nicht ?

von Hc Z. (mizch)


Lesenswert?

Zur sicheren Übermittlung von Text brauchst Du ein Protokoll, das mit 
Quittierung arbeitet und verlorengegangene Fragmente wiederholen kann. 
Weniger geht nur, wenn Du mit Verlusten von Textteilen leben kannst.

von Erich (Gast)


Lesenswert?

naja nein, mit Verlusten von Textteilen kann ich garnicht leben, kennst 
du ein Protokoll das dies schon so vorsieht ?

Ich weiß, das ist eine andere Welt aber wie ist es bei Handys beim SMS 
empfang, wird vom Server da auch eine wiederholung der Sendung 
angefordert, falls da ein Fehler passiert oder wie?

von Hc Z. (mizch)


Lesenswert?

Ich weiß nicht, wie das genau bei Mobiltelefon-SMS abläuft, aber eine 
abgesicherte Übertragung mit Quittierung ist es sicher.  Bei der 
Handy-Sprachübertragung dürfte dagegen eine Wiederholung sinnlos sein 
und eine Vorwärtskorrektur ausreichen.

Bei der Suche nach Protokollen kann ich Dir leider nicht behilflich 
sein, dazu sind meine Erfahrungen zu lange her.

Nachtrag:  Möglicherweise sind die Packet-Radio-Protokolle eine 
Möglichkeit, weitere Informationen zu beziehen.  Ihr Aufwand hält sich 
in Grenzen und eine gesicherte Punkt-zu-Punkt-Verbindung stellen sie 
her.  Schau mal nach AX-25 (WIMRE).

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Du kannst mit den Modulen schon arbeiten...

Kläre erst mal, wie lange Du senden darfst (TX ist HIGH, wenn vom UART 
nichts gesendet wird und das 433MHz-Modul wird immer senden.). Welche 
Baudrate können Sender und Empfänger vertragen ?

Dann must Du die Daten etwas ändern. Du kannst nicht Zeichen senden mit 
4 oder 5 gleichen Bits in Folge, da kommt es zu Störungen. Ich mache es 
so, daß ich jedes Bit Nutzdaten in 2 Bit (10 oder 01) Sendedaten 
umwandle (das ist dann nah am Manchester-Code), so daß ich fleißig 
Bitwechsel erzeuge. Dtart- und Stop-Bits stören das auch nicht mehr 
groß.

Dann bildest Du eine Prüfsumme, die Du mit überträgst, um notfalls das 
ganze Telegram zu verwerfen (die Bitfolge 01 oder 10 gibt auch schon 
etwas Schutz vor Fehlern beim Empfang).

Und ich sende am Anfang der Übertragung immer 2-3 typische Zeichen, auf 
die der Empfänger wartet.

Ich schalte den Sender auch immer aus, wenn ich ihn nicht brauche. Da 
muß man nach dem Einschalten eine passende Zeit warten, bis der Sender 
funktioniert.

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.