I2C bus structure

Classic version of the data exchange between any devices is that one apparatus transmits the information and the other accepts it. The devices can , if necessary, switch roles, i. e. the transmitter and receiver can be or conversely the receiver can become a transmitter. But in any case it is important to clarify and determine which device is the master and set the rules of communication sequence and what device is the salve. Devices connected to the I2C bus follow this principle also. That one of the devices will be leading (master), and the rest  – slave. Such bus structure is called master-organization and is the most typical.
Master device is usually assigned by micro-controller. It sets the underlying stream of data on the bus, generates the necessary time slots etc.
Much less frequently is used multi-master, when multiple master devices are connected to a single bus. The complexity of the organization of such connection consists mainly in that the master devices must decide which of them will currently work with a slave devices. Simultaneously, only one master device can transact data and the rest should be disabled. Otherwise, there may be a situation, which is called a bus conflict. Information may simply not reach the destination and the device operation will be violated.
In order to avoid bus conflicts in multi-master mode there are should be contain procedures for arbitration and synchronization established for controlling the operation order of master devices.