SPI(Serial Peripheral Interface,串行外设接口)总线系统是一种同步串行外设接口;
SPI(Serial Peripheral Interface,串行外设接口)可以使CPU(SoC,主设备)与各种外围设备(从设备)以串行方式进行通信以交换信息;
SPI接口一般使用4条线:
SCLK(Serial Clock):串行时钟线
MISO(Master In Slave Out):主机输入/从机输出数据线、
MOSI(Master Out Slave In):主机输出/从机输入数据线
SS(slave select)、CS(chip select):(一般)低电平有效的从机选择线
SPI总线的空闲状态、数据沿采样由CPOL(Clock polarity)、CPHA(Clock phase)组合配置决定:
CPOL=0,CPHA=0(最常用):spi总线空闲态为低电平、在第一个时钟边沿采样数据(此时为上升沿)
CPOL=0,CPHA=1:spi总线空闲态为低电平、在第二个时钟边沿采样数据(此时为下降沿)
CPOL=1,CPHA=0:spi总线空闲态为高电平、在第一个时钟边沿采样数据(此时为下降沿)
CPOL=1,CPHA=1:spi总线空闲态为高电平、在第二个时钟边沿采样数据(此时为上升沿)
时序图:
SPI常用的通信接口函数:
参考资料:Linux设备驱动开发详解:基于最新Linux4.0内核