SPI通信协议

目录

一、SPI简介

二、硬件电路

三、移位示意图

四、SPI时序图


一、SPI简介

SPI有四根通信线:

SCK:串行时钟线                     (别称:SCLK,CLK,CK)

MOSI:主机输出从机输入        (别称DO)

MISO:主机输入从机输出        (别称DI)

SS:从机选择                              (别称NSS,CS)

SPI的基本特性:同步,全双工

二、硬件电路

  • 所有SPI设备的SCK、MOSI、MISO分别连在一起
  • 主机另外引出多条SS控制线,分别接到各从机的SS引脚
  • 输出引脚配置为推挽输出,输入引脚配置为浮空或上拉输入

  • 1. SCK时钟线完全由主机掌控,所以对于主机来说时钟线为输出,对于所有从机来说时钟线为输入,这样主机的同步时钟就能送到各个从机了。
  • 2. MOSI主机输出从机输入,图中左边是主机对应MO,主机输出。下面三个都是从机,所以就对应SI,从机输入。数据传输方向是,主机通过MOSI输出,所有从机通过MOSI输入。
  • 3. MISO主机输入从机输出,左边是主机,对应MI,主机输入。下面三个都是从机,所以就对应SO,从机输出。数据传输方向是,所有从机通过MSIO输出,主机通过MSIO输入。
  • 注:SPI在MISO这里有个冲突点,主机一个是输入,三个从机都是输出,如果三个从机始终是推挽输出,势必会导致冲突,所以在SPI协议里有一条规定,当从机的SS引脚为高电平,也就是从机未被选中时,它的MISO引脚必须切换成高阻态,高阻态就相当于引脚断开,不输出任何电平,这样就可以防止一条线有多个输出,而导致的电平冲突的问题了,在SS为低电平时,MISO才允许变为推挽输出
  • 4. SS从机选择控制线,SS线是低电平有效,主机想指定谁,就把对应的SS输出线置低电平就行了。当主机需要和从机1进行通信了,主机就把SS1线输出低电平,这样从机1就知道主机在找它,然后主机在数据引脚进行的数据传输,就只有从机1会响应,其他从机的SS线是高电平,所以它们都会保持沉默,当通信完之后就会把SS1置回高电平。

三、移位示意图

        SPI的基本收发电路就是使用了这样一个移位的模型,左边时SPI主机,里面有一个8位的移位寄存器,右边是SPI从机里也有一个移位寄存器。移位寄存器里面有一个时钟输入端。

        因为SPI一般都是高位先行的,所以每来一个时钟,移位寄存器就会向左进行移位,从机中的移位寄存器也是同理,移位寄存器的时钟源时由主机提供的在图中叫做波特率发生器,它产生的时钟驱动主机的移位寄存器进行移位,同时这个时钟也通过SCK引脚进行输出,接到从机的移位寄存器里。

        主机移位寄存器左边移出去的数据通过MOSI引脚,输入到从机移位寄存器的右边,从机移位寄存器左边移出去的数据MISO引脚,输入到主机移位寄存器的右边。

四、SPI时序图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值