-
        

Ergebnis 1 bis 8 von 8

Thema: McNet - Bascom Microcontrollernetzwerk V0.1

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342

    McNet - Bascom Microcontrollernetzwerk V0.1

    Anzeige

    Hallo,

    nach langer Arbeit kann ich die erste Version meines Microcontrollernetzwerks vorstellen.

    Grundsätzlich kann man damit Daten mit wenig Aufwand zwischen µCs (und PCs, dazu später) austauschen.

    Als Transportmedien sind bisher TWI und UART (Layer 0) implementiert. Diese haben die Aufgabe, Daten binär zu übertragen und sicherzustellen, dass diese auch ankommen.
    Beim UART geschieht dies mit CRC8-Prüfsumme, ACK/NACK und Timeout, beim TWI mit CRC8-Prüfsumme und ACK/NACK.
    Pro µC können mehrere Layer0 (Subnets) aktiv sein.
    Weitere Transportmedien sind angedacht, zb. RFMxx-Module, SPI, etc.

    Das eigentliche Netzwerk bildet der Layer 1, er fasst alle Layer 0 einheitlich zusammen, jeder µC (Node mit McNet) bekommt eine globale Adresse zusätzlich zur lokalen Subnetaddresse (bei TWI), kümmert sich um das Routing, den Adressaustauschprozess (Beim PowerUp wissen die Nodes nichts voneinander), das Finden der effizientesten Routing-Strecke und die Übertragung von Binärdaten.
    Das Ganze ist auch noch HotPlug-fähig, d.h. die Nodes können in beliebiger Reihenfolge ein- und ausgeschaltet, resettet oder an- und abgesteckt werden.
    Zusätzlich werden hier auch TWI-Slaves integriert (als Netzwerk-Node).

    Zum Schluss kommt der Application-Layer 2, der ein Kommando und die Auftrennung in Datentypen ermöglicht und somit ein einfaches Interface zur Kommunikation bereitstellt.

    Durch die Aufteilung in 3 Schichten mit jeweils eigenen Datenpuffern ergibt sich auch eine Warteschlange, sollte der darunterliegende Layer beschäftigt sein.

    Die 2 Beispiel-Nodes senden sekündlich einen Ping zum anderen Node bzw. fragen die Richtung von einem CMPS03-Kompass ab.
    Getestet auf 2-3x Mega32, verbunden über TWI oder UART.

    Zur Zeit arbeite ich noch an einer Implementierung in VB.net mit serieller Verbindung, die auch schon größtenteils funktioniert, aber leider noch nicht ganz... Bei Interesse kann ich diese aber gerne posten.

    Im Archiv befindet sich außer McNet noch meine bereits hier vorgestellte Timer Library sowie MyTWI von PicNick ( http://www.rn-wissen.de/index.php/TW...is_Multimaster ).

    Wie der Titel schon sagt, handelt es sich hier um Version 0.1, also erhebe ich weder Anspruch auf Vollständigkeit noch Richtigkeit und bitte daher um Tester.
    Schreiben könnte ich noch viel, beantworte aber lieber gezielte Fragen

    mfg
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Wozu das ganze?

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342

    Re: McNet - Bascom Microcontrollernetzwerk V0.1

    Zitat Zitat von Netzman
    Grundsätzlich kann man damit Daten mit wenig Aufwand zwischen µCs (und PCs, dazu später) austauschen.
    Geschrieben hab ich das für meinen Roboter, auf dem eben mehrere µC sowie ein Industrie-PC werkeln.

    mfg

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Hallo,
    gefällt mir. Vor allem endlich mal wieder einen Source, der richtig kommentiert ist.
    Poste mir doch bitte das VB.net-Programm. Ich werde das hier auf alle Fälle ausgiebig testen.
    Peter
    _________________________________________________
    [-X Quis custodiet ipsos custodes
    Ground-Effect-Stability-Robot www.peter-holzknecht.de

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342
    PC-seitig muss ich noch den Layer2 implementieren, was ansich keine große Hexerei ist, aber wozu ich wohl wegen anstehenden Prüfungen erst nach dem Wochenende kommen werde, ich bitte solange noch um Geduld

    mfg

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342
    Hallo,

    hier ist nun der in Vb.net implementierte PC-Client mit Layer2. Ich habe leider noch immer nicht die seriellen Übertragungsprobleme in den Griff bekommen.

    Diese treten bei mir auf, wenn sich der PC zum zweiten mal mit dem µC verbinden, ohne das das gesamte Netzwerk resettet wurde (also alle Nodes).
    Auch wenn ich den CMPS03 abfrage tritt der Fehler sporadisch auf.

    Getestet habe ich das mit beiden M32, einer mit 16Mhz Quarz und einer mit einem Baudratenquarz (14,7456Mhz), bei beiden das selbe Verhalten.
    Auf der PC-Seite habe ich einen USB-4xRS232 Wandler (inside-out networks Edgeport) unter Win7, mit einem anderen PC habe ich noch nicht getestet, hatte mit dem Gerät aber bisher keine derartigen Probleme.

    Der Code ist leider auch noch nicht so schön kommentiert wie der für die µC, ist diesem aber recht ähnlich.

    Der Client kann einen "Ping" senden, der µC antwortet darauf mit "Pong" (String), den Kompass CMPS03 abfragen und eine Zahl als Byte, Word, Long, Single oder Double an einen Node senden.
    Der (im Archiv enthaltene, angepasste) Node 102 sendet das Ergebnis einfach 1-1 zurück.

    Danke fürs Testen,
    mfg
    Angehängte Dateien Angehängte Dateien

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342
    Hallo,

    konnte das irgendjemand testen?

    mfg

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    habs noch nicht getestet, aber eine Anregung hab ich schon, für Übertragungsfehler kannste noch den Framing Error Flag auswerten.

    Ansonsten: Ein Musterbeispiel an Übersichtlichkeit und Kommentaren!! RESPEKT

    =D> =D> =D> =D> =D> =D> =D> =D> =D> =D>
    Vor den Erfolg haben die Götter den Schweiß gesetzt

Berechtigungen

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