Hallo zusammen!
Ich bin seit lange Zeit auf der Suche nach der Möglichkeit ein Bussystem
aufzubauen zum Ansteuern von Verbrauchern. Sprich ich habe im Haus viele
Verbraucher (Steckdosen, Licht, Sensoren) die ich bidirektional über ein
Bussystem ansprechen will. Die Adresse des gerätes solte über
DIP-Schalter oder so einzustellen sein und ungefähr so funkitonieren.
Ich schicke über die RS232 meines PC's ein String der folgendes Enthält:
[Geräteadresse][Abfrage oder Befehl][Zustand] z.B.
245 0 Abfrage 1 Befehl 0 aus 1 an
Ich kenne mir mic µP aus aber ich habe keine Ahung wie ich
sowas realisieren kann! Hat jemand eine Idee, oder
weiß vielleicht jemanden der sowas schon mal entwickelt hat und weiß wie
es gth? Gibt es im Internet sowas zu finden?
Das durchsuchen vieler Seiten im Internet ergab leider keinen Erfolg.
Herzlichen Dank für jeden auch nur so kleinen Tipp.
Sebastian Kucharski
erstmal mußt du dir über die Art der Übertragung klar werden. In Frage
kommen eine Art RS232, besser RS485, benötigt jedoch zusätzliche
Verkabelung, powerline-Übertragung, also mit FSK über die Netztleitung
oder Funk.
Ja mit Funk ist das so eine Sache! War ich auch schon auf der Suche!
Aber ich denke für den Anfang möchte ich doch lieber das ganze
Kabelgebunden machen! Also ich würde RS485 vorzeihen, läßt sich das über
ein geschirmtes Zweidrahtkabel realisieren?
Jo, das geht mit Zweidrahtleitung, allerdings nur Halb-Duplex, aber das
ist kein Problem.
Wenn du nun das Übertragungsmedium hast, mußt du entscheiden, ob du ein
single-master oder ein multi-master-System aufbauen willst, einfacher
ist ein single-master.
Der Ablauf ist dann folgender: Der Master (kann ein PC sein) sendet den
Informationensblock (Aktion am slave bestimmen oder Informationen
abfragen). Der slave antwortet, daß er die Information empfangen hat
(acknowledge) und sendet ggf. weitere Informationen. Kein slave kann von
sich aus senden, der gesamte Busverkehr wird vom Master gesteuert. Evtl.
Datentransfers von einer Endstelle zu einer anderen werden immer über
den Master abgewickelt. Kommen auch Informationen vom Endgerät zum
Master, müssen alle Teilnehmer regelmässig abgefragt werden (polling).
Die Alternative wäre gleichberechtigte Busteilnehmer, dabei kann es zu
Buskonflikten kommen, läßt sich aber per Software in Griff bekommen.
Datenverkehr gibts nur, wenn was zu melden ist.
Zur Hardware: du brauchst passende Treiberbausteine für
Halb-Duplex-Betrieb, z.B MAX485 oder LTC485, die werden mit ihren
TTL-Anschlüssen einfach an die UART des MC angeschlossen (Rx und Tx),
auf PC-Seite noch einen MAX232 vorschalten.
Es gibt eine Möglichkeit, die Datenübertragung ohne zusätzliche
Verkabelung zu realisieren. Allerdings muß man die Bus-Protokolle per
Software ein wenig aufwendiger gestalten, da auf der Netzleitung öfters
Störungen vorkommen können.
Schau Dir mal den TDA5051 von Philips an, das ist ein sog. "Home
Automation Modem" und benötigt nur wenige externe Komponenten.
Ich habe eine Steuerung für meine Wohnung realisiert - Kern ist ein
80C535, die Steuerung ist zentral in einem Schaltschrank untergebracht.
Pläne existieren leider keine.
Die Software besteht aus einer selbst entwickelten "SPS-Sprache", d.h.
der Controller arbeitet nur eine Liste mit den gewünschten Funktionen
ab. So kann ich sogar zeitgesteuerte Sequenzen realisieren (z.B.
Rolläden nacheinander herunterfahren - oder gleichzeitig, nach
belieben).
Als besonderes Feature habe ich in jedem Raum einen IR-Empfänger, so
kann ich spezielle Funktionen oder auch das Licht mit einer
handelsüblichen IR-Fernbedienung schalten. Funk habe ich deshalb nicht
genommen, weil ich in jedem Raum so eine eigene Belegung realisieren
kann.
Falls Du die Wohnung gerade neu Verkabelst und sowieso Schlitze kloppst:
Lege nicht feste Leitungen, sondern Leerrohre, in die später dann die
Leitungen eingezogen werden. Ist etwas teurer, aber man kann jederzeit
noch mal eine Strippe nachziehen - beispielsweise Glasfaser, falls das
irgendwann standard wird, oder mal eine Telefonleitung, weil der PC
einen anderen Platz bekommt.
Hört sich echt interessant an! Das ist genau das was ich mir vorstelle!
Die frage ist wie mache ich aus der RS232 eine RS485 dann könnte ich ja
schon langsam an dem Master basteln. Die Umsetzung später auf Funk
sollte dann kein Problem mehr sein. Im Momenent möchte ich aber nur über
Kabel machen. Ich habe aber gelesen das ich nur max. 32 Geräte so
steuern kann, stimmt das?
Vielen Dank für deine Hilfe!
Hallo
habe mir ein Haus gekauft und habe das selbe vor.
Man sollte auf jedenfall RS485 nehmen wegen der Leitungslänge
(ab 10 m ist die RS232 am Ende).
Hab mir gedacht das ich an jeden Sensor oder Schalter einen
AT90S2313 setze der die Signalzustände über ein telegram sendet und ein
AT90S8515 die telegramme empfängt und auswertet.Die
adressen sind eigentlich nur von den freien eingängen am Sensor IC
abhängig denke ich ?!
Hi.
Es stimmt nicht, dass du mur max. 32 Geräte ansprechen kannst.
Im Prinzip kannst du eine fast unbegrenzte Anzahl an Adressen den
Geräten zuteilen. Es kommt nur darauf an aus wievielen Bits deine
Adressen bestehen (im Normalfall müssten 255 Adressen reichen --> also 1
Byte).
Zu bedenken ist aber, je mehr Adressen du hast, desto langsamer läuft
das polling ab.
MfG, Niglo.
die 32 sind nicht ganz aus der Luft gegriffen. Die ursprüngliche
Spezifikation der RS485 sah das so vor, (hängt mit den Treiberströmen,
Abschlusswiderständen, Eingangswiderständen und Flankensteilheit
zusammen). Andere Treiber (wie der MAX485) treiben 128 Receiver, und das
sollte genügen.
Die Adressierung muß nicht zwangsläufig mit DIP-Schaltern eingestellt
werden, ebenso denkbar ist die ABlegung der Adresse im Programmspeicher
(aufpassen beim Programmieren derselben) oder, eleganter, Abspeicherung
im EEPROM. Man kann einen speziellen Programmiermodus einbauen, mit dem
die Adresse im nachhinein zugeordnet werden kann. Dazu darf sich dann
natürlich jeweils nur ein Baustein am Bus befinden (Prinzip wie bei
Digitalempfängern für Modelleisenbahnen.
Das mit dem ablegen von dem Programm und so das habe ich auch alles vor,
ich sammle momentan Informationen und habe bei MAXIM eine Tüte von dem
MAX487... Treibern bestellt. Waren ja kostenlos als Samples. Ich habe
auch schon überlegt wegen dem TDA5051 von Philips, aber den gibt es
niergends als bei Philips und da kann ich keine kleinen Mengen
einkaufen. Würd mich interessieren thkaiser die her hat!
Ich möchte jetzt erst mal zwei Module bauen! Also einen Master baue ich
aus meinem Atmel experimentierboard, die zwei slaves möchte ich
zusätzlich bauen. Was brauche ich mindestend damit das läuft! Ich möchte
einfach nur 8 Ausgänge haben,... Was ist die minimalsschaltung von einem
AVR? z.b. dem: AT90S2313-10PI so das ich direkt die acht ausgänge
betreiben kann, dann könnte ich schon mal anfangen zu experimentieren!
DANKE
Jep, der TDA5051 ist nicht so einfach zu beschaffen, aber
http://www.spoerle.de hat ihn. Allerdings liefern die nicht an privat -
ich habe einen verständnisvollen Chef, der mich in solchen Fällen die
Bauteile über die Firma bestellen läßt. Damalige Mindestabnahmemenge war
5 Stück, Preis auf Anfrage.
Hab gerade nochmal bei Schukat.de nachgeschaut - die haben ihn auch.
Allerdings sind die recht konservativ: Bevor man etwas bestellen darf,
muß man einen Gewerbeschein vorlegen. Preis dort: 4,95 /St. bei Abnahme
min. 5 Stück, bei 25 kosten sie schon nur noch 4,05.
Ich habe sie benutzt, um eine Markisensteuerun zu realisieren. 16
Leitungen zur Einzelsteuerung von Segmenten und nur eine 230 V- Strippe
- da war der TDA5051 die letzte Hoffnung.
Noch ein Wort zu Multi-Master: Zwar kommt es äußerst selten vor, daß
zwei Master gleichzeitig senden, aber es kommt vor. Da ist die
Bus-Arbitrierung nach I²C-Vorbild ein guter Weg.
Hi,
ich verwendete im meinem Home-Automation-System dort wo Leitungen
möglich waren RS485 und ein angepaßtes Protokoll
aus den Projekten HAN und SNAP:
http://www.hth.com/snaphttp://members.home.net/highwaystar/han.html
wo keine Extraleitungen möglich waren, verwende ich Sender/Empfänger an
der Netzstromversorgung (230V~).
Kodierung/Dekodierunng erledigen die MC145026/MC145027/MC145028 von
Motorola, die wurden für Fernbedienungen entwickelt und z.B. als
Lokdecoder/encoder in Modelleisenbahnanlagen verwendet. Über einen
simplen 4046 der als FSK Modulator/Sender geschaltet ist, werden die
Pegel
als 90kHz und 160kHz über einen Übertrager und einen Kondensator auf die
Stromversorgungsleitung geschaltet.
Empfängerseitig wird über einen Übertrager das Signal aus der
Stromversorgungsleitung ausgekoppelt, gefiltert durch TCA440, und ein
4046 darf als FSK/Demodultator dann wieder H/L daraus basteln. Man
braucht also nicht unbedingt einen MC. Als Signalerzeuger/verwerter kann
man aber auch einen MC (z.B.ATMEL-AVR) werkeln lassen. Dann fallen die
Motorola Decoder/Encoder weg. Falls sich jemand dafür interessiert, dann
könnte ich das ganze Projekt mal als Link zur Verfügung stellen.
Gruß
Das hört sich mehr als interessant an - ich möchte auch einen Link!
Auch sehr wichtig: Verfügbarkeit / Bezugsquelle der verwendeten
Übertrager.
Danke im voraus
Hallo @mcfirst
*******************************************************
Suche schon lange Info's für ein sehr ähnliches Projekt
*******************************************************
Der angekündigte Link könnte mir bestimmt weiterhelfen.
im Voraus besten Dank
Günter
Hallo
wenn ich so ein bussystem mit einen TDA5051 realisiere,wie
bekomme ich dann die 5V zu meinem Schalter wo der TDA5051 mit
einen AVR sitzt (Trafo ??? wird ein bißchen groß in der Unterputzdose)
oder müßen die 5V auch verlegt werden.
@Michael
Schau dir mal das Datenblatt zum TDA5051 an. Da ist genau das Thema
geklärt in den Schaltplänen am Ende des Datenblatts. Einzigster Nachteil
es findet keine Potentialtrennung statt.
Was allerdings ein Problem wird ist das in den meisten Schalterdosen
kein Null-Leiter drin ist sondern nur die Phase ankommend und abgehend.
Gruss Carsten
Moin
Ich möchte euch ja nicht von RS485 abhalten, aber warum nicht CAN?
Bidirektional, zweidrahtbus, max 1000m Segmentlänge, ~124 Stationen
möglich, Stromversorgung über den Bus möglich.
Bin, allerdings aus anderen Gründen, gerade dabei mich da einzuarbeiten,
beim Wühlen ist mir noch folgende Seite begegnet:
http://www.canathome.de/
Microcontroller mit CAN Logik gibt es in Massen von allen üblichen
Verdächtigen, auf Basis von 8051,PIC,68xxx und diverse proprietäre
Controller.
Benötigt wird jeweils noch ein Bustreiber, üblicherweise Philips TJA1050
oder 52C251 (Wenn ich mich jetzt nich mit den Bezeichnungen vertan habe,
hab mein Material nicht hier, die Daten lassen sich aber einfach finden)
Ich baue gerade soetwas mit einem veränderten I2C Protokoll, das an das
TCP/IP Protokoll angelehnt ist.
Ich habe bereits einen 'Router' entwickelt, dadurch kann ich auch
längere Stecken überbrücken und halte die Datenrate auf den einzelnen
Leitungen gering. Die Vorteil sind, das ich nur einen Wiederstand und
einen Transistor als Externe Bauteile benötige(Platz und Kostengünstig)
und das ich 65000 verschiende Adressen habe. Jeder Busteilnehmer kann
frei mit jedem anderen kommunizieren und es ist keine PC dazu nötig.
Funktioniert bis jetzt Problemlos habe bereits eine Relais-Karte, 12V
Halogendimmer, Lcd- Modul und A/D Wandler Realisiert.
warum machst du nicht folgendes, hängst an deine parallele eine gute ir
diode mit schön verstärker davor. hängst den sender irgenwo an die
decke.
dann machst du weiter.
tust billigen µC in Empfänger und machst für jedes gerät nen seperaten
code:
z.b.:
0101 XXXX XXXX 0101
0101 am anfang zum synchronstellen
die ersten 4 X zur geräteauswahl
die letzten 4X zur statusvorgabe (dimmer oder ähnliches[emv!])
0101 zum schluss als abmeldung
send mir doch bitte deine unterlagen zu wenn du was auf die beine
gestellt hast