UART 、I2C 、SPI 的原理区别
UART | IIC | SPI | |
全称 | Universal Asynchronous Receiver Transmitter: 通用异步收发器 |
INTER IC BUS IC 之间总线 |
Serial Peripheral |
总线形式 | RXD 接收数据线 TXD 传送数据线 GND(通信设备必须共地) |
SDA 串行数据线 SCL 串行时钟线 (SDA 与 SCL 需外接上拉电阻) |
SCLK 串行时钟线 SDO 串行数据输出线 SDI 串行数据输入线 CS 片选线 |
传输特性 | 全双工 异步串行传输 传输速度 1Mbps(参考极限) 传输距离可达 1200m 抗干扰能力强 |
半双工(SDA 一根数据线) 同步串行传输 传输速度可达 3.4Mbps 传输距离可达 15m |
全双工 同步串行传输 传输速度 50Mbps(参考极限) 传输距离小于 10m(参考) |
总线冲突 | 一般没有主从概念,如果要一对多,同总线上从设备数量一般不超过 10 | 允许总线上挂多主机多从设备, 可设置冲突检测和仲裁机制; | 通过片选信号+数据协议包含从机地址的方式可以实现总线上 1 对多通信 |
相同点 | 都是串行通信,传输的距离和通信速率约成反比关系,传输距离和抗干扰能力约成正比关系 |