SPI has faster speed and longer ranges over bigger distances. SPI can utilize push-pull, and consequently can drive lines quicker than I2C, whose open-gatherer configuration implies that huge number rates are restricted, and impacted by line capacitance. SPI runs full-duplex since it has separate lines for sent and receive. I2C is half-duplex as it were. SPI convention is having actual layer which intended for fast and the explanation is it bidirectional like to send and get there are two actual wire as MISO and MOSI. However, I2C single white like unidirectional.