PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I²C Multi Master [Nutzen & Prinzip] ?



cyan
07.06.2014, 09:25
Guten Tag Mitglieder des RoboterNetz!

Das Prinzip des Master-Slave Prinzip ist mir geläufig!
Problem hab ich aber deutschsprachige detaillierte Information über das Prinzip des Multi-Master beim I²C Bus im Netz zu finden.
Desweiteren ist der Multi-Master Mode zwar beim I2C-Bus prinzipiell vorgesehen, ich kenne aber keine einzige Anwendung.

Meine Frage daher: Kennt jemand gute Seiten die den Multi-Master-Mode im I²C Bus detailliert erklären? Oder wäre einer so freundlich mir das Prinzip zu erklären?
Und ob jemand einige Anwendungen des MultiMaster Prinzip kennt.


Wäre äußerst dankbar für Antworten!


Gruß,
Cyan

ihle
07.06.2014, 10:39
Hallo cyan,

hier ein Link über I²C Multimaster

https://www.roboternetz.de/community/threads/65034-I%C2%B2C-Multi-Master-Nutzen-Prinzip

mfg

ihle

cyan
07.06.2014, 10:53
Hallo ihle,

Solche Antworten kannst Du Dir ehrlich gesagt sparen, ein Link zu posten der auf diesen Thread verweist, ihle!

NACHTRAG: Gemeint war dieser Link: http://www.rn-wissen.de/index.php/I%C2%B2C
Alles ein Versehen von ihle & geklärt! : )

Gruß,
cyan

HeXPloreR
07.06.2014, 12:39
Bitte Feunde,

es war bestimmt keine Absicht von ihle.
@cyan: ein kleiner Hinweis das etwas nicht mit dem Link zu stimmen scheint reicht manchmal aus. Einen Smilie hinten dran und alles wird gut ;)

Wir sind ein friedliches Forum mit kleinen Seitenhieben...zum anspornen der eigenen grauen Zellen.
In diesem Sinne immer schön freundlich zueinander (!) bleiben.

Viele Grüße
Jörg

cyan
07.06.2014, 13:25
Danke für deinen Beitrag und Rat HeXPloreR werden den Beherzigen! O:)

Hab mich in dem Moment nur etwas ver..äppelt gefühlt. Aber Du hast recht, es hätte auch ein Fehler sein können. Sollte dies so sein, entschuldige ich mich natürlich über PN bei ihle!


Gruß,
Cyan

oberallgeier
07.06.2014, 13:48
... deutschsprachige ... Information ... Multi-Master beim I²C Bus ... keine einzige Anwendung ...Hi Cyan,

nicht nur im Bereich Elektronik und IT ist es mit den deutschsprachigen Informationen äusserst dünn. Ist für uns schade - aber es ist einfach so. Warum fragst Du? Unmittelbaren Bedarf scheinst Du ja nicht zu haben. Ich kenne die Fragestellung der Art "Wie geht dieses Dings und wozu ist es gut" eigentlich nur bei Lernthemen.

Multimaster kann gegenüber Master - Slave(s) einen Vorteil haben, dass Informationen nur ausgetauscht werden, wenn es erforderlich ist. Das KANN dann zu weniger Traffic führen als die Master-Slave-Kommunikation. Ausserdem kann bei MM jeder beliebige Controller jeden anderen bei Bedarf direkt ansprechen. Beim Master-Slave-Bus muss der Master wissen, wenn etwa ein Slave Informationen von einem anderen Board benötigt - muss die holen und weiterreichen. Im Extremfall heißt es, der Master muss dauernd bei Controller "X" fragen ob er die Uhrzeit wissen möchte, auch wenn der sie nur alle paar Stunden braucht. Das ist eher unnötiger Datentransfer. Bei Bedarf dann die Zeit bei "U" abholen und an "X" nennen.

Eine Möglichkeit zum Multimaster wäre die Spielart, dass der Controller "X" sich am Bus als Master anmeldet und von einem beliebig anderen, dem "U" Daten anfordert. Ende der Kommunikation von X. Nun meldet sich der "U" als Master und sendet dem "X" die gewünschten Daten. Abmelden von "U". Aber es gibt Varianten, das kommt drauf an was man für eine Umgebung hat, und welche der möglichen Varianten Sinn und Nutzen ergibt.

Diese Erklärung ist nur beispielhaft, sie ist keinesfalls vollständig, ich bin in dem Thema mal eingestiegen, hatte mich aber keinesfalls wohl gefühlt.

Manf
07.06.2014, 14:20
Ich habe mal bei ihle gefragt, er sagte es täte ihm leid, dass der falsche link hinein gekommen ist. Er wollte auf den entsprechenden Abschnitt von RN Wissen verweisen.
Das kann ja in der Tat schnell passieren.

Manf

cyan
07.06.2014, 14:37
nicht nur im Bereich Elektronik und IT ist es mit den deutschsprachigen Informationen äusserst dünn. Ist für uns schade - aber es ist einfach so. Warum fragst Du? Unmittelbaren Bedarf scheinst Du ja nicht zu haben. Ich kenne die Fragestellung der Art "Wie geht dieses Dings und wozu ist es gut" eigentlich nur bei Lernthemen.
Du hast recht. : ) Bedarf hab ich an den Multi-Master-Mode eigentlich nicht, doch würde ich gerne wissen, wieso es diesen gibt (dein Beispiel war äußerst hilfreich) und wie er genau funktioniert.
Durch den Raspberry entstand das Interesse mich mit dem I²C zu beschäftigen um verschiedene Sensoren am selben BUS anzusteuern. Gelesen hab ich zwar überall, I²C = Multimasterfähig, aber das wars auch, befasst hat sich aber nie wirklich jemand detailliert dafür. Meine Wissbegierde verlangt aber auch solche Prinzipien zu verstehen. :) Und für mein Projekt würde ich gerne diesen Bereich der Dokumentation ebenfalls vollständig haben. Doch deine Antwort war -wie gesagt- sehr hilfreich, vielen Dank! :cool:


An dieser Stelle möchte ich noch erwähnen, dass ihle diesen Link: http://www.rn-wissen.de/index.php/I%C2%B2C posten wollte. Den Link und eine Entschuldigung hab ich im Posteingang gefunden! Also alles ein Versehen und geklärt! ;)


Nachtrag: Vielen Dank Manf für deine Mühe!


Gruß,
cyan

PICture
07.06.2014, 14:54
Hallo!


Gelesen hab ich zwar überall, I²C = Multimasterfähig, aber das wars auch, befasst hat sich aber nie wirklich jemand detailliert dafür.

Deine Aussage stimmt nur für deutche Sprache ! Übrigens, ich lese auch nix auf chinesisch !

Beweis für Englishkennende : http://cds.linear.com/docs/en/lt-journal/04_11-10-LTC4302-Ziegler.pdf . ;)

cyan
07.06.2014, 17:08
Deine Aussage stimmt nur für deutche Sprache ! Übrigens, ich lese auch nix auf chinesisch !
Du hast recht, ich meinte für die deutsche Sprache. Trotzdem danke für den Link! ;)


Eine deutschsprachiges PDF -zugesendet von ihle- [vielen Dank nochmals (: ] http://ln.iuk.fh-dortmund.de/~gebhard/STA/vortraege/I2C-Bus__Joachim.pdf


Sollte ich noch nützliche deutschsprachige Seiten über diese Thematik finden, bearbeite ich diesen Beitrag.
Hab soeben noch diesen Link entdeckt!
http://modelleisenbahn-steuern.de/controller/atmega8/16-8-7-multi-master-systeme-atmega8.htm (Multi-Master Systeme und Schiedsgericht)



Gruß,
Cyan

Peter(TOO)
08.06.2014, 00:03
Hallo cyan,

Du hast recht. : ) Bedarf hab ich an den Multi-Master-Mode eigentlich nicht, doch würde ich gerne wissen, wieso es diesen gibt (dein Beispiel war äußerst hilfreich) und wie er genau funktioniert.

I²C wurde ursprünglich für den Bereich Radio/TV/HiFi entwickelt. Unter den ersten erhältlichen Bausteinen befanden Lautstärke/Klang-Steller, Quellenumschalter, EEPROMs und eine RTC.

Der Multi-Master-Mode war ursprünglich nur für Testzwecke gedacht.

Die Geräte bestanden meistens nur aus einem Master und den diversen Slaves.
Um jetzt einen Fabrikationstest und/oder Abgleich durchführen zu können, gibt es nur zwei Wege.

1. Der vorhanden µC braucht einen Service-Anschluss und zusätzlich Software um den I²C-Bus ansteuern zu können.
Dies brauch aber zusätzliche freie Pins am µC ubnd zusätzlichen Programmspeicher für die Testroutinen. Hier gehts aber um Stückzahlen und jeder gesparte Cent an einen Gerät addiert sich schnell zu 10'000den € zusätzlichem Gewinn.

2. Man erlaubt einen Multi-Master-Mode.
So kann man den Prüfcomputer direkt am vorhanden I²C-Bus anschliessen und dieser kann dann direkt einzelne Bausteine ansteuern, auch in Modis, welche im normalen Betrieb gar nicht vorkommen. Zusätzlich spart man sich den Speicherplatz auf dem eingebauten µC für die Test-Modi.

Die 100kHz Bustakt waren für damalige Verhältnisse auch nicht schlecht gewählt. Die billigen µC liefen erst mit ein paar MHz und hatten meistens noch keinen I²C-Controller auf dem Chip. Also wurde das Protokoll mit zwei I/O-Pins und reiner Software abgewickelt. Da kam man vor 20 Jahren nicht wirklich über die 100kHz hinaus. Das Ganze war aber doch schnell genug um einen Transfer ohne Interrupts und Timer abwickeln zu können. Die paar Bytes für ein Telegramm sind schnell gesendet.
Und da der Takt keine minimale Frequenz einhalten muss, sind Interrupts in der Sendefunktion auch kein Problem.

MfG Peter(TOO)

cyan
08.06.2014, 14:58
Hallo Peter(TOO)!

Ich hab zwar das Beispiel mit den 100kHz Bustakt nicht ganz verstanden, aber Danke für die zwei hilfreichen Beispiele! (:


Gruß,
Cyan

Peter(TOO)
08.06.2014, 15:17
Hallo Cyan,

Ich hab zwar das Beispiel mit den 100kHz Bustakt nicht ganz verstanden, aber Danke für die zwei hilfreichen Beispiele! (:
Wenn du keinen i2C-Controller hast, musst du so etwas machen um ein einzelnes Bit auszugeben (SDA und SCL sind I/O Pins)



SDA = DataBit;
SCL = 1;
NOP
SCL = 0;


Wenn jetzt jeder Befehl 5 CPU-Takte zur Ausführung benötigt sind das 20 Takte.
Da muss die CPU schon mit 2 MHz laufen um die 100kHz zu erreichen.

MfG Peter(TOO)