深入理解串行外设接口(SPI)总线及应用

深入理解串行外设接口(SPI)总线及应用,第1张

串行外设接口(SPI)总线是一个工作在全双工模式下的同步串行数据链路。它可用于在单个主控制器和一个或多个从设备之间交换数据。其简单的实施方案只使用四条支持数据与控制的信号线(图1):


虽然表1中的引脚名称来自摩托罗拉开发的SPI标准,但具体集成电路的SPI端口名称往往与图1中所示的不同。

深入理解串行外设接口(SPI)总线及应用,第2张


图1:基本SPI总线

深入理解串行外设接口(SPI)总线及应用,第3张


表1:SPI引脚名称分配


SPI数据速率一般在1到70MHz的范围内,字长为从8位及12位到这两个值的倍数。

数据传输一般由数据交换构成。在主控制器向从设备发送数据时,从设备也向主控制器发送数据。因此主控制器的内部移位寄存器和从设备都采用环形设置(图2)。

深入理解串行外设接口(SPI)总线及应用,第4张


图2:双移位寄存器形成一个芯片间的环形缓存器


在数据交换之前,主控制器和从设备会将存储器数据加载至它们的内部移位寄存器。收到时钟信号后,主控制器先通过MOSI线路时钟输出其移位寄存器的MSB.同时从设备会读取位于SIMO的主控器第一位元,将其存储在存储器中,然后通过SOMI时钟输出其MSB.主控制器可读取位于MISO的从设备第一位元,并将其存储在存储器中,以便后续处理。整个过程将一直持续到所有位元完成交换,而主控器则可让时钟空闲并通过/SS禁用从设备。

除设置时钟频率外,主控制器还可根据数据配置时钟极性和相位。这两个分别称为CPOL与CPHA的选项可实现时钟信号180度的相移以及半个时钟周期的数据延迟。图3是相应的定时图。

深入理解串行外设接口(SPI)总线及应用,第5张


图3:时钟极性与相位的定时图


CPOL = 0时,时钟空闲在逻辑0位置上:

如果CPHA = 0,数据在SCK的上升沿读取,在下降沿变化。

如果CPHA = 1,数据在SCK的下降沿读取,在上升沿变化。

CPOL = 1时,时钟在逻辑为高时空闲:

如果CPHA = 0,数据在SCK的下降沿读取,在上升沿变化。

如果CPHA = 1,数据在SCK的上升沿读取,在下降沿变化。

在SPI中,主控制器可与单个或多个从设备通信。如果是一个单从设备,从设备选择信号可连接至从设备的本地接地电位,实现永久接入。对使用多个从设备的应用,可使用两种配置:独立从设备与菊花链从设备(图4)。

深入理解串行外设接口(SPI)总线及应用,第6张


图4:主控制器与独立从设备(左)及菊花链从设备通信(右)


要与从设备单独通信,主控制器必须提供多重从设备选择信号。该配置通常用于必须单独访问多个模数转换器ADC)及数模转换器DAC)的数据采集系统中。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2502067.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存