Forum: Mikrocontroller und Digitale Elektronik ausgefallenes serielles bussystem mit ATMEGA


von Bastler F. (bastlerle)


Lesenswert?

Grüßt Euch!

Bevor ich mich mit den ATMEL controllern beschäftigt habe ich bereits 
Erfahrungen mit c-control, open controller etc.. sammeln können. Ich 
benötige ein Bussystem mit >150 Teilnehmern und >100m Leitungslänge. 
(bzw. Theoretisch). 19k2 Bd sollten hier genügen.
Ich dachte an ein serielles System. Jeder Teilnehmer sollte das Signal 
aktiv noch einmal verstärken und zum nächsten Teilnehmer weiterleiten. 
An einer Lösung mit Optokopplern hatt ich dabei gedacht.



So das war erstmal mein Gedankenansatz. Hat jemand ne gute Idee wie ich 
das Ganze umsetzen könnte? Oder teilt mir zumindest Eure Meinungen mit.

Danke.
Grundprinzip:
                                          GND|                GND|
------           ----------        ------------        ------------
|    |-Tx--------| MAX232 |-Tx-----|          |-Tx-----|          |-Tx---
| PC |           |        |        | OPTO     |        | OPTO     |
|    |-Rx--------|        |-Rx-----|          |-Rx-----|          |-Rx---
------           ----------        -----------|        -----------|
                   5V| GND|        Tx| Rx| 5V|         Tx| Rx| 5V|
                                     |   |   |           |   |   |
                                    ATMEGA              ATMEGA


Optokoppler (2fache Ausführung):

                                  -------------------
                                  |                 |
                      >-Tx--------|------   --------|---------5V
(vom vorherigen OPTO oder MAX232) |     >   <       |
                          GND-----|------   --------|---> Tx zum ATMEGA
                                  |                 | und nä.
                                  |                 | OPTO
                                  |                 |
                     >-Rx --------|------   --------|---------5V
(vom nachfolgenden OPTO)          |     >   <       |
                          GND-----|------   --------|---> Rx zum ATMEGA
                                  |                 | und vorherigen
                                  ------------------- OPTO

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

... und wenn der erste der 150 Optokoppler ein Problem hat oder sich der 
Controller aufhängt, dann schauen 149 Teilnehmer in die Röhre, und nix 
geht mehr. Tolle Erfindung.

von Karl-heinz S. (cletus)


Lesenswert?

Bastler From le wrote:
> Grüßt Euch!
>
> Bevor ich mich mit den ATMEL controllern beschäftigt habe ich bereits
> Erfahrungen mit c-control, open controller etc.. sammeln können. Ich
> benötige ein Bussystem mit >150 Teilnehmern und >100m Leitungslänge.
> (bzw. Theoretisch). 19k2 Bd sollten hier genügen.
> Ich dachte an ein serielles System. Jeder Teilnehmer sollte das Signal
> aktiv noch einmal verstärken und zum nächsten Teilnehmer weiterleiten.
> An einer Lösung mit Optokopplern hatt ich dabei gedacht.

Das Problem: Ein Mega ist gerade beschäftigt, ausgefallen oder hat 
keinen Strom bedeutet ein Absturz für alle, die dahinter sind.

<Update>
Streich das. Die Megas hängen ja nicht direkt in Reihe.

Nichtsdestotrotz bekommst du Probleme mit Kollisionen.
</Update>

Wegen der Verstärkung hast du auch eine Menge Stress wegen Kollisionen 
und co.

Schau dir mal RS485 (>150 Teilnehmer wird da aber schwer) oder CAN an.

Gibt auch noch einen Haufen weiterer Systeme. Das Beste: Für die meisten 
gibt es Bustreiber-Bausteine, die dann automatisch Pegelwandeln. Die 
CAN-Dinger können auch teilweise Nachrichten filtern, dass dein Mega nur 
die Interessanten bekommt und für den Rest keine CPU-Zeit verschlendert.

von (prx) A. K. (prx)


Lesenswert?

Deine Optos sehen irgendwie bidirektional aus. Eher selten. Eigenlich 
muss bei einer solche Kommunikation ein Ring rauskommen, den ich hier 
aber nicht sehe.

Und wie schon oben erwähnt passt der Titel "ausgefallenes Bussystem" 
dazu perfekt, wenn mal einer... ;-)

von Karl-heinz S. (cletus)


Lesenswert?

A. K. wrote:
> Deine Optos sehen irgendwie bidirektional aus. Eher selten. Eigenlich
> muss bei einer solche Kommunikation ein Ring rauskommen, den ich hier
> aber nicht sehe.

Gibt auch bidirektionale Irda-Bausteine.

von Karl-heinz S. (cletus)


Lesenswert?

Wegstaben Verbuchsler wrote:
> ... und wenn der erste der 150 Optokoppler ein Problem hat oder sich der
> Controller aufhängt, dann schauen 149 Teilnehmer in die Röhre, und nix
> geht mehr.

Mit ist gerade aufgefallen, wie ironisch der Threadtitel ist.

5 Cent in die Wortwitzkasse

SCNR

von (prx) A. K. (prx)


Lesenswert?

Bidirektional: Ja, aber ob das hier gemeint ist?

von Gast (Gast)


Lesenswert?

>Schau dir mal RS485 (>150 Teilnehmer wird da aber schwer)

Für RS485 gibt es Repeater, sodaß 150 Teilnehmer kein Problem sind. Als 
Protokoll eignet sich eine Untermenge des Profibus.

von Bastler F. (bastlerle)


Lesenswert?

Danke erstmal für deine Antwort.
Selbst wenn ein MEGA ausfällt oder ähnliches -> die anderen werden doch 
trotzdem mit daten versorgt. und optokoppler sind so gut wie totsicher..
hatte dein update später erst gesehen. sorry

tja.
das die teilnehmer nur nacheinander kommunizieren können ist schon 
klar.. das sollte softwaremäßig geregelt sein

Karl-heinz Strunk wrote:
> Bastler From le wrote:
>> Grüßt Euch!
>>
>> Bevor ich mich mit den ATMEL controllern beschäftigt habe ich bereits
>> Erfahrungen mit c-control, open controller etc.. sammeln können. Ich
>> benötige ein Bussystem mit >150 Teilnehmern und >100m Leitungslänge.
>> (bzw. Theoretisch). 19k2 Bd sollten hier genügen.
>> Ich dachte an ein serielles System. Jeder Teilnehmer sollte das Signal
>> aktiv noch einmal verstärken und zum nächsten Teilnehmer weiterleiten.
>> An einer Lösung mit Optokopplern hatt ich dabei gedacht.
>
> Das Problem: Ein Mega ist gerade beschäftigt, ausgefallen oder hat
> keinen Strom bedeutet ein Absturz für alle, die dahinter sind.
>
> <Update>
> Streich das. Die Megas hängen ja nicht direkt in Reihe.
>
> Nichtsdestotrotz bekommst du Probleme mit Kollisionen.
> </Update>
>
> Wegen der Verstärkung hast du auch eine Menge Stress wegen Kollisionen
> und co.
>
> Schau dir mal RS485 (>150 Teilnehmer wird da aber schwer) oder CAN an.
>
> Gibt auch noch einen Haufen weiterer Systeme. Das Beste: Für die meisten
> gibt es Bustreiber-Bausteine, die dann automatisch Pegelwandeln. Die
> CAN-Dinger können auch teilweise Nachrichten filtern, dass dein Mega nur
> die Interessanten bekommt und für den Rest keine CPU-Zeit verschlendert.

von Karl-heinz S. (cletus)


Lesenswert?

A. K. wrote:
> Bidirektional: Ja, aber ob das hier gemeint ist?

Ja. Deshalb gibt es RX und TX-Leitung zwischen seinen Optos

von Adrian Taylor (Lestophant) (Gast)


Lesenswert?

geborene Pessimisten
ausgefallene Kritiker
jede Elektronik faellt irgendwann aus
ist doch ganz normal

von Ralf (Gast)


Lesenswert?

Ne, ist zu umständlich mit weiterleiten usw. Da wartest du ja ewig.

Steig auf RS485 um, da kannst du auch lange Leitungen haben, und alle 
Slaves hängen parallel an der Schnittstelle. Unterstützt dann sogar auch 
Multimaster-Betrieb.
Manche verwenden gerne CAN-Treiber anstatt der RS485-Treiber, das ist 
glaub ich deswegen, weil die CAN-Treiber open-collector sind, bin aber 
nicht sicher.

Du musst halt ein entsprechendes Protokoll mit Adressierung usw. 
implementieren. Und die Slaves müssen halt irgendwie ihre Adressen 
zugewiesen bekommen (DIP-Switch, EEPROM, etc.).

Ralf

von Karl-heinz S. (cletus)


Lesenswert?

Bastler From le wrote:
> Danke erstmal für deine Antwort.
> Selbst wenn ein MEGA ausfällt oder ähnliches -> die anderen werden doch
> trotzdem mit daten versorgt. und optokoppler sind so gut wie totsicher..
> hatte dein update später erst gesehen. sorry
>

Dass früher oder später mal einer von denen tot ist, ist sicher. Da hast 
du Recht.

OK, ich werde mal deutlicher:

Es gibt Bussysteme, bei denen exisitieren diese Probleme nicht. Für 
diese Bussysteme gibt es auch Bausteine, die in etwa deinen Optokopplern 
entsprechen.

Wenn du gar nichts auf unsere Meinung gibst und nur deine Lösung 
bestätigt haben willst, probier sie erstmal an 10 Teilnehmern aus.

> tja.
> das die teilnehmer nur nacheinander kommunizieren können ist schon
> klar.. das sollte softwaremäßig geregelt sein

Ja, aber wenn Nummer 1 was sendet, kommt das wegen der Schaltzeiten bei 
Nr 150 wirklich später an.
Das gilt es zu beachten.

von Bastler F. (bastlerle)


Lesenswert?

Ralf wrote:
> Ne, ist zu umständlich mit weiterleiten usw. Da wartest du ja ewig.
>
> Steig auf RS485 um, da kannst du auch lange Leitungen haben, und alle
> Slaves hängen parallel an der Schnittstelle. Unterstützt dann sogar auch
> Multimaster-Betrieb.
> Manche verwenden gerne CAN-Treiber anstatt der RS485-Treiber, das ist
> glaub ich deswegen, weil die CAN-Treiber open-collector sind, bin aber
> nicht sicher.
>
> Du musst halt ein entsprechendes Protokoll mit Adressierung usw.
> implementieren. Und die Slaves müssen halt irgendwie ihre Adressen
> zugewiesen bekommen (DIP-Switch, EEPROM, etc.).
>
> Ralf


RS485 ? kann ich den die ATMEGA dazu nutzen?

von Karl-heinz S. (cletus)


Lesenswert?

Bastler From le wrote:

> RS485 ? kann ich den die ATMEGA dazu nutzen?

http://de.wikipedia.org/wiki/RS485

Du brauchst natürlich einen BUstreiber

von Bastler F. (bastlerle)


Lesenswert?

Karlsein
>
> Ja, aber wenn Nummer 1 was sendet, kommt das wegen der Schaltzeiten bei
> Nr 150 wirklich später an.
> Das gilt es zu beachten.


hm hatte ich mir auch schon gedacht.. in bus system mit clock wo alle 
teilnehmer direkt parallel liegen würde bräucht ich quasi..

von Karl-heinz S. (cletus)


Lesenswert?

Bastler From le wrote:
> Karlsein
>>
>> Ja, aber wenn Nummer 1 was sendet, kommt das wegen der Schaltzeiten bei
>> Nr 150 wirklich später an.
>> Das gilt es zu beachten.
>
>
> hm hatte ich mir auch schon gedacht.. in bus system mit clock wo alle
> teilnehmer direkt parallel liegen würde bräucht ich quasi..


RS485. Schaus dir echt mal an. Links poste ich nicht ohne Grund.


So, ich klink mich aus. Wie schon gesagt: Wenn du beratungsresistent 
sein willst, bastel nicht sofort alle 150 Teilnehmer.


Und wirklich: Deine Probleme werden massiv sein.

von Bastler F. (bastlerle)


Lesenswert?

Karl-heinz Strunk wrote:
> Bastler From le wrote:
>
>> RS485 ? kann ich den die ATMEGA dazu nutzen?
>
> http://de.wikipedia.org/wiki/RS485
>
> Du brauchst natürlich einen BUstreiber


bustreiber softwaremäßig? oder hardwaremäßig?

von Bastler F. (bastlerle)


Lesenswert?

Karl-heinz Strunk wrote:
> Bastler From le wrote:
>> Karlsein
>>>
>>> Ja, aber wenn Nummer 1 was sendet, kommt das wegen der Schaltzeiten bei
>>> Nr 150 wirklich später an.
>>> Das gilt es zu beachten.
>>
>>
>> hm hatte ich mir auch schon gedacht.. in bus system mit clock wo alle
>> teilnehmer direkt parallel liegen würde bräucht ich quasi..
>
> Nutzt dir GAR nichts, weil deine Clock ja auch über die Optos laufen
> würde.
>
> Sonst kannst du dir die Optos sparen.
>
>
> So, ich klink mich aus. Wie schon gesagt: Wenn du beratungsresistent
> sein willst, bastel nicht sofort alle 150 Teilnehmer.
>
>
> Und wirklich: Deine Probleme werden massiv sein.

ja ich bastel erstmal mit weniger teilnehmer..
150 is ja nur ein theroretischer wert..
danke trotzdem erstmal

von Karl-heinz S. (cletus)


Lesenswert?

Bastler From le wrote:
> Karl-heinz Strunk wrote:
>> Bastler From le wrote:
>>
>>> RS485 ? kann ich den die ATMEGA dazu nutzen?
>>
>> http://de.wikipedia.org/wiki/RS485
>>
>> Du brauchst natürlich einen BUstreiber
>
>
> bustreiber softwaremäßig? oder hardwaremäßig?

Was an dem WP-Artikel hast du nicht verstanden?

Ein Baustein natürlich.

von A. F. (artur-f) Benutzerseite


Lesenswert?

>http://de.wikipedia.org/wiki/RS485

>Du brauchst natürlich einen BUstreiber

19k2 Baud bei 100m Leitungslänge sind mit RS485 drin.
@ 150 Teilnehmer: Die meisten Bustreiber erlauben bis zu 32 Teilnehmern 
am Bus.

von Ralf (Gast)


Lesenswert?

> Die meisten Bustreiber erlauben bis zu 32 Teilnehmern am Bus.
Es gibt auch welche, die 64/128/256 erlauben. Maxim, Linear, etc.

Ralf

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.