信号完整性期刊
www.lambexpress.com/articles/967-introduction-to-spi-interface
拇指

SPI接口介绍

2018年9月18日

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

SPI是一种同步的、全双工的基于主从的接口。在时钟上升沿或下降沿同步来自主从端的数据。主从端可以同时传输数据。SPI接口可以是3线或4线。本文主要讨论流行的4线SPI接口。

接口

图1所示。SPI配置与主和从。

4线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低并向高过渡的时间段。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空闲状态=低,数据在上升沿采样,在下降沿移位。

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

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

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

图4。SPI模式2,CPOL = 1, CPHA = 1: CLK空闲状态=高,数据在下降沿采样,在上升沿移位。

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

图5。SPI Mode 3, CPOL = 1, CPHA = 0: CLK空闲状态=高,数据在上升沿采样,在下降沿移位。

Multislave配置

多个从站可以与单个SPI主站一起使用。从机可以以常规模式或雏菊链模式连接。

图6。多从站SPI配置

常规SPI模式:

在常规模式下,为每个奴隶选择一个单独的芯片需要从主人。一旦芯片选择信号被主设备启用(拉低),时钟和MOSI/MISO线路上的数据可用于被选的从设备。如果启用了多个芯片选择信号,那么MISO线上的数据就会损坏,因为主机无法识别哪个从机正在传输数据。

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

菊花链方法:

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

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

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

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

SPI使能开关和mux

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

举个例子ADG1412是一个四、单极、单掷(SPST)开关,它需要四个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个微控制器gpio就可以向四个设备提供SPI信号,而不是16个微控制器gpio。

图12。SPI使能开关节省了微控制器的gpio。

可以将交换机配置为菊花链配置,以进一步优化GPIO计数。在菊花链配置中,无论系统中使用的开关数量如何,只有4个gpio从主(微控制器)使用。

图13。SPI使能开关配置在菊花链中,以进一步优化gpio。

图13是为了说明目的。ADGS1412数据手册建议在SDO引脚上安装上拉电阻(请参阅数据手册了解菊花链模式的更多详细信息)。为简单起见,本例中使用了四个交换机。随着系统中交换机数量的增加,电路板的简单性和节省空间的好处是显著的。在本例中,启用SPI的交换机在4 × 8交叉点配置中提供了20%的总体板空间减少,在6层板上有8个四SPI交换机。文章"精密SPI开关控制配置增加通道密度提供了精密SPI开关配置如何增加通道密度的详细信息。

参考文献

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

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

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


作者的传记

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

Baidu
map