Moin Moin, Ich hoffe, daß der Thread keine Philisophiefragen auslösen wird. Für meine Haussteuerung möchte mehrere uCs einsetzen. Die einzelnen Bausteine erledigen I/O, sammeln Sensordaten, schalten oder steuern einfach nur Logik. Viele fleißige Bienchen anstatt einer Riesen-Hummel, die alles erledigt. Das soll als gegeben vorausgesetzt sein. Nun suche ich natürlich nach einer Möglichkeit, die uCs untereinander zu vernetzen. Ein paar Meter Kabellängen sollten schon möglich sein. No-Go's sind: - Ethernet (overhead / Stromverbrauch) - Funk (ganz einfach: Nein) - I2C und daher fiel die engere Wahl derzeit auf: - CAN - ModBus RS485 Viel wichtiger als die theoretisch erreichbare Geschwindigkeit sind mir Stabilität und sinnvolle Libraries, die ich benutzen kann. Leider entstehen beim durchlesen der meisten Artikel über CAN oder auch ModBus eher Alptraumhafte Vorstellungen über die praxistaugliche Implementierung. Vieles erscheint auch schon recht alt. Ich kann mir irgendwie gar nicht vorstellen, daß es mittlerweile keine sinnvollen Open-Source-Bibliotheken gibt, die solche Vernetzungs-Jobs erledigen können. Frage: Kennt jemand gute oder wenigstens brauchbare Libraries für ein AVR-Netzwerk auf CAN oder ModBus-Basis? Oder gibt es eine sinnvollere Hardware / Software-Kombination?
Stefan L. schrieb: > Nun suche ich natürlich nach einer Möglichkeit, die uCs untereinander zu > vernetzen. Ein paar Meter Kabellängen sollten schon möglich sein. ... und jeder Controller soll jedem anderen seine Daten senden können, und jeder Partner soll die Intelligenz aufbringen die Nachrichten zu verarbeiten und an das richtige Ziel weiterzuleiten. Das ganze soll in einem 2KByte ATTiny ablaufen, die Comm-Lib soll da natürlich mit reinpassen. Und erzählt mir bitte nicht dass das nicht geht.
Ironie ist schon was feines. Frickelfritze schrieb: > ... und jeder Controller soll jedem anderen seine Daten senden > können, und jeder Partner soll die Intelligenz aufbringen die > Nachrichten zu verarbeiten und an das richtige Ziel weiterzuleiten. > Das ganze soll in einem 2KByte ATTiny ablaufen, die Comm-Lib soll > da natürlich mit reinpassen. Und erzählt mir bitte nicht dass das > nicht geht. Nein, in einen Tiny muss es nicht reingequetscht werden. Der Rest passt aber natürlich prinzipiell.
Stefan L. schrieb: > Leider entstehen beim durchlesen der meisten Artikel über CAN oder auch > ModBus eher Alptraumhafte Vorstellungen über die praxistaugliche > Implementierung Also CAN ist prinzipiell sehr einfach zu verwenden, wenn man einen uC mit integriertem CAN-Controller nutzt. Man schreibt die zu sendende Nachricht (0-8 Bytes + ID) in ein Peripherie-Register, und die Peripherie kümmert sich um den Rest. Zum Empfangen holt man die komplette Nachricht aus den Peripherie-Registern und kann sie beliebig verarbeiten. Mir ist nicht so ganz klar, wozu man da eine Library braucht - ein paar Bytes hin und her kopieren schafft man auch so. Aber es gibt natürlich diverse Libraries, bekannt ist zB die von http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek . Stefan L. schrieb: > Oder gibt es eine sinnvollere > Hardware / Software-Kombination? Schau mal nach den LPC11C00. Die haben sowohl CAN-Transceiver als auch CAN-Controller integriert, d.h. du brauchst außer Schutzbeschaltung (ESD) gar keine externe Peripherie für CAN. Ist aber nicht AVR, sondern Cortex-M0. Das dürfte so ziemlich die einfachste Möglichkeit für einen Multimaster-Bus sein (und du profitierst von der Störsicherheit von CAN usw.).
Dr. Sommer schrieb: > Aber > es gibt natürlich diverse Libraries, bekannt ist zB die von > http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek . Merci!
schau mal bei mysensors.org Ja, schaut erst mal nach Funk aus, aber es gibt dort auch eine Version mit RS485, such mal dort im Forum Grüße Klaus
Auch wenn die Resonanz hier im Forum bisher sehr negativ war der Hinweis auf owx. Funktioniert bei meiner Heizungssteuerung seit Monaten problemlos und zuverlässig.
Wie wärs mit nem simplen R2R Netzwerk? 5 o. 6 Bit. dafür benötigst du nur einen Anlalogeingang / µC und wertest nur die Analogspannung aus.
Ich habe meine AVRs im Haus mit CAN-BUS verbunden: Beitrag "CAN Datentransfer auf Basis von kreatives-chaos.com" Ich habe sozusagen einen "Master" der die Daten mit der SPS austauscht. Die "Slaves" liefern im Haus Daten wie Temperatur, Helligkeit, Keypad für Garage, Alarmanlage mit SIM800L Modul,... Versorgung und Komunikation zwischen den CAN-Knoten erfolgt über ein 4 poliges Klingeldraht Kabel.
Hugo P. schrieb: > Versorgung und Komunikation zwischen den CAN-Knoten erfolgt über ein 4 > poliges Klingeldraht Kabel. Klingt sehr gut. Zwar habe ich meist CAT5 zur Verfügung, doch im Notfall könnte ich auf eine einfache Steuerleitung ausweichen. Meine Präferenz geht derzeit klar zu CAN und ebenfalls möchte ich einen "Master" implementieren, der Daten von Slaves sammelt und zum Logikbaustein weiterreicht - oder eben Steuerbefehle entgegennimmt und beispielsweise Slaves schaltet. Daher finde ich Dein Projekt sehr interessant und hätte einige Fragen zu Deiner praktischen Umsetzung: - mit welcher Geschwindigkeit fährst Du den Bus? - Wie viele Teilnehmer in etwa? - welche Entfernungen? - welche Topologie? Viele Grüße & Danke, Stefan
:
Bearbeitet durch User
Hallo Stefan, ich arbeite seit einiger Zeit am gleichen Problem. Wenn Du interesse an einem gemeinsamen Projekt hast, können wir vielleicht etwas ausarbeiten und später hier weiter diskutieren. viele Grüße, Georg
Stefan L. schrieb: > - mit welcher Geschwindigkeit fährst Du den Bus? > - Wie viele Teilnehmer in etwa? > - welche Entfernungen? > - welche Topologie? BITRATE_10_KBPS Derzeit 3 "Slaves" (Keypad, Aussentemperatur + Helligkeit, GSM SIM800L Modul) Gerade in Entwicklung: Brandmeldeanlage für K-SD3. Und eine Pool Steuerung kommt auch noch dazu. Entfernungen: Ich glaube so ca. 25m bis zum letzten Knoten. Kein einziger Aussfall oder Übertragungsfehler bis jetzt (2 Jahre in Betrieb). Topologie: jeder Knoten hat einen CAN-IN und OUT und sind nach der Reihe aufgefädelt. 4-adriges Kabel, +24V, GND, CAN-H & CAN-L. Jeder Knoten hat einen 5V Recom R-785.0-0.5 Regler drauf. Somit ist es ihm egal ob jetzt +20V oder +24V auf der Leitung sind. Aber du kannst auch das CAT Kabel hernehmen. Da sind ja sowieso 8 Adern drinnen. Schirmung hättest du auch gleich. Wenn du den aktuellen Source brauchst kann ich ihn nochmals hochladen. Ich glaube am CAN-Bootloader habe ich noch was geändert damit er nicht mit den Knoten kollidiert die im Normalbetrieb sind.
:
Bearbeitet durch User
Hugo P. schrieb: > Stefan L. schrieb: >> - mit welcher Geschwindigkeit fährst Du den Bus? >> - Wie viele Teilnehmer in etwa? >> - welche Entfernungen? >> - welche Topologie? > > BITRATE_10_KBPS Hab ich auch;-) > Entfernungen: Ich glaube so ca. 25m bis zum letzten Knoten. Kein > einziger Aussfall oder Übertragungsfehler bis jetzt (2 Jahre in > Betrieb). Bei mir sinds derzeit nur ca. 12m, seit 2,5 Jahren in Betrieb. Vier Knoten, zwei sind an 4m langen Stichleitungen angeschlossen (PC mit CANcard und Entwicklungsboard). Keine Probleme bisher... > Topologie: jeder Knoten hat einen CAN-IN und OUT und sind nach der Reihe > aufgefädelt. 4-adriges Kabel, +24V, GND, CAN-H & CAN-L. Habe auch ein vieradriges Telefonkabel mit 24V Versorgungsspannung genommen.
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.