历史上的今天
返回首页

历史上的今天

今天是:2025年08月05日(星期二)

正在发生

2019年08月05日 | 一文了解SPI总线工作原理、优缺点和应用案例

2019-08-05 来源:EEWORLD

将微控制器连接到传感器,显示器或其他模块时,您是否考虑过两个设备之间如何通信?他们到底在说什么?他们如何能够相互理解?

电子设备之间的通信就像人类之间的通信,双方都需要说同一种语言。在电子学中,这些语言称为通信协议。幸运的是,在构建大多数DIY电子项目时,我们只需要了解一些通信协议。在本系列文章中,我们将讨论三种最常见协议的基础知识:串行外设接口(SPI),内部集成电路(I2C)和通用异步接收器/发送器(UART)驱动通信。

首先,我们将从一些关于电子通信的基本概念开始,然后详细解释SPI的工作原理。

SPI,I2C和UART比USB,以太网,蓝牙和WiFi等协议慢得多,但它们更简单,使用的硬件和系统资源也更少。 SPI,I2C和UART非常适用于微控制器之间以及微控制器和传感器之间的通信,在这些传感器中不需要传输大量高速数据。


图片.png?imageView2/2/w/550


串行与并行通信

电子设备通过物理连接在设备之间的导线发送数据位来相互通信,有点像一个字母中的字母,除了26个字母(英文字母表中),一个位是二进制的,只能是1或0。通过电压的快速变化,位从一个设备传输到另一个设备。在工作电压为5V的系统中,0位作为0V的短脉冲通信,1位通过5V的短脉冲通信。

数据位可以并行或串行形式传输。在并行通信中,数据位是同时发送的,每个都通过单独的线路。下图显示了二进制(01000011)中字母“C”的并行传输:

图片.png?imageView2/2/w/550

在串行通信中,通过单线逐个发送这些位。下图显示了二进制(01000011)中字母“C”的串行传输:


图片.png?imageView2/2/w/550


SPI通信简介

许多设备都采用了SPI通用通信协议。例如,SD卡模块,RFID读卡器模块和2.4 GHz无线发送器/接收器都使用SPI与微控制器通信。

SPI的一个独特优势是可以不间断地传输数据。可以连续流发送或接收任意数量的比特。使用I2C和UART,数据以数据包形式发送,限制为特定的位数。启动和停止条件定义每个数据包的开始和结束,因此数据在传输过程中会被中断。

通过SPI通信的设备处于主从关系。主设备是控制设备(通常是微控制器),而从设备(通常是传感器,显示器或存储器芯片)接收来自主设备的指令。最简单的SPI配置是单主机,单从机系统,但是一个主机可以控制多个从机(下面将详细介绍)。

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间。


图片.png?imageView2/2/w/550


(1)MISO– Master Input Slave Output,主设备数据输入,从设备数据输出;


(2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入;


(3)SCLK – Serial Clock,时钟信号,由主设备产生;


(4)CS – Chip Select,从设备使能信号,由主设备控制。


图片.png?imageView2/2/w/550

*实际上,从设备的数量受到系统负载电容的限制,受主设备在电压电平之间精确切换的能力。

SPI如何工作

时钟

时钟信号将来自主设备的数据位输出与从设备的位采样同步。在每个时钟周期传输一位数据,因此数据传输的速度由时钟信号的频率决定。由于主设备配置并生成时钟信号,因此SPI时钟始终为主设备的时钟。

设备共享时钟信号的任何通信协议称为同步。SPI是一种同步通信协议,还有一些不使用时钟信号的异步方法。例如,在UART通信中,双方都设置为预先配置的波特率,该波特率决定数据传输的速度和时间。

SPI中的时钟信号可以使用时钟极性和时钟相位属性进行修改。这两个属性协同工作以定义何时输出以及何时对它们进行采样。时钟极性可由主机设置,以允许在时钟周期的上升沿或下降沿输出和采样。时钟相位也可以由主机设置,以便在时钟周期的第一个边沿或第二个边沿上进行输出和采样,无论是上升还是下降。

从设备选择

主设备可以通过将从设备的CS / SS线设置为低电压电平来选择要通话的从设备。在空闲非传输状态中,从选择线保持在高电压电平。主机上可能有多个CS / SS引脚,以允许多个从机并联连接。如果只有一个CS/SS引脚,则可以通过菊花链将多个从器件连接到主器件。

多个从设备

SPI可以设置为使用单个主设备和单个从设备进行操作,也可以设置通过单个主设备控制多个从设备。有两种方法可以将多个从站连接到主站。如果主机有多个从机选择引脚,则从机可以并联连接,如下所示:

图片.png?imageView2/2/w/550
如果只有一个从选择引脚可用,则从器件可以菊花链式连接,如下所示:


图片.png?imageView2/2/w/550

MOSI和MISO

主机通过MOSI线串行发送数据到从机。从器件接收MOSI引脚上的主器件发送的数据。从主设备发送到从设备的数据通常首先以最高有效位发送。

从机还可以通过串行的MISO线路将数据发送回主机。从从设备发送回主设备的数据通常首先以最低有效位发送。

SPI数据传输步骤

1.主机输出时钟信号:
图片.png?imageView2/2/w/550

2.主器件将SS / CS引脚切换到低电压状态,从而激活从器件:

图片.png?imageView2/2/w/550

3.主机沿MOSI线一次一位地向从机发送数据。从机在接收到的位时读取这些位:

图片.png?imageView2/2/w/550

4.如果需要响应,从站将沿着MISO线一次一位地向主站返回数据。主机在接收到的位时读取这些位:

图片.png?imageView2/2/w/550


SPI的优点和缺点

使用SPI有一些优点和缺点,如果在不同的通信协议之间进行选择,您应该根据项目的要求知道何时使用SPI:

优点

没有启动和停止位,因此数据可以连续流式传输而不会中断
没有复杂的从机寻址系统,如I2C
比I2C更高的数据传输速率(几乎快两倍)
单独的MISO和MOSI线,因此可以同时发送和接收数据

缺点

使用四根线(I2C和UART使用两根)
无法确认数据已成功接收(I2C已执行此操作)
没有错误检查,如UART中的奇偶校验位
仅允许单个主机

推荐阅读

史海拾趣

CEVA, Inc公司的发展小趣事

面对不断变化的市场环境和技术挑战,CEVA公司积极应对,抓住机遇。例如,在执行编码标准并降低许可证风险方面,CEVA的DevOps/实时开发团队面临着在更高效地执行编码标准的同时降低许可证相关风险的挑战。公司通过优化开发流程、提升自动化水平等方式,成功应对了这一挑战。同时,CEVA也通过增加站点布局、拓建电商能力、提升产品竞争力等手段,抓住市场机遇,迎接未来。

Defender Security公司的发展小趣事

随着云计算的普及,企业对于云安全的需求日益增长。Defender Security公司敏锐地捕捉到了这一市场趋势,迅速推出了云安全服务产品。他们通过整合先进的安全技术和专业的安全团队,为企业提供了全方位的云安全保护。随着云安全服务的不断拓展和优化,Defender Security逐渐成为了云安全领域的领军企业。

Cembre SPA公司的发展小趣事

在追求经济效益的同时,Cembre SPA也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和生产工艺,减少对环境的影响。此外,公司还积极参与社会公益事业,为社会做出贡献。这种负责任的态度不仅赢得了社会各界的认可,也为公司的长远发展奠定了坚实基础。

这五个故事展示了Cembre SPA在电子行业中的发展历程和取得的成就。通过技术创新、国际化战略、品质至上和社会责任等措施,公司逐渐在电气连接和固定技术领域树立起了自己的品牌形象和市场地位。

德旭电子(DEXU)公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,德旭电子深知只有不断创新才能在竞争中立于不败之地。因此,公司始终坚持技术创新和产业升级的战略方向。

德旭电子在产品研发方面不断投入大量人力物力,积极引进国内外先进技术和管理经验。同时,公司还加强与高校、科研机构的合作与交流,共同开展技术研发和人才培养工作。这些举措使得德旭电子在技术创新方面取得了显著成果,不断推出具有市场竞争力的新产品和新技术。

Carlisle Interconnect Technologies公司的发展小趣事

Carlisle Interconnect Technologies(当时名为Tensolite)的创业之路始于1940年,在纽约Tarrytown的一个小工厂里。公司创始人凭借对微型绝缘电线和电缆的深刻理解和前瞻视野,开创了绝缘电线电缆的新纪元。Tensolite这个名称,象征着产品的高拉伸强度和紧凑轻巧的特性,这种创新的设计理念很快在市场上赢得了口碑。公司的第一根绝缘线产品成功应用于电加热,为第二次世界大战期间的空军飞行员提供了温暖的手套和飞行服,这一成就不仅彰显了公司的技术实力,也为后续发展奠定了坚实的基础。

Goldentech Discrete Semiconductor Inc公司的发展小趣事

在快速发展的同时,Goldentech始终关注环境保护和社会责任。公司积极推行绿色制造理念,采用环保材料和节能技术,减少生产过程中的碳排放和资源消耗。此外,Goldentech还投入大量资金研发可回收和可降解的半导体产品,旨在为全球电子行业的可持续发展贡献力量。这一环保理念不仅提升了公司的社会形象,还吸引了更多注重可持续发展的客户和合作伙伴。

问答坊 | AI 解惑

单片机的C语言设计

关于嵌入式方面的我进场用…

查看全部问答>

关于sram的讨论

假设有块片内sram: 2kbyte, single port. 现在有两种形式: 1。做成一块:sram_2048x8 2。做成两块,每块各1kbyte: sram_1024x8  (x2) 现在从三个反面分析这两种形式的优缺点: 面积:哪个大一些? 功耗:哪种功耗大一些?(当然前 ...…

查看全部问答>

S3C6410+wince6.0 怎么实现在视频窗体显示半透明按钮?

S3C6410+wince6.0 怎么实现在视频窗体显示半透明按钮?…

查看全部问答>

谁有《一个操作系统的实现》的源代码

如题,于渊写的 也就是《自己动手写操作系统》的第二版 哪位有请发到我的邮箱: 346921212@qq.com 谢谢…

查看全部问答>

power pcb5.0.1中

power pcb5.0.1中 使用copper pouer命令画了两个长方行框,其中的一个在另一个里面,如何让里面的长方形里面敷铜而不是在他俩之间敷铜.高手指点一下!!!!!!!!!也就是说让里面的type为hatch outline,外面的type为copper pouer,不管采取哪样的敷铜方式.…

查看全部问答>

window7触摸屏驱动及触摸IC接口

请问各位大大,windows7支持哪些接口的触摸屏芯片,usb、I2C、spi还是PS2? 另外,对于多点触摸,windows需要从触摸屏控制芯片得到哪些数据以及数据格式? 以前的单点触摸,触摸屏芯片只要送坐标给系统就可以了,跟鼠标一样,不知道多点触摸跟普 ...…

查看全部问答>

STM32RTC时钟好差劲

                                 不知道为什么,STM32 的RTC时钟那么差劲,我制作了10个装置,时间11个样,运行一个月,时间居然相差不靠谱, ...…

查看全部问答>

PIC单片机的特点及应用

Microchip公司生产的PIC16C72是一款基于EPROM的8位高性能微控制器。与其它价格相当的微控制器相比,它在执行速度和代码压缩方面都有很大的改进。由于随时可以买到需要的OPT(一次性编程)产品,因而缩短了利用PIC16C73进行产品设计开发的周期。 PI ...…

查看全部问答>

求购和申请XILINX FPGA开发板

求购二手,三手,……只要是好用的FPGA开发板+调试工具就行! 邮件我,站内mail我,有效期到2011年12月30日。…

查看全部问答>

STC12C5A60S2系列单片机的低压检测实现

各位大侠您们好,小的查了下STC12C5A60S2的资料,上面对低压检测的讲解只针对于用P1.2作为低压检测口的单片机,事例程序也是。而我用的STC12LE5A48S2单片机,低压检测口是P4.6,在PDF上没查到将P4.6定义为低压检测的方法(事例程序只是针对P1.2口定 ...…

查看全部问答>