串行外设接口总线是一种以全双工方式运行的同步串行通信链路,这意味着设备同时发送和接收数据。这些设备作为主/从设备进行通信,其中主设备通过选择带有硬件线路的从设备来启动通信,并且还提供用于将数据位移入和移出从设备的同步时钟。
通信所需的信号是从选择(SS)、主输入从输出(MISO)、主输出从输入(MOSI)和串行时钟(SCK)。SPI 相对于其他通信协议的优势在于,寻址是在硬件中通过 SS 线执行的,从而可以更快地寻址设备,并且通信是全双工的,从而可以更快地传输数据(图 1)。
图 1 串行外设接口总线
SPI 通信开始于主机断言 SS 线。根据器件的不同,SS 线可能是高电平有效或低电平有效。在开始通信之前,主设备必须等待至少一个时钟周期。与 SS 线的活动极性非常相似,SS 激活后的等待时间因设备而异。例如,模数转换器可能要求主设备在其 SS 线被断言后等待转换完成。接下来,主机将开始将数据移出 MOSI 线,并将数据移入 MISO。数据始终以全双工方式传输,即使该数据没有意义。例如,为了让主设备从从设备接收 24 位数据,它还必须向从设备发送 24 位数据(图 2 和图 3)。
图 2 阶段 0 时序
第一阶段时间
没有关于使用哪个时钟边沿来发送和接收数据的标准,因此根据时钟极性和时钟相位,有四种可能的操作模式。请参阅下面图 4 中的表格。
SPI 模式
图 4 SPI 模式
以模式 1 为例,主机将在 SCK 线为低电平时空闲总线。当主机将 SCK 线推高时,它也会将最高有效位放在 MOSI 线上。同时,Slave 将把最重要的放在 MISO 线上。接下来,Master 拉动 SCK 线并从 MISO 线上的 Slave 读取稳定位。同时,Slave 在 MOSI 线上读取 Master 生成的稳定位。当 SS 线路停用时,通信终止,因此它必须在整个通信帧期间保持活动状态。
编辑:hfy
-
通信协议
+关注
关注
28文章
774浏览量
39963 -
SPI
+关注
关注
17文章
1625浏览量
89982
发布评论请先 登录
相关推荐
I2C、SPI、UART的通信过程还可以这样理解
![I2C、<b class='flag-5'>SPI</b>、UART的<b class='flag-5'>通信</b>过程还可以这样理解](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
逼真动画展示I2C、SPI、UART的通信过程
![逼真动画展示I2C、<b class='flag-5'>SPI</b>、UART的<b class='flag-5'>通信</b>过程](https://file.elecfans.com/web2/M00/67/82/pYYBAGMVVhCAAeyJAAA04rjBcdY094.png)
SPI双机通信有极低概率丢帧要如何处理?
PSoC6 SPI主从通信异常的原因?
SPI上拉合不上拉的区别 UART和SPI的主要区别
如何使用RS232转SPI实现串口和SPI接口的转换?
SPI总线通信例程
SPI双机通信有极低概率丢帧是什么原因?如何处理?
标准4线SPI四根线有哪些
![标准4线<b class='flag-5'>SPI</b>四根线有哪些](https://file1.elecfans.com/web2/M00/8D/EB/wKgZomTB1UGAeEW1AAAmrzw8XXk459.jpg)
评论