单片机学习笔记之--SPI通信基础

SPI协议是由摩托罗拉公司提出的通讯协议,中文名即为串行外设接口。这是一种全双工的高速通讯总线,可支持同时输入输出。

通讯引脚

SPI使用3条通讯总线和1条片选线。

MOSI:Master Output Slave Input,顾名思义,即主设备输出/从设备输入。数据从主机输出到从机,主机发送数据。

MISO:Master Iutput Slave Onput,主设备输入/从设备输出,数据由从机输出到主机,主机接收数据。

SCK:即时钟信号线,用于通讯同步。该信号由主机产生,其支持的最高通讯速率为FPClk/2,即所挂载总线速率的一半。如SPI2挂载在APB1总线上,则其最高速率为36MHz / 2 = 18MHz。类似木桶效应,两个设备之间通讯时,通讯速率受限于较低速的设备。

NSS:即片选信号线,用于选择通讯的从设备,也可用CS表示。每个从设备都有一条独立的NSS信号线,主机通过将某个设备的NSS线置低电平来选择与之通讯的从设备。所以SPI通讯以NSS线电平置低为起始信号,以NSS线电平被拉高为停止信号。

起始、停止信号

在这里插入图片描述

图16-1

如上图,编号1和6即为起始和停止信号的发生区域。NSS电平由高变低,则产生起始信号;NSS电平由低变高,则产生停止信号。从机检测到自己的NSS线电平被置低,则开始与主机进行通讯;反之,检测到NSS电平被拉高,则停止通讯。

数据有效性

MOSI和MISO线在SCK的每个时钟周期传输一位数据,开发者可以自行设置MSB或LSB先行,不过需要保证两个通讯设备都使用同样的协定。从图16-1看到,在SCK的上升沿和下降沿时进行触发和采样。

SPI有四种通讯模式,在SCK上升沿触发,下降沿采样只是其中一种模式。四种模式的主要区别便是总线空闲时SCK的状态及数据采样时刻。这涉及到“时钟极性CPOL”和“时钟相位CPHA”,由CPOL和CPHA的组合而产生了四种的通讯模式。

CPOL、CPHA

CPOL:即在没有数据传输时,时钟的空闲状态的电平。

CPHA:即数据的采样时刻。

在这里插入图片描述

图16-2

SPI_CR1寄存器的CPOL和CPHA位组合配置成四种时序关系,即四种通讯模式。

如图16-2所示,如果CPOL被清0,则SCK在空闲状态保持低电平,反之被置1则保持高电平;如果CPHA位被清0,则在SCK每个时钟周期的第1个边沿(奇数边沿)进行数据位采样,反之被置1则在SCK每个时钟周期的第2个边沿(偶数边沿)采样。

如下表所示的四种SPI通讯模式。

在这里插入图片描述

有一点需要注意的是,主机和从机需要工作在相同的模式下才能正常通讯。
最后提供一个spi资料作为学习参考
http://www.makeru.com.cn/live/3523_1795.html?s=45051

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值