不同
1)工作模式与线的数目
IIC总线不是全双工,高电平采样,2根线SCL SDA。
SPI总线实现全双工,边沿采样,4根线SCK CS MOSI MISO,通信简单易理解。
2)速度
SPI的速度要远远高于IIC
SPI总线速度为:几MHz - -几十MHz
IIC总线速度为: 0Hz - - 3.4MHz
3)流控方面
SPI缺乏流控机制,无论主器件还是从器件均不对消息进行确认,主器件无法知道从器件是否繁忙。
IIC存在ACK应答信号,所以有流控机制。
4)设备的选择
IIC总线是多主机总线,通过SDA上的地址信息来锁定从设备。
SPI总线只有一个主设备,主设备通过CS片选来确定从设备。
5)驱动编写方面
IIC总线读写时序比较固定统一,设备驱动编写方便。
SPI总线不同从设备读写时序差别比较大,因此必须根据具体的设备datasheet来实现读写,相对复杂一些。
相同点
IIC总线和SPI总线时钟都是由主设备产生,并且只在数据传输时发出时钟。
其他
IIC上拉电阻的作用:让空闲的设备保持在高电平状态,增强抗干扰能力。