SPI有4个信号,主机输输出/从机输入(MOSI)、主机输入/从机输出(MISO)、串行时钟(SCLK或SCK)和外设片选(CS)。与标准的串行端口相比,SPI是一个同步协议接口,所有的传输都参照一个共同的时钟。在与多芯片通信时,需要主机通过触发从设备的芯片的片选输入引脚来选择接收数据的从设备,没有被选中的外设将不会参与SPI传输。
在某一些芯片上MISO有时被称为串行输出(SO),或者串行数据输出(SDO)。MOSI有时被称为串行输入(SI),或者串行数据输入(SDI)。
我们在通过SPI总线,在主机和从机之间传输数据时,必须保证主机发出的时序和从机所要求的时序一致才可以。这就与时钟极性和时钟相位相关了。
时钟极性简称CPOL,指SPICLK空闲时的电平状态。
时钟相位简称CPHA,指采样数据是在SPICLK的那一个边沿进行。如果采样数据是在SPICLK的第一个边沿进行的,表示CPHA=0,如果采样数据是在第二个边沿进行的,表示CPHA=1。