mikrocontroller.net

Forum: Haus & Smart Home Passendes Bussystem finden


Autor: Michi M. (mutzmutz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
schon vorweg, ich hab das Forum durchsucht und leider nicht das passende 
für meine Frage gefunden, ansonsten bitte bescheid sagen, bevors kracht 
:-)

Mein 'Problem':
Situation: eine quadratische Fläche, abgedeckt mit kleinen Modulen (ca 
4x4cm). Ich möchte eine Kommunikation zwischen den Modulen aufbauen. 
ALLE module sollen HW mässig gleich sein (Massenproduktion)!!, aber nur 
einer ist master und kann mit allen einzel kommunizieren. die slaves 
untereinander müssen das nicht können. Ich hab mir schon überlegt das 
der master dadurch gekennzeichnet wird, dass man einfach ein zusatz 
Print auf das Modul steckt.
Wahrscheinlich wird auf jedem Modul ein MSP430 vohanden sein. Der master 
soll zusätzlich die Möglichkeit haben mit einem CAN Bus mit einer Basis 
zu kommunizieren.

Ich freue mich auf Vorschläge ! danke
Gruss

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kommt drauf an wie schnell das ganze sein soll und wieviele module du 
ansteuern willst. rs485 geht zB gut auch auf größere distanzen

Autor: Michi M. (mutzmutz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es sind bis zu etwa 50 module. die geschwindigkeit muss nicht unbedingt 
sehr gross sein, also rs485 würde passen. ich werd mich mal ein wenig 
schlau machen über rs485, danke andi

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieviele Module, welche Distanzen, welche Datenrate, welche 
Zuverlaessigkeit?

Autor: Michi M. (mutzmutz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sind bis zu 50 Module, distanzen <10m, zuverlässigkeit ist schwez zu 
sagen, ist nichts wobeis um leben und tod geht, aber natürlich so gut 
als möglich. vielleicht noch dazu, die module werden in eine art rahmen 
gesteckt, also so wenig verkabelung wie nötig erwünscht

Autor: old-school (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Ich möchte eine Kommunikation zwischen den Modulen aufbauen.

und mehr sollen diese nicht ?

oder soll an deine Module auch was angeschlossen werden ?

z.B. Sensoren / Aktoren

mehr Info währe sehr hilfreich

Autor: Michi M. (mutzmutz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na die module selbst haben schon eine funktion, aber die ist nicht 
relevant bezüglich der kommunikation.
die daten, die übertragen werden sollten sind lediglich 
stromwerte,temperaturen oder ähnliches.

Autor: Michi M. (mutzmutz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mir jemand erklären, wie genau einem slave die einmalige 
ansprechadresse bei rs485 zugeteilt wird (HW,SW) ? kann das im internet 
nicht genau finden

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Adresse ? Eine Adresse braucht man nur in einem Bussystem sodass sich 
die slaves unterscheiden. Eine Adresse kann fest sein, irgendwas, eine 
Serienummer. Oder dynamisch, zur Laufzeit zugewiesen.

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum nimmst du nicht I2C oder wenns einfacher sein soll RS232? Für 
deine Distanzen sollte das gehen.

Autor: Michi M. (mutzmutz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ zacc :das ganze soll doch als bussystem funktionieren, oder wo siehst 
du den unterschied, Zacc ? die slaves sollen voneinander unterschieden 
werden, d.h. der master soll immer wissen von welchem slave die daten 
kommen

@valentin : I2C wäre eine möglichkeit, die ich mir auch überlegt hab, 
aber der 'nachteil' ist dann, das jede slave-adresse separat per HW 
vorgegeben werden muss, d.h. jedem modul muss man konventionell vor 
inbetriebnahme die adresse bekannt geben...

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn CAN verwendet wird, wire gerne auch LIN verwendet.
Angenommen, jeder Sensor hat eine eindeutige Seriennummer.
Diese muß zuordbar sein, z.B. über Taster, oder sonstwie,
das kannst du dir nicht sparen, ausser du hast ein protokoll, das
auch die Kabellängen usw bei der automatischen Addressvergabe
berücksichtigt.

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit der der Adresse auf dem Modul geht mit
Dippschaltern (oder Lötbrücken). Wenn es an Pins fehlt
(für 64 Adressen brauchst du 6 BIT/Pins) noch ein Schieberegister
zum Einlesen beim Power-On.
Dann als I²C-Bus verschalten und ansprechen.

avr

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man einen Positionsbezug zu den Daten haben will, so wird man die 
Seriennummer, oder sonst eine feste, fest einprogrammierte Nummer 
nehmen.

Autor: Ralf G. (old-school) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michi R.

Du willst 50 Module, die jeweils 10 m auseinander liegen über einen Bus 
verbinden?

Da kommen wie also auf eine gesamt Länge von 500 m ?

sollen die Module über den Bus auch mit Strom versorgt werden?


RS485 sollte max nur 30 Knoten haben, Protokoll ist bei RS485 nicht 
spezifiziert.

I2C geht bei den Strecken nur über einen Bus-Treiber P82B96 oder P82B715
max Adressen pro Strang ca 120 ... ( = 128 - die Reservierten) Länge 
hängt von der Kapazität der Leitung ab.

Wie soll den dein Bus verlegt werden als eine Linie mit allen Knoten 
oder als Stern mit mehrere Knoten pro Zweig.

>>na die module selbst haben schon eine funktion, aber die ist nicht
relevant bezüglich der kommunikation.

Ist mir neu ! ... ob 1 Byte oder hunderte Byte übertragen werden sollen 
haben einen gewaltigen Einfluss auf die Art des Busses und des 
verwendetet Protokolls.

Bei I2C wird das über die Start/Stop Sequenz und einen ACK nach jedem 
Byte geregelt, langsame Slaves können über das Clock-streching den 
Master dabei aus bremsen, max Länge der Frames liegt glaube bei 128 
Byte... bin mir aber nicht ganz sicher.


Bei RS485 must Du die Adressierung und das Hand-shaking mit in das 
Daten-Paket legen ... die DatenPakete sollten zeitlich unterbrochen 
versendet werden, damit ein Slave sich darauf synchronisieren kann, wie 
Du das Protokoll gestaltetest ist Dir überlassen, Da mach je jeder was 
er will.

Wie willst Du Fehler im Bus vermeiden / beseitigen ? ... z.B. ein Konten 
hängt sich auf und blockiert den Bus ?

Warum denn 4x4 cm ... soll die Leiterplatte mit in die Schalterdose ?

Autor: Michi M. (mutzmutz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ralf
nein, die ca. 50 Module sind jeweils im abstand von <10m, d.h. die 
Module sind alle sehr nahe beieinander und die basis dazu hat < 10m 
abstand.
Wie die Stromversorgung zustande kommt, ist noch offen. Z.b. Könnte die 
kommunikation auch über die speisung geschehen (Asi), doch wie gesagt 
ist das alles noch offen, ich wollte jediglich auf ideensuche gehen 
hier.
klar ist die Funktion des Moduls bezüglich der Kommunikation nicht 
gleichgültig, doch wie beschrieben sollen jediglich ströme und 
temperaturen usw übertragen werden, und das vielleicht alle paar 
sekunden, alsi die geschwinigkeit des busses ist nicht an erster stelle.
Bezüglich Fehler des Busses ist es so, dass wie gesagt alle paar 
sekunden die daten aktualliesiert werden sollen, also falls ab und zu 
mal ein fehler passiert ist das nicht allzuschlimm (falls du das damit 
gemeint hast).
die dimension (zb. 4x4) ist eine vorgabe... die Basisstation liefert 
jeweils die spannung bzw den strom für jedes modul. diese module haben 
aber zb. alle andere sensorwerte (wie gesagt zb ströme oder 
temperaturen) und sollen diese jediglich dem master und dieser der 
station mitteilen.

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.