关于SPI通信的时序描述。
摩托罗拉公司制定,SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,传输时高位在前,低位在后,并且在芯片的管脚上只占用四根线。通过两个8位的移位寄存器,一位一位的串行传输。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)、CS(片选)。当只有点对点传输,而CS引脚只做片选功能使用的时候,CS也可以不用(CS做使能功能时,不能不接),最少的情况就是占用两个引脚使用。
几种通信方式的区别: http://www.eeworld.com.cn/mcu/ic459393.html
SPI通信时序详解: https://blog.csdn.net/ce123_zhouwei/article/details/6895408
SPI四个模式:CPOL(0空闲为低)和CPHL(0第一个跳变沿采样,第二个输出), 因为主从设备是在SCLK的控制下,同时发送和接收数据,并通过2个双向移位寄存器来交换数据。上升沿主机SDO发送数据1,同时从设备SDO发送数据0;紧接着在SCLK的下降沿的时候从设备的SDI接收到了主机发送过来的数据1,同时主机也接收到了从设备发送过来的数据0。 SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。
优点:信号线少,节约管脚,节约pcb空间;协议简单,数据传输相对来讲比较快。发送结束中断标志;写冲突保护;总线竞争保护等。
缺点:没有指定的流控制,也没有应答机制,收到与否不确定。