sunsili 发表于 2024-1-22 09:02:31

动图演示UART、SPI、 I2C等串行通信的底层原理

本帖最后由 sunsili 于 2024-4-1 16:20 编辑

动图演示UART、SPI、 I2C等串行通信的底层原理

    UART、SPI、 I2C等串行通信是嵌入式开发中非常常见的通信方式,这些通信的最底层通信原理其实不难,但很多初学者却学不会。    本文分享一些常见通信的底层数据传输原理。

UART 串口
Universal Asynchronous Receiver/ransmitte ,通用异步收发传输器。
    UART串口是最常见的一种串口通信,下面是串口连接上位机电脑,以及RS232应用的动画。
   
如上图,PC 上通过UART来调试MCU。

    上图,RS-232通过电平转换芯片与MCU通讯。

SPI串行通信

    SPI:Serial Peripheral Interface,串行外设接口。
    SPI是一种常见的串行同步通信协议,其应用也非常广泛。
    下面是SPI数据传输的时序图:

    上图,SPI 数据传输(1)。
      
上图,SPI数据传输(2)。
   

上图,SPI时序信号。

上图 SPI片选时序示意图

SPI(串行外设接口)以其高速度而著称,使其成为快速通信的首选。与 I2C 不同,SPI 使用四线工作:MISO(主输入从输出)、MOSI(主输出从输入)、SCK(串行时钟)和 SS(从选择),允许全双工通信(发送和同时接收)。尽管简单且速度快,但 SPI 比 I2C 需要更多的引脚,这可能是电路设计中需要考虑的一个因素。优点:
[*]高速:SPI通信速度较快,适用于对速度要求较高的应用。
[*]全双工:SPI支持全双工通信,可以同时进行数据发送和接收。
[*]简单:SPI的通信协议相对简单,适用于快速开发和实现。


I²C通信
    I²C:Inter-Integrated Circuit,字面意思是集成电路之间,是I²C Bus简称。    I²C主要是通过地址来区分识别从机,其通信原理相对较简单。   
上图,I2C总线以及寻址方式。

I2C是一种串行通信协议,通常用于连接低速设备,如传感器、存储器和其他外设。它使用两根线(SCL和SDA)来实现双向通信,具有地址定向性和主从模式。优点:
[*]多设备支持:I2C支持多个设备连接到同一总线上,每个设备都有唯一的地址。
[*]简单:I2C协议相对简单,易于实现和调试。
[*]低功耗:在空闲状态时,I2C总线上的器件可以进入低功耗模式,节省能量。


红外遥控

    红外遥控在我们现实生活中比较常见,家庭各种遥控器大部分都是红外遥控。    红外遥控是通过控制脉宽(高低电平的时间)来实现通信的,只是它是通过红外无线信号建立通信链路(红外遮挡了就不行,但可反射)。   
如上图,红外控制信号也是一个串行通讯信号。
   
上图,红外信号接收与放大整形电路。
   
上图,一个使用红外接收光电管控制继电器进行鱼食投喂电路。


串并转换电路
    串并转换,就是串行数据转成并口数据,通过时钟控制串行数据一位一位传输,凑整(8位)就是一个并行数据了。
    这种转换器有很多现成的芯片,原理很简单。    上图,串入、并出移位寄存器。
    上图,由八个D寄存器组成的移位寄存器。   
上图,串行传输示意图。

其他
    这里再分享一些其他串行传输的原理(波形):
   
上图,波形调制。
    上图,PWM控制LED亮度。
    调幅与调频信号,如上图。

    相位调制信号,如上图。

    方波边沿抖动波形,如上图。




页: [1]
查看完整版本: 动图演示UART、SPI、 I2C等串行通信的底层原理