电子发烧友网 > 接口/总线/驱动 > 正文

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

2018年01月31日 17:11 次阅读

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


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


图1:基本SPI总线


表1:SPI引脚名称分配


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

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


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


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

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


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


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

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

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

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

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

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

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


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


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

菊花链从设备只需要主控制器提供一个从设备选择信号,因为这种配置要求所有从设备同时启用,以确保数据不间断地流经该链路中的所有移位寄存器。典型应用是工业I/O模块中的级联多通道输入串行器与输出驱动器。

技术专区

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

深度解析Linux SPI总线和设备驱动架构

SPI控制器不用关心设备的具体功能,它只负责把上层协议驱动准备好的数据按SPI总线的时序要求发送给S...

发表于 2018-02-07 08:16 1227次阅读
深度解析Linux SPI总线和设备驱动架构

现有的外设接口的优缺点解析以及一种新型外设接口的...

电路连接都是有VCC,GND两根电源线的,后面不再赘述了。应用的外设都局限在板载的一些低速低通信量芯...

发表于 2018-01-26 17:25 966次阅读
现有的外设接口的优缺点解析以及一种新型外设接口的...

终于看懂了iic与spi这两种通讯协议了

IIC vs SPI现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrat...

发表于 2017-11-02 11:06 5729次阅读
终于看懂了iic与spi这两种通讯协议了

面向接口的编程——SPI总线和IIC总线

无论采用哪种总线都使用时钟信号和数据/控制线,时钟信号由 MCU 主机进行控制。用于控制的信号线中的...

发表于 2017-10-26 18:20 2209次阅读
面向接口的编程——SPI总线和IIC总线

一文读懂SPI串行外设接口

SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。正是...

发表于 2017-04-27 15:19 701次阅读
一文读懂SPI串行外设接口

从基带到射频的物联网测试

 物联网(IoT)已经是持续了一些年的一个热词,智能家居产品的研制在国内外也开始轰轰烈烈地行动起来。...

发表于 2015-08-30 21:09 1217次阅读
从基带到射频的物联网测试

SPI总线协议的通信原理及应用举例

SPI的通信原理 很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根...

发表于 2012-08-28 11:16 2435次阅读
SPI总线协议的通信原理及应用举例

SPI4.2总线应用和调试

SPI4.2总线(System Packet Interface,系统间数据包接口)是一种速度高达1...

发表于 2012-01-04 15:56 1670次阅读
SPI4.2总线应用和调试

基于FPGA的SPI总线在软件接收机上的应用

本文通过FPGA实现了射频前端GPS/北斗模式的切换,为将来射频前端多模设计奠定了基础,并且可通过外...

发表于 2011-06-03 11:41 875次阅读
基于FPGA的SPI总线在软件接收机上的应用

SPI总线在51系列单片机系统中的应用

本文介绍了通过SPI总线接口实现数据传输的实现方法,给出了用MCS51单片机汇编语言模拟SPI串行总...

发表于 2011-05-09 10:22 1685次阅读
SPI总线在51系列单片机系统中的应用

SPI总线在XF-S4240与MCS51通信中的...

  SPI 总线技术是Motorola公司推出的一种同步串行接口。它可以使MCU与各种外围设备以串行...

发表于 2010-10-11 10:37 755次阅读
SPI总线在XF-S4240与MCS51通信中的...

基于SPI总线的无线数据传输系统设计

基于SPI总线的无线数据传输系统设计   摘要: 通过基于SPI总线的无线数据通信设备,利用无线数...

发表于 2010-03-13 11:42 2087次阅读
基于SPI总线的无线数据传输系统设计