串行通信简介(SPI, IIC, UART)
一 串行通信与并行通信
主机与外设或主机与主机之间通过一条(极少数)线路将数据按位顺序传输的方式实现数据的传输与共享。
另外与之相对的还有并行通信,即多个数据通过多条线路同时传输。
通俗的理解:主机与外设就像城镇,传输的线路就像车道,车流量即数据流量。
城市之间路途远,车流量小,只有一条车道,城市内部因车流量大,需要多车道并行。
延伸到通信的应用场合也是如此,串行通信节省传输线,在远距离传输成本更低;
而并行通信传输速度快、效率高,多用在实时、快速的场合。
二 串行通信的通信方式
- 同步通信:根据时钟信号同步传输,即一个时钟信号,传输一个位;常见的有 SPI,IIC。
- 异步通信:不带时钟同步信号;常见的有UART,单总线。
其中异步通信是通过约定相同的波特率(发送二进制数据位的速率)进行传输,
发送端通过一定的波特率进发送,接收端按照该波特率进行数据的解析。
三 串行通信的传送方式
- 单工:只允许数据在一个方向上传输。 //单向单车道
- 半双工:允许数据在不同时刻在任一方向上传输。 //潮汐车道
- 全双工:允许数据同时在两个方向上传输。 //双向单车道
四 常见的串行通信接口
通信标准 | 引脚说明 | 通信方式 | 通信方向 |
UART |
TXD:发送端 RXD:接受端 GND:公共地 |
异步通信 | 全双工 |
单总线 | DQ:发送/接受端 | 异步通信 | 半双工 |
SPI |
SCK:同步时钟 MISO:主机输入,从机输出 MOSI:主机输出,从机输入 |
同步通信 | 全双工 |
I2C |
SCL:同步时钟 SDA:数据输入/输出端 |
同步通信 | 半双工 |