SPI简介
- SPI(Serial Peripheral Interface)是一种高速的,全双工,同步的串行通信总线
- SPI采用主从方式的工作,一般是一主多从的形式,不建议多个主机
- SPI至少要4根线,分别是MISO(主输入从输出),MOSI,SCLK(时钟线),CS(片选Chip select),片选线用于选择从机,可以有多个片选线。
寻址方式
主机要和某个从机进行通信时,主机需要先向对应的从机的片选(CS)线上发送使能信号,这个信号可能是高电平也可能是低电平,通过这个使能信号表示选择从机。
通信过程
- SPI总线在传输数据时,是先发高位再发低位 。
- SPI总线发送完一个字节后,接收方不需要应答直接发下一个字节
- SPI总线是同步工作方式,因为有时钟线SCLK,时钟线在上升沿或者下降沿时发送器发数据,紧接着的下降沿或上升沿接收器接数据。
- SPI总线通信没有起始和结束信号
SPI总线有四种不同工作方式,取决于极性(CPOL)和相位(CPHL)两个因素。
- CPOL表示SCLK空闲时候的状态,0表示空闲是低电平,反之是高电平。
- CPHL表示采样时刻,0表示每个周期的第一个时钟沿采样,反之是第二个时钟沿采样。
四种工作方式如下,
CPOL=0 CPHL=0
CPOL=0 CPHL=1
CPOL=1 CPHL=0
CPOL=1 CPHL=1
备注:对于特定的从设备,出厂就会将其设计会特定工作模式,配置时不许保证主机与从机的模式一样才能进行通信。