-
关于SPI协议
1)SPI是串行外设接口(Serial Peripheral Interface)的缩写;
2)是一种高速的,全双工,同步的通信总线;
3)在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。
4)正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议。(来自百度)
-
对SPI协议的直观理解(话不多说、先上图,如下)
-
SPI协议特性
SPI总线包括4条逻辑线,定义如下:
MISO:Master input slave output 主机输入,从机输出(数据来自从机);
MOSI:Master output slave input 主机输出,从机输入(数据来自主机);
SCLK :Serial Clock 串行时钟信号,由主机产生发送给从机;
SS:Slave Select 片选信号,由主机发送,以控制与哪个从机通信,通常是低电平有效信号。
其他制造商可能会遵循其他命名规则,但是最终他们指的相同的含义。以下是一些常用术语;
MISO也可以是SIMO,DOUT,DO,SDO或SO(在主机端);
MOSI也可以是SOMI,DIN,DI,SDI或SI(在主机端);
NSS也可以是CE,CS或SSEL;
SCLK也可以是SCK;
-
对SPI协议的深入理解
1)spi是同步的数据总线,具有单独的时钟和数据,分主机和从机,支持全双工。
2)spi的时钟频率(速率),时钟极性 CKP/Clock Polarity,时钟相位 CKE /Clock Phase (Edge),均可配置,且必须遵循SPI模式。
3)简单总结就是极性和相位配置为相同值为上升沿采样,不相同为下降沿采样。
3)SPI模式
SPI的时钟极性和相位的配置通常称为 SPI模式,所有可能的模式都遵循以下约定;具体如下表所示;
除此之外,我们还应该仔细检查微控制器数据手册中包含的模式表,以确保一切正常。
3)spi支持一主多从,方法有:
①多NSS,每次只拉低其中一个NSS。
②菊花链,缺点是串行传输,容易宕机或造成链路崩溃。
拓展:在数字通信世界中,在设备信号(总线信号或中断信号)以串行的方式从一 个设备依次传到下一个设备,不断循环直到数据到达目标设备的方式被称为菊花链。
-
SPI协议优点
全双工,高速数据传输速率,配置简单,数据长度不限,硬件结构简单,从站不需要唯一地址,从机使用主机时钟(不需要晶振),不需要收发器。
-
SPI协议缺点
无硬件从机应答信号,仅支持一个主设备,需要多个引脚,无定义硬件级别的错误检查协议,仅支持较短的距离(远不如RS232和CAN总线)。
-
参考文献
SPI协议详解(图文并茂+超详细梳理)