When the SDA (Serial DAta) lines on both the left and right lines are 1, the circuit is quiescent and optoisolators IC1 and IC2 are not actuated. When the SDA line at the left becomes 0, current flows through the LED in IC1 via R2. The SDA line at the right is then pulled low via D2 and IC1. Optoisolator IC2 does not transfer this 0 to the left, because the polarity of the LED in IC2 is the wrong way around for this level. This arrangement prevents the circuit holding itself in the 0 state for ever. As is seen, the circuit is symmetrical. So, when the SDA line at the right is 0, this is transferred to the left. The lower part of the diagram, intended for the SCL (Serial CLock) line, is identical to the upper part.
Electrical Isolation For I2C Bus Circuit Diagram
Resistors R1, R4, R5, and R8, are the usual 3.3 kΩ pull-up resistors that are obligatory in each I2C line. If these resistors are already present elsewhere in the system, they may be omitted here. The current drawn by the circuit is slightly larger than usual since the pull-up resistors are shunted by the LEDs in the optoisolators and their series resistors. Nevertheless, it remains within the norms laid down in the I2C specification.
http://www.ecircuitslab.com