谷动谷力

标题: 动图演示UART、SPI、 I2C等串行通信的底层原理 [打印本页]

作者: sunsili    时间: 2024-1-22 09:02
标题: 动图演示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 需要更多的引脚,这可能是电路设计中需要考虑的一个因素。优点:

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

I2C是一种串行通信协议,通常用于连接低速设备,如传感器、存储器和其他外设。它使用两根线(SCL和SDA)来实现双向通信,具有地址定向性和主从模式。优点:

红外遥控

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


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

    上图,由八个D寄存器组成的移位寄存器。
   
上图,串行传输示意图。

其他
    这里再分享一些其他串行传输的原理(波形):

   
上图,波形调制。
    上图,PWM控制LED亮度。

    调幅与调频信号,如上图。

    相位调制信号,如上图。

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









欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2