Hallo cyan,
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)