> 文章列表 > 【通信接口】UART、IIC、SPI

【通信接口】UART、IIC、SPI

【通信接口】UART、IIC、SPI

目录

一、预备知识

1、串行与并行

2、单工与双工

3、波特率

二、UART 

三、IIC

四、SPI (一对一、一对多)

五、IIC、SPI异同点


参考文章:这些单片机接口,一定要熟悉:UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡


 

一、预备知识

1、串行与并行

根据每次发送的二进制位数,可以分为串行、并行。串行只有一根总线,而并行一般有多根总线。总线数目的不同直接影响到每次传递的数据量。以传递一个字节为例。

串行每次只能传递 1 bit,所以要传输 8 次才能传递一个字节。

并行有 8 根总线,所以一次就可以传递一个字节(8 bit)。

2、单工与双工

根据数据传输的方向可以分为单工、双工通信,而双工通信又可以根据总线数目分为半双工、全双工通信。

  • 单工通信:数据的传输是单向的,发送器只负责发送,接收器只负责接收
  • 双工通信:
    • 半双工:一根总线,双方的发送和接收用的同一根总线
    • 全双工:两根总线,双方的发送和接收各有一根总线

3、波特率

用于描述串口的通信速度,单位bps(bit per second),即每秒传输的比特数

二、UART 

1、概念

UART 是一种通用的串行异步通信总线,该总线有两条数据线,TXD 用于发送数据,RXD用于接收数据,可以实现全双工的发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信。

2、帧格式

UART帧格式如下:

空闲时刻:默认维持在高电平

起始位:表示要开始发送数据了,此时会变为低电平

数据位:一般有8位,代表一个字节。

校验位:方便接收方核对数据是否被篡改(可有可无)

停止位:表示一帧数据的结束。相当于告知对方数据发送完毕,重新回到高电平(空闲状态)

三、IIC

1、概念

I2C总线是一种同步半双工双向的两线式串口总线。它由两条总线组成:串行时钟线SCL和串行数据线SDA。

  • SCL:负责产生时钟脉冲。一方可以在时钟脉冲的上升沿发送数据;另一方在下降沿接收数据
  • SDA:负责数据的传输

2、通信过程

主设备和从设备都可以作为发送设备或接收设备。无论主设备是作为发送设备还是接收设备,同步时钟信号都只能由主设备产生,主设备控制通信的开始与结束

主从设备建立连接

(1) 主设备发送一个起始信号启用总线

(2)主设备发送一个字节的数据指明要和哪个从设备通信,以及数据的传递方向(即主设备给从设备发数据,还是从设备给主设备发数据)

(3)被指名的从设备发送应答信号回应主设备

主从设备开始通信

建立连接以后,主从设备之外的设备,不可以发送数据。接下来就是主从设备的通信时间了。

(4)发送器发送一个字节的数据

(5)接收器收到数据以后发送应答信号,回应发送器

(6)... ...  循环步骤4、5

主从设备结束通信

(7)主设备发送停止信号中止本次通信

四、SPI (一对一、一对多)

1、概念

SPI总线是同步全双工双向的4线式串行接口总线。SPI采用主从的方式工作,可以一个主设备对应一个从设备,也可以一个主设备对应多个从设备。虽然是一个主设备对多个从设备的关系,但是每次通信依然是一个主设备和一个从设备通信。

  • MOSI(Master Out Slave In):主设备 ==》从设备(主设备发送,从设备接收)
  • MISO(Master In Slave Out):从设备 ==》主设备(主设备接收,从设备发送)
  • SCLK(Serial Clock):传输时钟信号,用于主从设备的同步
  • CS(chip select):选择从设备。

2、通信过程

主设备选择从设备

当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的CS线上发送使能信号(高电平或者低电平,根据从机而定),表示选中该从设备。

数据传输

SPI 总线在进行数据传输的时候,先传送高位,后传送低位。比如要传送数字3,转换成二进制就是 0000 0011,因为是串行通信,每次只能传 1bit,所以需要决定先传送高位还是低位。

发送端发送信号:当时钟脉冲达到下降沿的时候,这段时间是发送数据的时间。

接收端接收信号:当时钟脉冲到达上升沿的时候,这段时间是接收数据的时间。

因此,SPI 可以在一个时钟周期内就完成数据的收发,可以无限制的连续发送和接收数据。

传输完毕或者继续传输

一个字节传输完成后无需应答,可以直接开始下一个字节的传递,也可以就此中止传输。SPI总线没有起始或者结束信号。

3、极性和相位

极性(CPOL)指的是时钟脉冲在空闲时刻的状态。

相位(CPHA)指的是采样时刻。比如是选择下降沿发送数据,还是上升沿发送数据。

对于特定的从设备来说,出厂时的工作模式就已经决定了,即极性和相位就已经决定好了。主设备的 CPOL 和 CPHA是可以手动配置的。在使用设备时,必须保证主设备的工作模式和从设备保持一致。

五、IIC、SPI异同点

相同点

1、都使用了时钟线

2、采用了TTL电平,这就限制了应用场景,传输距离不会很长,一般用于同一板卡上芯片之间的通信

3、都采用主从方式工作,主机可以管理和控制总线,从机只能被呼叫。

不同点

1、IIC有应答机制,SPI无需应答机制

2、IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来选择从机

3、IIC的时钟极性和相位固定,SPI的时钟极性和相位可调