SPI总线

二、SPI总线
特点:双全工、同步、高速、主从工作模式;
组成:三条信号线 SCLK(串行信号)、SDI(串行数据输入)、SDO(串行数据输出),当多个设备挂载在总线上可以增加片选信号,选定从设备;
SPI是一个环形总线结构,由SS (CS)、SCK、SDI、SDO构成,时序很简单,在SCK的控制下,两个双向移位寄存器进行数据交换。寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。SSPSR控制数据移入移出SSPBUF,controller确定SPI总线的通信模式。
SPBUF:Synchronous Serial Port Buffer,泛指SPI设备里面的内部缓冲区,一般在物理上是以FIFO的形式,保存传输过程中的临时数据;
SSPSR:Synchronous Serial Port Shift Register,泛指SPI设备里面的移位寄存器,根据设置好的数据位宽把数据移入或移出SSPBUF;
Controller:泛指SPI设备里面的控制寄存器,通过配置寄存器来设置SPI总线的传输模式。 通常情况下,只需要对四个pin进行编程即可控制SPI设备之间的数据通信;
SCK(Serial Clock):主要作用是主设备向从设备传输时钟信号,控制数据交换的时机和速率SS/CS(Slave Select/Chip Select):用于主设备片选从设备,使被选中的从设备能够被主设备访问SDO/MOSI(Serial Data Output/Master Out Slave In):在主设备上也被称为Tx-channel(发送端),作为数据的出口,主要用于SPI设备发送数据;
SDI/MISO(Serial Data Input/Master In Slave Out):在主设备上也被称为Rx-channel(接收端),作为数据的入口,主要用于SPI设备接收数据;
传输时序
4中工作模式  SPI接口有四种不同的数据传输时序,取决于时钟极性(CPOL)和时钟相位(CPHA)的组合。时钟相位设置读取数据和发送数据的时钟沿
即假设当CPOL=0 CPHA=0时 
当没有数据时为低电平 当有数据时会发送电平变化 在第一个边沿到来时主设备的SDI会接收从设备的数据 当第二个边沿到来时主设备的SDO会发送数据给从设备 使用的是双向移位