SPI协议总结

一.SPI协议简介

SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在要求通讯速率较高的场合

SPI协议总结_第1张图片

二.SPI接口的四线

  • SS:从设备选择信号线,常称为片选信号线,也称为NSS、CS,每个从设备都有独立的这一条SS信号线,有多少个从设备,就有多少条片选信号线。SPI协议使用SS信号线来寻址,当主机要选中从设备时,把该从设备的SS信号线设置为低电平,该从设备即被选中,接着主机开始与被选中的从设备进行SPI通讯。所以SPI通讯以SS线置低电平为开始信号,以SS线被拉高作为结束信号
  • SCK (Serial Clock):时钟信号线,用于通讯数据同步,由主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不一样,两个设备之间通讯时,通讯速率受限于低速设备
  • MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚,这条线上数据的方向为主机到从机
  • MISO(Master Input,,Slave Output):主设备输入/从设备输出引脚,即在这条线上数据的方向为从机到主机

三.SPI接口的通讯时序

SPI协议总结_第2张图片

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

标号6处,NSS信号由低变高,是SPI通讯的停止信号,表示本次通讯结束

SPI使用MOSI及MISO信号线来传输数据,使用SCK信号线进行数据同步。MOSI及MISO数据线在SCK的每个时钟周期传输一位数据,且数据输入输出是同时进行的

四.SPI的时钟极性与时钟相位

SPI协议总结_第3张图片

SPI协议总结_第4张图片

  • 时钟极性CPOL是指SPI通讯设备处于空闲状态时,SCK信号线的电平信号(即SPI通讯开始前、 NSS线为高电平时SCK的状态)。CPOL=0时, SCK在空闲状态时为低电平,CPOL=1时,则相反
  • 时钟相位CPHA是指数据的采样的时刻,当CPHA=0时,MOSI或MISO数据线上的信号将会在SCK时钟线的“奇数边沿”被采样。当CPHA=1时,数据线在SCK的“偶数边沿”采样

五.SPI的四种通讯模式

SPI协议总结_第5张图片

由CPOL及CPHA的不同状态,SPI分成了四种模式,主机与从机需要工作在相同的模式下才可以正常通讯,实际中采用较多的是“模式0”与“模式3”

你可能感兴趣的:(MCU常用接口协议)