Forum: Mikrocontroller und Digitale Elektronik Bidirektionale Zweidraht-Datenübertragung


von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Ich muss an einem Raum ein Bedieneinheit (besteht aus Prozessor, GLCD, 
Tastatur, Temperatursensoren) anbringen. Die Bedieneinheit existiert 
noch nicht und sie wird selber gebaut.

Es gibt nur ein dreiadriges Kabel von der Bedieneinheit zur Zentrale.
Länge ca 5m.

Über das Kabel muss das Gerät versorgt werden (12V AC oder DC) und die 
Kommunikation zwischen Zentrale und Bedieneinheit laufen.

Dabei müssen Daten (Messwerte, Texte), welche von der Zentrale gesendet 
werden, auf dem Display angezeigt werden. Die Werte der 
Temperatursensoren sollen abgefragt werden können.

Bis hierhin habe ich auch kein Problem, da es mittels 1-Wire-Protokoll 
laufen würde. Viele Daten (eine Hand voll Bytes) sind es nicht und die 
Geschwindigkeit ist nicht kritisch (maximal 1x pro Sekunde werden Daten 
ausgetauscht, eher weniger).

Jedoch soll ein Tastendruck auf der Bedieneinheit sofort an die Zentrale 
weitergeleitet werden. Es reicht dabei ein Hinweis aus, dass die 
Zentrale Daten abzuholen hat. Sofort bedeutet, dass man nach einem 
Tastendruck nicht zwei Sekunden auf eine Aktion warten muss.

Die Bedieneinheit soll dabei recht dumm sein und nur als Konsole dienen.
Der Anzeigeinhalt wird von der Zentrale vorgegeben.

Gibt es eventuell schon ein fertiges und erprobtes Übertragungsverfahren 
für diesen Zweck?

Schön wäre ein Bus, an dem mehrere Bedieneinheiten hängen könnten.


Das ganze ist für private Zwecke und wird wahrscheinlich nur einmal 
eingesetzt (außer es funktioniert so gut, dass ich noch andere 
Bedieneinheiten aufbaue). Aus diesem Grund darf es nicht zu aufwändig
und teuer sein. Erforderliche Bauelemente müssen für Privatleute 
beschaffbar sein.


Ich kann ohne größere zerstörerische Aktionen keine zusätzlichen 
Leitungen ziehen (war ursprünglich nur für einen Messfühler vorgesehen).

An eine Funkübertragung habe ich auch schon gedacht, möchte es aber 
lieber über die vorhandene Leitung machen (die ja sowieso der 
Spannungsversorgung dient).

Power-LAN wäre auch eine Möglichkeit, wenn man dies einfach herstellen 
kann (keine 230V). Ist eventuell die Modifikation eines günstigen 
Power-LAN-Adapterpaares möglich?

Am liebsten wäre mir aber ein einfaches System ähnlich 1-Wire.

Ich hoffe, dass ich keine Eckdaten vergessen habe.

von Otto (Gast)


Lesenswert?

google mal nach EBUS

Otto

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

eBus: mal kurz im Goole geschaut

Schade dass es darüber keine genaueren Daten gibt. 18mA pro Gerät ist, 
speziell für die von mir erdachte Bedieneinheit (GLCD mit Backlight, 
letzteres vergessen anzugeben) etwas wenig.

Das Übertragungsverfahren ließe sich aber verwenden.

Ganz allgemein muss ich mir dann aber die Kollisionserkennung noch 
selber ausdenken.

von Guter Rat (Gast)


Lesenswert?

Wenn es nur eine Tastenbetätigung auf der Bedieneinheit
erkannt werden muß.....

Wie wäre es denn eine kleine Last, so um die 5...10mA
aufzuschalten (per Taste) und die Zentrale erkennt
die Stromänderung (Komparator, Strommessung)??

Nur mal so eine Idee.........

von Schrotty (Gast)


Lesenswert?

LIN-Bus wäre auch möglich.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Schrotty schrieb:
> LIN-Bus wäre auch möglich.

Ist aber (wenn ich es richtig verstanden habe), wie 1-wire, ein 
Master-Slave-Protokoll. Ich kann also Tastendrücke nur pollen und nicht 
gemeldet bekommen.

Btw: Zum eBus habe ich folgende Seite ausgegraben: 
http://ebus.webhop.org

von Marvin S. (demo)


Lesenswert?

Hmmm... das geht mit 1-wire durchaus. Die Zentraleinheit schreibt als 
Master Display-Inhalte auf den Bus und mach regelmaessig einen alarm 
search. Da du ja den bus nur mit wenigen Daten belegst kannst du auch 
oft pollen und damit recht zeitnah reagieren.

Gruesse

Marvin

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Christian H. schrieb:
> 18mA pro Gerät ist, ... etwas wenig.
Ich vergass, dass ich ja drei Leitungen habe.

Wenn ich mir die Sache aber genauer überlege, ist die physikalische 
Schicht ja nichts anderes als 1-Wire mit anderen Pegeln (9-12V/15-24V 
gegenüber 0V/5V).

Ich muss mich jetzt mal durch die möglichen Protokolle durcharbeiten.
Multi-Master wäre schon günstig. Wie mache ich nur die 
Kollisionserkennung.
Kennt jemand schon was fertiges (bitte nicht in Basic).

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Marvin S. schrieb:
> Hmmm... das geht mit 1-wire durchaus. Die Zentraleinheit schreibt als
> Master Display-Inhalte auf den Bus und mach regelmaessig einen alarm
> search. Da du ja den bus nur mit wenigen Daten belegst kannst du auch
> oft pollen und damit recht zeitnah reagieren.

Ich muss mal sehen, wie fix das mit dem Pollen klappt, sonst wäre 1-Wire 
auf jeden Fall im Rennen. Vor allem, da ich bereits 1-Wire mit 
Software-Clients am Laufen habe. Für die Polling-Aktion würde ich aber 
einen getrennten Bus einsetzen.

von Route_66 (Gast)


Lesenswert?

Hallo!
Aus der Modelleisenbahnerszene kenne ich einen multimasterfähigen Bus, 
der vielleicht für Dein Problem geeignet wäre. Ich glaube der heißt 
"MR-Bus" - für Model Railroad. Da könnte man einen Open-Kollektor-Bus 
(z.B. auch auf 12V Pegeln wie beim Sea-Talk in Yachten) relativ 
störsichere Übertragungen machen.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

"MR-Bus": Werde ich mir mal ansehen.
Hmm. Scheint auf RS485 (also differentiell) zu basieren, könnte aber 
noch andere Varianten existieren. Habe auf der Schnelle nur diese 
gefunden. Auch ist es ein Single-Master / Multiple-Slave.

Moment: Es scheint aber auch noch eine Multi-Master-Variante zu geben. 
Die ist aber dem eBus nicht unähnlich.

Bezüglich der Kollisionserkennung bei eBus (oder auch bei einem 
modifizierten 1-Wire-Bus) bin ich schon weiter - genauer, ich habe es 
zumindest verstanden.

Zumindest bin ich mit meinem Problem nicht alleine und es gibt zumindest 
einige brauchbare Lösungsansätze. Muss wohl doch noch etwas mehr 
Hirnschmalz reinstecken.

Ideal wäre es wenn ich einfach an jeder Seite meiner Leitung einen Chip 
dranhänge und mit dem Chip RS232 nur RS232 spreche (vielleicht auch 
keine so schlechte Idee, muss dann aber beide Richtungen aufmodulieren - 
eine Art Funk über Kabel; wird aber wohl zu kompliziert). Oder gibt es 
sowas bereits und es ist für jedermall erhältlich?

von BlaueLED (Gast)


Lesenswert?

Hallo,

LINBus wäre doch eine erprobte und passende Möglichkeit.

Durch die Schedule Table in deinem Mastergerät kannst du die 
Reaktionszeit quasi selbst definieren.

Da allerdings nach der Spezifikation nur 8 Byte pro Botschaft übertragen 
werden dürfen, müsste man tricksen.

MfG
Arne

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Ich werde mich mal eingehender mit dem LIN-Bus wie auch mit 
Single-Wire-CAN beschäftigen. Vor allem auch, weil es hierfür fertige 
Tranceiver zu kaufen gibt. Für eBus müsste ich einen mit diskreten 
Bauteilen zusammenbauen (was aber auch ausprobiert wird).

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
Noch kein Account? Hier anmelden.