UART、I2C、SPI的优缺点和区别
协议 | UART | SPI | I2C |
---|---|---|---|
总线 | 3(RX、TX、GND) | 4(CS、CLK、MOSI、MISO) | 4(VCC、GND、SCL、SDA) |
同/异步 | 异步 | 同步 | 同步 |
全/半双工 | 全双工 | 全双工 | 半双工 |
传输速度 | 低 | 高 | 中 |
应用场景 | 板内/间 | 板内(不同芯片之间) | 板内 |
模式 | 一对一 | 一对多 | 一对多/多对多 |
一主多从实现 | X | 各CS | 地址 |
名词解释:
全双工:(Full Duplex)是指在发送数据的同时也能够接收数据,两者同步进行
半双工:(Half Duplex),所谓半双工是指一段时间内,只有一种动作发生,发或者收。
UART特点:
- 有三根线:RX、TX、GND。
- 发送数据8位数为一个字节发送。
- 发送数据时,前后都要设置密语。
SPI特点:
- 通信速率较高,可达几兆至几十兆。
- 有时钟线同步,总线出错率低。
- 可以一对多,一主多从。
- 缺点:不同的从机需要不同的片选线。
I2C特点:
- 要开始通信,首先要发送起始条件
- 要结束通信,要发送一个停止条件
- 通信时,不希望其他主机进来打断我,我就不发送停止条件,可以多次发送起始条件完成多段通信,避免其他主机把总线抢走。
各个协议的具体工作方式这里不展开讲解。