SPI(Serial Peripheral Interface,串行外设接口)
是一种高速、全双工、同步、串行通信总线,3~4线接口,以主从模式工作,收发独立,可以实现多个SPI设备互相连接。
提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。SPI总线由三条信号线组成,分别是SCLK(串行时钟)、SDI(串行数据输入)、SDO(串行数据输出)。当有多个从设备时,还可以增加一条从设备选择线,CS是控制芯片是否被选中的,这样就可以实现在同一总线上多个SPI设备互相连接。
如果用GPIO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
SDI – 主设备数据输入,从设备数据输出;
SDO – 主设备数据输出,从设备数据输入;
SCLK – 时钟信号,由主设备产生;
CS – 从设备使能信号,由主设备控制。
SPI 是一种允许一个主设备启动一个与从设备同步通讯的协议,从而完成数据的交换。SPI是串行协议,也就是说数据是一位一位传输的,这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDI、SDO则基于此脉冲完成数据传输。数据输