浅谈SPI

SPI是嵌入式通讯中经常使用的协议,相比I2C而言是他支持全双工通讯,在通讯的效率与速度方面都具有明显的优势,线面我们就深入浅出的了解下SPI,首先是他的硬件连接,如下图所示:

 

SPI的硬件接线主要由四根线组成,他们分别是时钟线SCLK,主机发送线MOSI,主机接收线MISO和片选信号线SS/CS,类似与I2C也是采用一主多从式的连接结构,且主机在通讯中起主导作用。下面我们来看一下一个具体的SPI通讯实例。

我们可以看到主机发送数据时首先会拉低对应从机的片选信号,紧接着时钟线发出八个脉冲,每个脉冲对应一位的数据,在时钟线的上升沿进行读取。这里我们只是简单的举一个例子来方便大家快速的理解,其实SPI一共有四种工作模式,不过初学者往往会被这几种模式长篇大论的介绍说搞晕,所以我们先简单介绍其中的一种工作模式,接下来我会详细讲解四种模式各有什么不同,我们在看一张图:

SPI共有四种工作模式,有两个寄存器(CPOL、CPHA)控制。首先要明确的一点就是,这四种工作模式影响的都只有时钟线、时钟线、时钟线(重要的事情说三遍),先说CPOL表示的是时钟线空闲时刻的状态,若CPOL=1则在时钟线空闲不传输数据时始终为高电平状态,相反若是CPOL=0则空闲时的时钟线为低电平,就这么简单。再说CPHA时钟相位听名字就觉得比较难以理解,其实都是纸老虎,CPHA表示的就是在第几个时钟边沿读写数据,若CPHA=0那么在第一个边沿对数据采样,若CPHA=1那么在第二个边沿对数据采样就这么简单。

        现在我们再来看上面的举例图(第二张),你应该能知道他是那一种模式了,首先时钟线空闲为高电平CPOL=1,然后在第二个边沿数据采样,所以CPHA=1。有些地方会把这种模式称为模式3。

 

Mode 0CPOL=0, CPHA=0
Mode 1CPOL=0, CPHA=1
Mode 2CPOL=1, CPHA=0
Mode 3CPOL=1, CPHA=1

SPI就讲到这里。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值