Forum: Mikrocontroller und Digitale Elektronik Bussystem?


von Sebastian Kucharski (Gast)


Lesenswert?

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

von crazy horse (Gast)


Lesenswert?

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.

von Sebastian Kucharski (Gast)


Lesenswert?

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?

von crazy horse (Gast)


Lesenswert?

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.

von thkaiser (Gast)


Lesenswert?

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.

von Sebastian Kucharski (Gast)


Lesenswert?

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!

von Michael (Gast)


Lesenswert?

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 ?!

von Niglo (Gast)


Lesenswert?

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.

von Sebastian Kucharski (Gast)


Lesenswert?

Es stimmt allerdings schon das man nur 32 betrieben kann, aber mit dem 
MAX487... gehen 128! Das liegt an der belastung des Bussystems!

von crazy horse (Gast)


Lesenswert?

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.

von Sebastian Kucharski (Gast)


Lesenswert?

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

von crazy horse (Gast)


Lesenswert?


von thkaiser (Gast)


Lesenswert?

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.

von mcfirst (Gast)


Lesenswert?

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/snap
http://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ß

von Sebastian Kucharski (Gast)


Lesenswert?

Der Link wär interessant!

DANKE

von thkaiser (Gast)


Lesenswert?

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

von guenter Lintzmeyer (Gast)


Lesenswert?

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

von Michael (Gast)


Lesenswert?

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.

von Carsten Sprung (Gast)


Lesenswert?

@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

von J. Lesselich (Gast)


Lesenswert?

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)

von Georg (Gast)


Lesenswert?

hi,

für ne Funklösung:

www.funkmodul.com

bei Download schauen.

Gruss Georg.

von Jürgen (Gast)


Lesenswert?

@J. Lesselich:
CAN kann man auch über RS485 laufen lassen. Hat beides Vor- und 
Nachteile.

Ansonsten denke ich auch, dass CAN eine sehr gute Lösung ist.
Ein weiterer Link als Anregung: http://caraca.sourceforge.net

Und für die Steuerung vom Server aus:
http://canbus4linux.sourceforge.net/
http://private.addcom.de/horo/can200/

von Daniel (Gast)


Lesenswert?

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.

von ulrich strobel (Gast)


Lesenswert?

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

von Jörg (Gast)


Lesenswert?

Hallo mcfirst,

kannst Du den Link für Dein Projekt hier Posten. Ich wäre stark
interessiert.

Gruß Jörg

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.