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
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.
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?
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.
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
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.
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 ?
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.
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?
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).
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.