当前位置: 首页 >应用方案 >技术应用 >

SPI通信总线接口定义及数据传输流程

续接上文串行外设接口SPI通信协议详解本文小编详细的 介绍了SPI总线接口定义和数据传输、通信流程等等,详细技术请看下文内容:

SPI总线是一种高速的、全双工的、同步的通信总线,并且至多仅需使用4根线,节约了芯片的管脚,SPI通信协议主要应用于EEPROM、FLASH、ADC、DAC等射频芯片,还有数字信号处理器和数字信号解码器之间。

SPI接口无线模块设备之间采用全双工模式通信,是一个主机和一个或者多个从机的主从模式。主机负责初始化帧,这个数据传输帧可以用于读与写两种操作,片选线可以从多个从机选择一个来响应主机的请求。

SPI接口定义如下表:

SPI接口定义

由上表也可以看出当SPI设备间数据传输通信时,数据线应该是MOSI连接MOSIMISO连接MISO,SCLK与SCLK相连,而不是像串口那样TX、RX进行反接。当只有单一SPI无线模块从机设备时,如果从机设备允许的话,可直接将CS/SS线固定在低电平。然而类似于MAX1242这款需要CS/SS线的下降沿来触发的射频芯片,则必须将CC/SS线与主机相连。如下图,为一主一从连接方式。

一主一从连接方式

对于多个从机设备时,则每个从机都需要一根CS/SS线来于主机相连,从而达到主机能与任一从机通信的目的。如下图,为一主多从的连接方式。

一主多从连接方式

大多数从机设备都有着三态逻辑的特性,因此当设备未被选中时,它们的MISO信号线会变成高阻抗状态(电气断开)。没有三态输出的设备则需外接三态缓冲器才能与其他的从机设备共享SPI总线。

数据传输

在SPI通信中,SPI主机设备以从机设备支持的频率通过SCLK线给到SPI从机设备,这点也意味着从机是无法主动向主机发送数据的,只能主机轮询向从机发或者从机设备主动通过一个IO口来告知主机数据到达。

在SPI每个时钟周期内,都会进行一次全双工数据的传输。主机通过MOSI线上发送1bit时,从机也会在读取到之后通过MISO线发送1bit数据出去。这说明,即使只进行单工通信,也会保持此通信顺序。

SPI传输通常涉及到两个给定了字长的移位寄存器。例如在主机、从机中的8bit的移位寄存器。它们以虚拟环形拓扑连接,数据通常先从最高有效位被移出。在时钟沿,主机和从机都移出1bit数据从传输线上给到对方。在下一个时钟边沿来到时,双方的接收器再对传输线上的该bit进行采样,并将其设置为移位寄存器的新的最低有效位。在寄存器位被移出和移入后,主机和从机交换了寄存器值。如果需要交换更多数据,则重新加载移位寄存器并重复该过程。传输可以持续任意数量的时钟周期。完成后,主机停止切换时钟信号。如下图,为主从机之间的交互时的移位寄存器示意图。

SPI传输移位寄存器

其中上图的通信流程如下:

1.SPI主机首先将SS或CS线拉低,以此来告知SPI从机通信开始

2.主机通过发送SCLK时钟信号,来告知从机即将进行的读写操作。这里的SCLK时钟信号是由SPI的模式来决定是高电平还是低电平有效的,这点在稍后会进行介绍。

3.主机(Master)将要发送的数据写到发送数据缓存区(Memory),缓存区经过移位寄存器(0~7),串行移位寄存器通过MOSI信号线将字节一位一位移出去传送给从机,同时MISO接口接收到的数据经过移位寄存器一位一位移到接收缓存区。

4.从机(Slave)也将自己的串行移位寄存器(0~7)中的内容通过MISO信号线返回给主机。同时通过MOSI信号线接收主机发送的数据,这样,两个移位寄存器中的内容就被交换。

查看技术文章和免费咨询技术问题可以访问成都亿佰特电子科技有限公司官网及各官方平台:

微信号:cdebyte

今日头条:亿佰特

新浪微博:成都亿佰特

https://www.wjx.cn/jq/84863372.aspx