UART、I2C、SPI通信协议

UART
UART、I2C、SPI通信协议
UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是一种异步收发传输器。它将要传输的资料在串行通信与并行通信之间加以转换。串型表示一个时钟只能发送一位,异步代表收发方没有同步的时钟信号,每传送一个数据都要加上表示数据开始和结束的额外信息。所以UART发送速率和效率都较低。有时为了增强数据抗干扰能力、长距离传输。需要把TTL电平信号转换成RS-232信号即3到12V表示0,-3到-12V表示1。
UART、I2C、SPI通信协议
1、平时数据线处于空闲状态“1”
2、有数据开始跳变为起始位“0”
3、起始位后面可以跟5-8位数据位,低位先发
4、数据位后面可以接校验位(偶校验或奇校验即保证数据中“1”的个数为奇数或偶数)
5、最后是停止位“1”

I2C
UART、I2C、SPI通信协议
IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线。它是由数据线 SDA 和时钟 SCL 构成的串行总线,有同步时钟。
UART、I2C、SPI通信协议
开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。
结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。
应答信号:接收方接收到 8bit 数据后,向发送方 发出特定的低电平脉冲,表示已收到数据。若未收到应答信号,由判断为受控单元出现故障。
传输数据时,SDA上的数据只能在SCL为低电平时变化,即SCL为高电平,SDA必须稳定。
下图一个完整的主机访问从机的过程
UART、I2C、SPI通信协议
SPI
SPI:串行外设接口(Serial Peripheral Interface),SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。也可以是:SCK、MOSI(主机发送从机接收)、MISO(从机发送主机接收)、SSEL(片选)
UART、I2C、SPI通信协议
数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据,只能有一个主机。
UART、I2C、SPI通信协议