SPI通信协议基础

发布时间:2023-03-07  

引言

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

电子设备之间的通信就像人类之间的通信。双方都需要说相同的语言。在电子学中,这些语言称为 通信协议。对我们来说幸运的是,在构建大多数DIY电子产品项目时,我们只需要知道一些通信协议即可。

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

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

正文

串行与并行通信

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

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



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



SPI通信简介

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

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

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



  • MOSI(主机输出/从机输入) –主机将数据发送到从机的线路。

  • MISO(主机输入/从机输出) –从机将数据发送到主机的线路。

  • SCLK(时钟) –时钟信号线。

  • SS / CS(从站选择/芯片选择) –主站用于选择向其发送数据的从站的线路。



实际上,从站的数量受系统负载电容的限制,这降低了主机在电压电平之间准确切换的能力。

SPI如何运作?

时钟

时钟信号将主设备的数据位输出同步到从设备的位采样。每个时钟周期传输一位数据,因此数据传输的速度取决于时钟信号的频率。由于主机配置并生成时钟信号,因此SPI通信始终由主机启动。

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

可以使用时钟极性和时钟相位的属性来修改SPI中的时钟信号。这两个属性共同定义了何时输出位以及何时对其进行采样。主机可以设置时钟极性,以允许在时钟周期的上升沿或下降沿输出和采样位。可以设置时钟相位,以便在时钟周期的第一沿或第二沿进行输出和采样,而不管它是上升还是下降。

从机选择

主机可以通过将从机的CS / SS线设置为低电压电平来选择要与之通信的从机。在空闲,非传输状态下,从选择线保持在高电压电平。主机上可能有多个CS / SS引脚,这允许多个从机并行连接。如果仅存在一个CS / SS引脚,则可以通过菊花链将多个从机连接到主机。

多个从机

可以将SPI设置为与单个主机和单个从机一起运行,并且可以与由单个主机控制的多个从机一起设置。有两种方法可以将多个从站连接到主站。如果主机具有多个从机选择引脚,则从机可按以下方式并联:



如果只有一个从设备选择引脚可用,则可以通过以下方式菊花链连接从设备:



MOSI和MISO

主机通过MOSI线以串行方式将数据发送到从机。从机通过MOSI引脚接收主机发送的数据。从主机发送到从机的数据通常先发送最高有效位。

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

SPI数据传输步骤

  1. 主机输出时钟信号:


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



  1. 主机沿着MOSI线一次将数据发送给从机。从站读取接收到的位:



  1. 如果需要响应,则从机沿着MISO线一次将数据返回一位给主机。主机读取接收到的位:



SPI的优缺点

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

优点

  • 没有起始位和停止位,因此数据可以连续流传输而不会中断

  • 没有像I2C这样复杂的从站寻址系统

  • 数据传输速率比I2C更高(几乎快两倍)

  • 分开的MISO和MOSI线路,因此可以同时发送和接收数据

缺点

  • 使用四根线(I2C和UART使用两根线)

  • 没有确认已成功接收数据的确认(I2C拥有此功能)

  • 没有任何形式的错误检查,如UART中的奇偶校验位

  • 只允许一个主机


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>