SPI学习

SPI简介

SPI是串行外设接口的缩写,SPI是一种高速的,全双工,同步的串行通信总线;SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、(CS)片选。SPI使用引脚较少且布局方便,所以越来越多的芯片集成了这种通信协议。
在这里插入图片描述
SPI有MOSI,MISO两根线,所以接收和发送数据可同时进项,所以为全双工通信总线。SPI上面讲到至少需要4根线,但是不意味着只能4根线,这是因为有CS片选线,可能一个主机上挂载多个从机,所以CS线会多出。

寻址方式

当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或低电平,根据从机而定)表示选中该从设备。在这里插入图片描述
例如现在我们需要选择Slave2,低电平为选中信号,那么CS2=0,CS1=1即为选中Slave2而不选中Slave1;
那么如何判断一个芯片是高电平使能还是低电平使能呢?
答:一般情况下,电路图上如果标记为CS,那么就为高电平使能。

通信过程

SPI总线在进行数据传送时和IIC一样,先传送高位,再传送低位;数据线为高电平表示逻辑“1”,低电平表示逻辑“0”;一个字节传送完成后无需应答即可开始下一个字节的传送,但是这种方式可能会导致主设备一直在发送而从设备没接收到信号却无反馈,其实更准确的说SPI无起始,无结束,无应答;SPI采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送;在这里插入图片描述
总之来说,收发数据的过程就是第一个跳边沿为发数据,那么紧接着的跳变沿为接数据,反之亦然;

极性和相位

SPI不同于IIC,在IIC中规定SCL为下降沿时为发送器发送数据,SCL为上升沿时为接收器去读取数据,并且IIC规定,在IIC总线在空闲时,SCL和SDA为高电平状态。
SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素

CPOL表示SCLK空闲时的状态

  • CPOL=0,空闲时SCLK为低电平
  • CPOL=1,空闲时SCLK为高电平

CPHA表示采样时刻

  • CPHA=0,每个周期的第一个时钟沿采样
  • CPHA=1,每个周期的第二个时钟沿采样

需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将其设计为某种特定的工作模式;我们在使用该设备时就必须保证主设备的工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我们需要对主设备的CPOL和CPHA进行配置。

IIC和SPI的异同

  • 相同点
    1. 均采用串行、同步的方式
    2. 均采用TTL电平,传输距离和应用场景类似(IIC和SPI不适合远距离传输距离)
    3. 均采用主从方式工作
  • 不同点
    1. IIC为半双工,SPI为全双工
    2. IIC有应答机制,SPI无应答机制
    3. IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址(他们的优缺点为IIC节省引脚,但是相对较慢,而SPI线较多,但是速度较快)
    4. IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值