Forum: Mikrocontroller und Digitale Elektronik Bus in "Mischnetz" aus Stich und parallel Durchkontaktierten


von Henning (Gast)


Lesenswert?

hey leute,
ich möchte gern bei mir zuhause einen bus aufbauen der als leitung die 
alte telefonleitung nutzt (4adrig, ungeschirmt).
wir nutzen jetzt dect funktelefone!

nun haben wir zum teil sternverkabelungen zu wichtigen zimmern wie z.b. 
das meines bruders und meins sowie auch parallel durchgeschleifte wie 
z.b. arbeitszimmer-gästezimmer-flur die letztlich alle im 
hauswirtschaftsraum/zählerraum oder wie auch immer man es nennen möchte 
enden.

nun frage ich mich welcher bus wäre für diesen anwendungsfall wohl am 
geeignetsten?

geschwindigkeit ist völlig unkritisch, soll nur ganz stumpfe 
niederspannungs-schaltaufgaben und temperaturmessungen in den zimmern 
übernehmen.

mfg - Henning

von crazy horse (Gast)


Lesenswert?

dann musst du erstmal die Grundlage entscheiden: Multi- oder 
Single-Master. Im 1. Fall gibts kaum eine sinnvolle Alternative zu CAN 
(bei moderaten Baudraten geht da auch eine gemischte Linear/Sternkabelei 
völlig problemlos), im 2.Fall hast du allerhand Möglichkeiten dich 
auszutoben. Selten ist es aber sinnvoll, das Rad zum hundertsten Mal neu 
zu erfinden.

von Henning (Gast)


Lesenswert?

also ich bin grad nicht zuhaus, aber ich bin mir ziemlich sicher, dass 4 
adern verlegt sind im haus.
aufmodulierung von signalen auf die versorgungsspannung etc. möchte ich 
ungern vornehmen. wollte das ganze möglichst einfach halten 
eigentlich...

somit bleiben mir 2 datenleitungen neben den 5v/12v/24v (weiss man noch 
nicht direkt) versorgungsleitungen.
eigentlich wollte ich auch realtiv "dumme" avrs nutzen können, so wie da 
zum beispiel die tinys wären aber je nachdem welche aufgaben die 
jeweiligen busteilnehmen erfüllen sollen.
gibt es tiny gerechte software can-lösungen?

also es gibt nichts was die sklaven in den einzelnen räumen 
unaufgefordert durch den master auf den bus schicken müssen.

der master spricht nur einzelne slaves an und fragt nach der temperatur 
oder sagt ihnen sie sollen ausgang a schalten oder ähnliches.

-> somit single master!

von crazy horse (Gast)


Lesenswert?

CAN in Software? Theoretisch denkbar bei <25kbit (geschätzt), machen 
möchte ich es aber nicht.
In deinem Fall: nimm doch einfach RS485, perfekt für dein Vorhaben 
geeignet.

von Henning (Gast)


Lesenswert?

rs485 war auch mein erster ansatz aber es wird viel davon berichtet, 
dass rs485 für stern-topologien ungeeignet ist.
hätte auch noch so schön viele rs485 transceiver (max485) liegen aus 
irgendeinem konvolut...

von Falk (Gast)


Lesenswert?

@Henning

>rs485 war auch mein erster ansatz aber es wird viel davon berichtet,
>dass rs485 für stern-topologien ungeeignet ist.

Alles eine Frage der Abmessungen bzw. Dimensionierung. Der Knackpunkt 
bei Sterntopologien/Stichleitungen ist die Terminierung. Wenn man aber 
explizit langsame Tranceiver nimmt (MAX487 anstatt 485) gehts problemlos 
auch ohne Terminierung.
Und selbst die normalen MAX485 (10 Mbit/s) sollten bei 1200 Baud die 
Reflektionen ignorieren (genauer, der UART ignoriert sie, da er nur mit 
16*1200=19200 Hz abtastet).

Go RS485!

MFG
Falk


von Stefan K. (_sk_)


Lesenswert?

Hallo Henning,

Sternverkabelung ist bei niedrigen Baudraten problemlos - sowohl für CAN 
als auch für RS485. Ein Link für Stichleitungslängen bei CAN:

http://www.can-cia.org/canopen/protocol/bittiming.html

Unterschied zwischen CAN und RS485:
Für den CAN brauchst Du entweder einen CAN-fähigen AVR oder einen 
Zusatzchip, z.B. den MCP2515.
Beim RS485 hast Du mehr Aufwand bei der Software, jedenfalls wenn Du ein 
Multimaster-System bauen willst (d.h. alle Busteilnehmer sind 
gleichberechtigt).

Eine Buskollision bei RS485 muss Deine Software erkennen. Alle an der 
Kollision beteiligten Teilnehmer müssen ihre msg neu senden.

Bei CAN gewinnt bei einer Kollision die msg mit der höheren Priorität. 
Nur die msg, die "verloren" hat, muss neu gesendet werden. Diese ganzen 
Netzwerkfragen nimmt Dir CAN ab, eine msg zu versenden oder zu empfangen 
ist bei CAN nicht schwerer als bei einer Punkt-zu-Punkt-Verbindung.

Gruß, Stefan

von Falk (Gast)


Lesenswert?

@Stefan Kleinwort

>Beim RS485 hast Du mehr Aufwand bei der Software, jedenfalls wenn Du ein
>Multimaster-System bauen willst (d.h. alle Busteilnehmer sind
>gleichberechtigt).

Für so ein bissel Home-Automation Spielerei würde ich nicht mit 
Multimaster anfangen. Overkill.

MFG
Falk

von Peter D. (peda)


Lesenswert?

Ich rate auch zu CAN (ATMega8 + MCP2515 + PCA82C251), einfacher gehts 
nicht.

RS-485 ist ein Dinosaurier, wo Du entweder aufwändige industrielle 
Protokolle einsetzen mußt oder Mannmonate für ein eigenes Protokoll 
verschwendest.


Peter


von Henning (Gast)


Lesenswert?

also die seite da für die kabellängen von can verstehe ich nicht ganz 
muss ich gestehen.
nicht allein die verschiedenen meterlängen bei unterminated kann ich 
nicht recht nachvollziehen.

also ich wollte das ganze logischerweise möglichst kostengünstig halten, 
so wird es einen einfachsten tempwiderstand für die temperatur geben, 
einen uln (daran 2 relais, ein paar leuchtdioden, eventuell nen 
lautsprecher/piezo)...
das ganze wird es dann etwa 10mal im haus geben.

und eben auch bei den prozessoren würde ich sparen wollen, logisch 
oder?!
die max485 habe ich noch zu ich glaube 50stück, würd sich halt alles so 
schön ergänzen.
-> resteverwertung mit nutzwert! :)

von Stefan K. (_sk_)


Lesenswert?

>Für so ein bissel Home-Automation Spielerei würde ich nicht mit
>Multimaster anfangen. Overkill.

Nur weil es aus technischer Sicht nach sehr moderaten Ansprüchen 
aussieht, sollte man einen Hausbus nicht als Spielerei ansehen. Wenn das 
Licht nicht mehr angeht, hört die Spielerei auf (vielleicht weniger bei 
den Technikern, dafür umso mehr bei den Nicht-TechnikInnen ;-))  ).

Ich habe selbst meinen Hausbus auf dem MCP2515 aufgebaut, zusammen mit 
einem ATmega32.

* Wenn ich einen beliebigen Knoten abstecke, läuft der ganze Bus weiter.
* Wenn ich einen zusätzlichen Knoten einbaue, dann muss ich nur diesen
  parametrieren.
* Bei einem Defekt kann ein Knoten weniger leicht den ganzen Bus 
lahmlegen.

Wir haben das Thema schon vor ein paar Jahren mal diskutiert (der Thread 
hat damals zur Einrichtung des Hausbus-Unterforums geführt):

Beitrag "Hausbus"

Am Anfang dachte ich auch: logisch, RS485.
Durch die Diskussion habe ich mich zum CAN-Bus überzeugen lassen (und 
habe es nicht bereut).

Im Übrigen ist der Mehraufwand ja nicht wesentlich. Ein MCP2515 mehr auf 
der Platine, das ist geschenkt. (heute würde ich wahrscheinlich den 
AT90CAN32 benutzen).


Viele Grüße, Stefan

von Peter D. (peda)


Lesenswert?

Henning wrote:

> und eben auch bei den prozessoren würde ich sparen wollen, logisch
> oder?!
> die max485 habe ich noch zu ich glaube 50stück, würd sich halt alles so
> schön ergänzen.
> -> resteverwertung mit nutzwert! :)


Naja, Hardwareentwicklung dauert etwa 10..20% und Softwareentwicklung 
80..90% der Gesamtzeit.

Da ist der "Nutzwert" negativ, wenn man ihn sich mit wesentlich mehr 
Aufwand bei der Software erkauft.

CAN besteht im wesentlichen aus 3 Funktionen:

- CAN-Hardware initialisieren
- Sendedaten in Sendepuffer stellen
- Empfangsdaten aus Empfangspuffer abholen.

Den Rest macht alles die Hardware ganz alleine, keinerlei 
Protokolloverhead nötig.


Peter

von Stefan K. (_sk_)


Lesenswert?

>nicht allein die verschiedenen meterlängen bei unterminated kann ich
>nicht recht nachvollziehen.

Was ist daran nicht zu verstehen?
Bei 20kbit/s darf z.B. eine Stichleitung nicht länger als 137m sein, 
alle Stichleitungen zusammen dürfen nicht länger als 687m sein. 
Natürlich sind diese Angaben abhängig von den verwendeten Treibern. Die 
Tendenz iat aber klar: je niedriger die Baudratem desto weniger Probleme 
bekommst Du mit Stichleitungen. Analog trifft das auch auf RS485 zu.

Ich will Dich nicht vom RS485-Bus abbringen, der funktioniert sicher 
auch ordentlich. Du musst aber entweder Abstriche (Single-Master) oder 
Mehrarbeit machen. Bei 10 Teilnehmern ist beides sicher kein Problem.

Willst Du auch Displays am Bus betreiben?
Das ist bei der Wahl des mc entscheidend. Der Programmcode allein geht 
sicher locker in einen Tiny rein, wenn aber Strings oder gar Graphik 
dazukommen, dann wird es im Flash schnell eng. Ich habe am Anfang den 
ATmega16 eingesetzt, als dann das Graphikdisplay mit dazukam, habe ich 
auf den ATmega32 umgebaut.

2 Links zu Hausbus-Systemen:
http://www.canathome.de/        (mit CAN)
http://caraca.sourceforge.net/  (mit Software-CAN)

Das X11-System (verbreitet in USA) läuft meines Wissens auf RS485.

Gruß, Stefan

von Henning (Gast)


Lesenswert?

ich werde am wochenende mal sehen wie die genaue topologie aussieht, 
eventuell liegen ja doch 6 leitungen in jeden raum. und ich glaube alle 
leitungen sind sogar sternförmig verschaltet.

weiterhin frage ich mich zur zeit ob eventuell eine art gemultiplexte 
peer to peer verbindung sinnvoller wäre?!
-> also z.b. rx aller teilnehmer im sternpunkt zusammenschalten und dann 
die tx leitungen immer einzeln auf den mastercontroller schalten?!

unter umständen müsste man bei sehr geringen baudraten ja sogar mit 
rs232 erfolge erzielen können?!

von Stefan K. (_sk_)


Lesenswert?

>ich werde am wochenende mal sehen wie die genaue topologie aussieht,
>eventuell liegen ja doch 6 leitungen in jeden raum. und ich glaube alle
>leitungen sind sogar sternförmig verschaltet.

??? Sowohl für RS485 als auch für CAN reichen Dir 4 Adern. 6 Adern 
machen ev. Sinn, wenn Du die "Topo == STern" "Logik == Strang" 
Verkabelung verwenden willst.


>weiterhin frage ich mich zur zeit ob eventuell eine art gemultiplexte
>peer to peer verbindung sinnvoller wäre?!
>-> also z.b. rx aller teilnehmer im sternpunkt zusammenschalten und dann
>die tx leitungen immer einzeln auf den mastercontroller schalten?!

Das ist aber nicht wirklich schön. Und auch nicht wirklich sinnvoll. In 
dem Fall hast Du auch ein Single-Master System. Der Master ist dann die 
Spinne, die in der Mitte schaltet.


>unter umständen müsste man bei sehr geringen baudraten ja sogar mit
>rs232 erfolge erzielen können?!

RS232 ist wesentlich störanfälliger als RS485. Wenn RSxxx, dann RS485 
(würde ich Dir raten).

Gruß, Stefan

von Henning (Gast)


Lesenswert?

hast wohl recht, rs232 war eher so ein geistiger kurzschluss vorhin ;)

was brauche ich denn minimalstens für can-bus mit niedrigen bitraten? 
gibt es für die standard busumsetzer entsprechenden bascom-beispiele? 
(konnte selbst bisher nicht gucken)

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.