SPI协议

SPI是一种同步串行接口技术,SPI总线在物理上通过接在外围设备微控制器上面的微处理器控制单元(MCU)上叫做同步串行端口的模块来实现,允许MCU以全双工的同步串行方式,与各种外围设备进行高速数据通信。

SPI主要应用在EEPROM,Flash,实时时钟(RTC),数模转换器(ADC),数字信号处理器(DSP)以及数字信号解码器之间。它在芯片中只占用四根管脚(pin)用来控制以及数据传输。

主要特点:

采用主从(Master-Slave)的控制方式

SPI规定了两个SPI设备之间通信必须由主设备(Master)来控制次设备(Slave)。一个Master设备可以通过提供clock以及对Slave设备进行片选来控制多个Slave设备,SPI协议还规定SLave设备的CLock由master设备通过SCK管脚提供给slave设备,slave设备本身不能产生和控制clock,没有clock则slave 不能正常工作。

采用同步方式传输数据

Master设备会根据将要交换的数据来产生对应的时钟脉冲,时钟脉冲组成了时钟信号,时钟信号通过时钟极性(CPOL)和时钟复位(CPHA)控制着两个SPI设备间合适数据交换以及合适对接收到的数据进行采样,来保证数据在两个设备之间是同步传输的。

数据交换

SPI设备间的数据传输之所以又被称为数据交换,是因为SPI协议规定一个SPI设备不能再数据通信过程中仅仅之充当一个“发送者”或“接收者”,在每个clock周期内,SPI设备都会发送并接收一个Bit大小的数据,相当于该设备有一个Bit大小的数据被交换了。

Master设备首先必须通过CS对Slave设备进行片选,把想要访问的Slave的设备选上。

在数据传输的过程中,每次接收到的数据必须在下一次数据传输之前被采样。如果之前接收到的数据没有被读取,那么这些已经接收完成的数据将有可能会被丢弃,导致SPI物理模块最终失效。因此,在程序中一般都会在SPI传输完数据后,去读取SPI设备里的数据,即使这些数据在我们的程序是无用的。

先前面试官问SPI三线式和四线式有什么区别:

三线式:一个数据线,一个时钟线,一个片选信号。同一时间只能读或者写

四线式:两个数据线,一个时钟线,一个片选信号。是双工的,一根可以写数据,一根可以回读数据,




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值