串行外设接口 (SPI) 是微控制器和外设 IC(如传感器、ADC、DAC、移位寄存器、SRAM 等)之间使用最广泛的接口之一。SPI是一个同步的、全双工的主从接口。来自主站或从站的数据在时钟上升沿或下降沿同步。主站和从站都可以同时传输数据。SPI 接口可以是 3 线或 4 线。
本文简要介绍了4线SPI接口,然后介绍了支持SPI的开关和多路复用器,它们有助于减少系统板设计中的数字GPIO数量。
界面
图1.
带主站和从站的SPI配置。
4线SPI器件有四个信号:
时钟 (SPI CLK, SCLK)
芯片选择 (CS)
主出,从入(MOSI)
主进从出(味噌)
产生时钟信号的设备称为主设备。主站和从站之间传输的数据与主站生成的时钟同步。与 I2C 接口相比,SPI 器件支持更高的时钟频率。用户应查阅产品数据手册,了解SPI接口的时钟频率规格。
SPI接口只能有一个主接口,并且可以有一个或多个从机。图1显示了主机和从设备之间的SPI连接。
来自主机的片选信号用于选择从机。这通常是一个低电平有效信号,被拉高以断开从机与SPI总线的连接。当使用多个从站时,需要来自主机的每个从站单独的片选信号。在本文中,片选信号始终为低电平有效信号。
MOSI和MISO是数据线。MOSI将数据从主设备传输到从设备,MISO将数据从从设备传输到从设备。
数据传输
要开始SPI通信,主机必须发送时钟信号并通过使能CS信号来选择从机。通常片选是低电平有效信号;因此,主站必须在此信号上发送逻辑 0 以选择从站。
SPI 是一个全双工接口;主站和从站可以分别通过MOSI和MISO线路同时发送数据。在SPI通信期间,数据同时被发送(串行移出到MOSI/SDO总线上)和接收(总线(MISO/SDI)上的数据被采样或读入)。串行时钟边沿同步数据的移位和采样。SPI接口使用户能够灵活地选择时钟的上升沿或下降沿来采样和/或转换数据(请参阅器件数据手册以确定使用SPI接口传输的数据位数)。
时钟极性和时钟相位
在SPI中,主机可以选择时钟极性和时钟相位。CPOL 位设置空闲状态下时钟信号的极性。空闲状态定义为 CS 在传输开始时为高并过渡到低电平的时间段,以及当 CS 为低并在传输结束时过渡到高电平的时间段。CPHA位选择时钟相位。
根据CPHA位,上升或下降时钟边沿用于采样和/或移位数据。主机必须根据从机的要求选择时钟极性和时钟相位。根据CPOL和CPHA位选择,有四种SPI模式可用。表1显示了四种SPI模式。
SPI 模式 |
中波尔 | 注册会计师协会 | 空闲状态下的时钟极性 | 用于采样和/或转换数据的时钟相位 |
0 | 0 | 0 | 逻辑低电平 | 数据在上升沿采样,在下降沿移出 |
1 | 0 | 1 | 逻辑低电平 | 数据在下降沿采样,在上升沿移出 |
2 | 1 | 1 | 逻辑高电平 | 数据在下降沿采样,在上升沿移出 |
3 | 1 | 0 | 逻辑高电平 | 数据在上升沿采样,在下降沿移出 |
表 1.
具有CPOL和CPHA的SPI模式
图2至图5显示了四种SPI模式下的通信示例。在这些示例中,数据显示在 MOSI 和 MISO 行上。传输的开始和结束用绿色虚线表示,采样边缘用橙色表示,移位边缘用蓝色表示。(请注意,这些数字仅供说明之用。为了成功进行SPI通信,用户必须参考产品数据手册,并确保满足器件的时序规格)。
图2.
SPI 模式 0,CPOL = 0,CPHA = 0:CLK 空闲状态 = 低电平,数据在上升沿采样,在下降沿移动。
图3显示了SPI模式1的时序图。在此模式下,时钟极性为0,表示时钟信号的空闲状态为低电平。此模式下的时钟相位为1,表示数据在时钟信号的下降沿(由橙色虚线表示)上采样,数据在时钟信号的上升沿(由蓝色虚线表示)上偏移。
图3.
SPI 模式 1,CPOL = 0,CPHA = 1:CLK 空闲状态 = 低电平,数据在下降沿采样并在上升沿移动。
图4显示了SPI模式2的时序图。在此模式下,时钟极性为1,表示时钟信号的空闲状态为高电平。此模式下的时钟相位为1,表示数据在时钟信号的下降沿(由橙色虚线表示)上采样,数据在时钟信号的上升沿(由蓝色虚线表示)上偏移。
图4.
SPI 模式 2,CPOL = 1,CPHA = 1:CLK 空闲状态 = 高电平,数据在下降沿采样并在上升沿移动。
图5显示了SPI模式3的时序图。在此模式下,时钟极性为1,表示时钟信号的空闲状态为高电平。此模式下的时钟相位为0,表示数据在时钟信号的上升沿(由橙色虚线表示)上采样,数据在时钟信号的下降沿(由蓝色虚线表示)上偏移。
图5.
SPI 模式 3,CPOL = 1,CPHA = 0:CLK 空闲状态 = 高电平,数据在上升沿采样,在下降沿移动。
多从配置
多个从站可以与单个SPI主机一起使用。从站可以以常规模式或菊花链模式连接。
图6.
多从SPI配置。
常规 SPI 模式
在常规模式下,需要从主机为每个从站单独选择芯片。一旦片选信号被主器件使能(拉低),MOSI/MISO线路上的时钟和数据就可供所选从机使用。如果使能多个片选信号,MISO线路上的数据就会损坏,因为主机无法识别哪个从机正在传输数据。
从图6可以看出,随着从站数量的增加,来自主机的片选线数量也会增加。这可以快速增加主站所需的输入和输出数量,并限制可以使用的从站数量。有不同的技术可用于增加常规模式下的从站数量;例如,使用多路复用器生成片选信号。
菊花链法
在菊花链模式下,从站的配置使得所有从站的片选信号连接在一起,数据从一个从站传播到下一个从站。在这种配置中,所有从站同时接收相同的SPI时钟。来自主站的数据直接连接到第一个从站,该从站向下一个从站提供数据,依此类推。
在这种方法中,当数据从一个从站传播到下一个从站时,传输数据所需的时钟周期数与菊花链中的从站位置成正比。例如,在图7中,在8位系统中,数据在第三个从机上可用需要24个时钟脉冲,而在常规SPI模式下只有8个时钟脉冲。
图7.
多从SPI菊花链配置。
图8显示了通过菊花链传播的时钟周期和数据。并非所有 SPI 器件都支持菊花链模式(请参阅产品数据表以确认菊花链是否可用)。
图8.
菊花链配置:数据传播。
支持 SPI 的交换机和多路复用器
支持SPI的最新一代开关可显著节省空间,而不会影响精密开关性能。本文的这一部分讨论一个案例研究,说明支持 SPI 的交换机或多路复用器如何显著简化系统级设计并减少所需的 GPIO 数量。
ADG1412是一款四通道、单刀单掷(SPST)开关,需要将四个GPIO连接到每个开关的控制输入端。图9显示了微控制器和一个ADG1412之间的连接。
图9.
微控制器 GPIO 作为开关的控制信号。
随着电路板上开关数量的增加,所需的 GPIO 数量显著增加。
例如, 在 设计 测试 仪器 系统 时, 会 使用 大量 开关 来 增加 系统 中 的 通道 数量。在4×4交叉点矩阵配置中,使用四个ADG1412。该系统将需要 16 个 GPIO,限制了标准微控制器中可用的 GPIO。
图10显示了使用微控制器的16个GPIO连接四个ADG1412的过程。
图 10.
在多从配置中,所需的 GPIO 数量大大增加。
减少 GPIO 数量的一种方法是使用串行至并行转换器,如图 11 所示。该器件输出可连接到开关控制输入的并行信号,并且可通过串行接口SPI进行配置。这种方法的缺点是通过引入附加组件来增加物料清单。
图 11.
使用串行至并行转换器的多从开关。
另一种方法是使用 SPI 控制的开关。这种方法的优点是减少了所需的GPIO数量,还消除了额外的串行至并行转换器的开销。如图12所示,只需7个微控制器GPIO即可向4个ADGS1412提供SPI信号,而不是16个微控制器GPIO。
图 12.
支持 SPI 的开关可节省微控制器 GPIO。
交换机可以配置为菊花链配置,以进一步优化 GPIO 计数。在菊花链配置中,无论系统中使用的开关数量如何,主设备(微控制器)仅使用四个 GPIO。
图 13 用于说明目的。ADGS1412数据手册建议在SDO引脚上安装上拉电阻(有关菊花链模式的更多详细信息,请参阅ADGS1412数据手册)。
图 13.
支持以菊花链形式配置的交换机,以进一步优化 GPIO。
为简单起见,此示例中使用了四个开关。随着系统中开关数量的增加,电路板简单和节省空间的好处是显著的。支持ADI SPI的开关采用4×8交叉点配置,6层板上有8个四通道SPST开关,可减少20%的整体电路板空间。
-
微控制器
+关注
关注
48文章
7475浏览量
150984 -
传感器
+关注
关注
2548文章
50580浏览量
751545 -
寄存器
+关注
关注
31文章
5308浏览量
119955
发布评论请先 登录
相关推荐
评论