Ich habe mir aus China eins dieser billigen 433 MHz Sender/Empfängerpaare besorgt (der Empfänger ist keines dieser schrottigen Audions sondern ein Superhet, also schon was besseres). Was wäre denn so das einfachstmögliche Protokoll für den Start, nur um ein 1/0 Signal zu senden? Ich habe mir überlegt: der Sender sendet ein fixes 1kHz Signal, eine Sekunde lang. Der Empfänger sucht nach einem 1kHz Signal. Aber wie sucht man nach einem Signal einer bestimmten Frequenz mit einem uC? Meine erste Idee wäre, den Empfänger an einen Capture-Pin anzuschließen und den uC die Zeit zwischen zwei steigenden Flanken messen zu lassen. Sobald sagen wir mal 100 Perioden nacheinander erkannt wurden schaltet er einen Ausgangspin. Könnte das hinhauen? Der nächste Schritt wäre dann ein komplexeres Protokoll, das Daten übertragen kann, evtl. mit Fehlerkorrektur. Gibts da eine Übersicht welche Protokolle es gibt? Oder kann mit jemand ein paar Protokolle nennen, am besten aufsteigend von einfach bis komplex?
Das ist eine unzureichend formulierte, unzureichend recherchierte Frage. Leider. Zunächst einmal ist der Ansatz, den Du Protokoll nennst lediglich die unvollständige Festlegung einer Zuordnung zwischen zwei Signalen. Genauer: Die Zuordnung zwischen einem von zwei möglichen Zuständen (0 oder 1) zu einem Vorgang (1 KHz Schwingung). Ein weiterer Zustand oder Vorgang fehlt. Und das ist noch kein "Prokotoll". Das sind zwar nur Konventional-Erbsen, aber sie können im weiteren wegen ihrer Fehlerhaftigkeit hinderlich werden. Bitte lies einmal unter: https://de.wikipedia.org/wiki/Netzwerkprotokoll was man unter einem "Protokoll" üblicherweise versteht. Und nenne uns von der Liste https://de.wikipedia.org/wiki/Netzwerkprotokoll#Aufgaben_eines_Protokolls das, was Dein Protokoll eigentlich leisten soll. Übrigens ist die englische Wikipedia bei so etwas oft auch hilfreich.
Mein lieber Hanswurst, es scheint mir, als ob du einer von jenen bist, die gar kein Interesse daran haben, irgendjemandem zu helfen oder überhaupt irgendetwas Sinnvolles beizutragen, sondern den kleinsten Fehler in der Fragestellung als Anlass nehmen, den Fragesteller niederzumachen. Ich denke, meine Fragen waren so formuliert, Hanswurst, dass sie nur mit bösem Willen missverstanden werden konnten.
Hallo Rick Es gibt dieses 7 Schichten OSI Modell https://de.wikipedia.org/wiki/OSI-Modell 1. Die unterste Schicht ist die Hardware Layer, bei dir die Funkstrecke. 2. Die zweite Schicht ist das Sicherungslayer. Du definierst ein Byte für den Anfang und eins für das Ende, das sieht dann z.B. so aus: Anfang, Länge N, Checksumme, Daten[0] ..... Daten[N-1], ENDE 3. Vermittlungsschicht In den Daten[0...N-1] können wieder beliebige Informationen versteckt sein, wie z.B. woher, wohin... Es müssen nicht alle Schichten implementiert werden, Du könntest ein Byte als Datentyp definieren, damit lassen sich schon 256 verschiedene Typen darstellen. Es empfiehlt sich, den Inhalt dieser Datentypen systematisch/strukturiert aufzubauen. Gruß, Bernd
Siehe Dir mal den Artikel von Alberto Ricci-Bitti (Circuit Cellar) in der Link an: http://faculty.petra.ac.id/resmana/private/circuit-cellar/Wireless%20Monitoring%20System.pdf Dort wird eine Möglichkeit so ein Funkprotokol im Detail erklärt und anhand eines praktischen Projekts demonstriert. Die Original C Quellen sind hier erhältlich: ftp://ftp.circuitcellar.com/pub/Circuit_Cellar/2004/167 Vor Jahren portierte ich seine 68HC908 Quellen auf PIC und adaptierte sie für meine eigenen Zwecke für eine kleine Telemetrieanwendung und hatte damit sehr gute Ergebnisse. Die Radioverbindung ist ziemlich robust mit seinem Verfahren. Als Radios verwendete ich allerdings die TXM und RXM Module der Firma Linx welche aber mit Deinen ähnlich sind und nichts am Prinzip ändert. Die von mir adaptierten PIC Quellen für mein Referenz Design kann ich Dir überlassen. Für den Sender nahm ich einen 12F864 oder 16F684( kann mich nicht mehr erinnern ) im 14-pin DIP Gehäuse. Für die Empfangsdekodierung und Terminal Interface dient ein gerade vorhandener 16F877A in einer einfachen Bord. Die zeitkodierten Sender Bits werden von einer 10kHz ISR mit Störfilter abgetastet und ausgewertet und die Radio Baudrate liegt bei mir um ca. 1kB/s. Das Datenpaket ist als Struktur verschiedenster Datenlänge ausgeführt und hat 64bit mit Checksumme.
:
Bearbeitet durch User
Rick Sanchez schrieb: > Der nächste Schritt wäre dann ein komplexeres Protokoll, das Daten > übertragen kann, evtl. mit Fehlerkorrektur. Gibts da eine Übersicht > welche Protokolle es gibt? Guck mal im Internet danach, wie in den 80er jahren der ZX-Spectrum seine Daten auf Audiokassette gespeichert und wieder gelesen hat. das war - wenn ich mich recht erinnere etwa so: - Präambel mit einer bestimmten Frequenz - Startpuls mit deutlich kürzerer Zeit - Datenblock mit Bitkennung durch Einzelpuls lang oder kurz was man dann in so einem Datenblock an höheren Dingen tut (z.B. Adler32) ist ne andere sache. W.S.
W.S. schrieb: > Rick Sanchez schrieb: >> Der nächste Schritt wäre dann ein komplexeres Protokoll, das Daten >> übertragen kann, evtl. mit Fehlerkorrektur. Gibts da eine Übersicht >> welche Protokolle es gibt? > > Guck mal im Internet danach, wie in den 80er jahren der ZX-Spectrum > seine Daten auf Audiokassette gespeichert und wieder gelesen hat. das > war - wenn ich mich recht erinnere etwa so: > - Präambel mit einer bestimmten Frequenz > - Startpuls mit deutlich kürzerer Zeit > - Datenblock mit Bitkennung durch Einzelpuls lang oder kurz Da hat ja Alberto auch so gemacht. Logik 1 = 333us, Logik 0 = 670us. Es lohnt sich bestimmt sich anhand dieses Artikels mit der Materie zu beschäftigen. Durch praktische Einarbeit gewinnt man auch Einblick. Ganz wichtig ist der Präambel um den Daten Bit Slicer der üblichen Schaltungen zu "trainieren" damit sich am Comparator die richtige Referenzspannung einstellt. > > was man dann in so einem Datenblock an höheren Dingen tut (z.B. Adler32) > ist ne andere sache. > > W.S.
Rick Sanchez schrieb: > Mein lieber Hanswurst, es scheint mir, als ob du einer von jenen bist, > die gar kein Interesse daran haben, irgendjemandem zu helfen oder > überhaupt irgendetwas Sinnvolles beizutragen, sondern den kleinsten > Fehler in der Fragestellung als Anlass nehmen, den Fragesteller > niederzumachen. Ich denke, meine Fragen waren so formuliert, Hanswurst, > dass sie nur mit bösem Willen missverstanden werden konnten. Was erweckt in Dir diesen Anschein? Die Frage nach einer Übersicht über Protokolle habe ich beantwortet, in dem ich Dir einen Link auf den Wikipedia-Artikel gegeben habe. Danach hattest Du ja auch gefragt. Einen bösen Willen kann ich, insbesondere weil meine Kritik sachbezogen war, hier nicht erkennen. Persönliche Angriffe liegen nicht vor - nicht einmal unterschwellig. Ich weise daher die Unterstellung entschieden zurück. Es sei denn Du kannst mir überzeugend konkret belegen worin genau ein "niedermachen" ausgedrückt wird. Ein sachliches Urteil, auch wenn es Dir nicht gefällt oder sogar falls es falsch ist, ist noch kein "niedermachen". Das ist Unsinn.
Rick Sanchez schrieb: > Was > wäre denn so das einfachstmögliche Protokoll für den Start, nur um ein > 1/0 Signal zu senden? Ich habe mir überlegt: der Sender sendet ein fixes > 1kHz Signal, eine Sekunde lang. Der Empfänger sucht nach einem 1kHz > Signal. Aber wie sucht man nach einem Signal einer bestimmten Frequenz > mit einem uC? Meine erste Idee wäre, den Empfänger an einen Capture-Pin > anzuschließen und den uC die Zeit zwischen zwei steigenden Flanken > messen zu lassen. Sobald sagen wir mal 100 Perioden nacheinander erkannt > wurden schaltet er einen Ausgangspin. Könnte das hinhauen? Falls Du nur mit einem 1Khz Ton was steuern möchtest kann man das wie von Dir vorgeschlagen mit dem Capture/Timer Subsystem eines uC verwirklichen und ist überhaupt kein Problem. Übrigrens mußt Du noch wissen, dass solche einfache "rohe" Empfänger ohne Eingangssignal nur randomierte digitale Rauschsignale produzieren. Deshalb ist auch der Präambel so wichtig. Aus diesm Grund sind UART Peripherien für Radio Zwecke vollkommen ungeeignet für die Dekodierung der Daten. Es geht aber übrigens in diesem Fall noch einfacher ohne uC: Mit dem NE567 PLL IC könnte man das 1kHz signal eindeutig erkennen und damit einen Schaltausgang zur Verfügung zu haben. Man kann mehr wie einen 567 verwenden. Holtek hat auch einige Chipsets die für Fernsteuerungen geeignet sind. Für Datenübertragungen ist der Circuit Cellar Artikel ein zuverläßiger Einarbeitungs Artikel und war mir zumindest auch sehr nützlich. Lese ihn Dir wenigstens durch. Viel Erfolg und Spaß! Grüße, Gerhard
:
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.