Mahlzeit,
ich habe „ein paar“ Stunden in ein neues Projekt inverstiert. Ein Plattformunabhängiges quelloffenes selbstorganisierendes Mikrocontroller Netzwerk.
Das ganze ist noch in einem frühen Stadium
aber ein Testnetzwerk mit 8 Nodes läuft bei mir bereits.
Hier ein Bild von meinem momentanen Testaufbau:
Ich habe mir beim Chinaman 10 x STM32F103 besorgt (für zusammen 10EUR)
und teste im Moment nur mit einem Typ Hardware.
(die Eval-Boards haben je 3 UART-Ports)
Daten vom Netzwerk:
Max-Anzahl der Nodes : 254 (theoretischer Wert…da nicht getestet)
Max-Anzahl Ports pro Node: 8 (da bin ich mir noch nicht sicher)
Port-Typ : UART
Netzwerk-Topologie : beliebig
Grobe Funktionsweise:
Das routing wird dynamisch von den Nodes gehandelt somit kann man auch Nodes
oder Teilnetze im Betrieb verbinden oder trennen. Alle Nodes sind gleichberechtig (kein Master/Slave Aufbau). Jeder Node kennt die Netztopologie und kann Daten zu einem beliebigen anderen Node senden. Jeder Node hat auch eine einstellbare 8bit Group-Mask damit man eine ganze Gruppe von Nodes mit einer Nachricht erreichen kann.
Hier ein Bild von meiner Test Topologie (8 Nodes mit max 3 Ports):
Das Projekt ist ein 4 Schichten aufgebaut:
Layer-3: Application-Layer (Userprogramm)
Layer-2: Network-Layer (organisiert das Netzwerk)
Layer-1: Communication-Layer (handelt den Packet-Transfer im Netzwerk)
Layer-0: Hardware-Layer (übernimmt den Zugriff auf die Hardware)
Für eine Portierung auf eine andere Plattform (z.B. ATMega) muß nur Layer-0 angepasst werden. Dieser enthällt calls für die UART (Init, send_byte, receive_byte usw)
(Layer-1 und Layer-2 sind in standard Ansi-C geschrieben)
Layer-3 (die User-Application) muss vom Benutzer programmiert werden.
Hier steht drinn was der Node für Aufgaben hat, welche Daten er wohin sendet
und was er tun soll, wenn er Daten empfängt.
Nützlich wäre ein Portierung auf den PC damit man leichter Debuggen kann. Im Moment
nutze ich einen UART-Port von einem Node als normale UART zum PC,
besser wäre es aber, wenn der PC ein Teil vom Netzwerk wäre.
Es gibt noch keine Doku und die Source ist noch voller debug code, aber falls
Interrese besteht oder jemand mehr erfahren will, schreibt hier einen Kommentar.
Gruß Uwe
Hi Uwe,
Welcome back;)
Hallo Uwe,
hört sich sehr spannend an. Ich wäre sehr an weiteren Infos interessiert.