SPI的原理
时钟
时钟信号用于同步主机和从机的数据传输,每个时钟周期传输一位数据。因此,数据传输的速度取决于时钟信号的频率。SPI通信始终由主机发起,因为主机负责配置和生成时钟信号。
任何共享时钟信号的通信协议都被称为同步协议。SPI是一种同步通信协议,也有一些不使用时钟信号的异步方法。例如,在UART通信中,双方都设置为预先配置的波特率,该波特率决定了数据传输的速度和时序。
通过改变时钟极性和时钟相位属性,可以修改SPI中的时钟信号。这两个属性一起定义了数据位何时被输出和采样。时钟极性可以被主机设置,以允许在上升沿或下降沿输出和采样数据位。时钟相位可以设置为数据的输出和采样发生在时钟周期的第一个边沿或第二个边沿,无论它是上升沿还是下降沿。
从机选择
主机可以通过将从机的CS/SS线设置为低电平来选择要与之通信的从机。在空闲状态下,从选择线保持在高电平。主机上可能有多个CS/SS引脚,允许与多个从机并行连接。如果只有一个CS/SS引脚,则可以通过菊花链将多个从设备连接到主设备。
多从机
SPI可以配置为单主机和单从机模式,也可以配置为单个主机控制多个从机。有两种方法可以将多个从站连接到主站。如果主机有多个从机选择引脚,从机可以通过并行连接来实现这一点:
SPI简介——多从配置分离从选择
如果只有一个从机选择引脚可用,从机可以像这样菊花链:
SPI 简介 – 多从配置菊花链
MOSI 和 MISO
主机通过 MOSI 线以串行方式向从机逐位发送数据。从机通过 MOSI 引脚接收主机发送的数据。从主机发送到从机的数据通常以最高有效位在前发送。
从机也可以通过 MISO 线串行将数据发送回主机。从从设备发送回主设备的数据通常以最低有效位在前发送。
SPI数据传输步骤
-
主机输出时钟信号:
SPI简介——数据传输图时钟信号
-
主机将 SS/CS 引脚切换到低电压状态,从而激活从机:
SPI介绍——数据传输图从选择激活
-
主机沿MOSI 线一次一位地向从机发送数据。从设备在接收到位时读取这些位:
SPI简介——数据传输图 Master to Slave Data Transfer
-
如果需要响应,从机沿 MISO 线一次一位地向主机返回数据。主机在接收到位时读取这些位:
SPI 简介 – 数据传输图 Slave to Master 数据传输
SPI的优缺点
使用 SPI 有一些优点和缺点,如果在不同的通信协议之间进行选择,您应该根据项目的要求知道什么时候使用 SPI:
好处
没有起始位和停止位,因此数据可以不间断地连续流式传输 没有像 I2C 那样复杂的从机寻址系统 比 I2C 更高的数据传输速率(几乎是 I2C 的两倍) 独立的 MISO 和 MOSI 线,因此可以同时发送和接收数据
缺点
使用四根线(I2C 和 UART 使用两根) 没有确认数据已成功接收(I2C 有这个) 没有像 UART 中的奇偶校验位那样的错误检查形式 只允许一个主 希望这篇文章能让您更好地了解 SPI。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !