Forum: Mikrocontroller und Digitale Elektronik Zum Verständnis von I2C...


von Josef V. (beis)


Lesenswert?

Wenn in einem Multi-Master-System zwei Master etwas von dem selben Slave
haben wollen, müsste doch zu Problemen kommen können.

Mal so ein kleines Denkexperiment: Angenommen es sind an einem I2C-Bus
zwei Master und ein Slave angeschlossen. Im gleichen Moment wollen
beide Master was vom Slave und fangen deshalb im selben Moment zu
senden an. Sie generieren eine Startcondition und schreiben die selbe
Adresse auf den Bus. Dann müsste doch für beide Master die Arbitrierung
klappen, da es ja zu keiner Kollision kommt. Aber wie geht es dann
weiter? Angenommen beide Master Übermitteln jetzt zwei unterschiedliche
Anfragebytes. Hier müsste es dann aufgrund der Hardwareverdrahteten
Oder-Schaltung zu Datenmüll kommen?

Ist es denn überhaupt zulässig den selben Slave von zwei Mastern aus
anzusprechen?
Hat jemand bereits Erfahrung mit dieser Fragestellung?

von Peter D. (peda)


Lesenswert?

Das klappt schon.

Solange beide das gleiche senden, gibts kein Problem.

Nur beim ersten unterschiedlichen Bit verabschiedet sich einer und der
andere macht weiter.


Peter

von Josef V. (beis)


Lesenswert?

Wiso sollte sich beim ersten unterschiedlichen Bit jemand
verabschieden?

Heist das nun  das ein Master immer merkt wenn ein anderer zur selben
Zeit sendet?
So wit ch das verstanden habe, bekommt das nur ein der Master während
der Arbitrierung mit, also im ersten Byte, dass übertragen wird.

Josef

von Peter D. (peda)


Lesenswert?

"Heist das nun  das ein Master immer merkt wenn ein anderer zur selben
Zeit sendet?"

Nein.
Er merkt nur, wenn er high sendet und low zurückliest und verläßt
sofort den Mastermodus.

Der andere kriegt davon nichts mit (sendet low und liest low) und macht
einfach weiter.

Schau Dir mal die Zustände an, da gibt es auch "Arbitrierung verloren
im Datenbyte".


Peter

von Josef V. (beis)


Lesenswert?

Danke,
jetz hab ich es verstanden.

Grüße
Josef

von Markus N. (Gast)


Lesenswert?

Ahhhh 10000 Dank das hab ich mich auch schon immer gefragt.

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.