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?
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
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
"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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.