1. 串行通信 & 并行通信
- 串行通信:利用一条传输线将数据位一位一位的传送。
- 并行通信:利用多条传输线将一个数据的多bit同时传送。
- 串行和并行哪个更快?
- 在时钟频率较低时,因为并行可以同时传输多个bit,所以速率比串行要快。
- 时钟频率提高到一定程度时,由于并行通信存在很多平行且紧密的导线,信号变化越来越快,导致导线之间的干扰越来越严重。
- 串行通信导线少,且有差分信号加持,抗干扰能力更强,可以通过不断提升时钟频率来获得更高的传输速率,所以很多高速传输也使用串行通信,如USB、PCIe等。
2. 单工 & 半双工 & 全双工
- 串行通信按照传输的方向分类,有以下三种:
- 单工:数据传输只能在一个固定方向上传输,这个方向固定后就不可更改,不能实现双向通信。
- 半双工:传输方向可以切换,但是在某个时刻,只允许数据在一个方向上传输。(如IIC通信)
- 全双工:允许数据同时两个方向传输,可以认为发送和接收是完全独立的。(如SPI通信)
3.同步通信和异步通信
- 串行通信按照传输的方式分类,有以下两种:
- 同步
- 收发双方使用一根时钟信号,来进行双方数据同步,一般双方会规定在时钟上升/下降沿对数据进行采样。
- SPI,IIC
- 异步
- 不使用时钟信号进行数据同步,而是在数据信号中穿插一些用于同步的信号位,或者以数据帧的格式传输数据,例如规定起始位、数据位、奇偶校验位、停止位等。
- 一些通讯还需要使用波特率衡量数据传送速率,以便更好的同步。
- UART,但是USART可以同步&异步通信。
- 两者比较
- 对于同步来说,传输内容大部分就是有效数据;而异步,传输内容会包含帧的各种标识符;所以同步通讯的效率更高。
- 但是同步对发送和接收方的时钟允许误差要求较小。
- 同步