www.mikrocontroller.net

Forum: Hausbus Allgemeine Fragen zu Hausbus

Autor: Paul Hamacher (powl)
Datum: 30.03.2008 14:28

Hi!

Ich habe hier im Gedanken daran, zunächst mal mein Zimmer und später
auch mein ganzes Haus (wenn ich mal eins haben werde) mit einem
Bussystem auszurüsten, mehrere Fragen:

1) Ist es verwerflich oder gar verboten einfach überall 5-adrige
Leitungen zu nehmen? Drei Adern für normal 230V, den N-Leiter als GND,
eine Ader 5V und eine Daten? (Habe shcon 5-adrige in meinem Zimmer
verlegt, dann muss ich nicht alles aufkloppen)

2) Falls nicht, müsste ich ja jedes Modul mit einer extra
Stromversorgung ausstatten, ok. Aber die Daten müssen auch übertragen
werden. Einget sich hierfür Powerline und lässt sich das in
Unterputzüblicher Größe realisieren? Oder verseuche ich damit das Netz
der ganzen Nachbarschaft mit meinen Powerline signalen?

3) Eine Frage zum CAN-Bus. Wie sind hier Datenraten von 1Gigabit und
Kilometer Übertragungswege möglich? Gigabitethernet braucht ja schon 8
Leitungen dafür. Differenzielle Signalübertragung? Schirmung? CRC?

lg PoWl
Autor: MC (Gast)
Datum: 30.03.2008 14:46

Tag Paul,
ich hoffe, ich kann dir deine Fragen hinreichend beantworten.
zu 1)
>überall 5-adrige Leitungen zu nehmen?
>Drei Adern für normal 230V, den N Leiter als GND
>eine Ader 5V und eine Daten
Was offiziell der VDE dazu meint, kann ich dir leider nicht sagen. Ich
würde dir davon nur abraten, da du einerseits mit sehr großen Störungen
durch Induktion rechnen musst (ich habe schon locker 30V auf vielleicht
10m Kabellänge gemessen).
Weiter kann ich dir nur davon nur abraten, da ich persönlich sehr
schlechte Erfahrungen mit dem Verlegen von Kabeln, die mehr Adern als
benötigt haben, habe.
Mein Opa hat im Keller 7-adrige Kabel verlegt. Er hatte wahrscheinlich
den gleichen Gedanken wie du. Als ich nun im Keller aber etwas
ummontieren sollte, habe ich die zugehörigen Sicherungen herausgenommen,
die entsprechenden Leitungen auf Spannungsfreiheit geprüft.
Die nach hinten gebogenden, unbenutzten Adern habe ich in dem dunklen
Kellerlicht aber nicht gesehen. Du kannst dir vielleicht vorstellen, wie
das gezwiebelt hatte, als ich das Kabel aus der Dose entfernen wollte
und an die unbenutzten Adern gekommen bin! Mein Opa hatte irgendwann mal
an die unbentutzten Adern Phase gelegt (vielleicht war auch mal was
angeschlossen, das weiß keiner). Jedenfalls kennt keiner die Versorgung
dieser zusätzlichen Adern -> man kann das Kabel nicht einfach totlegen
und abschneiden!

zu 2)
Zur Datenübertragung eignet sich in deinem Fall glaub ich am besten ein
Powerline- oder ein Funksystem. Die Stromversorgung kannst du ja über
die verlegten Leitungen und einen Trafo machen.

zu 3)
Wenn ich mich nicht irre, ist der CAN-Bus ein sog. Differenzbus.
Autor: Paul Hamacher (powl)
Datum: 30.03.2008 15:03

Danke, das ist doch schonmal was :-)

Ja, es ging nur darum ob es nötig ist überall neue Leitungen
reinzulegen. Fließen durch die Induktion große Ströme? Die Bustreiber
können das je nachdem ja ausgleichen, als Eindrahtbus mit Pulldown von
1-10kOhm? Muss ja noch nicht so schnell sein am Anfang.

Wenns nicht anders geht wird es eben doch per Funk gemacht. Wenn
Powerline natürlich funktionieren würde wäre das auch nicht schlecht,
wobei ein Powerline bussystem sicher auch noch einige Probleme mit sich
bringt.

Es gibt zwar diese Funkmodulchen, allerdings soll es ein multimasterbus
werden wo alle module unter umständen miteinander kommunizieren können.
Ich kann jetzt natürlich nicht alle Funkmodule auf einer Frequenz laufen
lassen und auch keine 100 Funkstrecken aufbauen (Anfangs wären es ja
noch nicht soviele), und wenn jedes Funkmodul einen eigenen Kanal nutzt
mit Sender und Empfänger ist da auch nicht mehr viel Multimastermäßig.

Stromversorgung von Einzelmodulen würden kleine Kondensatornetzteile
übernehmen. Ich brauch ja nicht viel Strom.

lg PoWl
Autor: MC (Gast)
Datum: 30.03.2008 15:11

zu Powerline: es gibt ein paar Selbstbaulösungen, aber auch ein paar
fertiglösungen. Eine Fertiglösung wäre der TDA5051AT von Philipps.
zu Funk: schau dir mal das Funkmodul RFM12 von Pollin an, das sollte
glaub ich verwendbar sein.
Autor: Paul Hamacher (powl)
Datum: 31.03.2008 20:35

Ich bin im Moment 19 Jahre alt also es geht vorerst mal darum etwas
hightech in mein eigenes Zimmer zu bringen.

So wie ich das nun sehe wird da Powerline nicht notwendig sein. Bis ich
das zum laufen gekrigt hab wird wohl mein Zimmer schon komplett
ausgerüstet sein. D.h. ich werde einfach 5-adrige Leitung im Zimmer
montieren :-) um einen 1-Wire-Bus zu realisieren.

Dabei wollte ich allerdings meine eigenes Übertragungsprotokoll
verwenden. Das ganze soll multimasterfähig werden also dezentral, damit
ich überall in meinem Zimmer einzelne, unabhängige Steuergeräte einbauen
kann, die untereinander kommunizieren.

Nun kommt es bei so einem Multimasterbus ja unweigerlich irgendwann mal
zur kollision, je nach Auslastung sogar relativ häufig. Immer dann wenn
zwei geräte zufällig gleichzeitig senden wollen. Wie erkennt man solche
kollisionen? einfach mit einem zweiten Pin nochmal die Leitung abtasten,
ob diese auch auf dem pegel liegt auf dem sie sein soll? Dann bust man
aber wieder ein IC-Pin ein.

Oder wäre eine zentrale Masterlösung besser? Ein Master der ständig alle
maximal 100..128 Busteilnehmer anpollt und ihnen damit kurzzeitig
empfangs- und senderechte zuteilt? Oder wird das noch etwas schlauer
gemacht?^^

lg PoWl
Autor: MC (Gast)
Datum: 31.03.2008 21:56

>Wie erkennt man solche kollisionen?
Kollisionen kann man z.B. durch (wie du schon sagtest) Abfragen der
Datenleitungen während dem Sendevorgang erkennen. Je nach Situation
müssen so aber nicht unbedingt Kollisionen von allen Modulen erkannt
werden -> manche Module erhalten falsche Daten, werten diese aber aus.
Eine andere Möglichkeit wäre, wenn der Sender sich jedes gesendete Paket
vom Empfänger bestätigen lässt. So kann man Kollisionen erkennen und
auch Überprüfen, ob der gewünschte Empfänger vorhanden ist (kommt keine
Antwort -> kein Empfänger da). Weiter kann der Sender so auch die
Übertragungssicherheit feststellen (kommen unverhältnismäßig viele
fehlerhafte Bestätigungen zurück -> Fehler in der Übertragungsstrecke).
Großer Nachteil ist die große Auslastung der Datenleitung.
Man kann auch zur Kollisionsvermeidung die Sendeerlaubnis für die
einzelnen "Master" nach einer festen Vorschrift vergeben. Damit meine
ich eine Vorschrift, die in jedem Master separat abgearbeitet wird, ein
zentraler "Schiedsrichter" also nicht benötigt wird.
>Oder wäre eine zentrale Masterlösung besser?
Das hängt natürlich immer vom Anwendungszweck und von den Vorlieben ab.
In einem Zimmer kann man sagen, dass ein zentrales Modul auch Vorteile
haben kann, in einem gesammten Haus aber eher nicht...
Autor: Paul Hamacher (powl)
Datum: 31.03.2008 22:14

Stimmt, in einem Zimmer ist die Polling-methode vielleicht garnicht so
schlecht. Wenn man sich auf einem im gesamten Haus vielleicht 200-300
Konten beschränkt, dauert so ein Polling-Zyklus ja sogar nichtmal so
lange. In meinem Zimer werden es zunächst vielleicht erstmal 10.. später
nicht viel mehr wie 30..40 Knoten. Je nach Busgeschwindigkeit kann das
ganze ja recht schnell ablaufen :-) nur eignet sich das ganze wohl ohne
intelligentes system nicht für größere datenmengen, da der bus ja
blockiert ist solange zwei teilnehmer grade am kommunizieren sind.
Ebenso wäre das ganze lahm wenn ein teilnehmer einem anderen was senden
könnte und dieser für die antwort erst warten müsste bis er wieder
angepollt wird.

auch sollte es möglich sein dass von einem teilnehmer ein allgemeines
ereignis gesendet wird und dann mehrere teilnehmer darauf reagieren
können. Beispielsweise so ein Schalter mit dem ich sämtliche Geräte in
meinem Zimmer ausschalten könnte. Das wär praktischst, denn immer beim
Verlassen meines Zimmers zum Essen muss ich je nach dem Bildschirm,
Schreibtischlampe, Lautsprecher, Stereoanlage, Zimmerbeleuchtung,
Ventilator.. ausschalten. Ich werde zwar mir dem Basteln von
entsprechenden Schaltern 100 mal soviel Zeit verbraten wie sie es mich
kostet ständig alle Dinger auszuschalten, aber es wär einfach praktisch
wenn man nicht jedes Gerät einzeln ansprechen muss sondern viele Geräte
gleichzeitig. Man kann ja dafür einen extra Adressenbereich definieren^^
Die Adressen 0-100 sind für einzelne Teilnehmer da, die Adressen 101-127
können dann an mehrfache Teilnehmer vergeben sein. Die dürfen dann halt
nix antworten.. oder so irgendwie.

lg PoWl
Autor: MC (Gast)
Datum: 31.03.2008 23:17

Von dem, was du bisher geschildert hast, vermute ich, dass du "nur" dein
Zimmer automatisieren möchtest.
In dem Fall würde ich dir zu einem Master-Slave-System mit einer
zentralen "Verwaltungsstelle" raten.
Dies hat den Vorteil, dass du neue Funktionen nur in den zentralen
Master einprogrammieren musst. Die Slaves (Lampen, Monitor,
Ventilator,...) müssen nicht neu programmiert werden, da deren Steuerung
ja über den Master läuft.
Autor: MC (Gast)
Datum: 31.03.2008 23:19

Am besten ist glaub ich, wenn du dich (vorerst) für eine Variante
(zentrale/dezentrale Steuerung) entscheidest und die ersten Entwürfe mit
schematischem Aufbau, Funktionen (Licht an, aus,...) anfertigst.
Anhand dieser Entwürfe kannst du dann weitere Überlegungen anstellen,
wie sich das System umsetzen lässt, ob es sich umsetzen lässt, was
vielleicht besser wäre,...
Autor: W.S. (Gast)
Datum: 11.04.2008 02:44

Hallo, eine interessante Alternative ist der LCN-Bus (www.lcn.de). Für
den Bus braucht man nur eine freie Ader im Stromkabel. Eine Verlegung
von mehr als drei Adern, also fünf Adern ist immer sinnvoll und kostet
nicht viel mehr. Das Bussystem ist dezentral.
Autor: G. L. (glt)
Datum: 11.04.2008 20:50

LCN ist propitär (nur ein Hersteller), Komponentenauswahl im Gegensatz
zur Konkurrenz stark eingeschränkt und preislich unwesentlich günstiger.

Vorteil ist eine freie NYM-Ader als Datenleitung verwenden zu können.
Autor: MagIO (Gast)
Datum: 13.04.2008 01:06

Warum nicht ein einfaches Protokoll schon zum Bus-Belegen nutzen?
Grundsätzlich gilt: jeder Knoten kann den Bus benutzen, wann er will. Es
muss nur eine Sequenz eingehalten werden, um den Bus zu belegen. Mir
würde da folgendes vorschweben (wurde meines Wissens bei den alten
Netzwerkkarten so ähnlich gemacht):
Die Ausgänge sind Tri-State. Kein Senden -> Hochohmig. Der Bus liegt
über Pullup auf einem definierten Pegel.
1. Schritt - es wird geprüft, ob die Leitung frei ist (Pullup-Pegel).
2. Schritt - Leitung wird auf Betriebsspannung gelegt (mit niederohmigem
Widerstand).
3. Schritt - Leitung wird auf Masse gelegt
Diese ganze Aktion muss etwas länger dauern, als die maximale
Signallaufzeit.

Der Stromfluss wird bei dieser Aktion überwacht. Wollte ein anderer
Knoten auch die Leitung, dann fließt ein höherer Strom bei Schritt 3.
Nun warten beide Knoten eine unterschiedlich lang Zeit (z.B. definiert
durch die Adresse) und versuchen es dann nochmal.
Über weitere Protokoll-definitionen wird dann festgelegt, wie lange der
Bus nun von dem Knoten belegt werden kann. Z.B. für eine feste Zeit oder
für eine bestimmte Anzahl Bytes....
Autor: Paul Hamacher (powl)
Datum: 13.04.2008 01:21

Ein problem dürfte auch sein, dass, wenn zwei busteilnehmer mal längere
zeit intensiv miteinander kommunizieren, andere in der zeit total
blockiert werden.

Andererseits, wenn das ganze so geregelt wird dass jeder Teilnehmer die
sende-rechte an den jeweils höher adressierten teilnehmer weiterverteilt
(token-ring heißt das, oder?) bzw. das ganze durch einen bus-master
geregelt wird, können längere datensendungen sehr lange dauern da
ständig auf alle teilnehmer gewartet werden muss oder man müsste das
ganze intelligent regeln, dann müsste jeder teilnehmer dem master sagen
wie lange er senden möchte und krigt dann vom master ne gewisse
sendezeit zugeteilt.

interessant ist beim zentralen bus-system auch, wie man es lösen könnte
dass bus-teilnehmer so plug&play mäßig angeschlossen und getrennt werden
können. Das wäre z.B. praktisch, wenn man an jede Steckdose eine z.B.
3,5mm Klinkenbuchse oder sowas reinmacht, dann könnte man im ganzen
Zimmer/Haus xbeliebige Teilnehmer anschließen. Also meinetwegen
Kaffeemaschine, Ventilator, Fernseher...

lg PoWl
Autor: Paul Hamacher (powl)
Datum: 13.04.2008 01:56

nochmal ne Frage zur kollisionserkennung bei einem 1-wire-bus:

Was ist zu einer zuverlässigen kollisionserkennung notwendig und wie
könnte entschieden werden welcher bus-teilnehmer warten muss?

kann durch gleichzeitiges prüfen des bus-zustandes während man sendet
einigermaßen zuverlässig auch erkannt werden wenn noch ein anderer
busteilnehmer dazwischenfunkt?

die methode von MagIO klingt kreativ aber leider elektrisch etwas
aufwändig (schlecht für besonders kleine busteilnehmer)

lg PoWl
Autor: Stefan Wimmer (wswbln)
Datum: 13.04.2008 02:27

Ähm, was habt ihr denn da vor, wenn ihr euch so viele Gedanken über
große Datenmengen macht? (Und der OP im ersten Posting sogar von GBit/s
schreibt?)

Eindraht-Busse in Netzkabeln dürften z.B. für Multimedia-Anwendungen
denkbar ungeeignet sein. Und für die Fernabschaltung der Nachttischlampe
sollte die Latency nicht wirklich wichtig sein...
Autor: Paul Hamacher (powl)
Datum: 13.04.2008 09:27

Meint ihr 100kbits wären machbar? Damit wär der bus schnell genug, dass
kommunikationsprobleme schnell abgehandelt werden können.
Autor: Stefan Wimmer (wswbln)
Datum: 13.04.2008 14:34

...mit RS485 schon (Busabschluß=120R), aber wohl kaum mit einer relativ
hochohmigen Open-Kollektor Lösung (Busabschluß üblicherweise >1kOhm).
Autor: Gast123 (Gast)
Datum: 18.04.2008 14:46

Zur Frage3: Das ist natürlich nicht möglich, wer behauptet denn so einen
Unsinn?

@MC: Ethernet arbeitet auch differentiell.
Autor: Paul Hamacher (powl)
Datum: 18.04.2008 14:51

Vielleicht hat sich jemand verschrieben oder ich hab einfach nur falsch
gelesen. Wie schnell ist CAN denn normalerweise?
Autor: David Madl (md2k7)
Datum: 18.04.2008 23:21

CAN "normalerweise" max. 1 MBit/s, ich nehme stark an dass es noch
schneller geht, dabei sinkt jedoch die maximal mögliche Buslänge, siehe
zB http://www.me-systeme.de/canbus.html#kapitel4

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos verwenden, Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net