SPI协议

野火STM32学习笔记(如有侵权立即删除)

1.SPI 协议(Serial Peripheral Interface)即串行外围设备接口,一种高速全双工通信总线。广泛地使用在 ADC、 LCD 等设备与 MCU 间,要求通讯速率较高的场合。SPI---FLASH比IIC---EEPROM具有更大的空间,以及更高的性价比。SPI比I2C的传输速率高很多,低速传感器、芯片等使用IIC,高速芯片一般使用SPI。

2.SPI物理层

一个主机上可以挂载多个从机,

各个端口的作用:

    1.SS:从设备选择信号线,常称为片选信号线,也称为NSS、CS。每个从设备都有独立的这一条SS信号线,本信号线独占主机的一个引脚,既有多少个从设备,就有多少条片选信号线。i2c协议通过设备地址来寻址、选中总线上的某个设备并与之通信;而SPI协议中没有设备地址,它使用SS信号线来寻址,当主机要选择从设备时,把该从设备的SS信号线设置为低电平,该从设备即被选中,即片选有效,接着主机开始与被选中的从设备进行SPI通讯。所以SPI通讯以SS线置低电平为开始信号,以SS线被拉高作为结束信号。

    2.SCK(Serial Clock):时钟信号线,用于通讯数据同步。它由通讯主机产生,决定了通讯速率,不同的设备支持的最高时钟频率不一样,如STM32的SPI时钟频率最大为Fpclk/2,两个设备之间通信时,通信速率受限于低速设备。

    3.MOSI(Master Output,Slave input):主设备输出/从设备输入引脚。主机的数据线从这条信号线输出,从机由这条信号线读入主机发送的数据,即这条线上数据的方向为主机到从机。

    4.MISO(Master input,Slave Output):主设备输入/从设备输出引脚。主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,即在这条线上数据的方向为从机到主机。

3.SPI基本通讯过程(主机视角)

    1.NSS信号由高变低,是SPI通讯的起始信号。NSS是每个从机各自独占的信号线,当从机在自己的NSS线检测到起始信号后,就知道自己被主机选中了,开始准备与主机通讯。

    2.时钟的上升沿触发,此时数据跳变。

    3.时钟下降沿采样。(MOSI及MISO数据线在sck的每个时钟周期传输一位数据,且数据输入输出是同时进行的。)

    4.同2。

    5.同3。

    6.NSS信号由低变高,是SPI通讯的停止信号,表示本次通讯结束,从机的选中状态被取消。

4.CPOL/CPHA及通讯模式

    1.时钟极性CPOL是指SPI通讯设备处于空闲状态时,SCK信号线的电平信号状态。(即SPI开始前NSS线为高电平时SCK的状态)。CPOL=0时,SCK在空闲时为低电平,CPOL=1时,则相反。

    2.时钟相位CPHA是指数据的采样时刻,当CPHA=0时,MOSI或者MISO数据线上的信号在奇数边沿保持不变,将会在SCK时钟线的奇数边沿被采样,在非采样时刻,MOSI和MISO有效信号发生跳变。当CPHA=1时,数据线有效信号在偶数边沿保持不变,在SCK的偶数边沿被采样,在非采样时刻,MOSI和MISO有效信号发生跳变。

    3.SPI分成了四种模式,主机与从机工作在相同的模式下才能正常通信,实际中较多采用模式0与模式3.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值