是什么让SPI比I2C协议更快

kap*_*dit 10 c embedded spi i2c

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

Dox*_*ver 14

有一个重要的硬件差异限制了I2C的速度.

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

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


Han*_*ant 9

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

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