通信协议:SPI

STM32模拟SPI通信协议

SPI的简介:

SPI是串行外设接口的缩写,是一种高速的,全双工、同步的串行通信总线;SPI也可以实现一主多从,而实现一主多从是通过CS片选来实现,于IIC有些不同;SPI需要至少4根线,分别是MISO、MOSI、SCLK和CS。与IIC通信相比,SPI使用的引脚多几根,但是SPI的通信速度远远高与IIC,所以SPI的应用也是非常的广阔的。

SPI通信图:

一主一从

一主多从

寻址方式:

只有主设备才能发启动通信,当主设备要求和某给从设备进行通信时,主设备需要先从对于设备的片选线上发送使能信号(高电平或者低电平,由从机而定)表示选中该从机

SPI通信过程:

SPI总线在进行数据传输时,先传输高位,后传输低位;数据线为高电平表示逻辑“1”,低电平表示逻辑“0”;一个字节的传输无需应答位即可开始下一个字节的传输,也无起始信号和终止信号;SPI总线采用同步方式工作,时钟线在上下沿时发送器先数据线下发数据,在紧接着的下降沿或者上升沿时接收器从数据线上读取数据,八个时钟周期即可以完成一个字节数据的传输。

极性和相位(决定了SPI的通信的四种模式)

SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)
1.CPOL表示SCLK空闲时的状态: CPOL = 0,空闲时SCLK为低电平,CPOL = 1时空闲时SCLK为高电平状态
1.CPHA表示数据采样的时刻: CPHA = 0每个周期的第一个时钟沿采集数据,CPHA = 1每个周期的第二给时钟沿采样

工作模式一:

CPOL = 1,CPHA = 1工作模式一时序图

分析上图,在数据未发送时以及发送完毕之后,SCK都是高电平的,因此CPOL = 1,我们还可以看出,在SCK的第一个下降沿的时候,MOSI和MISO的数据是可以改变的,同时在SCK的第一个上升沿的时候数据是稳定的,此时为传输的状态,即CPHA = 1。注意最后SSEL片选,这个引脚通常决定那个从机和主机进行通信

剩下三种工作模式:

SPI时序图

剩下的你们可以按照我上面分析的思路自己分析一下,在这里我就不分析了。

IIC通信和SPI的异同:

相同点不同点
都采用了串行和同步的方式IIC为半双工,SPI为全双工
都采用TTL电平,传输距离和应用场景都相似IIC有应答机制,SPI无应答机制
都能实现一主多从IIC通过总线的方式广播的形式来寻址从机SPI则通过CS片选向对于从机发送使能信号
IIC的时钟极性和时钟相位固定,SPI的时钟极性和相位不固定
IIC为两线制,而SPI至少为4线制(当然特殊情况下也有三线制的)

参考:SPI总线的分析

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值