SPI接口如何帮助减少系统板设计中的数字GPIO数量

串行外设接口 (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)
产生时钟信号的设备称为主设备。主节点和子节点之间传输的数据与主节点生成的时钟同步。spi 器件支持的时钟频率比 i 高得多2c 接口。用户应查阅产品数据手册,了解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模式。
spi 模式 中波尔 注册会计师协会 空闲状态下的时钟极性 用于采样和/或转换数据的时钟相位
0 0 0 逻辑低电平 数据在上升沿采样,在下降沿移出
1 0 1 逻辑低电平 数据在下降沿采样,在上升沿移出
2 1 0 逻辑高电平 数据在上升沿采样,在下降沿移出
3 1 1 逻辑高电平 数据在下降沿采样,在上升沿移出
图2至图5显示了四种spi模式下的通信示例。在这些示例中,数据显示在 mosi 和 miso 行上。传输的开始和结束用绿色虚线表示,采样边缘用橙色表示,移位边缘用蓝色表示。请注意,这些数字仅供说明之用。为了成功进行spi通信,用户必须参考产品数据手册,并确保满足器件的时序规格。
图2.spi 模式 0,cpol = 0,cpha = 0:clk 空闲状态 = 低电平,数据在上升沿采样,在下降沿移动。
图3显示了spi模式1的时序图。在此模式下,时钟极性为0,表示时钟信号的空闲状态为低电平。此模式下的时钟相位为1,表示数据在时钟信号的下降沿(由橙色虚线表示)上采样,数据在时钟信号的上升沿(由蓝色虚线表示)上偏移。
图3.spi 模式 1,cpol = 0,cpha = 1:clk 空闲状态 = 低电平,数据在下降沿采样并在上升沿移动。
图4显示了spi模式3的时序图。在此模式下,时钟极性为1,表示时钟信号的空闲状态为高电平。此模式下的时钟相位为1,表示数据在时钟信号的下降沿(由橙色虚线表示)上采样,数据在时钟信号的上升沿(由蓝色虚线表示)上偏移。
图4.spi 模式 3,cpol = 1,cpha = 1:clk 空闲状态 = 高电平,数据在下降沿采样并在上升沿移动。
图5显示了spi模式2的时序图。在此模式下,时钟极性为1,表示时钟信号的空闲状态为高电平。此模式下的时钟相位为0,表示数据在时钟信号的上升沿(由橙色虚线表示)上采样,数据在时钟信号的下降沿(由蓝色虚线表示)上偏移。
图5.spi 模式 2,cpol = 1,cpha = 0:clk 空闲状态 = 高,数据在上升沿采样并在下降沿移动。
多子节点配置
多个子节点可以与单个 spi 主节点一起使用。子节点可以以常规模式或菊花链模式连接。
常规 spi 模式:
图6.多子节点 spi 配置。
在常规模式下,需要从主节点为每个子节点选择单独的芯片。一旦主器件使能(拉低)片选信号,mosi/miso线路上的时钟和数据就可用于所选子节点。如果启用了多个片选信号,则miso线路上的数据将损坏,因为主节点无法识别哪个子节点正在传输数据。
从图6可以看出,随着子节点数量的增加,来自主节点的片选线数量也在增加。这可以快速增加主节点所需的输入和输出数量,并限制可以使用的子节点数量。在常规模式下,可以使用不同的技术来增加子节点的数量;例如,使用多路复用器生成片选信号。
菊花链法:
图7.多子节点 spi 菊花链配置。
在菊花链模式下,子节点的配置使得所有子节点的片选信号绑定在一起,数据从一个子节点传播到下一个子节点。在此配置中,所有子节点同时接收相同的 spi 时钟。来自主节点的数据直接连接到第一个子节点,该子节点向下一个子节点提供数据,依此类推。
在这种方法中,当数据从一个子节点传播到下一个子节点时,传输数据所需的时钟周期数与菊花链中的子节点位置成正比。例如,在图7中,在8位系统中,需要24个时钟脉冲才能在3位系统上提供数据。rd子节点,而常规spi模式下只有8个时钟脉冲。图8显示了通过菊花链传播的时钟周期和数据。并非所有 spi 器件都支持菊花链模式。请参阅产品数据表以确认是否有菊花链可用。
图8.菊花链配置:数据传播。
adi公司支持spi的开关和多路复用器
支持adi spi的最新一代开关可显著节省空间,而不会影响精密开关性能。本文的这一部分讨论一个案例研究,说明支持 spi 的交换机或多路复用器如何显著简化系统级设计并减少所需的 gpio 数量。
adg1412是一款四通道、单刀单掷(spst)开关,需要将四个gpio连接到每个开关的控制输入端。图9显示了微控制器和一个adg1412之间的连接。
图9.微控制器 gpio 作为开关的控制信号。
随着电路板上开关数量的增加,所需的 gpio 数量显著增加。例如, 在 设计 测试 仪器 系统 时, 会 使用 大量 开关 来 增加 系统 中 的 通道 数量。在4×4交叉点矩阵配置中,使用四个adg1412。该系统将需要 16 个 gpio,限制了标准微控制器中可用的 gpio。图10显示了使用微控制器的16个gpio连接四个adg1412的过程。
图 10.在多子节点配置中,所需的 gpio 数量大大增加。
减少 gpio 数量的一种方法是使用串行至并行转换器,如图 11 所示。该器件输出可连接到开关控制输入的并行信号,并且可通过串行接口spi进行配置。这种方法的缺点是通过引入附加组件来增加物料清单。
图 11.使用串行至并行转换器的多子节点交换机。
另一种方法是使用 spi 控制的开关。这种方法的优点是减少了所需的gpio数量,还消除了额外的串行至并行转换器的开销。如图12所示,只需7个微控制器gpio即可向4个adgs1412提供spi信号,而不是16个微控制器gpio。
图 12.支持 spi 的开关可节省微控制器 gpio。
交换机可以配置为菊花链配置,以进一步优化 gpio 计数。在菊花链配置中,无论系统中使用的开关数量如何,主(微控制器)仅使用四个 gpio。
图 13.支持以菊花链形式配置的交换机,以进一步优化 gpio。
图 13 用于说明目的。adgs1412数据手册建议在sdo引脚上安装上拉电阻。为简单起见,此示例中使用了四个开关。随着系统中开关数量的增加,电路板简单和节省空间的好处是显著的。支持adi spi的开关采用4×8交叉点配置,6层板上有8个四通道spst开关,整体电路板空间减少20%。


光纤激光切割机的优势及特点是什么
关于CXL的功能与特性详解
NB-IoT低成本之迷
三星S8国行版什么时候上市?最新消息:伤了的何止华为P10,三星S8步后尘
功率分析仪测量时不准确怎么解决
SPI接口如何帮助减少系统板设计中的数字GPIO数量
618销量创新高,Nank南卡耳机累计销量突破100万!
苹果市值首次冲关一万亿美元受挫
LTM9001可实现具不同带宽的低通或带通滤波器网络
电缆外护层的结构组成是怎样的,它的作用是什么
Molex 新年首推Nano-Fit电源连接器
滤波器的种类有哪些中篇
晶金电子全自动内层冲孔机助推工业4.0
关于谐波平衡(HB:Harmonic-Balance)分析方
分析GE Digital失败的原因
一男子在自动驾驶过程中睡觉被诉讼
【新专利介绍】一种GPRS电表抄表系统
易控智驾无人驾驶全栈技术与运营方案荣获智能设备荣誉称号
华为畅享9e正式发布采用了珍珠屏设计屏占比高达87%
适用2400MHz和5600MHz频段的三款新型天线和连接电缆