接口接口/总线总线/驱动中的串行外设接口(驱动中的串行外设接口(SPI)总线解析及应用)总线解析及应用
串行外设接口 (SPI) 总线是一个工作在全双工模式下的同步串行数据链路。它可用于在单个主控制器和一个
或多个从设备之间交换数据。其简单的实施方案只使用四条支持数据与控制的信号线(图 1): 虽然表1中
的引脚名称来自摩托罗拉开发的SPI标准,但具体集成电路的SPI端口名称往往与图1中所示的不同。 图 1:
基本 SPI 总线 表 1:SPI 引脚名称分配 SPI 数据速率一般在1到70MHz的范围内,字长为从8位及12位
到这两个值的倍数。 数据传输一般由数据交换构成。在主控制器向从设备发送数据时,从设备也向主控制
器发送数据。因此主控制器的内部移位寄存器和从设备
串行外设接口 (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是相应的定时图。