为什么以及如何使用串行外设接口来简化多个设备之间的连接

嵌入式系统可使用一个或多个处理器或微控制器,在更复杂的系统中执行专用操作。这些嵌入式控制器需要与其他系统元件、传感器甚至其他控制器进行通信。虽然复杂的串行接口和协议很常见,但可能很难进行编程和故障排除,特别是在与之通信的设备数量较少时尤其如此。
设计人员需要具有简单的设备到设备数字接口的微控制器、外设和传感器,以便可以高速处理任意长度的数据,并且省去与协议相关的复杂编程任务。
简单的解决方案是选择带有串行外设接口 (SPI) 的控制器,这样可将控制器连接到一些本地的外设 IC 或传感器。这种接口是一种简单的同步接口,使用硬件寻址并以高达 50 兆赫兹 (MHz) 的时钟速率运行。SPI 不使用需要寻址和状态检查的复杂协议,相反,它是适用于快速数据传输的基本接口,无需复杂接口总线的编程开销。
本文将介绍 SPI 接口的基础知识(包括多种工作模式),然后介绍具有 SPI 接口的微控制器和其他设备,并且说明如何使用 SPI 接口。

什么是 SPI?

SPI 是由摩托罗拉(现为 NXP Semiconductors 公司的一部分)于 1985 年前后开发,是一种适用于短距离、设备到设备通信的同步串行接口。从那时起,这种接口就已成为许多半导体制造商,特别是微处理器和微控制器采用的事实标准。
SPI 之所以广受欢迎,是因为它有很多优点。首先,SPI 是一种简单的硬件寻址接口,在传输的位数方面具有全面的灵活性。该接口采用具有单个主设备的主从模型,可使用以高达 50 MHz 时钟速率运行的全双工通信来处理多个从设备。它不使用标准协议,仅传输数据包,因此非常适合传输长数据流。
SPI 最多可使用四条信号线(图 1)。主设备(通常是处理器或控制器)为时钟 (SCK) 和片选 (CS) 信号线供电并进行控制。全多工操作由数据线“主出从入 (MOSI)”和“主入从出 (MISO)”进行处理。在简单的单主单从配置中,可以省去片选信号线,并将从设备的 CS 输入强制作为启用的逻辑条件。如果从设备只能发送数据(半双工通信),那么还可以省去 MOSI 线,进一步减少信号计数。数据按时钟信号输出,这样数据传输类似于移位寄存器,每个时钟移出一位。
基本 SPI 全双工连接示意图
图 1:基本 SPI 全双工连接使用两条数据线(MOSI、MISO)、一条时钟线 (SCK) 和一条片选线 (CS)。从设备上的 MOSI 有时标记为从设备数据输入 (SDI)。MISO 可标记为从设备数据输出 (SDO)。(图片来源:Digi-Key Electronics)
目前有两种方法可以处理多个从设备(图 2)。
两种处理多个从设备连接的配置示意图
图 2:两种处理多个从设备连接的配置。直接连接方式下每个从设备需要一个片选信号。菊花链连接方式仅使用一个片选信号,并将所有数据集中在一条线上。(图片来源:Digi-Key Electronics)
直接连接方式下每个从设备使用一条片选信号线。大多数微处理器都有三到四条片选线,这就将从设备的最大数量限制为片选线的数量。这在多数情况下不会出现问题,但如果某个设计需要总线上有更多的设备,这时可以使用菊花链方法配置一些设备。通过菊花链,多个从设备可使用一个共用的片选信号,而数据则通过共用数据线流出。这里再次将 SPI 从设备用作移位寄存器,来自从设备的数据可以在串行多路复用流中传播。

SPI 时钟模式

由主设备控制并生成时钟。时钟的两个属性分别是时钟极性 (CPOL) 和时钟相位 (CPHA)。这些属性控制从设备相对数据进行计时的有效时钟边沿。CPOL = 0 时,将时钟设为在逻辑 0 位置空闲。CPOL = 1 时,时钟在逻辑 1 位置空闲。CPHA = 0 时,数据在上升沿计时,CPHA = 1 时,数据在下降沿计时(图 3)。
SPI 时钟模式选择示意图
图 3:SPI 时钟模式选择确定了进行数据采样的有效时钟边沿。(图片来源:Digi-Key Electronics)
主设备中的 CPOL 和 CPHA 线路设置决定了时钟极性以及进行数据计时的有效边沿。模式 1 是最常用的模式,但设计人员同样可以使用其他三种模式。
在示波器上可以观察 SPI 传输的三个信号分量(图 4)。在此示例中,传输的是 8 位数据包。用于观察数据传输的是 Teledyne LeCroy 的HDO4104A 示波器及其 SPI 串行解码选件。
在 Teledyne LeCroy 的 HDO4104A 示波器上查看的 SPI 互换图
图 4:在 Teledyne LeCroy 的 HDO4104A 示波器(配有串行解码选件)上查看的 SPI 互换示例。波形如下:上面的轨迹是数据线,中间的轨迹是时钟,底部的轨迹是片选信号。数据轨迹上的蓝色覆盖区显示的是十六进制解码内容。(图片来源:Digi-Key Electronics)
模式 1 时钟由八脉冲组组成,其中空闲设置为 0 位 (CPOL = 0),数据在后沿或下降沿 (CPHA = 1) 计时。本示例中使用的示波器配有串行解码选件,用于对数据内容进行解码。在数据轨迹上的蓝色覆盖区读出十六进制的数据内容。解码仅与片选信号线被断言(0 电平)时发生的数据有关。总共有 17 个时钟猝发,但只有其中 5 个猝发对应有效片选状态。
波形显示栅格下方的表格中列出了有效数据内容,还有每个数据包相对于示波器触发器的时间以及测量的时钟速率(本例中的速率为 100 kb/s)。每个猝发中的时钟周期数可设定从设备按时钟输出的数据位数。

微处理器 I/O 选择

Microchip Technology 的 ATtiny816-MNR 是多种微控制器的典型代表,因为它支持多个 I/O 接口(图 5)。这款特别的控制器采用高性能、低功耗的 AVR®RISC 架构,运行频率高达 200 MHz。该控制器可由 4 或 8 KB 闪存、256 或 512 字节的 SRAM 以及 128 字节的 EEPROM 进行支持,所有这些存储器均集成在一个 20 引脚封装内。
Microchip Technology 的 ATtiny816 微控制器框图
图 5:Microchip Technology 的 ATtiny816 微控制器框图突出显示了 I/O 端口。该控制器配有一个 SPI 端口和一个 USART 端口,其中 USART 端口可配置为第二个 SPI。(图片来源:Microchip Technology)
此微控制器的接口侧配有一个通用同步和异步收发器 (USART)、一个 I2C 兼容型双线接口 (TWI) 和 SPI。USART 可配置为第二个 SPI 端口。
SPI 可使 AVR 设备和外围设备之间,或几个微控制器之间实现全双工通信。SPI 外设可以配置为主设备或从设备,从而实现微控制器之间的通信。

基于 SPI 的传感器

各种通过 SPI 提供数字数据的传感器可以与集成了 SPI 的大量微处理器和微控制器配套使用。例如,Microchip Technology 的 TC77-3.3MCTTR 数字温度传感器是一种可串行访问的数字温度传感器,适用于小外形尺寸、低成本的应用。TC77 的温度范围为 -55°C 至 +125°C。该传感器采用 2.7 V 至 5.5 V 电源,运行时消耗 250 微安 (μA) 电流,并具有仅消耗 1μA 电流的低功耗关断模式。
在典型应用中,此传感器可通过标准 SPI 连接与处理器相连,其温度数据可格式化为 13 位数字值,如图 6 所示。
Microchip Technology 的 TC77 温度传感器示意图
图 6:Microchip Technology 的 TC77 是一款易于使用的温度传感器,不仅外形小巧,而且成本低廉。此温度传感器可以快速连接到控制器或处理器,将温度读数转换为 13 位数字值。如时序图所示,通过将 CS 信号线断言为逻辑 0 可启动通信。(图片来源:Microchip Technology)
该图显示了 T77 温度寄存器读取操作的时序图。通过断言 CS 信号线并将其置于逻辑 0,可以启动通信。然后,传感器会发送第一位数据。微控制器在 SCK 的上升沿读取数据。随后使用 SCK 的下降沿输出传感器的其余数据。与前面的示例一样,此图也是模式 1 传输,只不过数据字较长。

扩大 SPI 的使用范围

除了在许多微处理器和微控制器中包含 SPI 之外,一些 IC 制造商还增强了该总线的功能。Analog Devices 的 LTC6820 isoSPI 隔离式通信接口就是个很好的例子。该 IC 为使用差分信号并通过一条双绞线连接进行通信的两个 SPI 设备提供电流隔离(图 7)。尽管时钟速率比 10 米距离时的 1 Mb/s 标称速率有所降低,但这种信号模式将 LTC6820 SPI 接口的可用范围延长到远达 100 米 (m)。
Analog Devices 的 LTC6820 隔离器示意图
图 7:一对 LTC6820 隔离器在两个 SPI 设备之间提供电流隔离。该 IC 在 10 米距离支持高达 1 Mb/s 的数据传输速率,在最远 100 米的距离内,时钟速率有所降低。(图片来源:Analog Devices)
隔离由脉冲变压器提供,这种技术通常用于工业网络应用以及读取远程传感器。

结论

SPI 解决了一些应用中对简单、低成本、低开销接口的需求。在这些应用中,可将源描述为数据流,而不是将数据读写到地址位置。这一特性使之成为处理微控制器和传感器、数字化仪、数字信号处理设备以及其他处理器之间的设备到设备通信的理想选择。

用户喜欢...

使用 PCR 模块来快速开发高精度、低功耗的基于雷达传感器

高分辨率 3D 传感器技术已经成为各种应用的一大关键功能,从基于手势的用户界面到汽车驾驶员辅助系统 (ADAS) 等。在各种 3D 传感器技术中,雷达技术具有大多数传统方法所不具备的功能和性...


使用智能传感器的内置机器学习内核可以优化“始终开启”运动跟踪。

消费者对于健身跟踪器和其他个人移动设备具备始终开启运动跟踪功能的需求不断增长,在过去,这意味着设计人员需要在这些功能与电池寿命之间做出取舍。若是尝试降低功耗,势必会牺牲...


一文看懂 TMR传感器

TMR传感器是一种新型的磁性传感器,应用了HHD磁头的高灵敏度播放元件TMR元件。 HDD磁头的播放元件应用了电阻因外部磁场而变的磁阻效应(Magnetoresistance effect)的原理,在1980年代以后,经历了A...


使用真正的微功率霍尔效应传感器使开关更智能

线性霍尔效应传感器 可为消费者技术和物联网应用带来宝贵的优势,但必须实现功耗的显着降低,以满足设备设计人员和最终用户的期望 简介:更好的感知是进步的关键 感测的改进对于提供...


新传感器开发推动BLDC电机控制性能

转向BLDC电机 近年来,在许多终端市场和应用中,用高效无刷直流电动机(BLDC)取代交流电动机或机械泵已经取得了重大进展。使用BLDC电机的一些主要优点包括:更高的功率和热效率,更高的...


飞行时间传感器(ToF)如何工作?看看ToF 3D相机

飞行时间传感器如何确定距离?使用示例3D相机了解有关ToF相机的更多信息。 有三种领先的3D成像技术可以在手机和汽车中竞争空间。这些技术是立体成像,结构光投影和飞行时间(或ToF)相机...


设计快速准确的水源浊度传感器

在人口不断增长和污染意识日益提高的情况下,将湖泊,海洋和河流的水资源保存到饮用水中已变得越来越重要。因此,水分析仪器的设计者面临着尽可能快速,有效和准确地确定水质的挑战。...


应用自询问和诊断功能,确保传感器数据的完整性

传感器和物联网 (IoT) 技术正迅速扩展到工业、商业,甚至是消费领域中。随着这种技术扩展,越来越需要确保来自相关传感器及其前端接口电路的数据保持完整性。 当单个接口 IC 支持多个传感...


空气质量传感器:重新定义环境感应

一直普遍需要能够处理各种物理现象的电子 传感器 ,例如光,压力,声音,当然还有温度(最广泛感测的参数)。好消息是,在为这些测量中的许多测量提供高性能,低成本,易于使用的传感...


聊聊TI独特毫米波技术的毫米波传感器

一直以来,许多技术领先的厂商都致力于开发高度集成的雷达视觉技术,实现精准且不受环境噪音影响的效果。一架巨大的飞机在屏幕上只能呈现为一个点,那已经是过去的老旧雷达屏幕了。现...


计快速准确的水源浊度传感器

在人口不断增长和污染意识日益提高的情况下,保护湖泊,海洋和河流的水资源成为饮用水已变得越来越重要。因此,水分析仪器的设计者面临着尽可能快速,有效和准确地确定水质的挑战。...


通过应用自我询问和诊断确保传感器数据完整性

传感器和物联网(IoT)技术正在迅速扩展到工业,商业甚至消费者环境。随着这种扩展,越来越需要确保来自相关传感器及其前端接口电路的数据的完整性。 当单个接口IC支持多个传感器时,数...


在智能工厂中部署IIoT传感器

我们目前正处于第四次工业革命中,它采用最新的新兴技术来改善所有行业。系统现在能够通过共享设备,机器和工厂信息来连接所有内容。出厂设置中的智能设备能够独立管理制造过程。在制...


使用PPG / ECG组合可穿戴生物传感器模块进行FDA认证的心脏测量

消费者需要来自智能手表,健康频段和其他电池供电的移动设备的更准确的健身和心脏健康数据。为了满足这些期望,开发人员不得不与复杂且昂贵的多组件解决方案进行斗争。这些最终可以提...


使用 ToF 传感器进行距离测量和手势识别的基本原理

很多应用需要在不接触实际物体的情况下,感测物体的存在或距离。这种接近感应需求催生了众多竞争性解决方案,包括光学飞行时间 (ToF) 传感器。虽然这些传感器非常精确,但其成本一直非...


传感器模块缓解室内农业设计挑战

控制环境农业(CEA,也称为 垂直农业, 由于多层设施,容纳作物和基础设施)是一个有前途的利基。通过采用工业物联网(IIoT)并采用全封闭的气候控制环境来消除疾病,害虫或季节性天气变...