spi总线工作原理和优缺点 spi总线的通信原理

将微控制器连接到传感器,显示器或其他模块时,您是否考虑过两个设备之间如何通信?他们到底在说什么?他们如何能够相互理解?
电子设备之间的通信就像人类之间的通信,双方都需要说同一种语言 。在电子学中,这些语言称为通信协议 。幸运的是,在构建大多数 DIY 电子项目时,我们只需要了解一些通信协议 。在本系列文章中,我们将讨论三种最常见协议的基础知识:串行外设接口(SPI),内部集成电路(I2C)和通用异步接收器/发送器(UART)驱动通信 。
首先,我们将从一些关于电子通信的基本概念开始,然后详细解释 SPI 的工作原理 。
SPI,I2C 和 UART 比 USB,以太网,蓝牙和 WiFi 等协议慢得多,但它们更简单,使用的硬件和系统资源也更少 。SPI,I2C 和 UART 非常适用于微控制器之间以及微控制器和传感器之间的通信,在这些传感器中不需要传输大量高速数据 。

spi总线工作原理和优缺点 spi总线的通信原理

文章插图
串行与并行通信
电子设备通过物理连接在设备之间的导线发送数据位来相互通信,有点像一个字母中的字母,除了 26 个字母(英文字母表中),一个位是二进制的,只能是 1 或 0 。通过电压的快速变化,位从一个设备传输到另一个设备 。在工作电压为 5V 的系统中,0 位作为 0V 的短脉冲通信,1 位通过 5V 的短脉冲通信 。
数据位可以并行或串行形式传输 。在并行通信中,数据位是同时发送的,每个都通过单独的线路 。下图显示了二进制(01000011)中字母“C”的并行传输:
spi总线工作原理和优缺点 spi总线的通信原理

文章插图
在串行通信中,通过单线逐个发送这些位 。下图显示了二进制(01000011)中字母“C”的串行传输:
spi总线工作原理和优缺点 spi总线的通信原理

文章插图
SPI 通信简介
许多设备都采用了 SPI 通用通信协议 。例如,SD 卡模块,RFID 读卡器模块和 2.4 GHz 无线发送器/接收器都使用 SPI 与微控制器通信 。
SPI 的一个独特优势是可以不间断地传输数据 。可以连续流发送或接收任意数量的比特 。使用 I2C 和 UART,数据以数据包形式发送,限制为特定的位数 。启动和停止条件定义每个数据包的开始和结束,因此数据在传输过程中会被中断 。
通过 SPI 通信的设备处于主从关系 。主设备是控制设备(通常是微控制器),而从设备(通常是传感器,显示器或存储器芯片)接收来自主设备的指令 。最简单的 SPI 配置是单主机,单从机系统,但是一个主机可以控制多个从机(下面将详细介绍) 。
SPI 是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间 。
spi总线工作原理和优缺点 spi总线的通信原理

文章插图
(1)MISO– Master Input Slave Output,主设备数据输入,从设备数据输出;
(2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入;
(3)SCLK – Serial Clock,时钟信号,由主设备产生;
(4)CS – Chip Select,从设备使能信号,由主设备控制 。
spi总线工作原理和优缺点 spi总线的通信原理

文章插图
*实际上,从设备的数量受到系统负载电容的限制,受主设备在电压电平之间精确切换的能力 。
SPI 如何工作
时钟
时钟信号将来自主设备的数据位输出与从设备的位采样同步 。在每个时钟周期传输一位数据,因此数据传输的速度由时钟信号的频率决定 。由于主设备配置并生成时钟信号,因此 SPI 时钟始终为主设备的时钟 。
设备共享时钟信号的任何通信协议称为同步 。SPI 是一种同步通信协议,还有一些不使用时钟信号的异步方法 。例如,在 UART 通信中,双方都设置为预先配置的波特率,该波特率决定数据传输的速度和时间 。
SPI 中的时钟信号可以使用时钟极性和时钟相位属性进行修改 。这两个属性协同工作以定义何时输出以及何时对它们进行采样 。时钟极性可由主机设置,以允许在时钟周期的上升沿或下降沿输出和采样 。时钟相位也可以由主机设置,以便在时钟周期的第一个边沿或第二个边沿上进行输出和采样,无论是上升还是下降 。
从设备选择
主设备可以通过将从设备的 CS / SS 线设置为低电压电平来选择要通话的从设备 。在空闲非传输状态中,从选择线保持在高电压电平 。主机上可能有多个 CS / SS 引脚,以允许多个从机并联连接 。如果只有一个 CS/SS 引脚,则可以通过菊花链将多个从器件连接到主器件 。