Physical layer thumb|right|I2C bus: Rp are pull-up resistors, Rs are optional series resistors. At the physical layer, both SCL and SDA lines are an open-drain (MOSFET) or open-collector (BJT) bus design, thus a pull-up resistor is needed for each line. A logic "0" is output by pulling the line to ground, and a logic "1" is output by letting the line float (output high impedance) so that the pull-up resistor pulls it high. A line is never actively driven high. This wiring allows multiple nodes to connect to the bus without short circuits from signal contention. High-speed systems (and some others) may use a current source instead of a resistor to pull-up only SCL or both SCL and SDA, to accommodate higher bus capacitance and enable faster rise times.
Physical layer thumb|right|I2C bus Rp are pull-up resistors Rs are optional series resistors At the physical layer both SCL and SDA lines are an open-drain (MOSFET) or open-collector (BJT) bus design thus a pull-up resistor is needed for each line A logic "0" is output by pulling the line to ground and a logic "1" is output by letting the line float (output high impedance) so that the pull-up resistor pulls it high A line is never actively driven high This wiring allows multiple nodes to connect to the bus without short circuits from signal contention High-speed systems (and some others) may use a current source instead of a resistor to pull-up only SCL or both SCL and SDA to accommodate higher bus capacitance and enable faster rise times