- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: funk verschlüsselung

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    04.09.2005
    Beiträge
    30

    funk verschlüsselung

    Anzeige

    Praxistest und DIY Projekte
    ich möchte gerne 2 avrs über funk verbinden.
    das ganze soll aber mit mehreren auch gehen, ohne dass sie sich gegenseitig stören.
    wenn ich 10 mal das mit den 2 avrs mache und nur die 2 avrs miteinander in verbindung stehen sollten werden ja die anderen stören.

    wie kann man das richtig machen, ohne gleich den kanal wechseln zu müssen?

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    Da wirst du ein Protokoll brauchen.
    http://de.wikipedia.org/wiki/Netzwerkprotokoll
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Was hat das denn mit verschlüsselung zu tun?
    Aber egal.

    Entweder ein Protokoll und ein AVR ist der "Master", oder wenn das nicht geht (und so wird es bei dir wohl sein), auf Zufall setzen.

    Jeder bekommt eine Adresse.
    1 sendet zu 2.
    3 und 4 und 5 und 6 und 7 und 8 hören das. Die fangen für eine bestimmte Zeit schonmal nicht an zu senden. Die Länge der Datenpakete ist ja sicherlich vorhersehbar.
    2 sendet zu 1, das er ihn verstanden hat. Es kann ja auch sein, das 5 zufällig auch grade was senden wollte und nur Müll ankam.
    5 hat aber nicht gesendet und 2 hat alles empfangen und bestätigt das an 1.
    1 sendet das was er senden wollte.
    2 bestätigt den Empfang.
    1 gibt den Funk für andere wieder frei.

    Jetzt haben aber 1 und 5 gleichzeitig gesendet. Weder 2 noch 6 konnten es verstehen.
    1 und 5 bekommen innerhalb einer vorgegebenen Zeit keine Antwort.
    Jetzt kommt der Zufall ins Spiel.
    1 und 5 warten eine Zufallszeit bis sie wieder senden. Diese Zeit sollte sich aber nicht im mS-Bereich abspeilen.
    5 hatte Glück und seine Zeit war kürzer. Er sendet wieder alle (auch 1) hören das und warten wieder auf ein "Freizeichen".

    Das ganze entspricht schon einem kleinen Protokoll

    Je nach Funkmudol könnte man evtl auch einen ext. INT nehmen um auszuwerten, das grade was gesendet wird. So muss man nicht den ganzen Text auswerten, sondern nur drauf achten, ob man selbst gemeint ist. Ist vielleicht auch nicht verkehrt, um das Programm zur richtigen Zeit zu unterbrechen. Erstmal zwei Zeichen "Müll" senden und dann die Adresse.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    Du könntest mit einem "Master" die "Slaves" zyklisch abfragen und somit gleichzeitig deren Funktion feststellen. Antwortet einer nicht, wird nach einer TimeOut-Zeit die Abfrageschleife mit dem nächsten fortgesetzt.
    Wenn der "Ersatz-Master" merkt, daß er einige Zeit nicht mehr abgefragt wurde, kann er die "Master-Funktion" übernehmen.
    Ein "Neuer" wird z.B. durch Abfrage auf Nummer 0 erkannt (er wird sich vor TimeOut melden) und bekommt dann vom Master eine Nummer zugewiesen.
    Die eigentliche Übertragung würde ich wie bei einer RS232 byte-weise mit einem festgelegten Datensatz wie z.B. Start-/Kennungs-Byte, Nummer, Kommando, Daten, ... vornehmen (fast wie CAN, aber nur fast).
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.10.2004
    Ort
    Feldkirchen in Kärnten
    Beiträge
    203
    Warum nicht ein Tokenringnetz nachahmen? das dürfte doch das einfachste sein oder?

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    04.09.2005
    Beiträge
    30
    ich möchte ja char felder senden.
    geht dass, wenn ich am anfang jedes char feldes ein bestimmtes Zeichen setze und es dann nachempfang immer so filtere, dass es nur die Daten mit dem richtigen Zeichen weiterverarbeitet?

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    ich möchte ja char felder senden.
    Was sind Charfelder? Zeichenfelder?

    geht dass, wenn ich am anfang jedes char feldes ein bestimmtes Zeichen setze und es dann nachempfang immer so filtere, dass es nur die Daten mit dem richtigen Zeichen weiterverarbeitet?
    Das bestimmte Zeichen ist die Kenung des Empfängers?

    Aber pauschal kann man deine Frage mit JA beantworten.
    Ein AVR kann alles was man ihm beigebracht hat/programmiert hat.
    Den "Text", den du sendest, oder besser gesagt, der empfangen wird, kann ja in die einzelnen Buchstaben zerlegt werden. Den Aufbau des Protokolls bestimmst du ja.
    Du kannst ja *001# senden, um den Empfänger 1 anzusprechen.
    Und alle Zeichen zwischen * und # kann die Adresse des Empfängers sein. Egal wieviele Zeichen es sind. Also *1# und *AC45FA# können beides Empfängeradressen sein.

    Jeder Empfänger kann erstmal alles zwischen * und # auswerten und sehen ob er gemeint ist. Wenn ja, dann die Zeichen danach auswerten. Wenn nicht, dann weiter warten.

    Alles was passieren soll, gibst du ja im Programm vor!

    Deshalb solltest du nicht fragen, ob das geht, sondern eher fragen, welcher AVR diesen Tätigkeiten "gewachsen" ist.

    Solltest du jetzt tatsächlich diese Frage stellen, musst du aber noch dazu sagen, was der AVR sonst noch können soll. Nur Daten empfangen und senden kann ja nicht alles sein.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    04.09.2005
    Beiträge
    30
    solle vorerst so ein art kleines wörterbuch sein.
    über eine tastertur werden wörter eingegeben und mit vorhanden verglichen und entsprechendes über funk an ein AVR gesendent, der es dann auf ein lcd display ausgiebt.

    das ganze ist für ein programm in c++ für nen pc ungefähr so:

    Code:
    string eingabe;
    string s1[10];
    string s2[10];
    
    cout<<"Wort: ";
    cin>>eingabe;
    for(int i;i<10;i++)
    {
          if(eingabe==s1[i])
          { 
                cout<<s2[i]
          }
    }


    ich hab mir auch schon überlegt, welcher AVR ich verwenden soll.
    das wollte ich eigentlich in einen anderen thread fragen.
    wie viel solcher wörter kann ich max mit welchen AVR speichern.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Tastatur und LCD, da würde ich schonmal einen Mega8 empfehlen. Das Programm selbst benötigt ja auch etwas Speicher und dann kommt noch RS232 dazu.
    Allerdings nur, wen du ein "normales" Text-LCD haben willst. Ein grafisches braucht die 8 Datenbits. Und zwar zusammenhängend an einem Port. Das würde schon einen Mega16 bedeuten, weil der Mega8 zu wenig (zusammenhängende) Pins hätte wenn du Hardware-RS232 nimmst.

    Speichern kannst du die Wörter im SRAM oder EEPROM. Der SRAM ist nach jedem Reset gelöscht. Ist sicherlich nicht so virteilhaft. Im EEPROM bleiben sie dauerhaft (für einige viele Jahre zumindest) gespeichert.
    http://www.atmel.com/dyn/products/pa...&Direction=ASC <--- dort findest du eine Übersicht, welcher AVR wieviel Speicher hat.
    Ein Zeichen belegt ein Byte und damit kannst du ausrechen, wieviele Zeichen/Wörter(je nach Länge) du speichern kannst.

    Sollte keiner der EEPROMs groß genug sein, oder der AVR bei der EEPROM-Größe zu teuern sein, kannst du auch externen EEPROM verwenden. Dort gilt die gleiche Rechnung und die maximale Größe ist fast nur noch durch deinen Geldbeutel eingeschränkt.

    Ich hoffe, ich konnte erstmal halbwegs helfen. Wenn icht, dann weiter fragen. Irgendjemand kennt sicherlich die Antwort.

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    04.09.2005
    Beiträge
    30
    ich würde gerne einen externen eeprom mit mindestens 200kb verwenden.
    hab jetzt mal bei Reichelt geschaut, aber die haben viele verschiedene und ich weiß nicht, welchen ich brauche/besser ist.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen