Forum: Projekte & Code TX RX Manchester 433MHz 868MHz Beispiele ATmega8 1MHz Assembler


von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Ein paar einfache Beispiele, wie mit einer Manchester-Codierung Daten 
übertragen werden können.

Es gibt mehrere Möglichkeiten Daten zu übertragen, hier stelle ich eine 
Stanard Manchester-Codierung nach "Hausfrauenart", also einfach und 
unkomliziert, vor.

Der Gleichspannungsanteil der Übertragung ist immer konstant, die 
Empfangsmodule mögen das so.

Die µC Takte, im Beispiel ca. 1MHz, müssen nicht exakt gleich sein, 
Quarze sind nicht zwingend erforderlich, der Empfänger AVR registriert 
und kompensiert Taktungenauigkeiten.

Prinzip Sender :

1. Einschwingphase, das Vorspiel, der Empfänger wird auf ankommende
   Signale vorbereitet, mehrfach kurzzeitig HF ein/aus.
2. Null-Synchron-Bytes 4 Bytes werden gesendet, damit der Takt des
   Empfängers synchronisiert werden kann.
3. Kennung senden 1 Byte
4. Nutzdatenbytes senden 10 Bytes
5. Mehrmalige Wiederholung Schritt 1-4

Der Sender ist auf vom Prinzip her schon auf "Power save Modus" 
vorbereitet mit wenigen µA Stromaufnahme, geeignet für einen 
Batteriebetrieb.

Prinzip Empfänger (Samplingverfahren):

Permanent tastet ein 8-Bit-Timer das Ausgangssignal des Empfängermoduls 
ab, erkennt der µC Synchronbytes, legt er alle weiteren 256 
Sampling-Bits im SRAM ab.

Ist dieser Vorgang abgeschlossen, wird eine bestimmte Bitfolge (Kennung) 
im SRAM gesucht. Findet der µC die Kennung nicht, wird alles verworfen 
und sehnsüchtig auf die nächsten Eingangssignale gewartet, rote LED 
leuchtet.

Bei erfolgreicher Suche werden die folgenden Nutzdatenbytes übernommen, 
die grüne LED leuchtet kurz auf, ein CRC-Check ist in dieser Version 
nicht vorgesehen, aber empfehlenswert.

Bei jeder 2. Flanke syncronisiert sich der Empfangs-Timer erneut,
die gelbe LED flackert ganz aufgeregt.

Die empfangen 10 Nutsdatenbytes weren im Display angezeigt.

Stehen keine TX- und RX-Module zur Verfügung, nicht schlimm, eine 
Drahtbrücke ersetzt den HF-Übertragungsweg für Testzwecke^^

Hinweis: Es gibt Sendebestimmungen, nicht zu oft senden, sonst hat das 
Funkthermometer des Nachbarn keine Chance mehr.

Das ist kein fertiges Projekt,
es werden 10 Nutsdatenbytes gesendet 00h...09h.

Auf das LCD könnte verzichtet werden, die grüne LED leuchtet ja kurz 
auf, wenn Nutzdaten empfangen wurden.

Nachtrag: Manche Sendemodule benötigen nur eine Steuerspannung von ca. 
0.8V bei 5V sind die Schwingbedingungen des Oszillators nicht erfüllt.
https://www.mikrocontroller.net/attachment/470077/TX_Modul.png

Die Empfangsmodule können sich auch sehr seltsam verhalten, ist z.B. die 
Antenne zu lang, dann schwingen die Empfänger besser als die Sender :-)

Bernhard

: Bearbeitet durch User
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.