1. SPI的简介和应用场景
SPI通信协议由摩托罗拉公司于20世纪80年代中期开发而成,SPI是种一个串行设接口,高速,全双工,同步的通信总线,芯片上只占用了四根线,这能大大的节约了芯片的管脚,
应用的设备有:一般的闪存Flash, EEPROM,SD卡,液晶显示屏等设备
2. SPI 的优势和缺点
2.1 SPI总线的优势
1.全双工,高速率传输 ,比如比I2C 传输速率更高
2.推免输出接口,推挽输出接口能够减少走线分叉
3.信号完成性强,通信协议灵活
4.消息帧可任意调节
5.功耗低,电路简单 ,不需要上拉电阻,功耗可以更低
6.软件配置简单
2.2 SPI总线的缺点
1.单一主设备号通常只能支持一个主设备号
2.传输距离短,一般只适合板内信号传输
2.缺少硬件检查协议,没有硬件级别的错误检查协议
4.无法内部寻址,多从设备时需要额外的片选信号线
3.SPI信号线介绍
3.1 SPI 信号逻辑线
SPI总线包括4条信号逻辑线,定义如下
MISO:Master inout slave output 主机输入,从机输出(数据来自从机)
MOSI: Master output slave input 主机输出,从机输出(数据来自主机)
SCLK:serial Clock 串行时钟信号,由主机产生发送给从机
CS:片选信号,由主机发送,以控制与那个从机通信,通常时低电平为有效信号
3.2 SPI 接线方式
spi接线方式分别由二种分别是常规的独立从机配置和菊花链配置
1.常规的独立从机配置
常规的独立从机配置,每个从机都需要一条单独的CS线,当主机要更特定的从机通信时,将相应的CS信号线拉低,并保持其他CS信号线为高,同时因为从机的MISO脚,再同一条信号上,因此要求没有被选择的从机的MISO引脚要配置为高组态输出
2.菊花链配置
我们一般以信号线以串行的方式从一个设备依次传到下一个设备,直到数据到达目标设备的数据传输方式称为菊花链。
菊花链缺点:如果从机出现单点故障时,那么低于该设备优先级的从机就掉线了,距离主机越远的从机获得服务的优先级就越低。所以需要设置总线检测器,并安排好从机的优先级。如果某个从机超时应及时处理,放置单点故障造成整个链路的崩溃。菊花链充分的使用了SPI移位寄存器的功能,每个从机在下一个时钟周期,将输入数据复制到输出。
4. SPI 配置模式
SPI 可以根据时钟极性CKP和时钟相位CKE配置成四种模式
CKP:配置时钟默认状态
CKE:选择采样时钟边沿
CKP = 0时空闲电平为低 电平0
CKP = 1时空闲电平为高 电平1,
CKE用于选择在那个时钟边沿进行数据的采样,
CKE = 0 时钟信号的一个跳变沿采样
CKE = 1 时在时钟的第二个跳变沿采样
5. SPI 总线通信协议
SPI 是一种通信通信的总线协议,数据线根据不同的配置,在时钟的上升沿(电平从低到高)或下降沿(从高到低)进行采样
spi通信的时序如下
1.主机先将对应从机的CS信号拉低,通知从机开始建立连接,数据接收端检测到时钟的边沿信号后,就立即开始读取数据线上的信号
SPI是全双工的,主机在发送数据的同时也在接收数据,主机可以通过查询的方式,来判断从机是否由数据需要发送,如果由主机会继续发送数据。来获取从机想要的发送的数据。之后从机只需要丢掉这些无效数据 (Dummy Data) 就可以了。
参考连接:B站SPI总线视频