I2C和SPI简介

I2C

I2C,Inter-Integrated Circuit,内部集成电路

I2C总线由数据线SDA和时钟信号SCL构成串行总线。适用于简单性和低成本比速度更为重要的外围设备,其传输速率并不高。

I2C线序:

  • SDA(串行数据线),I2C总线的数据信号线;
  • SCL(串行时钟线),时钟信号线。
  • VCC,电压,典型电压为+5V或+3.3V
  • GND,接地

传送速率

  • 标准模式:100Kbps
  • 快速模式:400Kbps
  • 高速模式:3.4Mbps

I2C工作原理

I2C总线在传送数据过程中共有三种类型信号,分别是:开始信号,结束信号和应答信号。
开始信号,SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号,SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号,接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已经收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未能收到应答信号,则判断为受控单元出现故障。

SPI

SPI,Serial Peripheral interface,串行外围设备接口。是一种高速的全双工同步的通信总线,在芯片引脚上只占用四根线。

它可以使MCU与各种外围设备以串行方式进行通信,用于交换信息。

SPI有三个寄存器分别为:控制寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR。

通常有一个主设备和一个或多个从设备,以主从方式工作。

因为SPI的数据输入和输出线独立,所有允许同时完成数据的输入和输出;不同的SPI设备实现方式不尽相同,主要是数据改变和采集的时间不同。在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。

SPI线序:

  • SCLK,串行时钟(主机输出)
  • SSEL,Slave,从设备使能信号,由主设备控制
  • MOSI,Master output Slave input, 主设备数据输出,从设备数据输入
  • MISO,Master input Slave output,主设备数据输入,从设备数据输出
  • GND,接地

I2C和SPI简介_第1张图片
I2C和SPI简介_第2张图片
I2C和SPI简介_第3张图片

SPI工作原理

为了开始通信,总线主控器使用从属设备支持的频率来配置时钟。然后,主机在选择线上选择逻辑电平为0的从机。如果需要等待时间,例如模数转换,则主机必须在发出时钟周期之前至少等待该时间段。

在每个SPI时钟周期内,都会发生全双工数据传输。主机在MOSI线上发送一个位,从机读取它;而从机在MISO线上发送一个位,主机读取它。

传输通常涉及两个给定字长的移位寄存器,例如八位,一个在主机中,一个在从机中。它们以虚拟环形拓扑连接。数据通常先移出最高有效位。在时钟沿,主机和从机都移出一点并在传输线上输出到对方。在下一个时钟沿,在每一个接收器处,从传输线采样该位,并将其设置为移位寄存器的新的最低有效位。在寄存器位移入和移出后,主设备和从设备已交换了寄存器值。如果需要交换更多数据,请重新加载位移寄存器,然后重复该过程。传输可以持续任何数量的时钟周期。完成后,主机停止切换时钟信号。

传输通常由八位字组成。但是,其他字长也很常见。例如,用于触摸屏控制器或者音频解码器的16位字,也有一些ADC是12位字。

你可能感兴趣的:(DSP)