- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 15

Thema: Netzwerkprotokoll im kleinen Maßstab

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.08.2012
    Beiträge
    24
    Zuerst mal vielen Dank für die schnelle Antwort!

    Ich konnte heute in der Schule noch ein wenig darüber nachdenken und einen ungefähren Plan entwerfen wie ich meine Drahtloskommunikation aufbauen könnte. Wenn ich das jetzt mit deiner Antwort (den verschiedenen Schichten) kombiniere, kommt etwa folgendes heraus:

    An jede Station kommt (oder ist bereits) ein Microcontroller, der an zwei seiner Pins mit einer Antenne, die auf 2 verschiedenen Frequenzen senden kann, verbunden ist. Die erste Frequenz (die ruhig niedrig sein kann) ist für die Synchronisation der Pakete und die zweite für den Inhalt. Dadrin wären dann quasi Schicht 1 und 2:
    Wenn ich einen bestimmten Controller ansteuern will, baue ich zuerst das zu schickende Paket. Dazu schreibe ich in den Header die Nummer, die ich vorher an der anzusteuernden Platine eingestellt habe (ist sozusagen die IP-Adresse der Platine, und die ist mit einem Kodierschalter einstellbar). Außerdem kommt die Nummer des Absenders hinein. Dann kommt der Bytecode und am Schluss noch eine Prüfsumme. Dann wird geprüft ob die Hauptleitung (Frequenz 2) gerade frei ist und gegebenfalls gewartet. Ist jedoch gerade kein Funkverkehr, wird ein kurzer Impuls auf der Nebenleitung (Frequenz 1) gesendet und somit alle Empfänger aufmerksam gemacht (z.B. durch ein Interrupt; der Funkverkehr ist in diesem Moment für die anderen gesperrt). Dann wird der Header gesendet (evtl. sogar mit eigener Prüfsumme?) und der entsprechende Empfänger weiß, dass er gemeint ist. Die anderen Empfänger gehen dann wieder in den Standby. Als nächstes wird der Content gesendet und anschließend die Prüfsumme und dann gewartet. Der Empfänger wertet die Daten aus und liefert im Normalfall einen Erfolgscode zurück an den Absender. Falls er das Paket nur fehlerhaft erhalten hat (und das an der Prüfsumme merkt), gibt es einen Errorcode und das Paket wird erneut gesendet. Wenn es beim x-ten Senden (muss man ausprobieren wie oft) nicht ankommt, wird abgebrochen.
    Wenn das Paket erfolgreich übermittelt wurde, und der Erfolgscode beim Absender angekommen ist, sendet dieser erneut einen Impuls auf der Nebenfrequenz und der Funkverkehr ist wieder entsperrt.

    Ich wollte jetzt fragen, wie ihr Experten das seht. Kann man das so machen; rein vom Zeitaufwand her ist es kein so großes Problem, ich würde sagen maximal 2-3 Wochenenden und fertig ist das Projekt.

    Danke schonmal im Voraus
    Gruß Technipion

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Waaaaaaaait: Vergiss es. Einfach Drähte an einen µC anschließen macht noch keine Funkverbindung! Du willst dir Funkmodule kaufen. Günstig und recht weit verbreitet sind die RFM12 von Pollin. Die kümmern sich dann für dich komplett um Schicht 1. Ach ja: 2 bis drei Wochenenden ist ... optimistisch. Irgendwas geht immer schief

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    29.08.2008
    Beiträge
    73
    Hey,

    unabhängig davon wie deine Hardware aussieht (davon haben hier viele mehr Ahnung als ich) würde ich an deiner stelle über ein Token-Ring-Verfahren nachdenken. Das macht die Frage wer was sendendarf recht einfach. Dabei darf immer nur ein Teilnehmer senden. Und dieser sendet immer an den, der in der Reihenfolge als nächster kommt. So schickst du immer alle Daten in gewissen Intervallen im Kreis, das erzeugt zwar recht viel Datenverkehr, aber du kannst sehr leicht sagen: Wenn der Vorgänger fertig ist bin ich dran. Und für deine Anwendung reicht es sicher wenn so eine Runde alle paar Minuten gesendet wird.
    Ich hoffe das hilft dir weiter.

    Gruß Elchimtr

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    15.08.2012
    Beiträge
    24
    Hey danke für die Antworten,
    ich meinte natürlich nicht, direkt die Antennen an die Pins anzuschließen, sondern eine externe Sende- und Empfangsschaltung. Aber die Funkmodule die markusj vorgeschlagen hat funktionieren doch auch irgendwie. Wie stellen die eine fehlerfrei Bitübertragung her? Das könnte man doch dann in den Übertragunsalgorithmus integrieren...
    Das Token-Ring-Verfahren klingt auch nicht schlecht, allerdings ist mein Vorschlag von oben ja fast das gleiche, nur das ich damit in jedem Zyklus jeden beliebigen Zugriffspunkt ansteuern könnte.
    Und das 2 bis 3 Wochenenden optimistisch sind weiß ich auch, ich besitze was so etwas angeht aber auch viel Ehrgeiz
    Ich denke ich werde mich jetzt erst einmal an den Code und die Übertragungsmodule (vorerst ein einfacher Draht, danach erst Funk) setzen, und wenn ich fertig oder gescheitert bin mein Ergebnis hier posten.
    Ich danke euch allen schon mal für die Antworten und falls ich während des Bauens noch Fragen habe melde ich mich einfach wieder.
    Danke
    Gruß Technipion

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    @Token-Ring: Don't! Funk ist ein unzuverlässiges Medium, es macht mit Garantie einen Heidenspaß verlorenen Tokens hinterherzujagen ... Über Funk haben sich simple konkurrierende Zugriffsverfahren wie CSMA bewährt.

    @Fehlerfreie Funkmodule: Gar nicht. Du schiebst Bytes in den Sendepuffer, das Funkmodul sendet diese in den Äther und auf der Gegenseite empfängt ein Funkmodul meistens etwas, das eine hohe Ähnlichkeit mit dem hat, was ursprünglich Mal gesendet wurde. Die einfachen Funkmodule nehmen dir nur die Synchronisation und die eigentliche Datenübertragung ab (Schicht 1). Den Medienzugriff, Fehlererkennung und Behandlung musst du selbst implementieren. Und das ist schon mehr als genug.

    mfG
    Markus

    PS: Das mit den Datenverlusten ist leicht übertrieben dargestellt. Oft geht alles gut, selten gehen Übertragungen ganz verloren oder es gibt Bitmüll. Da du aber eine zuverlässige Übertragung haben möchtest, solltest du vom schlimmsten ausgehen

    PPS: Wenn du erst über Draht arbeitest: Plane von vornherein eine Abstraktion zwischen deinem Protokoll und dem Treiber für Schicht 1. Sonst musst du später alles Umstricken und Teufels Küche weil du Fehler nicht findest die durch die Modifikationen verursachst oder zutage förderst.
    Tiny ASURO Library: Thread und sf.net Seite

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    32
    Beiträge
    601
    @markusj: ist in diesem Fall überhaupt ein Zugriffsverfahren wie CSMA notwendig? Wie Technipion in seinem ersten Beitrag schreibt, hat er eine Hauptrecheneinheit (setze ich mal mit "Master" gleich) und mehrere "Slaves". Wenn nun der Master ein Telegramm per "Broadcast" aussendet (alle Slaves können ja die drahtlos übermittelte Information empfangen) und in dem Telegramm Fehlererkennungsinformationen (etwa CRC) mit drinstecken - wäre das nicht doch auch ausreichend?

    Der Slave könnte ja dann das Paket ACKnowledgen und ggf. Daten zurücksenden.

    Ich habe mal ein ähnliches Protokoll für ein halbduplex RS485 implementiert - wäre das nicht rein aus der Sicht des ATMega eine äquivalente Situation zu der hier dargestellten Funklösung (Single-Master, logischer Bus, ...)?

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Naja, theoretisch könnte man für Rückantworten einfach einen Zeitslot nach Senden des Paketes von der Master-Einheit reservieren, dann braucht man das nicht. Sollen dann aber einzelne Module selbst Ereignisse an den Master senden, muss dieser dann ständig die entsprechenden Module abfragen.

    Vieles ist auch eine Geschmackssache, wenn ich so etwas entwerfe, plane ich es oft im Hinblick auf eine Wiederverwendbarkeit bei anderen Projekten. Das macht beim ersten Mal etwas mehr Arbeit, dafür hat man danach dann aber Bibliotheken die für viele andere Anwendungsfälle ebenfalls eingesetzt werden können.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

Ähnliche Themen

  1. RC Hummer H2 Maßstab 1:6
    Von JellbieO im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 13
    Letzter Beitrag: 01.04.2009, 18:32
  2. Solid Edge Maßstab einstellen?
    Von daniel.weber im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 3
    Letzter Beitrag: 27.12.2008, 20:53
  3. Motorenansteuerung für kleinen Robo.
    Von Roberto im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 12.11.2007, 06:34
  4. Hilfe bei ner kleinen Schaltung!
    Von qEp im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 02.06.2007, 10:47
  5. LCD mit zu kleinen Pinabständen
    Von Cornholio im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 18.01.2006, 11:47

Stichworte

Berechtigungen

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

12V Akku bauen