串行外设接口(SPI)是微控制器和外设ic(如传感器、adc、dac、移位寄存器、SRAM等)之间使用最广泛的接口之一。本文简要介绍了SPI接口,然后介绍了Analog Devices支持SPI的开关和mux,以及它们如何帮助减少系统板设计中数字gpio的数量。

SPI是一个同步的、基于主从的全双工接口。来自主服务器或从服务器的数据在上升时钟沿或下降时钟沿上同步。主从机可以同时传输数据。SPI接口可以是3线制或4线制。本文主要介绍流行的4线SPI接口。

接口

图1。SPI配置主和从。

四线SPI器件有四个信号:

  • 时钟(SPI CLK, SCLK)
  • 芯片选择(CS)
  • 主出,从进(MOSI)
  • 主进,从出(MISO)

产生时钟信号的设备称为主设备。主从机之间传输的数据被同步到主机生成的时钟上。与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值低、传输结束时CS值高。CPHA位选择时钟相位。根据CPHA位的不同,上升或下降时钟沿用于采样和/或移动数据。主机必须根据从机的要求选择时钟极性和时钟相位。根据CPOL和CPHA位的选择,有四种SPI模式可用。表1显示了四种SPI模式。

表1。SPI模式与CPOL和CPHA

图2到图5显示了四种SPI模式下的通信示例。在这些例子中,数据显示在MOSI和MISO线上。传输的开始和结束用绿色虚线表示,采样边缘用橙色表示,移动边缘用蓝色表示。请注意,这些数字仅供说明之用。为了成功的SPI通信,用户必须参考产品数据表,并确保满足部件的定时规范。

图2。SPI Mode 0, CPOL = 0, CPHA = 0: CLK idle state = low,数据在上升沿采样,在下降沿移位。

图3显示了SPI模式1的时序图。该模式下,时钟极性为0,表示时钟信号处于低空闲状态。该模式的时钟相位为1,表示时钟信号在下降沿(橙色虚线所示)采样,在上升沿(蓝色虚线所示)移位。

图3。SPI Mode 1, CPOL = 0, CPHA = 1: CLK idle state = low,数据在下降沿采样,上升沿移位。

图4显示了SPI模式2的时序图。该模式下时钟极性为1,表示时钟信号处于高空闲状态。该模式的时钟相位为1,表示时钟信号在下降沿(橙色虚线所示)采样,在上升沿(蓝色虚线所示)移位。

图4。SPI Mode 2, CPOL = 1, CPHA = 1: CLK idle state = high,数据在下降沿采样,上升沿移位。

图5显示了SPI模式3的时序图。该模式下时钟极性为1,表示时钟信号处于高空闲状态。该模式下的时钟相位为0,表示在时钟信号的上升沿(橙色虚线所示)采样,在时钟信号的下降沿(蓝色虚线所示)移位。

图5。SPI Mode 3, CPOL = 1, CPHA = 0: CLK idle state = high,数据在上升沿采样,下降沿移位。

Multislave配置

单个SPI主服务器可以使用多个从服务器。从机可以采用常规连接方式,也可以采用菊花链连接方式。

图6。多slave SPI配置

常规SPI模式:

在常规模式下,每个从机都需要从主机进行单独的芯片选择。一旦芯片选择信号被主芯片启用(拉低),MOSI/MISO线路上的时钟和数据对所选从芯片可用。如果启用了多个芯片选择信号,MISO线路上的数据将被损坏,因为主服务器无法识别哪个从服务器正在传输数据。

从图6中可以看出,随着从机数量的增加,从主机的芯片选择行数量也在增加。这可以迅速增加主服务器需要的输入和输出的数量,并限制可以使用的从服务器的数量。有不同的技术可以用来增加常规模式中的奴隶数量;例如,使用多路复用器生成芯片选择信号。

菊花链方法:

图7。多从SPI菊花链配置。

在雏菊链模式下,从机被配置成所有从机的芯片选择信号被捆绑在一起,数据从一个从机传播到下一个从机。在这种配置中,所有从服务器在同一时间接收相同的SPI时钟。来自主服务器的数据直接连接到第一个从服务器,该从服务器将数据提供给下一个从服务器,以此类推。

在这种方法中,当数据从一个从机传播到下一个从机时,传输数据所需的时钟周期数与从机在菊花链中的位置成正比。例如,在图7中,在一个8位系统中,为了在第3个从站上提供数据,需要24个时钟脉冲,而在常规SPI模式中只需要8个时钟脉冲。图8显示了时钟周期和通过菊花链传播的数据。并非所有SPI设备都支持雏菊链模式。请参考产品数据表确认是否有菊花链

图8。雏菊链配置:数据传播。

SPI启用开关和mux

最新一代的SPI开关提供了显著的空间节省,而不影响精确的开关性能。本文的这一部分将讨论一个案例研究,说明启用SPI的开关或多路复用器如何显著简化系统级设计并减少所需的gpio数量。

作为一个例子,ADG1412是SPST (quad, single pole, single-throw)开关,需要4个gpio连接到每个开关的控制输入。图9显示了微控制器之间的连接。

图9。单片机的GPIO作为开关的控制信号。

随着交换机数量的增加,需要的gpio数量会显著增加。例如,在设计测试仪器系统时,使用大量的开关来增加系统中的通道数量。开云体育官网登录平台网址在4 × 4交叉点矩阵配置中,使用了4个adg1412。该系统将需要16个gpio,限制了标准微控制器中可用的gpio。图10显示了使用微控制器的16个gpio连接四个设备。

图10。在多从配置中,需要的gpio数量会急剧增加。

减少gpio数量的一种方法是使用串行到并行转换器,如图11所示。该设备输出的并行信号可连接到开关控制输入端,该设备可通过串行接口SPI进行配置。这种方法的缺点是由于引入了额外的组件而增加了材料清单。

图11。使用串并联转换器的多从开关。

另一种方法是使用SPI控制开关。这种方法的优点是减少了所需gpio的数量,还消除了额外的串并联转换器的开销。如图12所示,只需要7个微控制器GPIOS就可以向四个设备提供SPI信号,而不是16个微控制器GPIOS。

图12。启用SPI的开关保存微控制器gpio。

交换机可以配置为雏菊链配置,以进一步优化GPIO计数。在雏菊链配置中,不管系统中使用了多少个开关,主控制器(微控制器)只使用了4个gpio。

图13。在菊花链中配置启用SPI的交换机,以进一步优化gpio。

图13是为了说明目的。ADGS1412数据表建议在SDO引脚上使用上拉电阻(有关雏菊链模式的进一步详细信息,请参阅数据表)。为了简单起见,本例中使用了四个开关。随着系统中开关数量的增加,电路板简单性和节省空间的好处是显著的。在本例中,启用SPI的开关在6层板上使用8个四联SPST开关的4 × 8交叉点配置中可减少20%的整体板空间。文章“精密SPI开关增加通道密度提供了关于精确SPI开关配置如何增加通道密度的详细信息。

参考文献

ADuCM3029数据表.Analog Devices, Inc, 2017年3月。

纽金特,斯蒂芬。”精密SPI开关配置增加通道密度.”模拟对话2017年5月。

米盖尔,Usach。AN-1248应用说明:SPI接口.Analog Devices, Inc., 2015年9月。


作者的传记

Piyu Dhaker是北美模拟设备中心应用小组的应用工程师。她于2007年毕业于圣何塞州立大学,获得电气工程硕士学位。Piyu于2017年6月加入北美中央应用集团。她还曾在ADI的汽车动力总成集团和动力管理集团工作。