SPI

简介

SPI和I2C一样也是用于通信的总线,一般用于跟外部的一些传感器通信。
相比与I2C,SPI的优点是:

  • 传输速度:SPI的传输速度能达到几十兆甚至上百兆。(I2C快速模式下400KB/S)
  • 全双工:在同一时间既能发送数据也能接收数据(I2C半双工)。

SPI协议

跟I2C一样SPI 也有主从之分,一个主机可以同时挂载多个从机。不同的是SPI有4条线,分别是:

  1. SCLK(串行时钟线):通信时主机需要向从机提供时钟。(这就是同步通信)
  2. CS(片选信号线):不同于I2C使用器件地址来区别从机,SPI使用片选信号线来选中需要通信的器件,通信过程中片选信号线必须拉低 (片选分为软件片选(gpio手动拉高拉低)和硬件片选)。
  3. MOSI:主机输出从机输入信号线。(传输有效数据)
  4. MISO:主机输入从机输出信号线。

SPI通信都是由主机发起,主机需要向从机提供时钟信号。

SPI同时挂载多个从设备时的连接图:
在这里插入图片描述IMX6ULL的一个SPI外设接口支持4个硬件片选,也就是使用硬件片选的话一个接口同时只能连接4个从设备,但是如果使用软件片选,因为GPIO 很多,一个SPI接口就可以同时连接多个从设备了。

SPI工作模式

  1. CPOL=0,串行时钟空闲时为低电平。
  2. CPOL=1,串行时钟空闲时为高电平。
  3. CPHA=0,串行时钟线的第一个跳变沿采集(上升沿或下降沿)数据。
  4. CPHA=1,串行时钟线的第二哥跳变沿采集数据。

SPI 通过以上时钟极性 和相位的不同,可以搭配出4种工作模式,分别是:
在这里插入图片描述通常用的比较多的是时钟空闲时为低电平,第一个跳变沿采集数据的方式。

SPI时序

SPI的时序图很简单,只要片选拉低,就可以进行通信。以下是CPOL=0,CPHA=0工作方式的时序图。
在这里插入图片描述上图 主机发送有效数据0xD2,接收0x66。

在单片机中,通信的本质其实就是读写寄存器。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值