Einen wunderschönen Donnerstag Abend ;) Ich stehe vor einem kleinen Projekt, bei welchem ich von einer Master-Steuerung einige Clients steuern will. Dabei soll folgendes Möglich sein: [1] am Client direkt Hoch/Runter [2] einige Gruppen bilden (bis zu 10) und diese von der Zentrale steuern [3] ALLE hoch/Runter Beide Seiten ATMega. Dabei sollte die Leitungslänge schon einige Meter (100?) sein können und dabei relativ flexibel in der Netztopologie sein. Klar könnte man sich jetzt hier in die diversen Feldbusse einlesen und damit probieren, allerdings ist Zeit mal wieder Geld ;) und einfach vielleicht manchmal besser. Daher meine Idee: Man schreibe sich sein eigenes Protokoll: Ich brauche nur die Info [1] "wer" -> 16 - 32 "Adressen", also 5bit [2] "was" -> 1 bit, mit 'stop'-Befehl 2bit Das macht 7 Flanken, beispielhaft noch 3 für Parität und co. Das wiederholen wir 2 mal für mehr Datensicherheit. Das ganze ist wie gesagt recht "unkritisch" für die Zeit, folglich lassen wir der Ganzen Sache 1sek, macht pro bit 1s/20bit = 0,05s/bit. Für die Ausbreitung des Potentials mmN (bitte korregieren wenn falsch) vollkommen irrelevant. Und auch wenn das Signal über einen Treiber erst auf 24V soll und am Ziel per OK wieder auf 5, sollte das doch 3 mal reichen. Kann mir einer mein Konzept mal so bestätigen bzw mir Fehler aufzeigen?
Nimm RS-485 oder CAN Hardware, die Treiber sind preiswert und viel störungssicherer als einfache Leitungen, selbst bei 24 V. Das Protokoll kannst du ja immer noch beliebig selbststricken.
Was ich bei CAN und Co vermisse: Ein "einfaches" kleines Beispiel für eine CAN-Kommunikation, also irgendwas Richtung "Einstieg in die CAN-Welt". Wenn ich zB hier im Wiki gucke: http://www.mikrocontroller.net/articles/CAN Werde ich erschlagen von "Infos" zu Teilen die ich nutzen kann. Vielleicht bin ich aber auch einfach blind. Vorallem sehe ich aber in vielen Protokollen auch einen "Overkill": Nach meinem Plan lege ich zu jedem Client eine 3x0,75 Kabel und hab alles was ich brauche: 24V und GND sowie meine Datenleitung. Das Protokoll dazu ist selbst für mich als jemand mit 0 Ahnung von diversen Bus-Systemen eine Kleinigkeit (Flankenüberwachung an einem Eingang, das ganze vielleicht ein paar mal Pro Takt um Fehler zu vermeiden und gut ist.
Du brauchst nur den Treiber, für CAN zb PCA82C250 (0,99 €bei Reichelt). Das hat ein Eingangs- und ein Ausgangssignal im 5V Bereich, da kannst du direkt einen µC oder ähnliches anschließen.
Dazu brauch ich aber noch Infos über "das Protokoll" CAN selber. Also zB Wie die Adressierung usw läuft, ich will ja selber CAN Clients und Master bauen. Und die finde ich nirgends für CAN-Einsteiger, nur wie Kommuniziere ich mit CAN Device XY von Hersteller ABC.
> Ich stehe vor einem kleinen Projekt Klingt wie ein Hausbus nur für Rollladensteuerung. 1. Rollladensteuerung geht mit einem Zentralrelais pro Rollladen und einer 5-Adrigen Bus-Netzspannungs-Leitung pro 10er Gruppe ganz problemlos ohne jede Elektronik. 2. Zwar kann man wunderbar Signale mit AVR bearbeiten, aber woher bekommst du die Versorgungsspannung. An jedem Rollladen werden 230V sein, heisst das auch ein Trafo pro Rollladen ? Das macht bei mehr als 20 Rollläden über 20 Watt Standby-Verbrauch, also 50 EUR im Jahr nur für Stromkosten. 3. Angenommen man hat ein System, und möchte nun neben dem Rollladen auch noch das Licht schalten. Baut man dann ein neues Lichtschaltmodul ? Wäre es nicht besser, wenn es das preiswert fertig gibt, oder lässt man es gleich ganz sein und nimmt handelsübliche Funksteckdosen für 2.50 EUR das Stück ? > Nimm RS-485 oder CAN Hardware Es gibt auch nicht DMX und DALI, DigitalStrom und EIB/KNX, Funksysteme wie FS20, simple Direktverdrahtung mit Relais und das Leerrohr, welches auch in 50 Jahren noch aktuell sein wird. Man muß nichts neues erfinden. Man muß sich aber auch nicht kmlpett in die Beschreibungen einlesen, wenn man nur die Hardware (Kabel) kompatibel legt, dann kann man eines Tages immer noch die Module umrüsten. Am flexibelsten ist man mit Leerrohren.
CAN ist schon ein sinnvoller Ansatz. Aber höhere Protokolle wie CANopen kannst du dir ggf. auch ersparen, wenn sowieso alles von dir ist. Nimm CAN einfach an Transportmedium für einfache Messages. IDs kannst du frei wählen wie du willst, mit der Massgabe, dass keine zwei Nodes die gleiche ID senden.
Oliver W. schrieb: > Dazu brauch ich aber noch Infos über "das Protokoll" CAN selber. Brauchst du eben nicht, wenn du nur die Treiber von CAN nimmst. Wenn du auf beiden Seiten ATMegas einsetzt, kannst du zB UART (asynchron seriell) benutzen. Einfach RXD und TXD vom ATMega auf RXD und TXD vom PCA82C250 und du kannst damit über die CAN-Leitung über weite Entfernungen und auch sternförmig kommunizieren, als hättest du sie direkt miteinander verbunden. Das CAN-Protokoll ist ziemlich aufwendig, aber die Leitungsart von CAN kann man völlig unabhängig davon verwenden.
Kein CAN, den Boschmist kann man knicken! "Foundation Fieldbus" heisst das Zauberwort.
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.