当前位置:   article > 正文

SPI 通信_spi通信

spi通信

一.简介

串行外围设备接口(SPI:Serial Peripheral Interface)总线是由Motorola开发的,用于在从设备之间提供全双工同步串行通信。 SPI总线通常用于与闪存,传感器,实时时钟(RTC),模数转换器等进行通信。SPI是一主多从的总线。 标准SPI主机通过SCK,MOSI,MISO和SS线与从机通信。 从站可以共享SCK,MOSI和MISO信号,而每个从站都有唯一的SS线,SS在SPI中与其他总线协议中的从机地址具有同样的功能。

 这些信号名称可以清楚的标注每条线的含义与主从关系,但是较旧的产品可以具有非标准的SPI端口引脚名称: 串行时钟:SCLK:SCK 主输出→从输入(MOSI): SIMO,MTSR-对应于主设备和从设备上的MOSI,彼此连接 SDI,DI,DIN,SI-在从站设备上; 连接到主机上的MOSI或下面的连接 SDO,DO,DOUT,SO-在主设备上; 连接到从站上的MOSI或以上连接 主输入←从输出(MISO): SOMI,MRST-对应于主设备和从设备上的MISO,彼此连接 SDO,DO,DOUT,SO-在从设备上; 连接到主机上的MISO或下面的连接 SDI,DI,DIN,SI-在主设备上; 连接到从站上的MISO或以上连接 从站选择:SS:S̅S̅,SSEL,CS,C̅S̅,CE,nSS,/ SS,SS#

SPI优点: 支持全双工通信,通信简单,数据传输速率块,多从机。

SPI缺点:  没有指定的流控制,没有应答机制确认是否接收到数据,没有检验位确认数据传输是否出错,所以跟IIC和UART相比较在数据可靠性上有一定的缺陷。

二.通信协议

2.1  Polarity and Clock Phase

SPI总线没有为数据交换定义任何协议,从而限制了开销并允许高速数据流。 可以将时钟极性(CPOL:空闲时电平值)和时钟相位(CPHA:第几个时钟边沿采样)指定为“ 0”或“ 1”,以形成四个独特的模式,以提供主从之间的通信灵活性,如图2所示。

2.2 SPI Transactions

SPI协议没有定义数据流的结构。 数据的组成完全取决于组件设计者。 但是,许多设备使用相同的基本格式来发送和接收数据,从而允许不同供应商的零件之间实现互操作性。

 https://atta.szlcsc.com/upload/public/pdf/source/20160816/1471343031179.pdf

2.3  standard Configurations

SPI信号包括标准串行时钟(SCLK),主机输入从机输出(MISO),主机输出从机输入(MOSI),双向串行数据(SDAT)和从机选择(SS)。

2.4 3-Wire Configurations

除了标准的4线配置之外,SPI总线已扩展为包括各种IO标准,包括用于减少引脚数的3线和用于提高吞吐量的双或四路I / O

3线模式下,MOSIMISO线合并为一条双向数据线,如图3所示。事务是半双工的,以允许双向通信。 减少数据线的数量并以半双工模式运行还会降低最大可能的吞吐量。 许多3线器件对性能的要求较低,因此在设计时应考虑到低引脚数

2.5 Multi-IO Configurations

I/O和四I/O之类I/O变体在标准SPI基础上增加了额外的数据线,以提高吞吐量。 利用多种I/O模式的组件可以与并行设备的读取速度相媲美,同时仍可以减少引脚数。 这种性能的提高使得可以从闪存(就地执行)中进行随机访问并直接执行程序

当与高速设备通信时,Quad I/O设备可以提供的性能是标准4线SPI4倍。 图4显示了一个单Quad IO从设备配置的示例。

大多数从设备都具有三态输出,因此当未选择该设备时,其MISO信号会变为高阻抗(电气断开)。 没有三态输出的设备在不使用外部三态缓冲器的情况下无法与其他设备共享SPI总线段。

 2.6  interrupt

SPI设备有时使用另一条信号线将中断信号发送到主机CPU。 例如触摸屏传感器的笔尖中断,温度传感器的温度极限警报,实时时钟芯片,SDIO 发出的警报以及手机声音编解码器中的耳机插孔插入。 SPI标准不涵盖中断; 标准既不禁止也不禁止使用它们。 换句话说,中断不在SPI标准的范围之内,可以选择独立于其执行。

2.7  Multi slave  standard configuration

SPI支持一主多从,最简单的连接方式如下图所示,时钟线与信号线多从机共用,片选信号CS单独与主机相连,CS的作用与其他通信协议中的地址作用相同。

2.8 Multi slave Daisy chain configuration

某些实现SPI的产品可能以菊花链配置连接,第一个从设备输出连接到第二个从设备输入,依此类推。每个从设备的SPI端口设计为在第二组时钟脉冲期间发出与之完全相同的副本。 在第一组时钟脉冲期间接收到的数据。 整个链充当通信移位寄存器; 菊花链通常通过移位寄存器完成,以通过SPI提供一组输入或输出。 每个从机在下一个时钟周期将输入复制到输出,直到低电平有效SS线变为高电平为止。 这样的功能仅需要来自主机的一条SS线,而不需要每个从机的一条单独的SS线

(转)SPI常见传输错误解答_lanxinyuchs的专栏-CSDN博客http://www.dzsc.com/data/html/2011-3-25/89304.html 1. SPR设定错误  在从器件时钟频率小于主器件时钟频率时,如果SCK的速率设得太快,将导致接收到的数据不正确(SPI接口本身难以判断收到的数据是否正确,要在软件中处理)。  整个系统的速度受三个因素影响:主器件时钟CLK主、从器件时钟CLK从和同步串行时钟SCK,其中SCK...https://blog.csdn.net/lanxinyuchs/article/details/84355750

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/454993
推荐阅读
相关标签
  

闽ICP备14008679号