区别:SPI:高速同步串行口。3~4线接口,收发独立、可同步进行 UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢 SPI:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线实现数据双向传输 串行外围接口 Serial peripheral interface
UART:通用异步收发器 UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终 端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了 。作为接口的一部分,UART还提供以下功能: 将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行 数据转换为字节,供计算机内部使用并行数据的器件使用。在输出的串行数据流中加入 奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记, 并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠票也是 串行设备)。可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART 还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数 据前在其缓冲区内存储16字节数据,而通常的UART是8250。现在如果您购买一个内置的 调制解调器,此调制解调器内部通常就会有16550 UART。
I2C:能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,
所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,
根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。
SPI 和I2C这两种通信方式都是短距离的,芯片和芯片之间或者其他元器件如传感器和芯片之间的通信。 而UART是应用于两个设备之间的通信,如用单片机做好的设备和计算机的通信。这样的通信可以做长距离的。 SmBus有点类似于USB设备跟计算机那样的短距离通信。 简单的狭义的说SPI和I2C是做在电路板上的。而UART和SMBUS是在机器外面连接两个机器的。
SPI和IIC是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,
手机液晶屏那些很薄膜排线很多用IIC,这两种线属于低速传输 SMBUS较前面两者速度快,但也属于低速通信,是英特尔公司为了节省硬件资源而开发的一种总线标准,
一般用于板间通信,但范围不会很广,只用与一台计算机或一组芯片体系结构中,一般在设计中只用作电源总线 UART和,UART就是我们指的串口,速度比上面三者快,最高达100K左右,用与计算机与设备或者计算机和计算之间通信,
但有效范围不会很长,约10米左右,UART优点是支持面广,程序设计结构很简单,随着USB的发展,UART也逐渐走向下坡