Forum: Mikrocontroller und Digitale Elektronik Geräte-Bus


von Michael A. (aim)


Lesenswert?

Hallo!

Man stelle sich vor: Ich habe ein gehäuse, in das Euro-Karten
eingesteckt werden, welche dann über eine Busplatine verbunden werden.

Welches Bus-System würdet ihr verwenden, um die einzelnen eingesteckten
Platinen (alle haben gemeinsame VCC und GND) über 1-2 Leitungen mit
einem gemeinsamen Multimaster-Bus zu verbinden?
Das Bussystem sollte später auch außerhalb des Gehäuses erweitert
werden und dabei ca. 5 bis 10m ausgedehnt werden.

Habe dabei zuerst an CAN gedacht,aber geht das überhaupt?

von Stefan Seegel (Gast)


Lesenswert?

Da schlag ich doch mal wieder meinen Lieblingsbus vor:

RS485

-Störunemfpindlich
-2 Drahtbus
-Einfacher Aufbau mit nur einem IC (SN75176) der ausser einem
Entstörkondensator 100nF nix aussen rum braucht

Stefan

von Michael A. (aim)


Lesenswert?

Kann man RS485 als Multi-Master betreiben?
Währe mir perönlich neu.
Wenn ja: wie?

von Thorsten L. (tlauf)


Lesenswert?

*aboniert

von Peter D. (peda)


Lesenswert?

CAN ist eine sehr gute Wahl.

Die Software ist extrem einfacher als bei RS485, da ja ein Großteil
schon die Hardware macht.

Wir benutzen auch CAN in unseren Geräten. Für die Verbindung der Geräte
untereinander und zum PC benutzen wir aber einen 2. CAN-Bus, damit der
ganze interne Traffic nicht außen die Performance senkt.

Außerdem ist so die Adressierung einfacher, jedes Gerät kann Module mit
gleichem Identifier beinhalten und hat nach außen nur einen Identifier.

Falls der µC keine 2 CAN-Busse hat, gibts ja den MCP2515 oder SJA1000.


Peter

von Stefan Seegel (Gast)


Lesenswert?

@AiM

Ist nur ne Frage des Protokolls....
RS485 hat ja kein festgelegtes Protokoll, wenn man sich was passendes
zusammenstrickt sollte Multimaster kein Problem sein.

Stefan

von Michael A. (aim)


Lesenswert?

Aber es gibt mit CAN keine Probleme, wenn der Bus in der Hinteren
Bus-Platine verlegt wird und dort auch die Abschlusswiderstände sind.
Die einzelenen CAN-Knoten wären dann ja als abzweig vom Bus ausgeführt?

von Rahul D. (rahul)


Lesenswert?

Bei geringer Geschwindigkeit (9600baud) und wenig Daten sollte das
problemlos gehen.

Wenn mehr gefordert wird, dann ist CAN die bessere Lösung.

von Michael A. (aim)


Lesenswert?

>> Wenn mehr gefordert wird, dann ist CAN die bessere Lösung.

Also vorerst würde das Reichen, da nur einzelne kurze Informationen
(Fehlermeldungen, ....) übertragen werden.

In späteren Erweiterungen sollte sich das aber ändern,....

Also: eher CAN.

Aber gibt es da mit Abzweigungen vom Bus Probleme?

von Timo (Gast)


Lesenswert?

Der CAN-Bus verträgt normalerweise kurze Stichleitungen (ein paar cm).
Sie sind zwar nicht konform der Spezifikation bereiten aber im
allgemeinen  keine Probleme. Ich habe dies selbst schon öfters im Auto
getestet. Denke bitte daran, dass der Bus an beiden Enden mit 120Ohm
abgeschlossen ist. Es muß mindestens ein Abschlußwiderstand vorhanden
sein, damit der Bus funktioniert (eigene leidvolle Erfahrung :-)!

Gruß

Timo

von Michael A. (aim)


Lesenswert?

Also so wie ich das jetzt mal Schematisch aufgezeichnet habe (siehe
Anhang) sollte es funktionieren?

Die Stichleitungen sind je nach Platine dann zwischen 5 und 20 cm
lang.

danke schon mal
AiM

von Michael A. (aim)


Angehängte Dateien:

Lesenswert?

OK und hier der Anhang, ....

von Rolf Magnus (Gast)


Lesenswert?

> RS485 hat ja kein festgelegtes Protokoll, wenn man sich was
> passendes zusammenstrickt sollte Multimaster kein Problem sein.

Das große Problem bei Multimaster ist doch die Kollisionserkennung und
Reaktion darauf oder deren Vermeidung. Wie macht man das bei RS485?

von Michael A. (aim)


Lesenswert?

>>Das große Problem bei Multimaster ist doch die Kollisionserkennung
und
Reaktion darauf oder deren Vermeidung. Wie macht man das bei RS485?

Würd' mich auch interessieren.

von Timo (Gast)


Lesenswert?

Ja so sieht die prinzipielle Topologie aus. Im Allgemeinen integriert
man die Abschlußwiderstände in den äußersten Steuergeräten,
Sensoren,...
Ebenso gibt es noch diverse zusätzliche Schutzbeschaltungen
(Überspannung, Symmetrierung, Kompensationsdrossel,...) die je nach
Einsatzort in jedes Gerät integriert werden kann. Da sind sich aber
noch nicht einmal die Automobilhersteller einig, was notwendig ist und
was nicht.
Stichleitungen von <10cm stellen meiner Erfahrung nach keinerlei
Probleme dar (20cm sollten eigentlich auch noch in Ordnung sein). Dies
ist aber immer von der Taktrate, Layout und Buskapazität abhängig. Ich
kenne die Werte in der Spek von Bosch/Motorola nicht mehr auswendig.

von Michael A. (aim)


Lesenswert?

OK Danke!

Ich habe jetzt mal CAN eingebaut. Die Abschlusswiderstände sind in der
hinteren Bußplatine links und rechts außen eingebaut. Die längste
Stichleitung ist ca. 22cm lang.

Da nicht allzuvieles über den Buß übertragen wird, sollte das also auch
kein Problem sein, hoffe ich.

danke euch.

gruß
AiM

von Stefan Seegel (Gast)


Lesenswert?

>Das große Problem bei Multimaster ist doch die Kollisionserkennung
>und
>Reaktion darauf oder deren Vermeidung. Wie macht man das bei RS485?

Könnte man vielleicht so wie bei Ethernet (X25) machen: Alle Teilnehmer
haben einen Verzögerungszähler. Der Verzögerungszähler wird  z.B. per
Zufallsgenerator gesetzt. Ähnlich macht man's z.B. auch beim AX25
Protokoll (Packet Radio), wo viele Datentransceiver auf einer
gemeinsamen Frequenz kommunizieren.

Stefan

von ---- (Gast)


Lesenswert?

Die normalen RS485-Treiber sind nicht kurzschlußfest, d.h. wenn zwei
Teilnehmer gleichzeitig unterschiedlichen Pegel treiben knallts - da
hilft keine noch so clevere Strategie.
Das Problem könnten CAN-Transceiver lösen. Dann könnte man in Software
eine geschickte Busarbitrierung machen. Naja, dann ist der Weg zu CAN
aber auch nicht mehr weit... und man spart sich ne Menge Arbeit und
Probleme.
Man könnte sich eine Strategie mit fest zugeteilten Zeitschlitzen pro
Master vorstellen. Dabei steigt aber wieder der Aufwand...
Aber das wußte Rolf natürlich alles, als er seine (rhetorische) Frage
stellte. ;-)

----, (QuadDash).

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.