mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ausgefallenes serielles bussystem mit ATMEGA


Autor: Bastler From le (bastlerle)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Wegstaben Verbuchsler (wegstabenverbuchsler)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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... ;-)

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bidirektional: Ja, aber ob das hier gemeint ist?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bastler From le (bastlerle)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl-heinz Strunk (cletus)
Datum:

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

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

Autor: Adrian Taylor (Lestophant) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
geborene Pessimisten
ausgefallene Kritiker
jede Elektronik faellt irgendwann aus
ist doch ganz normal

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bastler From le (bastlerle)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bastler From le (bastlerle)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bastler From le (bastlerle)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Bastler From le (bastlerle)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. F. (artur-f) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralf (Gast)
Datum:

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

Ralf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.