PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hausbus verkabelung



Thalhammer
24.05.2013, 13:47
Hallo,
Ich möchte in meinem Haus einen Hausbus realisieren.
Die verkabelung ist bereits verlegt und damit fest vorgegeben:
2x2x0,25 Kupfer kabel, verdrillt und mit Schirmung (sind alte Netzwerkkabel aus 10Mbit/s zeiten).
Da ich kleine uC's benutzen will möchte ich den Bus kontroller extern realisieren, sodass er per UART angesteuert wird.
2 der Adern möchte ich für die Versorgung nutzen (12V und GND), da ich auch ein paar LED's anbinden muss.
Also bleiben noch 2 Adern für die Datenübertragung.
Meine erste Idee war, den UART einfach mit einem Transistor zu invertieren und auf 12V -> Ruhepegel 0V, Aktiv +12V.
Die lösung würde mit 2 Wiederständen und 2 Transistoren auskommen.
Alternative wäre natürlich CAN, allerdings brauch ich da einen Treiber, der wieder recht viel platz einnimmt, oder einen AVR mit integrierten (gibts das ?), was wieder platz kostet.

Ich weis das Thema wurde schon zu genüge durchgekaut, aber ein paar fragen hab ich noch:
- Glaubt ihr meine Idee mit den zwei transistoren funktioniert ? wenn ja bis zu welcher baudrate ?
- Gibt es Can transceiver chips die 9 Bit's unterstützen ?
Ich wollte das 9. Bit nutzen um dan Anfang eines Frames zu kennzeichnen, bei 8 bit müsste ich entweder
-ein Bit dafür opfern und die Daten auf die 7 bits aufteilen -> Aufwendig + mehr bytes/frame
-eine Zeitbasierte Lösung suchen -> mindestzeit zwischen zwei paketen + ein Timer geht auf jedem Chip hops
-die Daten in Ascii codieren und steuercodes nutzen -> viel mehr daten + am aufwendigsten

Wie sieht es preislich aus, immerhin brauch ich allein im unteren stockwerk fast 50 stück.
Was kostet ein can transceiver ungefär ?

MFG Thalhammer

BastelWastel
24.05.2013, 15:50
Muss es CAN sein?
Du koenntest was richtung MAX485 nehmen, dann hast du auch dein differentielles Signal und kannst dein eigenes Protokoll schreiben.
Spart dir vllt unnoetigen overhead. (=bessere Umlaufzeiten falls du richtung Token-Ring gehst)

Gibts als DIP8 oder SO8, ab ca. 1,50 Eur.

Gruss, Andreas

Thalhammer
24.05.2013, 18:04
Nein CAN muss nicht sein.
Den Max485 schau ich mir mal an.
Tokenring hatte ich eigentlich nicht geplant, sondern eine Sternverkabelung mit knotenpunkten, weil den der Defekt eines einzelnen Chips nicht so schlimm wäre, aber Tokenring könnte ich auch realisieren.

// EDIT:
Hab grade gesehen, dass ich bei 2 draht RS485 nur Halfduplex möglich ist.
Das heist es erhöht sich wieder der Softwareaufwand, was ich eigentlich vermeiden möchte.
Wie schaut es den mit der Transistorlösung aus ?
Die wäre kostenmäßig wesentlich interessanter.
Geplant hatte ich die Verwendung einer Baumarchitektur mit Knotenpunkten, weshalb die Leitungslänge zwischen zwei Transceivern maximal 20-30 Meter beträgt.

Vitis
25.05.2013, 17:44
DIe Eindraht UART-Verbindung geht schon, halt die Baudrate im Zaum halten ... allerdings würde ich doch eher auf die differentielle Übertragung verweisen, ist einfach stabiler was Störungen angeht.
Was die Programmierung angeht ist das gleich, nur die Richtungsumschaltung des RS485-Bausteins kommt dazu und auch die kannst Du Dir schenken, wenn Du auf die CAN-Bus-Transceiver setzt statt der RS485-Bausteine.
PCA82C250 z.B.

Thalhammer
25.05.2013, 20:05
Den PCA kann ich leider nicht nutzen, weil ich 3.3V Avr's einsetze.
Ich hab aber den http://www.mikrocontroller.net/part/SN65HVD231 gefunden, der wohl alles hat was ich brauche, allerdings bin ich mir da nicht sicher:
- Der Transceiver hat D und R, wenn ich TX des AVR an D hänge und RX an R, kann ich den dann wie einen normalen UART verwenden und der Transceiver macht den Rest (Kollisions kontrolle etc...) ?

BastelWastel
26.05.2013, 23:01
Die gibt es auch full-duplex, MAX488 z.b..
Willst du einen Master-knoten?

Vitis
27.05.2013, 08:37
bei Duplex RS485 gehts nur mit nur einem Master und er braucht 4 drähte für daten, hat aber nur insgesamt 4 verfügbar ... der SN65HVD231 geht auch, aber Kollisionen etc. macht der nicht, ist nur ein Pegelwandler, sonst nix, kannst Du auch im Prinzip mit n paar Transistoren oder OpAmps nachbauen, um die Logik, also Checksummen etc. hat dsich der Programmierer selber zu kümmern im Protokoll. Willst Du das nicht, dann kommst Du nicht an den CAN-Controllern vorbei, die machen sowas automatisch ...

Thalhammer
27.05.2013, 11:34
Welche CAN Controller giebts da ?

Vitis
28.05.2013, 08:20
na da gibts schon ne ganze Reihe ... MCP2515, oder SJA1000 z.B. ... oder gleich die AT90CAN, die haben den CAN-Controller schon eingebaut.

schorsch_76
28.05.2013, 09:01
Zum Canbus kannst du auch auf Kampis Seite einiges lesen, inkl. Programmen :)
http://kampis-elektroecke.de/?page_id=453

Gruß
Georg

indeas
28.05.2013, 12:36
Ich es mit RS485 halbduplex realisieren, die Vorteile wären:
- Einfache Integration aller Teilnehmer vom PC (einfache UART) bis zum µC.
- Störungsfreie Übertragung über das gesammte Netz
- alle Komponenten sind kostengünstig
- einfaches Protokoll

Dann würde ich (um da Thema einfach zu halten) einen Master "installieren", der zyklisch alle Teilnehmer (jeder hat eine ID) abfragt.
Die Slaves horchen immer mit wenn die auf den jeweiligen Slave passende ID kommt, wird vom betreffenden Slave geantwortet.

So wird das z.B. bei Profibus oder beim DMX Bus (http://de.wikipedia.org/wiki/DMX_%28Lichttechnik%29) gemacht.

Thalhammer
30.05.2013, 13:19
Also hab ich das jetzt richtig verstanden:
Bei CAN brauche ich mindestens 3 IC's : den Steuer IC, einen Controller (MCP2515) und einen Transceiver(MCP2551) oder ?
bei RS485 brauche ich nur 2 und leichter anzusteuern ist der auch.
Denke ich werde RS485 nehmen, da CAN ja eigentlich für Netzwerke entwickelt wurde (also viele IC's an einer Leitung), da ich aber Knotenpunkte hab, hab ich nur Punkt zu Punkt verbindungen.

Vitis
30.05.2013, 22:28
nein, beim CAN brauchst Du auch nur 2, es gibt Controller, die die CAN-Schnittstelle schon drinnen haben, die angesprochenen AT90CAN z.B..
Ob 485 leichter umzusetzen ist bezweifle ich ... da musst Du Dich um alles selber kümmern, Plausibilitätsprüfung, CRC, Kollision und Protokoll ... an 485 hat sich auch schon so Mancher die Zähne ausgebissen.

BTW ... DMX ist kein Protokoll, das ist ne Krankheit, die Bytes auf Teufel komm raus rausfeuern und fertig, entweder die Lampe leuchtet oder eben nicht ... brrrrrr ... Modbus ASCII find ich gut, einfach umsetzbar am µC

Thalhammer
30.05.2013, 22:50
Ja das es beim AT90CAN keinen Controller braucht, ist mir klar, allerdings kostet der beim biligsten shop den ich gefunden hab 10€ das Stück.
Bei RS485 tut's jeder AVR mit UART, also auch einer für 1,50€ wie nen kleiner Atmega.
Und mehr als 4KB Flash braucht kein Mensch für einen Schalter/Relai controller.
Was das Protokoll angeht, das habe ich ja schon.
Mein Protokoll:
2 Byte Device address
1 Byte Datentyp
1 Byte Datenlänge
x Byte Daten
2 Byte Checksumme über das ganze Paket
läuft bisher auf mehreren Boards gut und ich hab massenweise Code für diverse AVR's.
CRC, Plausibilitätsprüfung und Protokoll ist also kein Problem.
Kollisionen sollte ich auch hinkriegen indem ich das Protokoll so designe, dass keine entstehen können.
Aber meine Erste Frage, ob ein ganz normaler UART mit 12V Pegeln geht ist jetzt leider ein wenig untergegangen.
Immerhin sind es geschirmte Kabel und nirgends mehr als 20m.

Vitis
31.05.2013, 08:37
nun, zur UART-Variante ... ich sags mal so, hab hier nen I2C-Bus über 60 Meter gespannt mit 4 Knoten dran auf 150kBit/s über billiges Telephonkabel, also why not.
Würde beim Boarddesign aber die Bestückungsoption vorsehen falls es doch klemmen sollte.

Thalhammer
31.05.2013, 09:16
Ich mein die UART Variante hätte halt ne menge Vorteile:
-Vollduplex
-kommt mit 2 Leitungen aus (bei Vollduplex)
-ist DEUTLICH billiger und layoutmäßig einfacher zu realisieren.
Ich denke ich werden auf dem Board einfach mal beides Realiesieren, und wenn die einfach lösung geht lass ich den RS485 transceiver einfach unbestückt.

TheDarkRose
01.06.2013, 12:03
Man sollte noch erwähnen, das RS485 nicht für eine sternförmige Topologie ausgelegt ist. Und RS232 wird das noch weniger vertragen (Vermutung). I2C Bus über 60 Meter linear und ohne Stichleitung kann funktionieren, ebenso UART. Aber eben nicht sternförmig (Stichleitungen). Wobei auch CAN nur für Linienstruktur ausgelegt ist, aber Sichtleitungen besser verträgt.

Thalhammer
01.06.2013, 23:29
Man sollte noch erwähnen, das RS485 nicht für eine sternförmige Topologie ausgelegt ist. Und RS232 wird das noch weniger vertragen (Vermutung). Aber eben nicht sternförmig (Stichleitungen).

Ich hab aber keine Sternarchitektur in der Leitung, sondern nur Punkt zu Punkt ähnlich wie bei LAN.
Ich habe einzelne Devices, die jede eine einzelne Leitung zu einem Router haben, welcher wiederung eine eigene Leitung zum nächsten Router hat.
An einer Leitung hängen NIE mehr als ZWEI AVR's.

MFG

PsiQ
03.06.2013, 00:34
Frage am Rande:
- Du könntest über die DC Leitung auch signale schicken, oder ? mitm Kondensator kann man doch den gleich vom Wechselstromanteil trennen.. wie beim micro verstärker z.B. Sorry wenn ich daneben liege.

- Wass sicher geht, was z.B. beim alten Babyphone gemacht wurde:
Übers AC netz kann HF Signal übertragen werden, dann müsstest du halt bei jedem AVR nen wechselrichter vorsehen,
aber die brauchen wohl eh einen Regler wenn die Leitungen länger sind.
Dann könntest du alle 4 Leitungen weiternutzen.

--Ich habs noch nicht selber gemacht, aber es geht,
wird ja inzwischen bei den ganzen netzwerk-über-Steckdose auch sehr hochfrequent genutzt.

Satellitenkabel hat auch auf mantel + inneleiter 18V DC liegen,
und kann trotzdem in beide richtungen senden..

Wenn du den Schirm gar nicht brauchst weil robust genuger BUS, kannst du auch den als - nehmen...

indeas
03.06.2013, 08:01
Also wenn Du nur eine Punkt zu Punkt Verbindung realisieren willst, dann ist die einfachste Variante UART. Die Pegel spielen prinzipiell keine Rolle.
RS232 oder RS485 oder direkt oder mit zwei Open-Kollektor Trasistoren mit einer Single Line usw. ist vollständig egal.
Die Frage nach Vollduplex oder nicht ist auch relativ einfach beantwortet. Vollduplex erfordert einfach zwei Signalwege (doppelte Hardware) und die Controller müssen beim Senden auch gleichzeitig empfängen können (RX- IRQ). Beim Halbduplex mit Master und Slave können beide Teilnehmer immer schön per Polling zuhören und dann das Empfangene umsetzen und antworten.
Die Software wird entsprechend einfacher, weil auch hier "Kollisionen" ausgeschlossen sind.

Unregistriert
03.06.2013, 10:58
Hallo!


willst alles neu "Erfinden" bzw neu Bauen und Planen..

das hatte ich auch vor..... bin dann durch Zufall auf das Forum E2000 (elektronik2000.de) gestoßen..

dort wird wird ein Bus-System aufgebaut...

und man hat selbst die Freiheit alles selbst zu machen.. Platinen usw..
ich selbst habe mir die "Bus"Module neue gezeichnet und viel kleiner gemacht.

Nur als Anregung!!

LG Stef

PICture
05.06.2013, 13:20
Hallo!

Falls man etwas Fertiges haben möchte: http://www.pollin.de/shop/dt/NTU0NzcyOTk-/Computer_und_Zubehoer/Netzwerktechnik/Powerline_Adapter/Powerline_Adapter_Set_mit_Steckdose_LEA_NetSocket2 00_200_Mbps.html?utm_source=newsletter&utm_medium=email&utm_campaign=weekly_2013-kw23a . ;)