SPI 和 IIC 总线的特点及区别

Tags
汇编
ARM
ID
14
 
问题:SPI 和 IIC 总线的相同点和不同点
💡
相同点:串行同步主从架构 不同点:半双工/全双工;先高后低/不限制;高低电平/边沿触发;应答机制/无需应答;速率低/速率兆级;七位寻址/片选线
相同点:
  1. 都是串行总线
  1. 都是同步总线,都有自己的SCL时钟信号线
  1. 都采用主从模式架构
不同点:
  • IIC总线为半双工总线,只有一根双向的SDA数据线
  • SPI总线为全双工总线,由两根单向的数据线(MISO/MOSI)
  • IIC总线传输时,需要先传送高位,再传送低位
  • SPI总线传输时,需要先传送高位,再传送低位,也可以先传送低位再传送高位(看芯片的设计)
  • IIC总线是通过时钟线高低电平变化,进行传输数据
  • SPI总线是边沿进行触发,边沿进行采样(上升沿还是下降沿看芯片)
  • IIC总线有应答机制,SPI总线没有应答机制,所以SPI总线传输数据时,数据容易丢失
  • IIC总线传输速率比较低,但是SPI总线传输速率达到几兆水平
  • IIC总线通过7位从机地址进行寻址,但是SPI总线通过片选线使能决定和哪一个从机进行通信
 
总线名称
UART
IIC
SPI
串行/并行
串行
串行
串行
半/全双工
全双工
半双工
全双工
同步/异步
异步
同步
异步
线
RXD(发)/TXD(收)/GND
SDA(数)/SCL(钟)
速率
100K/400K/3.4M
应用案例
串口通信
温湿度传感器
数码管
💡
UART 准确来说是协议,不是总线,不过不用搞这么细
单工:只能收或者只能发
半双工:可发可收,但不能同一时刻进行
全双工:可同时收发
 
串行:在同一时刻只能收发一位数据(就一条数据线)(引脚少,速度慢)
并行:在同一时刻能收发多位数据(引脚多,速度块)
 
同步:同一时钟源
异步:独立时钟源,但需要设置相同波特率