I2C 和 SPI,UART 的区别
SPI--Serial Peripheral Interface,(Serial Peripheral Interface:串行
外设接口)串行外围设备接口,是 Motorola 公司推出的一种同步串行通讯方式,
是一种三线同步总线,因其硬件功能很强,与 SPI 有关的软件就相当简单,使
CPU 有更多的时间处理其他事务。
I2C--INTER-IC(INTER IC BUS:意为 IC 之间总线)串行总线的缩写,是 PHILIPS
公司推出的芯片间串行传输总线。它以 1 根串行数据线(SDA)和 1 根串行时钟
线(SCL)实现了双工的同步数据传输。具有接口线少,控制方式简化,器件封
装形式小,通信速率较高等优点。在主从通信中,可以有多个 I2C 总线器件同时
接到 I2C 总线上,通 过地址来识别通信对象。能 用于替代标准的并行总线,能 连
接的各种集成电路和功能模块。I2C 是多主控总线,所以任何一个设备都能像主
控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据
设备它们自己的能力,它 们可以作为发射器或接收器工作。多 路微控制器能在同
一个 I2C 总线上共存。最主要的优点是其简单性和有效性。它支持多主控
(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。
一个主控能够控制信号的传输和时钟频率。当 然 ,在任何时间点上只能有一个主
控。
UART(Universal Asynchronous Receiver Transmitter:通 用异步收发器):单端,
远距离传输。大多数计算机包含两个基于 RS232 的串口。串口同时也是仪器仪表
设备通用的通信协议;很多 GPIB 兼容的设备也带有 RS-232 口。同时,串口通信
协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位
(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以
在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距
离通信。比如 IEEE488 定义并行通行状态时,规定设备线总常不得超过 20 米,
并且任意两个设备间的长度不得超过 2 米;而对于串口而言,长度可达 1200 米。
区别在电气信号线上
SPI 总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行
数据输入(SDI)。SPI 总线可以实现 多个 SPI 设备互相连接。提供 SPI 串行时钟
的 SPI 设备为 SPI 主机或主设备(Master),其他设备为 SPI 从机或从设备
(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一
条从设备选择线。如果用通用 IO 口模拟 SPI 总线,必须要有一个输出口(SDO),
一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,
则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需
输入口即可。