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
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.
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!
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.
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...
@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
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
@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
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
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! :)
>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
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
>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
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?!
>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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.