我知道I2C和SPI通信的基础知识。因为两者都是同步协议。我想知道是什么让SPI比I2C更快。如果我没记错的话,使用I2C我们可以使用400kbps,而在SPI中我们也可以达到10 10mbps。它会因为硬件的改变而改变吗?这个问题是在一次面试中问到我的。如果我错了,请纠正我。
发布于 2014-02-18 17:54:43
I2C非常重要,它支持总线上的多个主机。这导致总线协议中的显著开销、每个字节的ACK以及仲裁对总线的访问的故意延迟。此外,还设置了最大总线速率,最初的规格为100 kHz,如今常见的是400 kHz,另外还有10 Mhz低速和3.4 Mhz高速模式,2012规格定义了5 Mhz超高速模式。
SPI要简单得多,它是一个单主机,除了芯片选择外没有总线协议,也没有设置最大总线速率。如果距离很短,那么你可以尽可能快地行驶。在相距小于一英寸的芯片之间的互连上速度相当快。
发布于 2014-02-19 01:23:33
有一个重要的硬件差异限制了I2C的速度。
SPI:所有线路均由发射器驱动,包括高电平和低电平。这最大限度地缩短了导线更改状态所需的时间。
I2C:所有线路都是集电极开路,这意味着发送器只将线路驱动为低电平。当发射器释放线路时,连接到Vcc (电源电压)的电阻器将光拉高。然而,由于导线和元件的电容,导线到高电压的速度相对较慢。因此,必须降低时钟速度以允许线路“漂移”为高电平。
https://stackoverflow.com/questions/21848629
复制相似问题