最后更新:2022-04-15 16:03
目录
SPI总线协议概述
串行与并行通信
SPI通信介绍
SPI的工作原理
时钟
从属选择
多个从站
常规方法
菊花链方法
MISO和MOSI
SPI 数据传输步骤
SPI 的优缺点
优点
缺点
常见总线汇总
SPI是许多类型设备使用的标准通信协议,如SD读卡器模块、RFID读卡器模块和2.4GHz无线发射机/接收器与使用SPI的微控制器接口。
电气设备之间的通信与人与人之间的通信类似,因为双方必须使用同一种语言,在电子设备中,这些语言被称为通信协议,包括SPI、UART、I2C等大众通信协议。
最初,我们将先探讨一些基本的 电子通讯概念, 然后再探索SPI的内部功能。
SPI,I2C和UART诉USB以太网,蓝牙和无线网络服务协议的进展速度要慢得多。但它们更简单,硬件和系统资源的消耗减少。SPI、I2C和UART是微型控制器之间以及微型控制器与不需要大量高速数据发送的传感器之间通信的理想条件。
电子设备相互交流,在实际连接设备的电缆上传递数据包。通过通过空位 设备就能通讯位是二进制的,只能是1或0。电压波动是由电压突变造成的。从一个装置转换到另一个装置在5-V操作系统中,0V的电压值为0,此外,5V的电压值等于1。
在平行通信中,数据比特同时传送,每个比特通过不同的指南发送。下图描述了二进制(010011)conveyedparallel通信中字母“C”的平行传输,数据比特同时传送,每个比特通过单独的指南发送。下图描述了二进制(010011)中字母“C”的平行传输:

在连续通信中,一字一字通过一条根线逐字传递。下图描述了二进制(010011)中字母“C”的序列传输:

SPI的一个明显特征是,可以不间断地提供数据。使用连续流,您可以发送或接收来自任何多个地点的数据。使用了I2C和UART。信息以数据包的形式发送。将位数限制在特定数字中 。每个包件的起始和结束情况由起始和停止条件确定。因此,数据传输中断。
主要关系是通过SPI进行通信的设备。控制装置(通常是微控制器)是主要站点。相反,指令是从主站获得的(通常是通过传感器、显示器或存储芯片)。SPI的最基本结构是单一的主要车站。单从系统,然而,许多台站可以由一个主台站控制(下文说明)。

MOSI(初级输出/输入):数据由主站发送到站台线上。
MISO(主要投入/产出):台站与主台站之间的联系。
SCLK代表时钟信号线。
SS/CS(从机器/芯片中选择):提供数据的主要站点选择线。
所需的线 |
2 |
最大速率 |
高达10Mbps |
同步或异步 |
同步 |
串行或并行 |
串行 |
主机的最大个数 |
1 |
从机的最大个数 |
理论上没有限制 |
事实上,系统载荷电容器限制了台站的数量,从而降低了主台站正确改变电压水平的能力。
时钟信号将主站的数据位置输出与从设备中抽取的位数同步。 因为每个时钟周期发送一个数据, 时钟信号的频率决定数据传输的速度。 SPI 连接总是由主站启动, 主站配置并生成时钟信号 。
同步是指设备共享时钟信号的任何通信技术。 SPI是一个同步的通信协议。 还有一些步骤不需要时钟信号。 例如, 在 UART 通信中, 双方指定了预先配置的波特率, 以决定数据传输的速度和时间 。
SPI 中的时钟极和时钟相属性可用于修改时钟信号。这两个特点相辅相成。当输出位置和位元被抽样标定时。主设备可以调整时钟的极度 。允许输出和取样位置在时钟周期上下移动时钟阶段可以配置为时钟周期第一或第二侧的创建和样本。不管是上还是下都无所谓
在SPI中,主机决定时钟的极度和阶段 。在闲置状态期间, CPOL 位元决定时钟信号的极性 。自由状态的定义是,CS高且在传输开始时转换为低的循环周期。此外,如果CS处于低水平模式,在传输结束时被改为高水平模式。时钟阶段是通过 CPHA 位选择的 。根据CPHA位,在取样和/或数据转移时,使用上下时钟。主机必须根据机器的规格选择时钟极和阶段。根据CCPOL和CPHA的比特设置,提供了四种消费物价指数模式。表中列出了四种消费物价指数模式。
SPI 模式 |
CPOL |
CPHA |
在无所事事的状态下,时钟的两极分化被逆转。 |
取样和/或数据流动的时钟阶段 |
0 |
0 |
0 |
逻辑低电平 |
数据沿着样本线上升,沿着下降线扩散。 |
1 |
0 |
1 |
逻辑低电平 |
数据沿着样本线不断下降 沿着上下向扩散 |
2 |
1 |
0 |
逻辑高电平 |
数据沿着样本线上升,沿着下降线扩散。 |
3 |
1 |
1 |
逻辑高电平 |
数据沿着样本线不断下降 沿着上下向扩散 |
下图展示了 SPI 的四种模式下的通信示例,在这些示例中,数据显示在 MISO和MOSI 线路上。传输的开始和结束由虚线绿色表示,采样边缘以橙色表示,移位边缘以蓝色表示。
模式0
此模式的时钟极度为 0, 表明时钟信号的自由度很低。 此模式的时钟相位为 0, 表明数据在橙色点线上取样, 并沿着蓝色点线向上移动 。

模式1
此模式的时钟极度为 0, 表明时钟信号的自由度很低。 此模式的时钟相距为 1, 表明数据在下降线( 橙色点线) 上取样, 并随时钟信号的下降( 蓝色点线) 移动 。

模式2
在此模式下, 时钟极值为 0, 表明时钟信号的自由度低。 时钟阶段为 1, 表示数据在降线上取样( 以橙色点线为代表), 并沿着上升时钟信号移动( 以蓝色点线为代表 ) 。

模式3
在此模式下, 时钟极值为 0, 表明时钟信号的自由度低。 时钟阶段为 1, 表示数据在降线上取样( 以橙色点线为代表), 并沿着上升时钟信号移动( 以蓝色点线为代表 ) 。

主站点可选择与哪个站点联系,将站点的CS/SS线定在低水平。处于休眠状态,非发射状态,机器选择线保持高水平运行。在主车站,可能有一个以上的CS/SS脚。允许许多连接和停止。如果只有一只CS/SS脚数个通过菊花链从装置连接到中央车站。
SPI可配置为一个主站台和从一个站台到另一个站台的单一传输功能,也可以配置为与由一个主站台控制的许多站台一起工作。 有两个方法可以连接一个以上的站台到主站台站。 如果主站台站有不止一个引擎可以选脚,它可以连接如下:

在常规模式下,对于每台机器,必须从主机中选择一个芯片。一旦主机( 低端) 选中了由芯片选中的信号,对于指定的分点,可以利用MOSI/MICO线上的时钟和数据。如果启用多个芯片选择信号,MISO 线的数据将被损坏 。因为主节点无法确定哪个子节点传输数据。
从图中可以看出,子点数随着子点数的增加而增加。芯片从主节点选择的线条数量也在增加。这可以大大增加主机所需的投入和产出量。此外,将计算机数量保持在最低限度。例如,可以利用一些技术来扩大传统模式下的机器数量;例如,可以使用一些技术来扩大传统模式下的机器数量。利用若干电路中继器生成芯片选择信号。
如果只有一台机器可以选择, 设备可以被推动 。菊花链形式如下:

在菊花链模式下,所有从机器上提取的芯片 都被机器的设置连接在一起信息从一台机器传到另一台机器。在此配置中,机器为所有子点提供相同的 SPI 时钟。主机的数据立即与个人电脑的数据连接。数据由机器提供 从一台机器到另一台机器。依此类推。
在这种方法中,由于数据从一台机器传输到另一台机器,数据传输所需的时钟周期数量与机器在菊花链中的位置有关。例如,在图中,在8位系统中,要使用3的数据,需要24小时脉冲。在标准SPI模式下,第三个只有8钟脉冲。图表描绘了时钟周期以及沿着菊花链传输的数据。并非所有 SPI 设备都支持菊花链模式 。

主机通过MOSI线从机器上连续传输数据。 机器从主设备接收数据, 由MOSI领导 。主机向机器提供的数据往往在最有效的地点列为优先事项。。
MISO 线条链还可以用来将数据发送回主机。从机器传输回主机的数据通常先以最低有效位置发送。。
1. 主机输出时钟发出的信号:

2. 为从机器上启动,将主机的SS/CS设定为低水平:

3. 主机将数据通过MOSI线一次传送到站点。高位先读到

四. 如果需要答复,则通过 MISO 线将机器的数据一次归还给主机一人。低位先读到

使用SPI既有优点也有缺点,在不同的通信协议之间作出选择,了解是否根据项目要求使用SPI,也有好处和缺点,在不同的通信协议之间作出选择,并了解是否根据项目要求使用SPI:
UART是通讯协议
我现在正在审查I2C协议
本文由 在线网速测试 整理编辑,转载请注明出处。