Ich muss ein Sensornetzwerk aufbauen, das über einen einzigen RS485-Bus kommuniziert. Das Netzwerk könnte Dutzende von Knoten haben. Das Problem ist, dass ich den Zugriff auf den gemeinsam genutzten Bus kontrollieren und einen Weg finden muss, jeden Knoten zu adressieren, ähnlich wie bei TCP/IP. Jeder Sensor (wenn er ausgelöst wird) kann Daten asynchron an den Server senden.
Gibt es ein Protokoll für ein RS485-Netzwerk? Wenn ja, ist es kostenlos? Das Protokoll würde in einem Mikrocontroller implementiert werden.
Kann ich einen Controller mit TCP/IP-Stack verwenden?
Hat jemand ein solches Netzwerk entwickelt? Ich bin gespannt, ob mein Ansatz richtig ist, um zu wissen, ob es in Ordnung ist, diesen Weg fortzusetzen oder ob ich auf eine andere Technologie umsteigen muss.
Ich habe eine Demo zur Übertragung von TCP/IP über RS485 erstellt: https://github.com/dukelec/cdbus_doc
Das Protokoll auf RS485 ist CDBUS, das einen eigenständigen Controller verwenden könnte, um das Kollisionsproblem zu lösen, Sie können das CDBUS-Protokoll auch per Software implementieren oder sich einfach nicht um Kollisionen kümmern, Pakete erneut senden, wenn Datenverlust erkannt wurde.
Das CDBUS-Protokoll: https://github.com/dukelec/cdbus_ip
Das folgende Protokoll ist CDNET, es ähnelt dem UDP-Protokoll, Sie können UDP-Pakete von der MCU mit nur wenigen Codezeilen und ohne Bibliothek senden, benötigen jedoch ein Gateway, um CDNET in ein echtes TCP/IP-Protokoll zu übersetzen. Oder Sie können Ihr eigenes Protokoll definieren und es auf dem Gateway übersetzen.
Chris Stratton
CL.
Christian M
Benutzer76844
Tut
Tut
Tut
davidcary