Hallo,
ich beschäftige mich z.Zt. ein wenig mit dem Thema Hausbus. Allerdings
noch im sehr frühen Anfangsstadium ohne Projekt im Hintergrund.
Ich bin gerade bei geeigneten Übertragungswegen der Signale zwischen
verteilten µC´s.
Dabei ist mir folgende Information im Netz "in die Hände gefallen":
1
RS232 cable length according to Texas Instruments
2
3
Baud rate Maximum cable length (ft)
4
19200 .......................... 50
5
9600 .......................... 500
6
4800 ......................... 1000
7
2400 ......................... 3000
3000ft sind knapp 1000m, also ausreichend für ein Otto-Normal-Haus.
2400 Baud sollten bei den Steuerungsinformationen eigentlich auch
reichen.
Nun meine Fragen: Gibt es bereits Erfahrungen damit? Geht wirklich 1km
(und bei weniger Geschwindigkeit vielleicht sogar noch mehr) über RS232.
Würde dabei einfaches Telefonkabel reichen, oder müsste es geschirmt
sein?
Danke schön :-)
Matze
RS232/V24 kannst Du für Hausbus komplett vergessen, da ungeeignet.
Oben wird auf RS485 verwiesen, da kann man schon mehr mit anfangen, Can
würde auch gehen (wurde schon einige Male gemacht)
>RS232/V24 kannst Du für Hausbus komplett vergessen, da ungeeignet.
weil...
Es können quasi beliebig viele Geräte auf dem Kabel hängen, solange nur
einer "unaufgefordert" sendet.
Was übersehe ich denn da?
>Oben wird auf RS485 verwiesen, da kann man schon mehr mit anfangen, Can>würde auch gehen (wurde schon einige Male gemacht)
Wie ich schon geschrieben habe, es ist noch lange nicht im
Projektstadium. Ich verschaffe mir im Moment nur einen Überblick "was
geht". Ich habe mir auch Artikel über RS485 und den CAN-Bus
durchgelesen, wobei ich da eher zum 2. tendieren würde. Alternativ ist
auch eine direkte Kommunikation über TCP/IP nicht ganz abwegig. Netzwerk
kommt, das weiß ich sogar schon vor der Feinplanung, mindestens mit
jeweils einer Duplexleitung in jeden Raum. Also auch Küche & WC -
vielleicht soll ja mal ein Webradio irgendwo hin, und just da hapert´s
mit dem WLan.
Das wäre von der Konfiguration wahrscheinlich das schönste, nur halt
erheblich teurer...
Sicherlich kann man das auch irgendwie mir RS232 hin bekommen.
Nur warum?
RS232 wurd entwickelt um Peripherie-Geräte an PCs anzuschliessen.
Jetzt wurde das in Vergangenheit für viele,viele Anwendungen weiter
verwendet. Was auch gut ist und war.
RS485/CAN/LIN etc. sind spezielle Bussysteme für mehrere Teilnehmer auch
in "rauhen" Umgebungen. Würdest du ca. 1km dein RS232 durchs Haus legen,
dann würde (falls du keine galvansiche Trennung vornimmst) deine
Boardspannung ohne irgendwelchen Schutz (Störeinstrahlung/Austrahlung)
betrieben. Das halte ich für sehr feherlanfällig. WLAN/Ethernet ist
oversized und benötigt Sternverdrahtung - da bist du nur am Kabelziehen
und hochwertiges CAT6 oder ähnlich geht auch ins Geld.
Also, warum das Rad neu erfinden. Such dir hier im Forum eine
Referenzprojekt mit oben genannten Bussen und gut. Die Mehrkosten sind
im Verhältnis zum Arbeitsaufwand der dahintersteckt sowieso zu
vernachlässigen.
Ich stand vor einigen Jahren vor dem selben Thema, bin dann über
canathome.de auf can gekommen und mein System mit ca 30 Busteilnehmern
läuft seit über 1 Jahr fehlerfrei (sieht man mal von Programmierfehlern
bzw. Unschönheiten in SW ab). Die HW läuft auf jeden Fall seither durch
- die SW wird wohl nie fertig, da ich immer wieder neue Ideen habe; aber
das ist ja das schöne daran.
Hoffe ich konnte dir helfen.
Hallo Guru,
>Sicherlich kann man das auch irgendwie mir RS232 hin bekommen. Nur warum?
Berechtigte Frage :-). Es ging mir nur um die Theorie. Ich wollte nur
verifizieren, ob diese Kabekkängen tatsächlich realistisch erreichbar
wären.
>Würdest du ca. 1km dein RS232 durchs Haus legen, dann würde (falls du >keine
galvansiche Trennung vornimmst) deine Boardspannung ohne >irgendwelchen Schutz
(Störeinstrahlung/Austrahlung) betrieben.
Und das habe ich bei den anderen Möglichkeiten nicht??
>WLAN/Ethernet ist oversized und benötigt Sternverdrahtung - da bist du >nur am
Kabelziehen und hochwertiges CAT6 oder ähnlich geht auch ins Geld.
Das es etwas hochgestochen ist stimmt. Die Kabelpreise sind allerdings
kein Problem. Wie ich geschrieben habe - Kabel kommt in jeden Raum, so
oder so. Da wird nicht mehr gespart. Jeder Raum bekommt mindestens ein
CAT7-Duplex-Kabel.
>Hoffe ich konnte dir helfen.
Auf jeden Fall. Die Seite "canathome" hat geholfen :-)
Nur noch eine Frage zum CAN-Bus, wo ich eh gerade so schreibe...
Was brauche ich "real" für einen Versuchsaufbau?
Je 2x
µC - atmega8 in Grundbeschaltung - Quarz nötig?
MCP2515MCP2551
Wenn ich nichts überlesen habe läuft das MCP-Gedöns auch mit 5V. Ich
brauche also keine anderen Pegel? Kann ich, bei Verwendung von CAT7, die
Versorgungsspannung für die Schaltungen mit durch das Kabel jagen, oder
sollte man das lieber nicht tun?
Danke schön
Matze
Hallo Guru,
in einem muss ich Dir entschieden widersprechen.
RS232 gab es schon lange bevor der PC das Licht der Welt erblickt hat.
Ich habe vor mehr als 30 Jahren auch Busssysteme mit RS232 aufgebaut,
allerdings in einer Current-Loop Ausführung.
Ich gebe Dir aber recht, dass es heute natürlich weit Besseres für ein
Busssystem gibt als RS232, das übrigens nie dafür gedacht war.
Gruss
AED
Hi Matze,
ich habe meine ersten Versuche mit diesem Board gemacht:
http://www.kreatives-chaos.com/artikel/can-testboard
Auf der Basis sind dann auch meine Module für Unterputzdosen entstanden,
welche klaglos Ihren Dienst verrichten. O.g. Board ist immer noch als
CAN/RS232 Gateway zur PC-Anbindung im Einsatz.
Mein Buskabel hat 4 Leitungen (VCC, GND, CAN-L, CAN-H), d.h. die
Versorgung der Module erfolgt zentral über die Busleitung. Aufgrund der
Leitungslänge und des Spannungsabfalls beträgt VCC an der Einspeisung
ca. 12V= und wird auf jedem Modul per 7805 zu den benötigten 5V=. VCC
und GND sind auf mehrere Adern verteilt. Trotzdem kommen nach gut 100m
am letzten Modul nur noch gut 8V= an.
Gruß - Micha
Hallo Matze,
Antworten auf deine Fragen:
>Würdest du ca. 1km dein RS232 durchs Haus legen, dann würde (falls du >keine>galvansiche Trennung vornimmst) deine Boardspannung ohne >irgendwelchen >Schutz>(Störeinstrahlung/Austrahlung) betrieben.>Und das habe ich bei den anderen Möglichkeiten nicht??
CAN arbeitet mit differentieller Übertragung, das ist schon mal der
Hauptvorteil zu RS232, das Massebezogen arbeitet. Sprich Masseversatz
über die Leitungslänge interessiert dich dann nicht. CAN ist auch nicht
gal. getrennt, es gibt aber einige Mechanismen und Zusatzelemente um die
Störein- und Aussendung zu minimieren. Allein schon durch die
verdrillten Leitungen bei CAN (auch CAT) werden Störungen auf die
Leitungen immer gleichartig aufgeprägt und durch die dif. Übertragung
machen sie dir dann nichts aus. Durch Einsatz einer Common-Mode-Coil auf
jedem Modul können diese Störungen dann noch zusätzlich gefiltert
werden. Ist State-Of-The-Art im Automotive-Bereich. So habe ich das bei
mir gemacht - habe ich sonst bei keinem anderen Hausbussystem gesehen
;-)
>Je 2x>µC - atmega8 in Grundbeschaltung - Quarz nötig?>MCP2515>MCP2551
Ich kenn die Teile nicht so genau; sollte aber genügen (MC,
Can-Controller, Can-Transceiver).
>Wenn ich nichts überlesen habe läuft das MCP-Gedöns auch mit 5V. Ich>brauche also keine anderen Pegel? Kann ich, bei Verwendung von CAT7, die>Versorgungsspannung für die Schaltungen mit durch das Kabel jagen, oder>sollte man das lieber nicht tun?
Jeep - ich habe bei mir die orginal EIB-Kabel ; zwei Leitungen mit
CAN-H/L und zwei mit 12V/Gnd. Mit Cat7 kannst du sogar zwei Pfade
aufmachen, da du ja 4 verdrillte Päarchen hast.
@AED
>Hallo Guru,>in einem muss ich Dir entschieden widersprechen.>RS232 gab es schon lange bevor der PC das Licht der Welt erblickt hat.>Ich habe vor mehr als 30 Jahren auch Busssysteme mit RS232 aufgebaut,>allerdings in einer Current-Loop Ausführung.
Ich wusste das irgendjemand darauf antwortet und das wiederlegt;-)
Ehrlich gesagt weiss ich auch nicht exakt die Entstehungszeit der RS232;
aber ich kenne sie seit ich mich mit PCs/MCs beschäftige. Ist ja auch
nicht so relevant. Auf jeden Fall wurde der Standard für
Punkt-zu-Punkt-Verbindungen und kurze Entfernungen entwickelt.
Hoffe geholfen zu haben.
Guru
Ich bin gerade dabei, die Hausautomatisierung auf Ethernet umzustellen,
kommend von diversen Interfaces angefangen von RS232, X10,
Direktverdrahtung bis zu 1-Wire.
Der Hintergrund ist der, dass faktisch alle Video/Audiogeräte zunehmend
auf Ethernet zugreifen, die Kinder wollen einen PC der Ethernet braucht
usw. usf. Somit sind Ethernetswitche flächendeckend im Haus vorhanden.
Ich muss jetzt auch zunehmend die CAT5 Leitungen, die ich mal für den
Hausbus gelegt hatte für Ethernet umwidmen, um die neunen Spassgeräte
anzubinden.
Dazu kommt, dass die Peripheriegeräte immer komplexer werden. Im
Wohnzimmer/Wintergarten werden Rolladen, Markisen, Licht, und
Dachfenster und die Heizung darüber gesteuert. Da das auch
fehleranfälliger ist, bzw. häufiger mal umprogrammiert werden muss,
möchte ich dafür einen Bootloader haben, der 32k ROM in einer
vernünftigen Zeit über den Bus programmieren kann.
Und nicht zuletzt kann ich dann von allen PC aus die Peripheriegeräte
kontrollieren. Das habe ich bisher alles über irgendwelche Gateways
machen müssen.
Eine Sternverdrahtung ist dafür nicht nötig, es gibt Switches in
diversen Ecken des Hauses, von denen aus ich dann problemlos Geräte
anbinden kann.
Und mit dem enc28j60 oder ähnlichen Bausteinen kann ich einen Ethernet
Anschluss sehr einfach herstellen, das ist letzlich nicht aufwändiger
als CAN oder irgendwas anderes. Die Priorisierung etc. wird alles in den
Switches gemacht, die sowieso vorhanden sind, da brauche ich mich nicht
drum kümmern.
Gruss
Axel
Hallo Axel,
all das was du machst geht auch mit CAN.
Hast du mal den Stromverbrauch bei dir ermittelt?
Auch die HW-Kosten sind bei dir deutlich höher.
CAT liegt bei mir auch in jedem Zimmer.
Aber nicht für den Hausbus.
Ich denke ein- zwei Knoten mit mehr Intelligenz reichen für komplexe
Aufgaben aus. Alles ander günstig, einfach und stromsparend halten so
wie Lichtschalter, Rolladensteuerung etc.
>all das was du machst geht auch mit CAN.
Eben nicht. Ich kann die Leitungen nun mal nur einmal nutzen.
Zusätzliche Leitungen für CAN oder was anderes sind einfach nicht mehr
drin.
Stromverbrauch ist natürlich ein Argument, allerdings liegt ein Ethernet
Knoten bei 500mW, was im Jahr unter einem Euro ist und auf dem Niveau
eines angezogenen Relais.
>CAT liegt bei mir auch in jedem Zimmer.>Aber nicht für den Hausbus.
Wenn Du Kabel für den Hausbus extra ziehen musst, sind die Mehrkosten
für die Ethernet HW wohl eher Minderkosten. Davon abgesehen halten die
sich auch so stark im Rahmen.
>Alles ander günstig, einfach und stromsparend halten so>wie Lichtschalter, Rolladensteuerung etc.
Ich mache ja nun auch nicht an jeden Lichtschalter einen Ethernet
Knoten. In der Regel ziehe ich von da aus schlichte Zweidrahtleitung zum
nächsten Knoten.
Gruss
Axel
Ich habe meinen Hausbus am VBus von RESOL orientiert (Hardware und
Datenstruktur). Ist ein Single-Master-System, Stromschleife mit 35mA (es
können damit auch Geräte gespeist werden), 9600 Baud.
Damit kann ich mit zwei Klingeldrähten verpolungssicher und ohne
Galvanische Trennung, per RS232-Protokoll das ganze Haus abdecken.
Zusätzlich lassen sich Geräte wie Solarregler, Gastherme usw. mit
einbinden.
Das Ganze läuft schon 1/2 Jahr absolut störungsfrei, die
RS232-Übetragung vorher machte etliche Probleme wegen Einstreuung auf
lange Leitungen.
Hallo Matze,
ich bin schon ein paar Schritte weiter, wenn auch der Hausbus noch nicht
in Betrieb ist. In den letzten Monaten habe ich unser gebrauchtes DHH
umgebaut. Dabei die gesamte Elektrik im EG und OG neu gemacht. Nun liegt
in jeder Dose bzw. in jeder Dosenkombination, egal ob Taster oder
Steckdose ein EIB Kabel (grünes Kabel mit 4 x 0,8mm²). Das EIB Kabel
habe ich genommen, da es mit diesem Kabel zuläßig ist es mit 230V
Verkabelung zusammen zu verlegen.
In jeder Dosenkombination ist mind. eine Kaiser Elektronikdose drin. Die
ist zwar nicht gerade günstig, aber nach Vergleich mit anderen Lösungen
meiner Meinung nach die beste Wahl.Ein weiterer Vorteil dieser Dose ist
eine einschiebbare Abtrennung zwischen Dose und Elektronikraum. Somit
ist eine räumliche Trennung Steuerung/Busanbindung und
Lastteil(Relais/SSR) möglich.
Über das EIB Kabel wird CAN laufen, zum einen, weil es für einen
Steuerbus ideal geeignet ist, zum anderen weil es mit Hobbymiteln recht
einfach und günstig zu realisieren ist (außerdem entwickele ich
beruflich Steuergeräte).
Eine CAT5/6/7 Netzwerkleitung in jedes Zimmer ist ok, aber ich würde
dies nicht für den Hausbus nutzen, zumindest nicht, wenn Du in jede Dose
willst. Der Grund, warum ich das nicht gemacht habe: zum einen ist das
EIB Kabel zugelassen um mit 230V Installation verbaut zu werden (eventl.
willst Du ja mal Dein Haus verkaufen?), zum anderen ist ein CAT NW
Leitung einfach mechanisch deutlich störischer - es war schon die
Verlegung der EIB Leitung ein deutlicher Mehraufwand.
Folgende Punkte habe ich mit der EIB Busleitung angefahren:
- jeder Tasterkombination
- jede Steckdosenkombination
- in jedem Zimmer eine UP Dose am Eingang als Terminal (geplant: S65
Display mit Touchscreen)
- jeder Rolladentaster
- jeder Rolladenkasten (um per Reedkontakt feststellen zu können ob
Fenster offen, gekippt oder zu sind)
- in jedem Raum in der Decke eine UP Dose in der Sensorik verbaut werden
kann (Bewegungsmelder, Temp., Feuchte, ....)
- bei jedem Heizkörper in der Nähe des Ventils
- in der Fußbodenheizungsverteilung
- im Lichtsteuerkasten (Dimmer, Stromstoßschalter sind zentral)
- in der Nähe zur Haustür, mit Verbindung zum Türöffner (extra Leitung)
- über extra Leitung Verbindung nach aussen (Nord/Süd) für Sensorik
(Temp., Feuchte, Windgeschw., ...)
- unter den Küchenschränken (von dort kommt man überall in der Küche
hin)
- unter der Badewanne (da hier die Stellventile für den Heizkörper und
die FB Heiz. im Bad sind)
- zu jedem Türschloß und jedem Dachfenster geht eine 4 adrige 0,6mm²
Leitung zum nächsten Taster, damit kann man per Reedkontakt prüfen ob
die Tür / das Fenster zu ist.
- zu jedem dezentralen Lüfter (mit WRG) in den Wohnräumen
Bei Bedarf kann ich ja mal ein paar Bilder nachliefern.
Und noch etwas: ich hätte nicht gedacht, dass soviele Leitungen (Sat,
NW, Tel, EIB, Audio) zusammenkommen, also lass genügend Platz in den
Installationsschächten und nim einen großen Verteiler. Ich habe Media
(NW, Tel, Sat) getrennt von Versorgung und getrennt von Lichtsteuerung.
Und mach Dir Gedanken, ob Du Dein Haus auch konventionell (ohne Bus)
betreiben willst. Das ist meiner Meiung nach sinnvoll wenn Du das Haus
mal verkaufst. Ich habe deshalb zusätzlich von jeder Tasterkombination
zur Lichtsteuerung X x 0,6mm² Leitungen gezogen. Damit kann ich jetzt
ohne Buss die Stromstoßschalter und Dimmer steuern.
Vorteil für mich: die Grundfunktion (Licht an/aus, Strom, Rolladen)
gehen ohne Bus, so kann ich mir Zeit lassen mit der Entwicklung.
Nur die Komfortfunktionen werden dann über den Buslaufen. Da ich jedes!
Licht über ein Stromstoßschalter oder Stromstoßdimmer (von Eltako)
steuere ist es möglich per µC das Licht ein/auszuschalten. Per zweitem
Kontakt im Stromstoßschalter kann ich die derzeitige Stellung in den µC
rücklesen.
Sollte ich mal ausziehen muss ich im einachsten Fall nur die
Stromversorgung des Hausbussystem abschalten und das Haus funktioniert
wie jedes andere auch. Und wenn der Käufer will kann er ja über die EIB
Leitung auch komerzielle EIB Produkte einbauen.
Nur so für Deine Planung, vielleicht hilft es Dir ja.
Grüße Tien
Ich verwende im ganzen Haus (350qm / 29Räume) sehr intensiv einen
abgespeckten RS232-BUS. Naja - BUS will ich es nicht nennen...
Pro BUS gibt es einen Master (meist atMega162 oder atMega128) und viele
Slaves (tiny2313, mega8). TTL-TX vom Master geht über Treiber auf den
BUS und dort hören alle Slaves am RX (TTL) mit.
Rückwärts senden alle Slaves mit einer DIODE entkoppelt (Katode am Slave
(TX-TTL) und Anode am BUS) zum Master. Dort geht es auf den RX (TTL).
Alle Slave haben Adressen von 01..99 und senden nur, wenn der Master sie
adressiert und fragt. Alle Slaves hören immer mit und werten Befehle für
sie aus.
Kommunikationsprotokoll ist absolut simpel, weil kein Kollisionsbetrieb
vorgesehen ist und der Master die Kommunikation steuert.
Diese Variante kann sicherlich nicht viel, ist aber für fast alles
ausreichend und kostet nichts, wenn das Kabel schon liegt.
Störungen habe ich bei meinen 300Baud bisher nicht bemerken können.
Meine längste Kabellänge: 100m
Uwe
100m sind es bei mir nicht, dafür aber 1200baud. Addressierung und
Verschaltung genauso wie bei @Uwe.
Funktioniert tadellos.
Und war ganz fix aufgebaut und in Betrieb genommen.
Blackbird
ich hatte über die 100m auch schon 2400 und 9600 probiert. auch keine
Fehler und Probleme zu erkennen. Aber warum das Risiko, wenn 300Bd
reichen.
Schön zu wissen, das nach oben noch etwas Luft ist.
Uwe
> Geht wirklich 1km
Ja. V24 ist schliesslich Telex, geht, wenn langsam genug, also rund um
die Welt.
Aber V24 tarnsportiert keine ausreichende Versorgungsspannung auf 1km,
du brauchst also bei jedem Busteilnehmer ein eigenens Netzteil mit
entspreched hohem Standbyverbrauch, daher ist V24 Unsinn, selbst wenn du
es als Token-Ring sogar Standardkonform und trotzdem betriebssicher
aufbauen könntest, und per Optokoppler gar galvanische Trennung möglich
ist (was bei Blitz in der Nähe recht sinnvoll ist).
Daher nimmt man lieber so was wie EIB/KNX, die liefern schon die
Stromversorgung mit und funktionieren im Haus auch (aber nicht rund um
die Welt).
>... Ethernet Knoten bei 500mW ...>Welche Knoten verwendest du?
Einen enc28j60. Der verbraucht etwa 120mA bei 3,3V.
Allerdings verbaucht der schon eher viel, 100MBit ist deutlich
sparsamer.
Microcontroller ist ein simpler ATMEGA32 bzw ATMEGA664, den man sowieso
braucht.
Gruss
Axel
Guru schrieb:> RS232 wurd entwickelt um Peripherie-Geräte an PCs anzuschliessen.
Falsch. Die RS232 stammt aus den sechziger Jahren, d.h. aus einer Zeit,
als man es noch für ziemlich ausgeschlossen hielt, einen ganzen Computer
für den Arbeitsplatz zu spendieren. Damals ging es eher um den Anschluss
von "dummen" Terminals und Fernschreibern, letztere aber oft eher per
Stromschleife statt per RS232.
> Ich wusste das irgendjemand darauf antwortet und das wiederlegt;-)> Ehrlich gesagt weiss ich auch nicht exakt die Entstehungszeit der RS232;> aber ich kenne sie seit ich mich mit PCs/MCs beschäftige. Ist ja auch> nicht so relevant. Auf jeden Fall wurde der Standard für> Punkt-zu-Punkt-Verbindungen und kurze Entfernungen entwickelt.
Ich finde es ausgesprochen unverschämt, den Entstehungszeitpunkt einer
bestimmten Technik willkürlich mit dem Zeitpunkt gleichzusetzen, an dem
man sich selbst damit beschäftigt hat.
Und auch die Aussage, dass die RS232 für kurze Strecken entwickelt
worden sei, ist falsch. Damals ging es darum, Terminals an Großrechner
anzuschließen. Und dafür benötigte man üblicherweise sehr lange Kabel,
da es sich um sternförmige Verkabelungen handelte und die Terminals
nicht in unmittelbarer Nähe des Rechnern standen.
Bei den damals üblichen Übertragungsraten von 50 - 1200 Baud waren die
zulässigen Kabellängen ja auch hinreichend groß. Deutlich verkürzt
wurden sie erst "neuerdings", als deutlich höhere Übertragungsraten
möglich werden sollten.
>Ich finde es ausgesprochen unverschämt, den Entstehungszeitpunkt einer>bestimmten Technik willkürlich mit dem Zeitpunkt gleichzusetzen, an dem>man sich selbst damit beschäftigt hat.
Ich finde es ausgesprochen "merkwürdig" sich an sowas jetzt
"aufzugeilen".
Es geht in dem Thread um die Frage wie man am Besten nach dem Stand der
Technik einen Hausbus realisiert - und nicht wo der RS232 Standard
entstanden ist bzw. herkommt.
Und nach wie vor halte ich hier RS232 nicht für einen Hausbus geeignet.
@Guru:
>"Ein Slave kann dann aber nie selbständig senden, oder?"
Genau das ist die Einschränkung! Wenn man damit leben kann ist RS232 ok.
Sonst ist es ein ko-kriterium.
Wenn ich einen Lichtschalter oder Rollladen betätige, erwarte ich eine
Reaktion in weniger als 100ms. Alles andere ist eine Zumutung. Ich bin
absolut deiner Auffassung, das für Hausbuszwecke der RS232 NICHT
echtzeitfähig ist.
Deswegen arbeite ich mit lokalen Slave-uC (z.b. atmega8 für Rollläden).
Die machen Sensoren und Aktoren lokal für sich. Nur die zeitunkritische
Remotesteuerung wird per BUS gemacht.
Lichtschalter gehen alle klassisch per Fernmeldekabel zur Zentrale. Die
steuert dann alle Lampen per DMX512.
Ich hab die "BUSSE" alle schön geteilt. Rollo, Licht, Brandmelder, PIR,
Türkontakte, Regenwasseranlage, Heizkörper (per HR20) usw.
Stromversorgung per 12V. Also 2DA per BUS. Masse, RX, TX, 12V.
am uC ist dann ein 7805, die Relais brauchen idRegel sowieso 12V.
Wenn ich alles per CAN oder Ethernet machen will, wird mir das zu teuer.
Uwe
> Timo Engelmann
du fährst überall (steckdose, schalter usw. ) mit EINEM EIB-kabel?
darf man so riesige sternformige CAN-Bus überhaupt machen?
ich dacht mir immer der wäre (besser) linear...
zum reedkontakt am fenster... wichtig ist, dass es auch bei
geschlossenem fenster (und gedrehtem hebel) als offen erkannt wird...
> du fährst überall (steckdose, schalter usw. ) mit EINEM EIB-kabel?
Ne, natürlich von einer Dose zur nächsten, also kein Zwei, auch wenn das
mit CAN je nach Länge und Flankensteilheit und Baudrate (wenn auch
ausserhalb der Spec) in Einzelfällen geht. Die Bustopologie hat ja
durchaus auch Vorteile. Man benötigt deutlich weniger Leitung als wenn
man einen Stern macht. Es ist aber durchaus möglich den Bus in einzelne
Segmente zu trennen, dazu muss nur an einer Stelle ein µC rein, der von
einem zum anderen Segment überträgt (so ne Art Gateway). Aber solange es
geht werde ich das gesamte Haus an einem Bus betreiben. Da der Bus nur
Komfortfunktionen bedient ist das auch nicht zu problematisch.
> zum reedkontakt am fenster... wichtig ist, dass es auch bei> geschlossenem fenster (und gedrehtem hebel) als offen erkannt wird...
Das ist bei mir nicht so.
Ich habe vom Rolladenkasten ein Loch von oben in den Rahmen gebohrt und
darin steckt der zylindrische Reedkontakt (1.Bild). In der Tür ist dann
ein kleiner Neodym Magnet eingelassen (2.Bild). So ist das ganze im
geschlossenen Zustand nicht sichtbar. Um das Kippen vom Öffnen zu
unterscheiden gibt es einen zweiten Reed Kontakt, der in der Nähe des
Scharniers befestigt ist und nur beim Kippen öffnet (3.Bild).
Es geht mir auch nicht um eine Alarmfunktion (obwohl das auch sinnvoll
wäre) sondern eher um Heizung aus, wenn Fenster offen, oder Rolladen
offen lassen, wenn Terassentür offen ist, oder Dachfenster zu wenn das
Hausverlassen wird, ....
Beim Dachfenster nehme ich den Zustand direkt am Hebel ab (4.Bild), so
ist hier ein komplettes Verriegeln notwendig um das Signal "Geschlossen"
zu erzeugen.
Aber ich habe mir dazu auch schon Gedanken gemacht: Eventl. werde ich
eine Feder in den Rahmen einlassen, die Das Fenster, wenn es nicht
veriegelt ist etwas aufdrückt. Das reicht schon um den Reedkontakt
auszulösen.
Ich wollte halt nicht an den Griff etwas anbringen, also nur Magnet am
beweglichen Fenster. Und an die Mechanik ran gehen ist auch nicht ganz
trivial.
Grüße Tien
@Uwe
>Wenn ich einen Lichtschalter oder Rollladen betätige, erwarte ich eine>Reaktion in weniger als 100ms. Alles andere ist eine Zumutung. Ich bin>absolut deiner Auffassung, das für Hausbuszwecke der RS232 NICHT>echtzeitfähig ist.
Das stimmt, die Reaktion darf nicht erst 2 Sekunden später kommen, bis
dahin habe ich ja noch 5x mehr gedrückt...
Aber mal ganz nüchtern betrachtet... Was würde passieren, wenn man
anstatt 2 Leitungen 3 Leitungen zu den Schaltern führt. RX, TX,
Sendewunsch. Wenn ein Schalter senden möchte prüft er die 3. Leitung und
wenn sie 0 ist setzt er sie auf 1 und beginnt zu reden. Ist sie schon 1
wartet er einen definierten Zeitraum und prüft dann erneut. Um ganz auf
Nummer sicher zu gehen könnte er auch nach dem Setzen der 3. Leitung
noch kurz warten und auf der Sendeleitung "lauschen". Hört er da nichts,
dann ist nicht der Extremfall eingetreten, dass 2 Schalter zur exakt
gleichen Zeit die Leitung geprüft haben... Er sendet seine Nachricht und
setzt die Leitung wieder auf 0. Hört er etwas sendet er nichts und setzt
seinen Pin ebenfalls wieder auf 0 und das Spiel geht von vorne los.
Damit hat man dann quasi eine "collision protection".
Ich müsste mir das mal experimentell aufbauen, wobei ich nicht mit einem
so großen Antworten-Ansturm auf meine Frage gerechnet habe, zumal die
wirklich nur hypothetisch und auf die Leitungslänge bezogen war :-)
Im Grunde genommen ist RS232 aber wirklich die billigste Variante -
einfach wegen dem eh-da-Prinzip...
Ich danke aber auf jeden Fall allen, die sich hier beteiligt haben, oder
es noch tun ;-)
Man kann die Abfrageintervall bei gerade 'aktiven' Devices durch den
Master erhöhen. Bei einem Dimmer ist es z.B. sofort einleuchtend, das
nach einer ersten Betätigung sicher noch eine weitere kommt.
Prinzipiell sollte aber:
1. ein Slave minimalsfunktionen selbst ausführen können, z.B. Licht an
und aus. Bei einem Stromausfall diese Infos behalten.
2. ein Slave zumindest ein kurzes Telegramm 'ich habe ein Anliegen'
selbst senden können, ohne Einladung durch den Master
Matze schrieb:> Nur noch eine Frage zum CAN-Bus, wo ich eh gerade so schreibe...>> Was brauche ich "real" für einen Versuchsaufbau?>> Je 2x> µC - atmega8 in Grundbeschaltung - Quarz nötig?> MCP2515> MCP2551
Beim Atmel 90CAN32/64/128 ist der CAN MAC gleich mit drin, und von Atmel
gibts auch Doku und Beispielcode dafür. Das läuft alles auch mit 5V.
Quarz brauchst Du für CAN, ohne gehts nicht. Dann brauchst Du einen PHY
(wie bei Ethernet, der MAC ist oft auch mit im Controller, der PHY für
die analoge Aufbereitung ist fast immer extra, weil andere
Halbleitertechnologie). Bei den PHYs gibts welche für hohe
Geschwindigkeiten (250k-1MBit) und welche für niedrige Geschwindigkeiten
(bis 125k). Das hat was mit Flankensteilheit und EMV zu tun. Fast alle
PHYs laufen mit 5V; 3.3V sind für die vorgeschriebenen Signalpegel sehr
knapp.
CAN braucht immer einen funktionierenden Receiver am Bus, sonst wirft
der MAC Errors beim Sendeversuch. Es ist also sehr ratsam, einen
nachweislich funktionieren CAN-Knoten zum Entwickeln zu haben, ansonsten
wird es am Anfang extrem mühsam. Schau Dir ébay #120558567048 an, das
ist genau das, was ich meine. Gibts auch als PCI Karte.
120 Ohm Terminierung an den Enden nicht vergessen!
RS485 ist in der Hinsicht einfacher, allerdings musst Du da mehr selber
machen.
> Wenn ich nichts überlesen habe läuft das MCP-Gedöns auch mit 5V. Ich> brauche also keine anderen Pegel? Kann ich, bei Verwendung von CAT7, die> Versorgungsspannung für die Schaltungen mit durch das Kabel jagen, oder> sollte man das lieber nicht tun?
Bei PowerOverEthernet nimmt man 48V, und das nicht ohne Grund. Du willst
keinen großen Spannungsabfall auf der Leitung, also machst Du den Strom
klein und erhöhst dafür die Spannung. Im POE-Receiver sitzt dann ein
Schaltreglerbaustein, der (a) die POE Signalisierung und (b) die
erforderlichen Versorgungsspannungen macht. 48V sind auch im
Telco-Bereich verbreitet, aus genau diesem Grund.
Du brauchst nicht unbedingt 48V zu nehmen, 24V oder 36V sind
wahrscheinlich für Dich einfacher zu realisieren.
fchk
@Matze: Zu deine Kollisionserkennung, was passiert wenn 2 µC senden
wollen beide überprüfen die Leitung welche frei anzeigt und nun senden
beide los?
Ich finde es muss geprüft werden ob das zu sendende auch wirklich am Bus
anliegt oder verändert wurde um notfalls die Übertragung abzubrechen,
die Arbitrierung bei CAN finde ich genial gelöst.
@Thomas O.
>was passiert wenn 2 µC senden>wollen beide überprüfen die Leitung welche frei anzeigt und nun senden>beide los?
Das kann ja eigentlich nie auftreten, wenn ich die 2. pessimistische
Möglichkeit in Betracht ziehe.
1
µC prüft Leitung
2
high low
3
Leitung frei Leitung belegt
4
Leitung auf low ziehen warte X und zurück zum Start
5
warte X und lausche auf TX
6
Frei Aktivität
7
Sende Daten warte X und zurück zum Start
8
Leitung freigeben
X ist in diesem Falle ein für jeden Baustein definierter Wert. Ich habe
z.B. für jeden Teilnehmer eine ID. Nehme ich die als Wartezeit warten
alle unterschiedlich lange. Das müsste experimentell laufen - ob der
Aufwand Sinn machen würde steht auf einem ganz anderen Blatt...
Gruß
Matze
@ Matze
Kollisionserkennung bei RS232 ?!
Eine RS232 Verbindung ist eine Punkt zu Punkt Verbindung und kein BUS
wie z.B. RS485.
Wie soll es denn da zu einer Kollision kommen, es sei denn Du willst dir
einen RS232-HUB bauen/verwenden, wo alle RS232 Verbindungen als
Stern zusammen laufen.
Ich habe mich z.B. für den I2C-Bus, für meine Steueraufgaben im Haus
entschieden.
Mit dem B82B96 als longRange Treiber habe ich mehrere LM75 an Strecken
von 200 Meter testweise mit 100kHz betrieben.
Für die Verdrahtung verwende ich 2x2x0,8 Kabel.
+12 D CL / GND
Den I2C-Bus betreibe ich mit einer Stern-Verkabelung um die Zweige
möglichst kurz zu halten ( 5-30 Meter), an einem Zweig können ca. 128
Adressen (Slaves) mit 100 kHz verwendet werden.
Durch die Fragmentierung des Busses in Zweige, sind so ein vielfaches
der Adressen möglich und die gesamt Kapazität der Verkablung wird auf
ein Minimum reduziert, der Master kann sich über den aktiven HUB auf den
benötigten Zweige schalten, kann z.B. Zweige die nicht benötigt werden
über den HUB abschalten (stromlos machen), z.B. um einen gestörten Zweig
und deren Slaves zu rebooten.
Als Slaves verwende ich handelsübliche I2C-Bausteine:
Port-Erweiterungen, AD-Wandler, Temperatur-Sensoren, usw ...
Der Bus wird bei mir im Master-Slave-Mode verwendet, slaves (z.B.
sensoren) werden gepollt, Aktoren werden nur angesprochen wenn sich was
ändert , zusätzlich gibt es für jeden Zweig noch eine Interupt_Leitung,
für Module die es eilig haben ...
Der Master ist ein PC der über einen IOWarrior den aktiven-Hub und über
dessen I2C-Schnittstelle das Haus steuert.
Bei mir wird der Haus-Bus nur für Steueraufgaben genutzt, wo es auch
Sinn macht, die Verkabelung z.B. Schalter / Lampe ist klassisch und wird
auch so bleiben.
Gruss Ralf
Es gab schon Leute, die haben mit dem Kinderwagen Kohle gefahren. So
gesehen ist RS232 möglich.
ABER der konkrete Aufbau und die damit verbundenen
Störungen/Fehlfunktionen können von Haus zu Haus verschieden sein. Wenn
das Haus z.B. neben der elektrifizierten Eisenbahnstrecke steht, sollte
man eine bessere Lösung suchen, das gigantische Störfelder nur Ärger
machen.
@oszi40
>> ... das gigantische Störfelder nur Ärger machen.
müssen es gar nicht mal sein ...
Bei mir sind es die Leuchtstoffröhren in der Werkstatt, die einen ersten
Bus Versuch auf RS485 Basis häufig zum aussetzen gebracht haben.
Der derzeitige verwendete I2C-Bus läuft sehr stabil, ein
Funk-Sende-Modul wo ich einen "MCP23017" verbaut habe, der einen uC Kern
scheinbar beinhaltet, neigt 1-2 mal im Jahr zum Absturz und zieht dabei
den entsprechenden Bus(Zweig) runter.
Deswegen auch die Zweigabschaltung (Reboot) in meinem Haus-Bus.
Sollte z.B. ein Zweig gar nicht mehr ordentlich arbeiten bleibt er bis
zur Reparatur abgeschaltet, die nicht betroffenen Zweige behalten so
ihre Funktion.
Solche Störungen kann und wird es immer geben ... z.B. Gewitter, ein
Bus-System (Haussteuerung) egal wie es aufgebaut ist, muss mit solchen
Störungen umgehen können. Wenn ich zwei Wochen in Urlaub fahre muss ich
mir sicher sein, das die Haussteuerung nicht die Bude abfackelt, weil
diese vielleicht auf die Idee gekommen ist z.B. eine Kaffeemaschine ein
zu schalten.
PS. bei mir werden solche Geräte nicht aus besagten Grund über die
(Haussteuerung) gesteuert ...
Gruss Ralf
Timo E. schrieb:> Ich wollte halt nicht an den Griff etwas anbringen, also nur Magnet am> beweglichen Fenster. Und an die Mechanik ran gehen ist auch nicht ganz> trivial.
Schau mal unter Alarmanlagen-Technik, Riegelschaltkontakte und
Verschlußsicherungen.
Es gibt speziell für Fenster (und Türen) fertig kaufbaree ausgereifte
Lösungen (effeff, esser, telenot,...) und wenn man etwas sucht sogar für
wenige Euro/ Kontakt.
Irgendwie verste ich es immer noch nicht!
Da erfindet jemand das Rad (hier: CAN) und manche
denken sie können das besser und nehmen ein Quadrat (hier: RS232) und
feilen solange an den Ecken bis es langsam vielleicht ein Rad gibt,
wahrscheinlich aber nie.
Und wieder Mal : WARUM NUR?
Um was zu lernen, dann wäre es OK.
Um es besser zu machen oder gleich gut -> Vergesst es!
Um Geld zu sparen -> Vergesst es!
Habt ich eigentlich nix besseres zu tun ;-)
Guru schrieb:> Irgendwie versteh ich es immer noch nicht!>> Da erfindet jemand das Rad (hier: CAN) und manche> denken sie können das besser und nehmen ein Quadrat (hier: RS232) und> feilen solange an den Ecken bis es langsam vielleicht ein Rad gibt,> wahrscheinlich aber nie.
Es fällt manchmal schwer, was besseres zu nehmen. Allein die Angst, das
man das Neue auch wieder nicht beherrscht, reicht!
>> Und wieder Mal : WARUM NUR?> Um was zu lernen, dann wäre es OK.> Um es besser zu machen oder gleich gut -> Vergesst es!> Um Geld zu sparen -> Vergesst es!>> Habt ich eigentlich nix besseres zu tun ;-)
Das hier ist nun mal ein Bastlerforum - in erster Linie.
Andrew Taylor schrieb:> Timo E. schrieb:>> Ich wollte halt nicht an den Griff etwas anbringen, also nur Magnet am>> beweglichen Fenster. Und an die Mechanik ran gehen ist auch nicht ganz>> trivial.>> Schau mal unter Alarmanlagen-Technik, Riegelschaltkontakte und> Verschlußsicherungen.> Es gibt speziell für Fenster (und Türen) fertig kaufbaree ausgereifte> Lösungen (effeff, esser, telenot,...) und wenn man etwas sucht sogar für> wenige Euro/ Kontakt.
Ja, aber mir reicht doch meine Lösung. Und mit 5 Euro / Fenster ist das
doch günstig und gut. Bei einem Neubau hätte ich natürlich das ganze
bereits so ausgestattet, aber hier im Bestand bin ich mit dieser
Bastellösung, die man nicht oder nur bei genauem Hinsehen sieht ganz
zufrieden. Und wie geschrieben, mir geht es weniger um Alarm, eher um
solche Dinge wie "Lüftung Heizung aus bei geöffnetem gekipptem
Fenster". Oder um "kein Rolladen runter wenn die Terrassentür offen
ist".
Grüße Timo
>>was passiert wenn 2 µC senden>>wollen beide überprüfen die Leitung welche frei anzeigt und nun senden>>beide los?>Das kann ja eigentlich nie auftreten, wenn ich die 2. pessimistische>Möglichkeit in Betracht ziehe.
Kann nie?
Ok, ich habe verstanden, dass beide unterschiedlich lange warten.
Angenommen der erste wartet 1s, der zweite wartet 1.5s. Was passiert,
wenn der zweite jetzt senden möchte (und prüft auf "frei"), der erste
möchte erst in 0.5s senden/prüfen. Dann sehen beide einen freien Bus und
beginnen doch gleichzeitig (in 1.5s) zu senden. Wie willst du das
verhindern?
Du kannst Kollisionen bei Multimaster nicht verhindern! (Die
Wahrscheinlichkeit zu verringern ist nicht verhindern).
Im Grunde genommen ja, kann nie. Wenigstens in der Theorie nicht...
Die 3. Leitung, also die "ich-will-senden"-Leitung gibt ja quasi den
Startpunkt an.
Natürlich können mehrere µC's zur exakt gleichen Zeit die Leitung prüfen
und für sich reservieren. Das ist zwar bei manuellen Schaltern nicht
sehr wahrscheinlich, aber bei Sensoren ja schon möglich.
Nun haben tatsächlich mehrere µC´s exakt gleichzeitig die Leitung
geprüft und für sich belegt. Nun warten sie aber alle eine andere
Zeitspanne bis sie selbst senden und lauschen derweil auf der
tx-Leitung. Wenn da was kommt brechen sie ab. Somit wäre die
Gerätekennung also auch eine Art priorisierung. Der Schalter mit der ID
1, der also einen Zeitabschnitt lang wartet kommt also immer vor dem
Sensor mit der ID 2 dran, der grundsätzlich einen Zeitabschnitt länger
warten muss.
Die Idee dabei ist wirklich 3 Leitungen zu verwenden.
RX
TX
ich-will-senden
Natürlich könnten man auch richtig "rumbussen". Also
Haupt µC TX -> RX µC 1 TX -> RX µC 2 TX -> RX µC 3 TX -> RX Haupt µC
... Das kommt mir von der Sache auch nicht blöd vor, die Pakete würden
allerdings immer durch den ganzen Bus marschieren...
Gruß
>> Natürlich könnten man auch richtig "rumbussen". Also>> Haupt µC TX -> RX µC 1 TX -> RX µC 2 TX -> RX µC 3 TX -> RX Haupt µC
und wie reagiert dein System darauf wenn ein uC hängt ... ?
Watchdog am uC ... nützt auch nicht bei einem defekt
z.B. ein Leitungstreiber hat den Geist aufgegeben und die Leitung TX ,
RX oder "ich-will-senden" wird blockiert ?
Mir ist auch noch nicht ganz klar wie Du die RS232 mit mehreren Knoten
als BUS nutzen willst.
Bei der RS232 werden die beiden Zustände HIGH und LOW durch die
Signalpegel +/- 12V übertragen, einen Tri-State(Bus ist frei) wie bei
der RS485 gibt es bei der RS232 nicht.
>> Haupt µC TX -> RX µC 1 TX -> RX µC 2 TX -> RX µC 3 TX -> RX Haupt µC
hört sich ja fast so wie Token-Ring an ... der Sendende uC bekommt
irgend wann sein gesendetes Paket wieder und muss dieses raus filtern,
sonnst hast Du dir ein super Loop gebastelt und dein Netz(Bus) ist immer
dicht ...
> Natürlich können mehrere µC's zur exakt gleichen Zeit die Leitung prüfen> und für sich reservieren. Das ist zwar bei manuellen Schaltern nicht> sehr wahrscheinlich, aber bei Sensoren ja schon möglich.> Nun haben tatsächlich mehrere µC´s exakt gleichzeitig die Leitung> geprüft und für sich belegt. Nun warten sie aber alle eine andere> Zeitspanne bis sie selbst senden und lauschen derweil auf der> tx-Leitung.
Und was passiert, wenn Teilnehmer A und B die Leitungen gleichzeititg
prüfen und für frei befinden (A wartet 1s und B wartet 1,5s) und nach
0,5s schaut Teilnehmer C, sieht die Leitung ist frei. Aber C hat eine
Wartezeit von 0,5s?
Dann senden Teilnehmer A und C gleichzeitig und deine schöne
Kollisionsvermeidung ist den Bach runter.
damit ich das auch "verstehe"..
RS232 ist punkt zu punkt (oder kann man da tricksen und es geht auch
bus)??
wozu?
RS485 macht doch GENAU DAS (das ist doch der "einzige" unterschied
zwischen den beiden systemen ?)
Timo E. schrieb:> Und wie geschrieben, mir geht es weniger um Alarm, eher um>> solche Dinge wie "Lüftung Heizung aus bei geöffnetem gekipptem>> Fenster". Oder um "kein Rolladen runter wenn die Terrassentür offen>> ist".
Das ist dem Kontakt auch schnurz-piep, ob er in einer Alarmanlage oder
Deiner Bastellösung werkelt.
Der Obige Suchhinwies diente rein Deiner Orientierung, FALLS Du so etwas
hättest zügig finden und ansehen wollen. Willst Du aber nicht.
BTW: Deine obigen "Tür / Fesnter offen/gekipp tüberwacht man mit
ebenfalls unter dem Suchbereich findbaren fertig kaufbaren
Magnetkontakten für 1-2 euro/Stk.
@The MaSc:
>Und was passiert, wenn Teilnehmer A und B die Leitungen gleichzeititg>prüfen und für frei befinden (A wartet 1s und B wartet 1,5s) und nach>0,5s schaut Teilnehmer C, sieht die Leitung ist frei. Aber C hat eine>Wartezeit von 0,5s?>Dann senden Teilnehmer A und C gleichzeitig und deine schöne>Kollisionsvermeidung ist den Bach runter.
Nein, wenn C schaut ist die 3. Leitung ja schon gesetzt, er wird es also
gar nicht versuchen.
@Ralf:
>> Haupt µC TX -> RX µC 1 TX -> RX µC 2 TX -> RX µC 3 TX -> RX Haupt µC>hört sich ja fast so wie Token-Ring an ... der Sendende uC bekommt>irgend wann sein gesendetes Paket wieder und muss dieses raus filtern,>sonnst hast Du dir ein super Loop gebastelt und dein Netz(Bus) ist immer>dicht ...
Nicht ganz, es "kreist" ja kein Token :-)
In dem Fall kann ja jeder senden wie er will.
Als Beispiel:
Nehmen wir eine simple Zeichenfolge als Protokoll
#Sender:Ziel#Nutzdaten#Typ (A=Anfrage, B=Bestätigung,X=Keine Bestätigung
notwendig)$
Es gibt 5 µC´s + den Haupt µC.
Der Schalter 4 an µC 3 wird gedrückt.
µC 3 sendet an µC 4 #003:000#004*01#A$ und merkt sich seine Nachricht.
µC 4 prüft, ob Sender oder Empfänger seine Adresse ist. Ist es nicht, er
sendet das Paket unverändert an µC 5 weiter.
µC 5 prüft, ob Sender oder Empfänger seine Adresse ist. Ist es nicht, er
sendet das Paket unverändert an den Haupt µC weiter.
Der Haupt µC prüft, ob Sender oder Empfänger seine Adresse ist. Er
findet seine Adresse als Empfänger. Er erkennt anhand des A´s, dass eine
Bestätigung erwünscht ist. Er verarbeitet die Nachricht und sendet die
Nachricht #000:003#004*01#B$ an µC 1.
µC 1 prüft, ob Sender oder Empfänger seine Adresse ist. Ist es nicht, er
sendet das Paket unverändert an µC 2 weiter.
µC 2 prüft, ob Sender oder Empfänger seine Adresse ist. Ist es nicht, er
sendet das Paket unverändert an µC 3 weiter.
µC 3 prüft, ob Sender oder Empfänger seine Adresse ist. Er findet seine
Adresse als Empfänger. Anhand des B´s erkennt er, dass dies eine
Bestätigung ist. Er sucht die Nachricht in seinem Speicher und löscht
sie.
Sollte das Paket unverändert zurückkommen ist das Ziel nicht verfügbar,
der Bus aber geschlossen. Es muss irgendwo ein Fehler signalisiert
werden.
Kommt kein Paket zurück muss der Bus unterbrochen sein. Nach einer
angemessenen Wartezeit sendet er das Paket erneut.
Jeder Client nimmt also die Pakete vom Kabel (bzw. sendet sie einfach
nicht weiter), die für oder von ihm sind.
@Robert L.
Es geht nicht darum, ob es Sinn macht. Natürlich gibt es bestehende
Übertragungsverfahren, und keiner würde sich "irgendetwas" in´s Haus
basteln. Aber warum soll man nicht auch mal etwas auf anderen
Möglichkeiten rumdenken.
Manchmal kommt was dabei raus...
Gruß
Die ursprüngliche Frage von Matze war:
Hausbus über RS232 möglich ?
RS232 als BUS ... NEIN
RS232 als Stern mit aktiven Verteiler ... JA
RS232 als RING ... JA
@Matze
Du solltest die Laufzeiten bei deinem Beispiel bitte nicht vergessen:
Header hat 16 Zeichen "#003:000#004*01#" bei 2400 Baud ohne Nutzdaten,
bedeutet das es bei z.B. 16 Knoten bereits bis zu 1 Sekunde dauern kann
bis die Daten am letzten Teilnehmer ankommt.
Schau Dir mal die RS485 an ! mit einem entsprechenden Treiber z.B.
SN75176
kannst Du mit uCs und den Seriellen Anschlüssen einfach ein BUS
aufbauen.
32 Knoten bei 1200 Meter Buslänge !
Andrew Taylor schrieb:> Das ist dem Kontakt auch schnurz-piep, ob er in einer Alarmanlage oder> Deiner Bastellösung werkelt.>> Der Obige Suchhinwies diente rein Deiner Orientierung, FALLS Du so etwas> hättest zügig finden und ansehen wollen. Willst Du aber nicht.
Sei doch nicht gleich sauer... Natürlich interessiert mich sowas. Nur
ich hab ja bereits meine Lösung, ich werde meine Reeds ja nicht mehr
ausbauen, dazu habe ich noch ein paar Hände voll mit anderen wichtitgen
Dingen zu erledigen :-)
Aber sicherlich ist das für andere Leser, die noch auf der Suche sind
interessant. Deshalb: vielen Dank für den Hinweis.
> BTW: Deine obigen "Tür / Fesnter offen/gekipp tüberwacht man mit> ebenfalls unter dem Suchbereich findbaren fertig kaufbaren> Magnetkontakten für 1-2 euro/Stk.
Es ging ja nur darum, dass ich mit meiner Lösung kein entriegeltes, aber
noch nicht geöffnetes Fenster erkenne. Da ich aber bereits die Kontakte
drin habe wäre ein Lösungsansatz eine in den Rahmen (verdeckt durch den
Fensterflügel) eingelassene Feder, die das Fenster im entriegelten
Zustand etwas aufdrückt. Das es bessere Lösungen gibt ist klar.
Also nix für ungut,
Grüße Timo
> Header hat 16 Zeichen "#003:000#004*01#" bei 2400 Baud ohne Nutzdaten,> bedeutet das es bei z.B. 16 Knoten bereits bis zu 1 Sekunde dauern kann> bis die Daten am letzten Teilnehmer ankommt.
Ja WENN die einzelne uC die Message erst komplett empfangen, bevor sie
sie wieder weitersenden.
Etwas intelligenter Protokolle wird man so bauen, daß sie jedes Byte
direkt nach Empfang (ggf. manipulieren und) weiterleiten können.
Noch intelligentere Verfahren werden bitweise eingreifen können (z.B.
Beckhoff Lichtleiterring).
Das Verfahren (Token-Ring) an sich ist also nicht schlecht, es kann nur
durch unüberlegte Implementation schlecht werden.
@Mr. Hausbus
>Du solltest die Laufzeiten bei deinem Beispiel bitte nicht vergessen
Richtig
>Header hat 16 Zeichen "#003:000#004*01#" bei 2400 Baud ohne Nutzdaten,>bedeutet das es bei z.B. 16 Knoten bereits bis zu 1 Sekunde dauern kann>bis die Daten am letzten Teilnehmer ankommt.
Ok, der Datensatz war auch nur als Anhalt. Aber warum 2400 Baud? Der Weg
zwischen den µC´s ist jeweils ein eigenes Segment. Die Kabellängen sind
also relativ kurz.
Ich habe gerade mal ein stinknormales Cat5 Kabel (~10 Meter) genommen
und zur Reichweitensimulation die Adern gebrückt. Summa sumarum kommen
dabei 70-80m Kupfer zusammen. Widerstand ist 7,5 Ohm, das passt also
ungefähr.
Dann habe ich mir einen Mega8 geschnappt, und einfach rx und tx mit
diesem Kabel gebrückt. Hab die Leitung auch noch mit nem ft232
verbunden, um am pc was sehen zu können...
Dann habe ich die Baudrate auf 115k gestellt (passt eigentlich gar nicht
zu meinem 8.867238 MHz Quarz...) und erwartet, dass nichts passiert.
Ich schicke jetzt in einem Loop 4 Zeichen und eine vortlaufende Zahl.
Die Fortlaufende Zahl die ich sende merke ich mir, und schaue ob die mit
der empfangenen übereinstimmt. Sonst geht eine led an.
was soll ich sagen, er ist jetzt über 10000 und hat keinen Fehler.
Hinzukommt - das Cat-Kabel habe ich extra noch schön aufgewickelt, um
Fehler zu provozieren.
Daraus würde ich schlussfolgern, dass 35m bei 57600 baud immer laufen
sollten, also das doppelte meiner Information aus dem 1. Post.
(Natürlich ist das nicht wirklich wissenschaftlich...)
Der Abstand von Raum zu Raum wird ja wohl keine 35m überschreiten.
Ich finde das alles gar nicht so furchtbar abwegig... Ich bin erstmal
erstaunt!
Gruß
Matze schrieb:> was soll ich sagen, er ist jetzt über 10000 und hat keinen Fehler.> Hinzukommt - das Cat-Kabel habe ich extra noch schön aufgewickelt, um> Fehler zu provozieren.>> Daraus würde ich schlussfolgern, dass 35m bei 57600 baud immer laufen> sollten, also das doppelte meiner Information aus dem 1. Post.> (Natürlich ist das nicht wirklich wissenschaftlich...)>> Der Abstand von Raum zu Raum wird ja wohl keine 35m überschreiten.>> Ich finde das alles gar nicht so furchtbar abwegig... Ich bin erstmal> erstaunt!>
Ist nichts neues. Früher <tm> hat man alles viel robuster gebaut. Den
Versuch hättest du dir ganz einfach sparen können. Bisserl gurgeln hilft
abkürzen.
PS: 35m ist nicht wirklich viel. Auch nicht in einem Haus, du mußt die
ganzen Ecken-Umleitungen mitrechnen, und Luft will man auch haben.
@ Matze
>> Aber warum 2400 Baud?
weil Du es gesagt hattest !!!
>> 3000ft sind knapp 1000m, also ausreichend für ein Otto-Normal-Haus.>> 2400 Baud sollten bei den Steuerungsinformationen eigentlich auch>> reichen.
ich steige aus, wird mir zu blöde, Matze wenn Du unbedingt RS232 für
dein Hausbus nehmen willst, dann mach es !!! und werde damit glücklich.
in einem Cat Kabel sind ja eigentlich immer 2 Leitungen geschirmt und
außenrum ist nochmal ein Schirm oder hast du das Kabel komplett
entdrösselt. Probier mal ein paar Störquellen aus. Leuchtstoffröhre,
Staubsauger, Bohrmaschine, Stromstoßschalter, Mixer, Mikrowelle,
Halogendimmer, Piezofeuerzeug usw...