SPI通信原理

        SPI(Serial Peripheral Interface),串行外设接口,从名字可以看出又是一种串行通信的协议标准。

        SPI有很多种,包括:Standard SPI(标准SPI)Dual SPI(双线 SPI)Quad SPI(四线 SPI) ,当然并不是说双线SPI就是两根线,四线SPI就是四根线。事实上,标准SPI就有4根线,分别是CLK、CS、MOSI和MISO,它是一种全双工的通信接口。

        而之所以会有双线SPI和四线SPI的出现,其实主要是因为某些情况下并不需要全双工,但对通信速度有更高的要求,所以对引脚功能做了些调整。但是既然都叫SPI,说明仍然是符合SPI的协议标准的,本次只讲解标准SPI,理解了后感兴趣可以自行研究双线SPI和四线SPI。

        SPI是一种一主多从的工作模式,不同于IIC,它只有一个主机,读写操作全部由主机发起,从机被动响应。而主机操作指定从机是通过片选信号来实现的,先介绍下信号线的作用。

        CS:为片选线,每一个从机都有一个独立的片选线,被选中的从机才允许通信
        CLK :同步时钟信号线,用于传输同步时钟信号,所有从机公用一条线
        MOSI:Master out slave in,主机发送数据,从机接收数据。
        MISO:Master in slave out,主机接收数据,从机发送数据。

        接下来还是说说SPI的开始与停止如何界定,以及如何去解析数据。

        开始和停止很好界定,SPI是通过cs片选来进行控制的,当cs被选中时开始,否则停止。

        关于数据传输,SPI有四种工作模式,主要是由相位(CPHA)和极性(CPOL)来决定的。通俗的说,就是每个周期的第一个还是第二时钟沿采集数据,空闲时的时钟是高电平还是低电平。

        以下以CPHA=0举例

        首先在NSS为低时通信开始,由CPHA=0可知,在第一个边沿就开始采集数据。

        假设CPOL为0,那么在第一个上升沿时,发送方往数据线上发送一位数据,在下降沿时接收方读取一位数据,如此循环8次,一个字节就被发送和接收了。

        由于SPI无需应答,因此可以连续发送下一个字节,直至数据全部发送完毕,拉高NSS结束通信。

        

        

        

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕诗客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值