uC und geeigneter Bus

Hallo zusammen,

ich habe k=FCrzlich einen Thread bzgl. uC und Roll=E4densteuerung eingestellt. Ihr habt mich =FCberzeugt, das ganze mit einem Bussystem zu erledigen.

Nochmal kurz die Ausgangsituation: Ich habe in einem Neubau 10 Zimmer mit el. Rolll=E4den. In jedem Zimmer sind 1, 2 oder max. 3 Roll=E4den. In jedem Zimmer existiert eine Dose, in=

die:

  1. von jedem Rollokasten ein Rohr,
  2. von der Schalterbatterie (neben der T=FCr) ein Rohr,
  3. und von einem Sternpunkt im Keller ein Rohr hineingeht. Am Sternpunkt im Keller soll eine Steuerung mit uC aufgebaut werden, die die Tastersignale auswertet und die Roll=E4den ansteuert.

Ich habe also von jedem Raum eine Rohrverbindung zum Sternpunkt im Keller. Ich m=F6chte vom Sternpunkt aus zu jeder Dose (1x pro Raum) je eine Busleitung legen. Und in der Dose einen Slave aufbauen. =

Die L=E4nge des Busses ist max. 30m. Welcher Bus w=E4re daf=FCr am besten=

geeignet? Er soll einfach sein und auch gut diagnostizierbar. =

Vielen Dank f=FCr euer Tips!

MfG J=FCrgen

Reply to
=?iso-8859-1?Q?J=FCrgen?= Leeb
Loading thread data ...

J=FCrgen Leeb schrieb:

en

Hallo,

ich w=FCrde f=FCr sowas RS485 verwenden, serielle =DCbertragung und ein M= aster=20

-Slave Protokoll wie z.B. Modbus. Da d=FCrfen Slaves aber nur nach=20 Aufforderung durch den Master senden, es m=FCssen also alle Slaves vom=20 Master zyklisch abgefragt werden um die Tastersignale zu erfassen. Aber bei einem Master und 10 Slaves sollte das kein Problem sein, auch=20 bei 30 Slaves nicht. Asynchrone =DCbertragung mit 100 kBaud =FCber 30 m ist mit RS485 kein Pro= blem. Einen Bus mit Kollisionserkennung und -aufl=F6sung sollte hier nicht n=F6= tig=20 sein, so spart man sich einiges an Hard- und Softwareaufwand.

Bye

Reply to
Uwe Hercksen

Gut diagnostizierbar ist das normale serielle Protokoll, wie es auch für RS232 verwendet wird (8N1).

Es hängt ein wenig davon ab, wie viele Adern Dein Kabel hat, dass Du einziehen willst und ob Du eine zentrale Stromversorgung Deiner Elektronik (vom Sternpunkt) aus willst oder jeweils einen kleinen Trafo setzen möchtest. Sicher möchtest Du noch mit den Schaltern die Rolllädem steuern, wenn Deine Elektronik mal ausfällt. Das ganze ist also nicht mal ebend am Wochenende zu machen.

Als Bussystem würde ich RS485 vorschlagen. Am Sternpunkt einfach über Open-Collector zusammen schalten und an den Prozessor (als PunktPunkt Verbindung). Das läßt sich mit einem Laptop und einem RS485->RS232 Wandler gut debuggen.

Abhängig wie viele Adern Du nun hast ist halb- oder vollduplex möglich. Wenn nur 4 Adern zur Verfügung (Telefonkabel), die Versorgung vom Sternpunkt kommt und man sich die lästige Umschaltung bei RS485 sparen will, kann man auch CAN-Treiber verwenden ( PCA 82C251T mein Favorit).

Tschö Dirk

Reply to
Dirk Ruth

Es gibt für Gebäude "handelsübliche" Bussysteme. International LON von Echelon. Hierzulande stärker EIB von Siemens. Beide haben den Nachteil teuer zu sein und entsprechende Einarbeitung zu erfordern. Wenn man aber langfrsitig in dem Bereich rumtut kann es sinnvoll sein sich mit sowas anzufreunden.

MfG JRD

Reply to
Rafael Deliano

Dankeschoen f=FCr Deine Antwort!

=

Master

An sowas habe ich auch gedacht. Nur das Modbusprotokoll kenne ich nicht.

Reply to
=?iso-8859-1?Q?J=FCrgen?= Leeb

Dankesch=F6n f=FCr Deine Antwort!

RS232 w=E4re mir ganz recht. Aber gibts da keine Probleme mit der L=E4nge= ?

Eine Zentrale Stromversorgung w=E4re mir am liebsten. So spart man sich die Verlustleistung bei jedem Trafo. Am Sternpunkt w=FCrde ich ein etwas gr=F6=DFeres Schaltnetzteil aufbauen.

t

Irgend ein Sicherheitskonzept stelle ich mir schon vor. Z.B. das man das Relais in der Dose =FCberbr=FCcken kann.

ung

Welche Umschaltung? Ich bin mit RS485 nicht so vertraut.

Reply to
=?iso-8859-1?Q?J=FCrgen?= Leeb

t

Das ist mir klar!

=

k-

Es sollte nur der Master (Sternpunkt) mit den Slaves kommunizieren. Die Slaves untereinander nicht.

t

nn

Warum w=E4re ein Stern verboten, wenn auch die Slaves untereinander kommunizieren muessten?

Reply to
=?iso-8859-1?Q?J=FCrgen?= Leeb

J=FCrgen Leeb schrieb:

Hallo,

der Stern ist deshalb verboten weil RS485 mit=20 Leitungsabschlusswiderst=E4nden an jedem Ende der Leitung betrieben werde= n=20 soll, aber mehr als zwei Abschlusswiderst=E4nde sind eine zu hohe=20 Belastung. Ausserdem g=E4be es beim Stern Wellenwiderstandsspr=FCnge im=20 Zentrum des Sterns.

Bye

Reply to
Uwe Hercksen

J=FCrgen Leeb schrieb:

ge?

Hallo,

wenn man nicht die V24 Treiber f=FCr +- 12 V, sondern die differentiellen= =20 Treiber und Empf=E4nger f=FCr RS485 benutzt nicht, da sind auch 100 m=20 m=F6glich, ja sogar auch 1000 m.

Die Aktivierung des Treibers. Es sind ja etliche Treiber zusammen am=20 gleichen Bus, aber immer nur einer darf senden, alle anderen m=FCssen im =

hochohmigen Zustand sein.

Bye

Reply to
Uwe Hercksen

Ja, aber das Polling würde doch schon recht viel Energie vergeuden. Wenn alle Systeme von einem zentralen Punkt versorgt werden sollen, dann sollte man darauf achten, diesen Punkt nicht übermäßig zu belasten. Also schickt man die Controller schlafen, so lange nix passiert. Die Taster für die Rolläden können ja auf Interruptleitungen liegen, oder über I2C und einen PCF8274 angeschlossen werden, der bei jedeer Änderung eines Einganngs den Controller weckt.

Dazu kommt, dass man ohnehin ein Mehrbyte-Protokoll verwenden sollte, um das ganze Programmiererisch einfach zu halten, auf Bit-Schiebereien zu verzichten und die spätere Erweiterung zu ermöglichen. Also sende ich Schalter-Nr., Funktion, CRC. Damit kann man zwei Wege gehen:

  1. Es gibt einen zentralen Controller, der die Wünsche der Schalter in Funktionen beim Ziel ( Rolladen, Lampe) übersetzt, also die Zuordnung übernimmt.
  2. Es gibt keinen Controller und alle Aktoren ( Rolläden und Lampen) hören auf das Netz und fischen die für sie relevanten Daten raus. Damit muss aber jeder Aktor separat einem oder mehreren Schaltern zugeordnet werden.

Im Normalfall würde der Schalter also sein 3-Byte Protokoll senden und auf eine Bestätigung warten. Kommt diese nicht, so wartet er eine 'zufällige' Zeit und sendet die Aufforderung nocheinmal. Wenn auch beim dritten Senden keine Antwort kommt, dann ist er halt beleidigt und tut nix.

Im Fall, dass es keine Kollision gibt würde in 1. der zentrale Controller, in 2. der angesprochene Aktor eine Bestätigung senden und der Schalter weiß, das alles gut ist.

Ich denke, es gibt ohne einfache Kollisionserkennung per CRC mehr Ärger als Kopfzerbrechen für die Programmierung eines einfachen CRC. Schalter-Code + Funktions-Code = CRC.

Gruß,

Ulrich

Reply to
Ulrich Prinz

Also,

ich würde auf einen "richtigen" Bus verzichten, da ja nur 3 Zustände übertragen werden müssen:

Rauf/Runter/Halt

Die Steuerung im Raum müsste dann, die Tastendrücke auswerten und die Signale vom Zentralpunkt. Zu übertragen zum Zentralpunkt wären:

Hin: alles Rauf/Runter Zurück: alles Rauf Runter

Denke, dass sich die paar Bits auch so einfach auf 2 Adern übertragen lassen(ein Takt, ein Signal), schnell muss das Ganze ja nicht sein.

In der Zentral bräuchte mann dann nur einen Kontroller mit 10 I/Os, einen für jeden Raum.

Henning

Reply to
Henning Aust

Das ist das Problem. Das Protokoll von EIB ist simpel und jederzeit in eigene Microcontroller Projekte zu implementieren. Aber die Schnittstrellenumsetzung ist aufwändig und wenn es klein sein soll, dann muß man auf die Bausteine von Siemens zurückgreifen. Und die sind recht teuer. IIch weiß nichteinmal, ob man die überhaupt einzeln bekommt.

Interessante wäre zudem zu erfahren, ob es auch kostengünstig eine einfache oder fertige Möglichkeit gibt, die Daten via 230V zu übertragen. Die in den mir bekannten Unterlagen über EIB-Systeme verwendeten Modulatoren sind immer die von Siemens. Gibt es da keine preiswertere Alternative?

Das Protokoll wird bei Siemens mit einer einem MCS51er vorgeschalteten Hardware verbastelt. Nach ersten Einschätzungen sollte es aber durch einen AVR komplett emulierbar sein. Daher wäre nur noch der Modulator-Teil zu lösen.

Bitte versteht es nicht wieder falsch. Preiswert heißt, durch ein Hobby-Buidget finanzierbar. Wenn es aufs Geld nicht ankäme, würde ich mein Haus komplett in EIB von der Stange ausrüsten.

Es schadet generell nicht verschiedene Quellen und Informationen zu einem Thema zu sammeln. Schließlich muss das Rad ja nicht jedesmal neu erfunden werden. Es ist also nie verkehrt aus dem zu lernen, was andere schon ausgetüftelt haben und sich dann aufs eigentliche Problem zu konzentrieren.

Gruß,

Ulrich

Reply to
Ulrich Prinz

Anfangs gabs Controller ( 68HC11 ) plus Anschaltung auf Leiterplatte von Siemens/Regensburg bei Distributor Eurodis/Enatechnik. Rohe Baugruppen scheinen aber bei EIB nie gängig geworden zu sein.

Eine der kleineren EIB-Firmen ( Busch-Jäger ? ) hat da mal rumentwickelt. Allerdings dürfte Powerline für LON gängiger sein. Dort kann man die Anschaltung dafür als Modul beziehen. Jedoch: alle kleben hierzulande wohl zwangsweise an der hiesigen unsicheren Schmalband-FSK Spec ( vgl. passende ICs von ST ) die per Norm verordnet wird. Wenn man die 220V isoliert hat, also nicht z.B. auf Steckdosen führt, würde das aber funktionieren. Powerline für LON im Ausland verwendet spread spectrum und ist damit robuster. FSK haben sie vorher auch ausprobiert und wieder aufgegeben.

MfG JRD

Reply to
Rafael Deliano

Du mußt unterscheiden zwischen physikalischem Layer (RS232 /RS485 / RS422 / CAN usw) und dem Prozokoll. Den physikalischem Layer kann man mit einfachen Chips (MAX232 usw) umsetzen, das Protokoll würde ich bei allen gleich lassen, weil für deren Umsetzung braucht's wieder einen programmierten Controller.

Du hast natürlich auch Leitungsverluste bei den dünnen Kabel. Ein dickes 5 Volt Netzteil im Sternpunkt und dann 100m weiter ein paar Relais schalten, das wird nix. Du solltest in den Sternpunkt ein 24V Netzteil setzen und an den Endpunkten einen kleinen Schaltregler. Als Endpunkt reicht ein PIC12C508. 2 Pins für serielle Übertragung, 2 Pins für hoch/runter (Solid-State-Relais SSR). mit den Tastern am Rollladen kannst Du den die SSRs überbrücken (Veriegelung beachten).

Wenn ich nochmal genau darüber nachdenke und Du nicht zu anspruchsvoll bist, dann kannst Du den Rückkanal eigendlich weglassen.

Wenn Du nur sicherstellen willst, das Deine Rollläden zu einer bestimmten Zeit hoch/runter fahren, dann reicht es eigendlich auch, wenn Du die SSRs bei den Rollläden plazierst und die darin enthaltenen Optokoppler von Sternpunkt über eine Stromschleife ansteuerst. Das würde das Ganze enorm vereinfachen. Rückmeldung wäre unter Umständen auch mäglich.

Bei einem 4 adrigem Kabel könnte man 2 Adern verwenden um die SSRs anzusteuern (antiparallel). Die restlichen 2 Adern könnten die Rückmeldung der Taster am Rolladen (Optokoppler [LED am Netz ohne Trafo...]) sein (antiparallel mit Wechselsrom).

Dann brauchst Du an den Endpunkten keine Controller und auch kein Protokoll/Netzwerk.

Veriegelung beachten!

RS485 auf 2 Leitungen braucht eine Richtungsumschaltung - CAN nicht.

Tschö Dirk

Reply to
Dirk Ruth

Hallo!

Ich habe vor, sowas auch zu machen, allerdings geht's bei mir um eine Altbausanierung. Die Verkabelung wurde schon gemacht, 5-adrige

230V-Leitung, gemischter Bus-Stern. Das sind meine Rahmenbedingungen.

Ich werd' in der ersten Stufe (weil's schnell gehen muß) nur eine zentrale AUF/ZU-Steuerung vorsehen. Dazu nehme ich die 2 freien Adern und schalte 2 Relais mit Dioden antiparallel.

In einer 2. Stufe hab' ich mir dann einen AVR vorgestellt, der Zeitabhängig die Rollos auf/zumachen kann, aber nur alle zugleich.

In der endgültigen Ausbaustufe soll dann jedes Fenster getrennt angesteuert werden können. Nach einigen Recherchen hab' ich mich für die 1-Wire Linie von Dallas entschieden (besonders das Teil mit 8bit IO). Die haben einen riesigen Vorteil: man bekommt gratis Samples. Mit SW aus dem Netz hab' ich innerhalb eines Tages die Abfrage von den DS18S20 hinbekommen, die ich auch gleich mitbestellt habe. Das habe ich dann an einem 50m-Bund des verbauten Kabels probiert, funktioniert einwandfrei. Ohne Tricks, bei Dallas gäb's auch einen speziellen Treiberbaustein, den man an eine RS232-Schnittstelle bauen kann, der sollte auch schwierigere Situationen verkraften.

Ich würde vorschlagen, wir tun uns zusammen und versuchen nicht, jeder für sich das Rad zu entwickeln.

Grüße, Christof

Reply to
Christof Bodner

Es gibt über Eurodis/Enatech auch eine sogenannten TP-UART IC der die umsetzung von TTL Pegel auf den zweidraht EIB-Bus macht. Ein bisschen drumherum braucht man auch noch. Die bekommt man IMHO auch einzeln.

--
Andreas Hezel
__________________________________________________________
**********************************************************
  Andreas Hezel ---> Mail: AndreasHezel@gmx.de
**********************************************************
Reply to
Andreas Hezel

Jürgen Leeb wrote: > Welche Umschaltung? Ich bin mit RS485 nicht so vertraut.

Fuer dich genuegt z.B. der Baustein LTC 485 CN8. Im Daten- blatt steht alles drin. Du musst halt ansonsten nur jedem deiner Slaves eine Adresse zuordnen. Ansonsten hat Uwe alles notwendige gesagt. Die 8051er haben sogar standardmaessig einen besonderen Modus fuer solche Faelle. Aber eine eigene Software (Adressenueberpruefung durch die Slaves) tut es auch.

Mit Gruss Joachim Riehn

Reply to
Joachim Riehn

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.