PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sinnvolle Busstruktur



demmy
05.08.2011, 22:04
Hallo zusammen,

ich bin gerade am überlegen wie ich am sinnvollsten einen Bus aufbauen könnte. Ich meine jetzt nicht die Hardware und so. Sondern mehr so wie das Protokoll aussehen soll? Bzw. wie ich die Teilnehmer abfragen soll? Am Besten in einer Ringabfrage oder?

Gruß

oZe
06.08.2011, 04:59
Deine Frage ist äußerst unpräziese. Wie wärs wenn du uns erstmal verrätst was du genau vor hast? Die Frage ist in etwa so sinnvoll wie die Frage "Mir gehts nicht gut. Welche Krankheit habe ich?"

Richard
06.08.2011, 07:22
Deine Frage ist äußerst unpräziese. Wie wärs wenn du uns erstmal verrätst was du genau vor hast? Die Frage ist in etwa so sinnvoll wie die Frage "Mir gehts nicht gut. Welche Krankheit habe ich?"

Dem stimme ich zu, Was für eine Umgebung elektrisch "verseucht" oder steril, welche max Leitungslänge, Stichleitung oder Stern oder Ring? Ein hier eher unbekannter ist der Bosch LSN BUS der wird als Ring verdratet und in beiden Richtungen bedient. Dadurch ist sicher gestellt das auch wenn der Bus unterbrochen wird alle Brandmelder noch arbeiten, zusätzlich wird erkannt zwischen welchen Meldern die Leitung unterbrochen ist. :-) Dieser LSN BUS wird auch bei hochwertigen Alarmsystemen eingesetzt.

Gruß Richard

hunni
06.08.2011, 12:31
Also ich würde einen RS485 nehmen, der ist genau für "elek. verseuchte" Umgebungen gedacht. Wird unteranderem in der Disco für DMX verwendet. Wiki (http://de.wikipedia.org/wiki/EIA-485) Je nachdem was du machen möchtest, solltest du dir ein kleines Protokoll überlegen.

Gruß Hunni

demmy
06.08.2011, 12:42
Hallo zusammen,
Sorry für meine unprezisen Angaben.

Also verwenden würde ich gerne den RS485. Es soll zum Schluss ca 50-100 Teilnehmer geben, die jeweils zum Steuern 2 bis 3 Byte an Daten senden und empfangen. Ich bin mir nicht sicher, ob eine Ringabfrage bei dieser Teilnehmerzahl zu langsam wäre? Oder ob es Sinn macht mehrere Teilnehmer in einem Koppler zusammen zu fassen, so dass ca. 6 Teilnehmer mit einem Koppler kommunizieren und nur die Koppler dann wiederum mit dem Master? Der Bus soll mit 192 Baud laufen.

Richard
06.08.2011, 14:04
Hallo zusammen,
Sorry für meine unprezisen Angaben.

Also verwenden würde ich gerne den RS485. Es soll zum Schluss ca 50-100 Teilnehmer geben, die jeweils zum Steuern 2 bis 3 Byte an Daten senden und empfangen. Ich bin mir nicht sicher, ob eine Ringabfrage bei dieser Teilnehmerzahl zu langsam wäre? Oder ob es Sinn macht mehrere Teilnehmer in einem Koppler zusammen zu fassen, so dass ca. 6 Teilnehmer mit einem Koppler kommunizieren und nur die Koppler dann wiederum mit dem Master? Der Bus soll mit 192 Baud laufen.

Dann würde ich den CAN Bus nehmen, die daten werden auch als Differenz Signal übertragen der Vorteil dabei jeder kann jeder Zeit senden und alle empfangen aber nur die welche es angeht verarbeiten es. Datenkollision wird automatisch erkannt und die Sendung wiederholt. Buslänge max ca. 1200m Bautrate 1 max 1Mbit/s....

Ausgereift und überall erhältliche Hartware es gibt auch AVR's mit Hartware CAN was zu empfehlen ist, das Protokoll an sich ist etwas kompliziert, aber sehr sicher.
Polling (Ringabfrage) kann auch gemischt verwendet werden, bei 500 Teilnehmer dauert das aber etwas, besser ist wenn nur die etwas übertragen die auch etwas los werden müssen. Polling dann z.b. nur zur "Anwesenheit Kontrolle" der Teilnehmer.

Siehe auch http://de.wikipedia.org/wiki/Controller_Area_Network

Gruß Richard

demmy
06.08.2011, 14:51
Mhh ein rs485 netz währe halt schon vorhanden, bzw. die notwendige Hardware.

Ich dachte eher an so etwas wie ein Busskoppler der ca. 1 bis 6 Teilnehmer unter sich hat die ebenfalls mittels rs485 kommunizieren (freilaufend) und jeder Teilnehmer empfängt und sendet die gleiche Datenlänge. Die Daten werden im Buskoppler gesammelt und gemapped. Vom Master wird dann in einer Ringabfrage jeder Koppler nacheinander Angesproch und daten Abgeholt bzw. gesendet. Die Buskoppler verteilen dann wiederum die Informationen unter ihren Teilnehmern (freilaufend). Glaubt ihr das könnte funktionieren oder wird das zum schluss zu langsam?

Ich möchte halt auch das Protokoll so einfach wie möglich halten. Jeder Teilnehmer hat definierte 2 Byte Input und 2 Byte Output und jeder Buskoppler dann dementsprechent mit 6 maximalen Teilnehmern 12 Byte Input und 12 Byte Output. + evtl. 1 Byte in und Output für Diagnose und Störungsbeseitigung.

Richard
06.08.2011, 15:46
Mhh ein rs485 netz währe halt schon vorhanden, bzw. die notwendige Hardware.

Ich dachte eher an so etwas wie ein Busskoppler der ca. 1 bis 6 Teilnehmer unter sich hat die ebenfalls mittels rs485 kommunizieren (freilaufend) und jeder Teilnehmer empfängt und sendet die gleiche Datenlänge. Die Daten werden im Buskoppler gesammelt und gemapped. Vom Master wird dann in einer Ringabfrage jeder Koppler nacheinander Angesproch und daten Abgeholt bzw. gesendet. Die Buskoppler verteilen dann wiederum die Informationen unter ihren Teilnehmern (freilaufend). Glaubt ihr das könnte funktionieren oder wird das zum schluss zu langsam?

Ich möchte halt auch das Protokoll so einfach wie möglich halten. Jeder Teilnehmer hat definierte 2 Byte Input und 2 Byte Output und jeder Buskoppler dann dementsprechent mit 6 maximalen Teilnehmern 12 Byte Input und 12 Byte Output. + evtl. 1 Byte in und Output für Diagnose und Störungsbeseitigung.


Das geht natürlich auch aber das Protokoll inklusive Kollisionserkennung CRC check u.s.w. musst Du selber "erfinden" und wenn es bidirektional funktionieren soll brauchst Du 4 Leitungen = 2 x 485. Dann können sich aber Knoten mit "wichtigem Ereignis" melden und bevorzugt behandelt werden. Das alles entfällt beim CAN weil in Hartware vorhanden und wichtige Ereignisse können vor rang bekommen...Nachteil, ungewohnt und nur (?) in SMD Gehäuse, dafür sicher Medizintechnik, Wehrtechnik, Raumfahrt, ABS.... Kommt halt darauf an was Du genau vor hast, 500 Teilnehmer belasten auch den BUS da braucht man wahrscheinlich auch Repater Koppler. Lese Dir das CAN Wiki einmal genau Durch, dann kannst Du immer noch entscheiden was für Dich besser ist. :-)

Gruß Richard

demmy
06.08.2011, 16:41
Also kollisionen kann es ja eigentlich nicht geben, da ja jeder Teilnehmer nur antwortet wenn er angesprochen wurde. Und der Master erst dann zum nächsten Teilnehmer geht wenn er eine vollständige Antwort erhalten hat. somit sind ja kollisionen eigentlich ausgeschlossen oder? Mir macht lediglich die Geschwindigkeit ein wenig sorgen? aber das müsste doch normal bei 19200 baud machbar sein. 13 Byte is ja nun nicht viel pro teilnehmer oder? und ich denke mal mehr als 10 Busskoppler maximal 15 werden es zum schluss nicht werden also ich denke es handelt sich so um 400 Byte die dann über die Leitung müssen um alle Koppler ab zu klappern. Das müsste doch machbar sein oder?