UART与I2C、SPI总线有什么区别?
UART(Universal Asynchronous Receiver / Transmitter)通用异步收发器是一种常用的串行通信协议,在汽车嵌入式系统中常用于MCU与MCU,或MCU与外设之间的数据通信。
可用于线路板内部芯片间串行通信的还有SPI(Serial Peripheral Interface,串行外围设备接口)总线《为什么说SPI总线的数据传输与众不同?》和I2C(Inter-Integrated Circuit,集成电路互连)总线《I2C与SPI总线有什么区别?》。
UART是如何通信的?它与SPI和I2C通信协议有什么区别呢?
1.通信方式
1.1物理接口
SPI总线有4条线,串行数据线MOSI和MISO、串行时钟线SCK和从设备选择线SS。
SPI总线接口1对1原理框图
I2C总线仅需要两条线就可以实现芯片之间的互连通信,这两条线分别为串行数据线SDA和串行时钟线SCL。
I2C总线接口1对1原理框图
UART总线也只需两条线就可以实现芯片之间的互连通信,这两根线分别为串行数据发送线TX和串行数据接收线RX。
UART接口1对1原理框图
这里要注意的是,UART信号线必须交叉连接,也就是己方的发送TX与对方的接收RX相连,己方的接收RX与对方的发送TX相连。
通过三种通信接口对比可知,UART的物理接口最简单,不仅线少,而且不需要上拉电阻等外围电路。
1.2全双工与半双工
SPI
共有4
个线,其中有2个数据线MOSI和MISO
;
UART
共有2
个线,分别是数据线TX和RX
;
I2C
共有2
个线&#x