"Selbstbau"-Feldbus

OP #3273484
Lesenswert?

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?
OP #3273557
Lesenswert?

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.
Gast #3273703
Lesenswert?

> 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.
#3273706
Lesenswert?

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.
#3273859
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren