SPI通信总线

news/2024/12/28 12:48:00/

SPI通信总线

注意

常用的内部通信接口:UART、IIC、SPI,大多数是用于芯片之间的通信,特点是速度快,距离比较短

常用的外部通信接口:RS-232,RS-485,CAN,大多用于远距离传输,要求抗干扰能力强

SPI介绍

SPI 是由摩托罗拉(Motorola)公司开发的全双工同步串行总线,是微处理控制单元(MCU)和外围设备之间进行通信的同步串行端口。主要应用在EEPROM、Flash、实时时钟(RTC)、数模转换器(ADC)、网络控制器、MCU、数字信号处理器(DSP)以及数字信号解码器之间。

SPI 系统可直接与各个厂家生产的多种标准外围器件直接接口,一般使用4 条线:串行时钟线SCLK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI 和低电平有效的从机选择线CS

在这里插入图片描述

通信线说明
CSSlave设备选择线,也叫片选线,低电平有效(有些手册又称为NSS)
SCLK时钟信号,由Master产生,用于同步
MOSIMaster Out Slave Input,主机数据输出,从机数据输入
MISOMaster Input Slave Out,主机数据输入,从机数据输出

起始信号:CS由高变低,为SPI通讯的起始信号

停止信号:CS由低变高,为SPI通讯的停止信号

说明: SPI总线为主从模式,起始信号由主机发出,通过CS选择与之通信的从机,停止信号也由主机发出,结束本次通信。

SPI通信是主从模式,在有多个从机的情况下,从机通过拉低CS线来与主机通信,主机只能与一个从机通信,不能多从机,不然数据会混乱

注意:MOSI和MISO不能交叉连接

通信过程

4线SPI进行通讯时首先拉低CS片选信号选中目标从机,因为SPI可以进行多机通讯,然后SCK要产生连续的脉冲信号,在每个SCK信号的边沿MISO线上的数据(高电平为1,低电平为0,电平由Slave控制)传输到主机Master而MOSI线上的数据(高电平为1,低电平为0,电平由Master控制)传输到从机Slave

数据传输时高位在前,低位在后

通信模式

SPI共有4种通讯模式,由CPOL与CPHA控制。

CPOL-> 0:SCLK空闲时低电平 1:SCLK空闲时高电平

CPHA->0:奇数边沿采集数据 1:偶数边沿采集数据

在这里插入图片描述

经过CPOL和CPHA的组合,有4种模式

模式0:CPOL = 0,CPHA = 0 (SCLK空闲时低电平,奇数边沿采集数据,即上升沿采集,下降沿发送)

模式1:CPOL = 0,CPHA = 1 (SCLK空闲时低电平,偶数边沿采集数据,即下降沿采集,上升沿发送)

模式2:CPOL = 1,CPHA = 0 (SCLK空闲时高电平,奇数边沿采集数据,即下降沿采集,上升沿发送)

模式3:CPOL = 1,CPHA = 1 (SCLK空闲时高电平,偶数边沿采集数据,即上升沿采集,下降沿发送)

注意:为了确保通讯正常,主机与从机的通讯模式需要匹配。

如果不一致,导致的后果如下:

比如主机工作在模式0(上升沿采集数据,下降沿发送数据),从机工作在模式1(下降沿采集数据,上升沿发送)。下降沿时,主机发送数据,从机立马采集数据,此时数据不稳定,通讯失败;上升沿时,从机发送数据,主机立马采集数据,数据也不稳定,通讯也失败。

正常通讯应该如下:

主机处于模式0,从机处于模式3:主机下降沿发数据,从机上升沿采集数据

从机处于模式0,主机处于模式3:从机下降沿发数据,主机上升沿采集数据

主机处于模式1,从机处于模式2:主机上升沿发数据,从机下降沿采集数据

从机处于模式1,主机处于模式2:从机上升沿发数据,主机下降沿采集数据

参考:

https://zhuanlan.zhihu.com/p/548826158

https://www.cnblogs.com/jiek/p/15501171.html

https://mp.weixin.qq.com/s/o_oYGlfGhm815sy6xNnXfw

https://mp.weixin.qq.com/s/g2bGmGmI2DTbOmLIlkBiTABiTA


http://www.ppmy.cn/news/571980.html

相关文章

常见总线协议

常见总线协议 前言一、UART1、概述2、电路连接图3、通信协议4、波特率5、传输方向6、数据传输7、UART / RS232 / RS4858、CTS/RTS流控9、例子10、优缺点 二、SPI1、概述2、电路连接图3、通信协议3.1、时钟极性(CPOL)和时钟相位(CPHA&#xff…

3-系统总线

【README】 1.本文总结自B站 《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐; 2.补充:冯洛伊曼计算机由5大部分组成: 1. 运算器2. 控制器3. 存储器4. 输入设备5. …

M_BUS总线技术概述

M_BUS 总线,全称 Meter-bus,是一种专门用于各类仪表或装置的远程读数或读取相关信息的网络系统结构。采用远程读数的欧洲抄表总线标准,广泛运用于水、电、气等部门的远程抄表系统,这种总线对楼宇自动化事业及相关的应用有着极端的重要作用。 …

6--总线

文章目录 一.总线概述(一)总线特性(二)总线分类1.按功能分/按连接的部件分(1)片内总线/CPU内部总线(2)系统总线(3)通信总线/外部总线 2.按数据传输格式分&…

总线通信控制

总线通信控制 一、目的二、总线传输周期三、总线通信的四种方式1、同步通信同步通信数据输入过程同步通信数据输出过程 2、异步通信3、半同步通信4、分离式通信 一、目的 在主模块获得总线使用权后,主设备会和从设备进行信息交换,而总线通信控制的目的就…

CHI总线概述

CHI(Coherent Hub Interface)总线用于根据系统性能、功耗、面积的设计需求,来构建片内互连的小型、中型和大型系统。 基于CHI系统上的组件包括单CPU、CPU簇、GPU、存控、IO桥、PCIe子系统,和内部互连本身。 基于CHI系统的基本特…

SMBUS的介绍与访问

博文是为了总结自己在bios学习上面的点点滴滴,并且加深印象,由于本人水平有限,难免存在不足之处,望指正,同时感谢CSDN提供的平台。本文主要介绍的是SMBUS。 1 SMBUS的简介 特点: SMBUS,System …

总线(Bus)

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制…