SPI、I2C、UART三种串行总线的区别于对比
1)概念定义
SPI(Serial Peripheral Interface:串行外设接口);
I2C(INTER IC BUS:意为IC之间总线)
UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)
2)通信方式
SPI和UART可以实现全双工,但I2C不行;
3)其他差异
A.I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。
B.I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。
spi通过片选信号选择从设备,每个从设备需独立片选线
spi通讯的时候无需上拉/下拉电阻等终端电阻
I²C的通讯只需要两根线就可以实现
UART通讯方式为全双工通讯,具有独立的发送和接收端
spi全双工,数据按位传输,支持暂停和恢复
IIC通讯方式多主多从,总线具有仲裁机制
SPI通讯方式适合高速、短距离、多从设备场景
spi和iic都需要主设备来提供时钟信号
个人认为,如果不必要的话 最好就别用iic感觉稳定性低
I²C通讯适合多设备共享总线、低速板内通信
SPI四线制(或三线制):CK(时钟线):由主设备提供时钟信号。MOSI(主出从入):主设备发送数据,从设备接收数据。MISO(主入从出):从设备发送数据,主设备接收数据。CS/SS(片选线):主设备选择从设备(多从设备时需要) 一般来说,I2C的硬件连接非常简洁,仅需两根线,支持多主多从设备。 SPI其实其硬件连接简单,但需要较多引脚(尤其是多从设备时)。 SPI其实其硬件连接简单,但需要较多引脚(尤其是多从设备时)。 I2C是SCL(时钟线):由主设备提供时钟信号。SDA(数据线):双向数据线,用于主从设备间的数据传输。 UART两线制(或四线制,带电源和地):TX(发送线):发送数据。RX(接收线):接收数据 我比较喜欢用串口UART,硬件连接简单,但需要双方约定波特率等参数。 SPI同步通信:依赖时钟信号(SCK)进行数据同步。全双工:主设备和从设备可以同时发送和接收数据。主从模式:必须有一个主设备,从设备由主设备控制。 I2C同步通信:依赖时钟信号(SCL)进行数据同步。半双工:数据在SDA线上双向传输,但同一时间只能单向传输。多主多从模式:支持多个主设备和从设备,通过地址寻址。
页:
[1]