SPI(串行外设接口)是一种由摩托罗拉(现为NXP)开发的同步、全双工串行通信协议,专为短距离高速数据传输设计。其核心特点是主从架构、硬件简单、无寻址开销,广泛应用于嵌入式系统中微控制器与外设的连接。
一、SPI的核心特性
1. 通信架构
-
主从模式:
-
主设备(Master):生成时钟信号(SCLK),控制通信时序。
-
从设备(Slave):被动响应主设备指令,同一总线上可挂载多个从设备。
-
-
信号线:
-
SCLK(Serial Clock):主设备输出的时钟信号。
-
MOSI(Master Out Slave In):主设备发送数据到从设备。
-
MISO(Master In Slave Out):从设备发送数据到主设备。
-
SS/CS(Slave Select/Chip Select):主设备通过拉低对应片选信号激活从设备。
-
2. 数据传输
-
全双工通信:数据在MOSI和MISO线上同时传输。
-
时钟边沿同步:数据在SCLK的上升沿或下降沿采样(由CPOL和CPHA决定)。
-
数据帧格式:通常以字节(8位)为单位,支持MSB(高位优先)或LSB(低位优先)传输。
3. 时钟模式(CPOL与CPHA)
-
CPOL(Clock Polarity):
-
0:时钟空闲时为低电平。
-
1:时钟空闲时为高电平。
-