问题:SPI 和 IIC 总线的相同点和不同点
相同点:串行同步主从架构
不同点:半双工/全双工;先高后低/不限制;高低电平/边沿触发;应答机制/无需应答;速率低/速率兆级;七位寻址/片选线
相同点:
- 都是串行总线
- 都是同步总线,都有自己的SCL时钟信号线
- 都采用主从模式架构
不同点:
- 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 准确来说是协议,不是总线,不过不用搞这么细
单工:只能收或者只能发
半双工:可发可收,但不能同一时刻进行
全双工:可同时收发
串行:在同一时刻只能收发一位数据(就一条数据线)(引脚少,速度慢)
并行:在同一时刻能收发多位数据(引脚多,速度块)
同步:同一时钟源
异步:独立时钟源,但需要设置相同波特率