是什么让SPI比I2C协议更快

时间:2014-02-18 09:00:24

标签: c embedded i2c spi

我知道I2C和SPI通信的基本知识。由于两者都是同步协议。我想知道是什么让SPI比I2C更快。如果我没有使用I2C,我们可以使用400kbps,而在SPI中我们也可以达到10mbps。这是因为硬件的变化吗? 在一次采访中我问过这个问题。如果我错了,请让我纠正。

3 个答案:

答案 0 :(得分:12)

存在一个重要的硬件差异,限制了I2C的速度。

SPI:所有线路均由发射器驱动为高电平和低电平。这最大限度地减少了电线改变状态所需的时间。

I2C:所有线路都是开路集电极,这意味着变送器只将线路驱动为低电平。当变送器释放线路时,连接到Vcc的电阻(电源电压)将灯拉高。然而,由于导线和元件的电容,导线相对缓慢地变为高电压。因此,必须降低时钟速度,以便让线路“漂移”高的时间。

答案 1 :(得分:9)

I2C非常复杂,支持总线上的多个主设备。这导致总线协议中的显着开销,每个字节的ACK以及仲裁访问总线的故意延迟。此外,设定的最大总线速率,原始规格为100 kHz,400 kHz是常见的,额外的10 kHz低速和3.4 Mhz高速模式,2012规格定义了5 Mhz超快速模式。

SPI 很多更简单,单个主机没有超出芯片选择的总线协议,也没有设置最大总线速率。如果距离很短,那么你可以像你敢一样快。在相距不到一英寸的芯片之间的互连上相当快。

答案 2 :(得分:0)

速度取决于您使用的电路板类型以及硬件逻辑的实现方式。 使用一个优于另一个有一些优点和缺点。 选择要使用的总线类型取决于您要使用它们连接的不同外围设备之间所需的通信类型。 http://quick2wire.com/articles/i2c-and-spi/