Forum: Haus & Smart Home RS-485 Netzwerk für Mikrocontroller


von Peter S. (sengp) Benutzerseite


Lesenswert?

habe soeben ein Dokument ins Netz gestellt welches die Spezifikation und 
Implementierung eines nachrichtenbasierten Netzwerk-Protokolles, auf 
Basis von Punkt zu Punkt RS-485 Übertragungsstecken, beschreibt.

Die Nutzung für nicht kommerzielle Zwecke ist kostenfrei möglich, eine 
komfortable und weitgehendst kostenfreie Entwicklungsumgebung ist 
ebenfalls verfügbar.

Eckdaten:
- Netzwerktopologie kann als Linie, Ring oder Baum ausgeführt werden
- alle Teilnehmer sind gleichberechtigt, kein Token, kein Polling
- eine hohe Anzahl von Netzwerkteilnehmern ist möglich
- Abstand zweier Teilnehmer kann bis zu 1000m bei 115200 bit/s 
Übertragungsrate betragen
- vollständig RS-485 konforme, robuste Übertragungsstrecken
- Kommunikation belastet den Mikrocontroller (mit DMA) kaum
- Installation und Betrieb ohne Vergabe einer Busadresse oder 
Installation eines Busabschlusses
- einfache Lokalisierung eines defekten Knotens oder einer defekten 
Übertragungsstrecke
- Adressierung einzelner Knoten, von Gruppen oder Gerätetypen ist 
möglich
- innerhalb eines Netzwerkes Betrieb von Übertragungsstrecken mit 
unterschiedlichen Übertragungsraten
- keine speziellen Halbleiter notwendig
- integrierter USB Anschluss / Access point im Netzwerkknoten
- Software Development Kit und Demo-Baugruppe verfügbar
- komfortable und kostenfreie Entwicklungsumgebung verfügbar
- nicht kommerzielle Nutzung ist kostenfrei möglich
- offengelegte Spezifikation
- Anwendungsgebiete: Steuerungstechnik, Gebäudeautomation, ...

Beschreibung und Dokumentation unter:
http://seng.de/technologie/link-network-protocol/

Beschreibung der Lizensierung unter:
http://seng.de/technologie/lizenzierung/

Beschreibung Software Development Kit unter:
http://seng.de/produkte/sdmn-devkit/
http://seng.de/produkte/sdmn-devkitpro/

Beschreibung Demo-Baugruppe unter:
http://seng.de/produkte/sdmn-0002c3/

Beschreibung Entwicklungsumgebung unter:
http://seng.de/technologie/toolchain-stm32/

Steuerung mit (teil-) integrierter Netzwerkfunktionalität
http://seng.de/produkte/sdmn-cc1/

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Warum sollte jemand für die (kommerzielle) Nutzung deines Protokolls 
zahlen, wenn es diverse kostenlose Alternativen gibt? RS485 als 
PHY-Layer ist ja nun nichts besonders. Darauf kann man auch Modbus 
fahren oder sich selbst ein passendes, schlankes Protokoll ausdenken.

Mit freundlichen Grüßen
Thorsten Ostermann

von Stefan (Gast)


Lesenswert?

Ich hab mal einiges davon überflogen und könnt mir vorstellen, dass ich 
das mal einsetzen könnte.

Reaktionszeit
Ich habe für meinen Hausbus ca. 100 Knoten geplant fürs erste.
Wenn ich dein System einsetzen würde, dann hätte ich da aber ein großes 
Problem mit der Reaktionszeit.
Eine Nachricht braucht ca. 3ms - je nach Nutzdatenmenge bei 115200.
Das wären dann im absoluten idealen worstcase 300ms von einem Ende zum 
nächsten Ende.
300ms vom Lichtschalter betätigen bis zur Reaktion an der Lampe wär viel 
zu lange.
Die Zeiten die der Mikrocontroller noch braucht zum Auswerten usw. sind 
auch nicht zu vernachlässigen. Da sind wir locker bei 400ms 
Gesamtreaktionszeit (Taster gedrückt bis Licht da).

Das kann man nun natürlich optimieren und die Nutzungsfälle betrachten - 
der Schalter und die Lampe werden höchstwarscheinlich nicht über 98 
andere Knoten laufen müssen bis die Nachricht ankommt, aber trotzdem 
sollte man es nicht unbetrachtet lassen.

Vielleicht könntest du das in deiner Doku noch etwas deutlicher 
rausschreiben - ich habs beim Überfliegen nicht gelesen...

Mikrocontroller
Eigentlich implizierst du Mikrocontroller mit mindestens 2 seriellen 
Schnittstellen und DMA.
Die ganz günstigen Mikrocontroller die man sich um 1€ kaufen kann 
(ATMegas), haben das oft nicht.
Erst Mikrocontroller in der 4€ Gegend (UC3s) haben die entsprechenden 
Funktionen eingebaut.
Natürlich könnte man nun Software UARTs machen, aber dann wird die 
Belastung für den Mikrocontroller schon ziemlich hoch.
Für einen Hausbus z.B. sind die größeren Mikrocontroller dann zu 
überdimensioniert - da muss man ja nur einen Taster auslesen und eine 
Lampe einschalten an 2 verschiedenen Stellen wo Mikrocontroller sitzen 
die am Bus angeschlossen sind.

Allgemein
Ich denke mal du ziehlst eher darauf ab, dass es sich um 
Schaltschrankkommunikation handelt? Also wo größere Mikrocontroller 
viele Funktionen einlesen und schalten?
Dann würden es auch wieder weniger Mikrocontroller sein, welche viele 
Aufgaben haben und somit wäre auch die Reaktionszeit besser und das 
Preis/Leistungsverhältnis würde so einen eher "teureren" Mikrocontroller 
rechtfertigen.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Stefan,

> *Allgemein*
> Ich denke mal du ziehlst eher darauf ab, dass es sich um
> Schaltschrankkommunikation handelt? Also wo größere Mikrocontroller
> viele Funktionen einlesen und schalten?
> Dann würden es auch wieder weniger Mikrocontroller sein, welche viele
> Aufgaben haben und somit wäre auch die Reaktionszeit besser und das
> Preis/Leistungsverhältnis würde so einen eher "teureren" Mikrocontroller
> rechtfertigen.

Im Schaltschrank setzt man dann aber industrietaugliche Feldbusse ein, 
z.B. EtherCAT, ProfiNet o.ä.. Da redet auch kein Mensch über 4 EUR mehr 
oder weniger, und diskrete µC setzt man ohnehin nicht ein. EtherCAT 
läuft auf 100MBit Ethernet, mit Zykluszeiten bis deutlich unter 1ms und 
Jitter im Sub-µs Bereich. Das ist mit RS485 überhaupt nicht zu 
vergleichen.

Mit freundlichen Grüßen
Thorsten Ostermann

von Peter S. (sengp) Benutzerseite


Lesenswert?

Thorsten Ostermann schrieb:
> Warum sollte jemand für die (kommerzielle) Nutzung deines Protokolls
> zahlen, wenn es diverse kostenlose Alternativen gibt? RS485 als
> PHY-Layer ist ja nun nichts besonders. Darauf kann man auch Modbus
> fahren oder sich selbst ein passendes, schlankes Protokoll ausdenken.

- mit den bestehenden Kommunikationssystemen (CAN, LON, MS/TP, Modbus, 
KNX, RS-485 ...) ist einiges machbar, aber manches ist schwer 
realisierbar, manches gar nicht. Mal sind es limitierte Buslängen, die 
nur teuer verlängerbar sind, mal braucht es ganz spezielle Halbleiter 
die nur aus einer Hand erhältlich sind, mal gibt es das Problem der 
Adressvergabe und des Busabschlusses, mal sehr teure Tools, ...
- das ganze ist offen, jeder kann bis ins Detail sehen wie das geht - 
und es ist dokumentiert und standardisiert, damit nicht jeder bei jeder 
Erweiterung oder jeder zu definierenden Nachricht von vorne anfangen 
muss.
- man kann das einsetzen ohne finanziell belastet zu werden, solange man 
damit kein Geld verdienen will. Und man kann bei einem Projekt mitmachen 
das noch ganz viele Möglichkeiten bieten wird ...
- es ist nicht an spezielle Halbleiter gebunden
- der PHY-Layer ist nicht besonderes - soll er auch nicht. RS-485 ist 
robust, pflegeleicht, erprobt und erhältlich. Das Problem mit der 
Adressierung und dem Leitungsabschluss ist über das "link network 
protocol" gelöst, dadurch dass nur Punkt zu Punkt Verbindungen aufgebaut 
werden. Leitungsabschluss an jedem Leitungsende serienmässig ab Werk. 
Adressierung über bei der Herstellung programmierte eindeutige Adresse. 
Das ganze RS-485 Zubehör kann verwendet werden (Leitungen, Repeater, 
Tunneling über Ethernet, ...)
- es ist KEIN Bus, es ist eine Netzwerk und somit im Prinzip unendlich 
erweiterbar.
- es ist prinzipiell auch möglich im selben Netz Leitungen mit 
unterschiedlichen Baudrate zu betreiben, z.B. Kommunikation zwischen 
zwei 500m entfernten Geräten mit 115200 Bit/s und innerhalb der Geräte 
mit 5 MBit/s (z.B zu einem Bediengerät). Das Netz wäre hierdurch aber 
keinesfalls segmetiert, sondern bezüglich der Nachrichten vollständig 
transparent.
- im bestehenden Gerätes gibt es eine USB-Schnittstelle, somit die 
prinzipielle Möglichkeit sich an einen PC/Tablett/Raspberry, was auch 
immer anzudocken. Dieser übergeordnete Rechner kann dann die Verbinung 
ins Ethernet herstellen oder eine Datenbank beherbergen oder ... siehe 
http://www.seng.de/technologie/smart-devices-message-network/
- es funktioniert bereits und ist einsetzbar.

Also unter den Gesichtspunkten sehe ich keine kostenlosen oder 
bestehenden Alternativen, zudem die Kosten ja nur bei kommerzieller 
Nutzung entstehen, und meiner Meinung nach auch in sehr moderater Höhe 
(0,05€ pro Rechnerknoten).


Mit freundlichen Grüßen,

Peter Seng

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Unter Standartisierung verstehe ich, dass das von einem Konsortium 
getrieben wird, oder zumindest von einem größeren internationalen 
Unternehmen. Zum Thema 3D-Druck hat hier neulich auch jemand eine 
"Standard" vorgestellt. Vielleicht sollte ich auch mal einen Standard 
definieren. ;)

Ich sehe immer noch kein schlagendes Argument, warum man ausgerechnet 
dein Konzept einsetzen sollte?! Wenn ein industrietauglicher Feldbus zu 
aufwendig ist, kann man sich leicht was passendes Maßscheidern. Und wenn 
ich Feldbus sage, meine ich keine Krücken wie Modbus o.ä., sondern 
EtherCAT oder Profinet, ggf. auch CANopen.

Aber vielleicht irre ich mich ja auch. Du wirst sehen wie die Resonanz 
ist.

Mit freundlichen Grüßen
Thorsten Ostermann

von Peter S. (sengp) Benutzerseite


Lesenswert?

Hallo,

Stefan schrieb:
> dann hätte ich da aber ein großes
> Problem mit der Reaktionszeit.

bei maximaler Nachrichtenlänge liegt die Zeit für einen Sprung von 
Knoten zu Knoten unter 10ms. 100ms entsprechen also einer Entfernung von 
mehr als 10 Knoten. Selbst das Stellen der Lamellen einer Jalousie 
sollte unter normalen Umständen und Knotenzahl kein Problem darstellen.

Stefan schrieb:
> Eigentlich implizierst du Mikrocontroller mit mindestens 2 seriellen
> Schnittstellen und DMA.

Ja. Die Kommunikation verläuft damit wirklich im Hintergrund, fast die 
ganzen Ressourcen des Prozessors sind für die Applikation verfügbar. 
Derzeit setze ich einen STM32F103RET ein, da er sehr universell 
einsetzbar ist. Auch für Hobbyzwecke würde ich das empfehlen - es ist 
dort kostengünstiger ein universelles und gut bekanntes Teil 
einzusetzen, als das preiswerteste das es gerade mal so tut. Und der 
100er Preis liegt unter 3€ für ein Teil mit 512KB Flash, 64KB Ram, 
12-Bit ADC, USB-Schnittstelle, EE-PROM Emulation im Flash, ....

Stefan schrieb:
> Für einen Hausbus z.B. sind die größeren Mikrocontroller dann zu
> überdimensioniert

der Geschmak kommt beim Essen, das ganze soll erweiterbar sein. Und 
vielleicht kommt ein Bootloader und ein verschlüsseltes Protokoll und es 
wird die Berechnung eines Hash-Wertes notwendig und ... Und dann soll 
nur ein Firmware-Update notwendig sein.

Stefan schrieb:
> Ich denke mal du ziehlst eher darauf ab, dass es sich um
> Schaltschrankkommunikation handelt?

Nein, die Vorteile liegen mehr bei langen und unübersichtlichen 
Kommunikationswegen, dort wo es immer wieder Schwierigkeiten mit 
Leitungsterminierung, Leitungslängen, der Adressierung oder der 
Routingfähigkeit von Nachrichten gibt. Innerhalb einer Steuerung oder 
eines Schaltschrankes ist ja z.B. auch CAN sinnvoll einsetzbar.
Ein weiterer Vorteil ist der, dass eine einfache und flache 
Kommunikationsstruktur realisierbar ist.


mit freundlichen Grüßen,

Peter Seng

: Bearbeitet durch User
von old man (Gast)


Lesenswert?

Ich habe mir das Konzept vor ein paar Tagen schon mal angesehen. Auf der 
einen Seite ist es sicher nicht uninteressant. Gerade wen es um die 
Netztopologie geht. Lassen wir mal alle ethernetbasierten Lösungen raus, 
bleiben die differentiellen Busse (CAN, RS485) übrig. Die brauchen eine 
Terminierung an den Enden und sind nur bedingt sternfähig. Dein Ansatz 
vermeidet das. 2 Uarts hat z.B. der AVRTiny841 für 0.70€. Das ist also 
auch billigst realisierbar.

Was als großer Nachteil übrig bleibt ist die Abhängigkeit des gesamten 
Netzes von jedem einzelnen Knoten. Wenn bei einem der Strom weg geht ist 
Ende. Auch bei einem Absturz des Kontrollers gehts nicht weiter. Hier 
muss man halt abwägen was einem lieber ist. Wenn man bei deinem Konzept 
einen Sternförmigen "Abgriff" braucht, muss der MC schon 3 
Schnittstellen haben. Die Kandidaten dafür haben oft auch 2 
CAN-Schnittstellen. Damit wäre in einem CAN-Bus ähnliches mit ähnlichem 
Hardwareaufwand erreichbar.

von Peter S. (sengp) Benutzerseite


Lesenswert?

old man schrieb:
> Was als großer Nachteil übrig bleibt ist die Abhängigkeit des gesamten
> Netzes von jedem einzelnen Knoten.

Hallo,

der Punkt ist in jedem Falle vor der Verwendung eines 
Kommunikationssystems zu betrachten und zu bewerten.
Folgende Überlegungen/Gedanken meinerseits hierzu:

- in einem Ethernet-System führt der Ausfall eines Switches/Hubs (oft) 
auch zum Ausfall der daran angeschlossenen, untergeordneten, 
Kommunikation. Trotzdem ist die Zuverlässigkeit seit Abkehr vom 
Koax-Kabel und der Zuwendung zu den Switches erheblich gestiegen. Das 
Suchen von irgendwo abgezogenen Koax-Kabeln, fehlerhaften Kabeln und 
abgezogenen Abschlusswiderständen war damals Stand der Technik und 
leider oft ein Grund des Systemausfalles.

- beim "Link network protocol via RS-485" ist im Falle des Ausfalles 
eines Knotens immer klar wo der Fehler liegt und bis wohin die 
Kommunikation noch funktioniert. Im einfachsten Falle ist das an der 
Signalisierung der Link LED's zu erkennen. Natürlich könnte man hierzu 
auch Heartbeat Messages oder ähnliches implementieren, kommt wohl auch 
noch - aber wir sind mit dem Ganzen noch relativ weit am Anfang.

- in einem Master-Slave System führt der Ausfall des Masters in jedem 
Falle zum Totalausfall. Bei dem vorliegenden System führt der Ausfall 
eines Knotens lediglich zur Segmentierung des Systems.

- wird auf einem "CAN", "MS/TP" oder "RS-485" Bus das Kabel unterbrochen 
so geht die Terminierung verloren und somit auch ein Teil der evtl. noch 
möglichen Kommunikation oder sogar die gesamte Kommunikation. Beim "Link 
network protocol via RS-485" erfolgt auch hier lediglich eine 
Segmentierung.

- Segmentierung, am Beispiel einer Hausinstallation: Netzwerkstruktur 
wäre dann wohl ein Baum, Verästelung in jede Etage, dort Verästelung in 
jedes Zimmer. Fiele ein Knoten im Etagenstrang aus so können (globale) 
Nachrichten den Knoten nicht mehr überspringen. Sehr wohl funktioniert 
natürlich die lokale Kommunikation in allen Zimmern noch 
uneingeschränkt. Licht Ein/Aus usw. würde funktionieren, die Nachricht 
mit der Außentemperatur wäre hinter dem gestörten Knoten nicht mehr 
verfügbar. Die Knoten welche die Außentemperatur zwingend benötigen 
müssten dann einen Notbetrieb aufnehmen. Mit einem vernünftig überlegten 
Aufbau der Verkabelung und der Stromversorgung ist sehr viel an 
Sicherheit und Redundanz zu gewinnen oder zu verschenken.

- die Netzwerktopologie kann bereits heute als eine Ringstruktur 
angelegt werden. Ist etwas aufwendiger zu konfigurieren, aber machbar. 
Der Ausfall eines Knotens oder einer Übertragungsstrecke betrifft dann 
nur noch den geschädigten Knoten bzw. keinen.

- wie in der Spezifikation erwähnt wäre prinzipiell mit der selben 
Hardware auch eine vermaschte Netzwerkstruktur möglich. Dies bedingt 
jedoch einen erheblichen ((noch)nicht realisierten) Aufwand. Aber die 
Hardware gäbe es her und vielleicht gibt es irgendwann ein Update, 
welches die Möglichkeit implementiert.

Ich hoffe das Vorangestellte hilft bei der Bewertung der Vor- und 
Nachteile des Sytems bezüglich diese Punktes weiter.


mit freundlichen Grüßen

Peter Seng

von louis (Gast)


Lesenswert?

Super, endlich mal ein elegantes alternatives Konzept zu den ganzen 
master-slave, canbus, polling, etc. setups !

Nach 5min lesen - mein absoluter Favorit für meine privaten Hausbus.

Den Terminus "Dieses Werk ist lizenziert unter" verstehe ich nicht ganz.
Das System ist sicher clever - aber ich vermute das alle relevanten 
(teil) Ansätze (egal ob soft, hardware oder konzept) darin sicher schon 
lange in der Vergangenheit patentiert - oder Stand der Technik sind. 
(und zwar global)

Verkauft wird also nur die Protokollspec und eine MID ?
Oder liege ich da falsch?

KUDOS, Mr. Seng!

von Peter S. (sengp) Benutzerseite


Lesenswert?

louis schrieb:
> Verkauft wird also nur die Protokollspec und eine MID ?
> Oder liege ich da falsch?


Hallo,

der Hintergrund und Schutzgebühr/Lizensierung sind hier erklärt:
http://www.seng.de/technologie/lizenzierung/


- es handelt sich um eine Regelung im Rahmen des Urheberrechtes, bezogen 
auf die Spezifikation.
- jedermann der die Spezifikation für private, nicht kommerzielle Zwecke 
erweitern oder nutzen möchte ist in seinem Tun und Handeln vollkommen 
frei, solange er die Spezifikation nicht kommerziell verwertet.
- die bei kommerzieller Nutzung zu entrichtenden Kosten sind Stückzahl 
abhängig, nachträglich, gering und gut kalkulierbar.
- für den nicht kommerziellen Nutzer entstehen keine Kosten (solange er 
keine MID haben möchte, die in der Spezifikation veröffentlicht ist).
- die Spezifikaktion bleibt hierdurch auf einem gepflegten und 
eindeutigen Stand.


mit freundlichen Grüßen,

Peter Seng

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Nichts gegen deine grundsätzliche Arbeit! Aber ich fand in dem Dokument 
beim Querlesen nichts neues. Was ist denn gegenüber älteren 
Veröffentlichungen wirklich neu? Kannst du ein Beispiel nennen? Würde 
mich interessieren.
Ich bin auch immer an neuartigen Ansätzen interessiert, aber finde 
selten wirklich elegante Sachen. Und ehrlich, die meisten habe ich schon 
längst wieder vergessen. Daher ist mein Ansatz eher die Definition 
eigener Ideen. Die vergißt man nicht so schnell. Und vor allem: KISS. 
Sonst versteht man schon in 3 Monaten nicht mehr was man eigentlich 
gemacht hat und muß sich dann wieder mühsam einfinden in die eigene 
damalige Ideenwelt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.