新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > SPI通信协议:单片机spi通信接口什么意思,spi接口干什么用的?

SPI通信协议:单片机spi通信接口什么意思,spi接口干什么用的?

作者:时间:2023-12-13来源:无际单片机编程收藏

讲真,以前做开发的时候最怕就是调spi和iic。

本文引用地址:http://www.eepw.com.cn/article/202312/453850.htm

因为公司没有逻辑分析仪,调起来全凭经验,一出问题找都找不到,只能仔细看代码盲调,看是不是哪个时序有问题。

说到这里,可能刚初学的小伙伴会问:单片机是什么鬼?spi接口是干什么用的?

一、单片机是什么鬼?

单片机是一个可编程的微控制器,和其实是两个独立的东西。

只不过我们用单片机可以去实现spi通信而已,但是实现spi通信不一定非要单片机。

我们人和人之间沟通,要靠说话,并且两个人语言要一样,比如说都用普通话。

那芯片和芯片沟通,它们又不会说话,怎么传递信息呢?

就是通过通信总线,通信总线有很多种,比如IIC、SPI、USART、CAN,它们的区别就像普通话、英语、韩语、俄语,都是用来传递信息用的,只是传递方式不同。

但传递信息,有一个前提,就是语言要相同,也就是通信方式要相同。

所以说,spi是一种通信方式,是用来传递信息的。

不同的通信方式,传递信息的方式不同。

Spi是一种全双工、高速的、同步的通信总线。

简单来说,就是你们两个可以同时快速地说话,你能把你要说的告诉对方,同时也能听到对方说什么,这就是全双工。

还有一种叫半双工,就是你们同时只能有一个人说,另一个听,说完了,另外一个才能说。

很明显,全双工传递信息的效率更高吧。

同步的意思我给你们两个对话设定个条件,比如说我说开始你们才可以对话,我说停止就都不能说话。

二、spi接口是干什么用的?

我们人和人传递信息一般是靠耳朵和嘴巴对吧?

Spi通信传递信息是通过接口,来看下图:


spi接口有4根线,分别是CS、SCLK、MOSI、MISO。

SCLK是同步信号,一般由主控来控制。

既然是通信,自然是需要有个”对象”,如上图A和B。

A是SPI Master,也就是主控,比如说单片机,一般就是主控的角色,主控来负责发送SCLK同步信号通知SPI Slave是否需要进行数据通信。

B是SPI Slave,也就是从机,比如说Flash芯片。

CS代表片选信号,为什么要用片选呢?

因为一个SPI Master可以跟不同的SPI Slave进行通信。


SPI Master就是通过CS来控制,具体跟哪个SPI Slave通讯,控制CS为低电平就代表选中该SPI Slave。

如果说只跟一个从设备通讯,也可以直接把CS串联电阻接地,省的每次都去控制它。

MOSI英文全称是Master Output Slave Input,这个一般接主控器件数据输出引脚,从机器件数据输入引脚。

MISO英文全称是Slave Input Master Output,这个一般接主控器件数据输入引脚,从机器件数据输出引脚。

除此以外,还有一种特殊的用法,就是只用SCLK和MOSI这两个引脚的SPI通信。

比如说我们无际单片机编程实战项目课程里有个OLED屏的应用。


片选引脚CS我直接硬件接地了,因为只有一个从设备。

我们主要是控制OLED屏去显示内容,并不需要从OLED读取数据,所以MISO也不需要。

这种情况是可以只用2根线的。

所以,这种协议要从本质上去理解它们,不需要死记硬背要接几个引脚,你学废了吗?




关键词: MCU spi通信

评论


相关推荐

技术专区

关闭