掌桥专利:专业的专利平台
掌桥专利
首页

一种主从交替SPI通信方法、主设备、从设备及系统

文献发布时间:2023-06-19 18:29:06


一种主从交替SPI通信方法、主设备、从设备及系统

技术领域

本申请涉及信息通信领域,尤其涉及一种主从交替SPI通信方法、主设备、从设备及系统。

背景技术

SPI是微型计算机(单片机)常用的一种4线外设接口,其主要形式分为主、从两种模式,主模式为主动方,从模式为被动方。对于标准的SPI而言,如图1所示,主设备与从设备通过4根SPI信号线连接实现数据传输与交换,主要功能如表1所示:

表1

片选(SS):主动方(主方)输出,指示SPI的有效,低电平有效;被动方(从方)依据片选信号开始和结束工作;

时钟(CLK):主动方(主方)输出时钟;被动方(从方)依据时钟接收或发送数据;

数据线MOSI(主出从入):主动方(主方)数据输出;被动方(从方)数据输入;数据有效与时钟(CLK)对齐;

数据线MISO(主入从出):主动方(主方)数据输入;被动方(从方)数据输出;数据有效与时钟(CLK)对齐。

标准SPI的特点包括:

(1)SPI分为主和从,主设备为主动方,无论是读/写/边读边写,均为主动发起端。从设备为被动方,无论是读/写/边读边写,均需要主设备发起访问才可以完成。

(2)对于命令-响应并返回结果的结构中,特别是命令执行时间不确定,且时间相差较大的情况下,如图2所示,该结构有很大的缺点:

第一步:主设备发起命令,从设备接收命令;

第二步:主设备等待从设备执行命令,至从设备命令完成;

第三步:主设备发起读取结果,从设备输出命令执行结果。

上述命令-响应并返回结果的结构中,第二步需要主设备等侍从设备执行命令,但由于执行时间的不确定,一般是按照最大执行时间去等待。等待时间到了,才可以发去第三步读取结果。如果等待时间不够,命令尚未处理完成,则导致错误结果。

有别于上述命令-响应并返回结果的结构,另一种方式是等待期间不断发起查询SPI命令,同时查询命令完成情况,一旦查询结果是完成,则发起第三步,如图3所示。其优点是不用按照最长时间去等待,缺点是查询本身也会影响从设备的命令执行,造成命令执行的时间延长。

发明内容

为解决上述技术问题之一,本发明提供了一种主从交替SPI通信方法、主设备、从设备及系统。

本发明实施例第一方面提供了一种主从交替SPI通信方法,所述方法应用于主设备中,所述方法包括:

将所述主设备的SPI模式设置为主模式,并在所述主模式下,所述主设备向从设备发送命令/数据;

将所述主设备的SPI模式设置为从模式,并在所述从模式下接收从设备主动发送的响应/数据。

优选地,所述方法还包括:

所述主设备在未向从设备发送命令/数据,以及在未接收从设备发送的响应/数据时,所述主设备的SPI模式设置为从模式。

本发明实施例第二方面提供了一种主从交替SPI通信方法,所述方法应用于从设备中,所述方法包括:

将所述从设备的SPI模式设置为从模式,并在所述从模式下,所述从设备接收主设备发送的命令/数据;

所述从设备接收并执行所述主设备发送的命令/数据,生成响应/数据;

将所述从设备的SPI模式设置为主模式,并在所述主模式下,主动向主设备发送响应/数据。

优选地,所述方法还包括:

所述从设备在未接收主设备发送的命令/数据,以及在未主动向主设备发送响应/数据时,所述从设备的SPI模式设置为从模式。

本发明实施例第三方面提供了一种主从交替SPI通信方法,所述方法包括:

将所述主设备的SPI模式设置为主模式,将所述从设备的SPI模式设置为从模式,并在所述主设备的SPI模式为主模式、所述从设备的SPI模式为从模式下,所述主设备向从设备发送命令/数据;

所述从设备接收并执行所述主设备发送的命令/数据,生成响应/数据;

将所述从设备的SPI模式设置为主模式,将所述主设备的SPI模式设置为从模式,并在所述从设备的SPI模式为主模式、所述主设备的SPI模式为从模式下,所述从设备主动向主设备发送响应/数据。

优选地,所述方法还包括:

所述主设备在未向从设备发送命令/数据,以及在未接收从设备发送的响应/数据时,所述主设备的SPI模式设置为从模式;

所述从设备在未接收主设备发送的命令/数据,以及在未主动向主设备发送响应/数据时,所述从设备的SPI模式设置为从模式。

本发明实施例第四方面提供了一种主设备,所述主设备包括处理器、传输指示信号端SS、传输时钟信号端CLK和至少一个数据信号端MOSI,所述处理器,其被配置有处理器可执行的操作指令,以执行如本发明实施例第一方面所述的主从交替SPI通信方法。

本发明实施例第五方面提供了一种从设备,所述从设备包括处理器、传输指示信号端SS、传输时钟信号端CLK和至少一个数据信号端MOSI,所述处理器,其被配置有处理器可执行的操作指令,以执行如本发明实施例第二方面所述的主从交替SPI通信方法。

本发明实施例第六方面提供了一种主从交替SPI通信系统,所述系统包括主设备和从设备,所述主设备和从设备均包括处理器、传输指示信号端SS、传输时钟信号端CLK和至少一个数据信号端MOSI,所述主设备的传输指示信号端SS与从设备的传输指示信号端SS连接,所述主设备的传输时钟信号端CLK和从设备的传输时钟信号端CLK连接,所述主设备的数据信号端MOSI与从设备的数据信号端MOSI连接,所述处理器,其被配置有处理器可执行的操作指令,以执行如本发明实施例第三方面所述的主从交替SPI通信方法。

优选地,所述SPI为8位SPI、16位SPI、32位SPI或64位SPI。

本发明的有益效果如下:本发明所提出的主从交替SPI通信方法,在从设备执行完成主设备发送的命令/数据后,即可立即主动开始向主设备传输响应/数据,去除主设备无效等待时间或主设备不断查询的过程,大大减少了主设备的等待时间,提高主设备和从设备之间的数据传输效率。同时,通过本发明的通信方法,可减少传统的MISO数据线连接,由传统四线减少为本发明的三线,可简化连线方式。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为传统SPI连接示意图;

图2为传统SPI命令-响应并返回结果的时序关系示意图;

图3为传统SPI发起查询SPI命令的时序关系示意图;

图4为本发明实施例1所述的主从交替SPI通信方法的流程图;

图5为本发明实施例2所述的主从交替SPI通信方法的流程图;

图6为本发明实施例3所述的主从交替SPI通信方法的流程图;

图7为本发明实施例3所述的工作状态流程图;

图8为本发明实施例6所述的主从交替SPI通信系统的原理图。

具体实施方式

为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

实施例1

如图4所示,本实施例提出了一种主从交替SPI通信方法,该方法应用于主设备中,该方法具体包括:

S101、将所述主设备的SPI模式设置为主模式,并在所述主模式下,所述主设备向从设备发送命令/数据;

S102、将所述主设备的SPI模式设置为从模式,并在所述从模式下接收从设备主动发送的响应/数据。

具体的,在主设备的SPI模式为主模式时,主设备可向从设备发送命令/数据。其中,命令可具体为读/写/运算/测量等,数据可具体为写入的数据、命令参数等。此时,对应的从设备的SPI模式即为从模式,从而能够接收主设备发送的命令/数据。从设备在接收到主设备发送的命令/数据后,可执行该命令/数据并生成相应的响应/数据。待从设备生成响应/数据后,从设备可将该响应/数据主动发送至主设备。此时,主设备的SPI模式为从模式,并在该从模式下接收从设备主动发送的响应/数据。此过程无需主设备主动向从设备获取数据,可去除主设备无效等待时间或主设备不断查询的过程,大大减少了主设备的等待时间,提高主设备和从设备之间的数据传输效率。

进一步的,本实施例中,主设备在未向从设备发送命令/数据,以及在未接收从设备发送的响应/数据时,主设备的SPI实际为非数据传输状态,可将主设备的SPI模式设置为从模式,以避免主从模式冲突造成的两个输出端的对接引发的器件损坏。

实施例2

如图5所示,本实施例提出一种主从交替SPI通信方法,该方法应用于从设备中,该方法具体包括:

S201、将所述从设备的SPI模式设置为从模式,并在所述从模式下,所述从设备接收主设备发送的命令/数据;

S202、所述从设备接收并执行所述主设备发送的命令/数据,生成响应/数据;

S203、将所述从设备的SPI模式设置为主模式,并在所述主模式下,主动向主设备发送响应/数据。

具体的,从设备的SPI模式为从模式时,而能够接收主设备发送的命令/数据。从设备在接收到主设备发送的命令/数据后,可执行该命令/数据并生成相应的响应/数据。待从设备生成响应/数据后,从设备可将该响应/数据主动发送至主设备。此时,从设备的SPI模式为主模式,对应的主设备的SPI模式为从模式,从设备在主模式下主动向主设备发送响应/数据。此过程无需主设备主动向从设备获取数据,可去除主设备无效等待时间或主设备不断查询的过程,大大减少了主设备的等待时间,提高主设备和从设备之间的数据传输效率。

进一步的,本实施例中,从设备在未接收主设备发送的命令/数据,以及在未主动向主设备发送响应/数据时,从设备的SPI实际为非数据传输状态,可将从设备的SPI模式设置为从模式,以避免主从模式冲突造成的两个输出端的对接引发的器件损坏。

实施例3

如图6所示,本实施例提出一种主从交替SPI通信方法,该方法包括:

S301、将所述主设备的SPI模式设置为主模式,将所述从设备的SPI模式设置为从模式,并在所述主设备的SPI模式为主模式、所述从设备的SPI模式为从模式下,所述主设备向从设备发送命令/数据;

S302、所述从设备接收并执行所述主设备发送的命令/数据,生成响应/数据;

S303、将所述从设备的SPI模式设置为主模式,将所述主设备的SPI模式设置为从模式,并在所述从设备的SPI模式为主模式、所述主设备的SPI模式为从模式下,所述从设备主动向主设备发送响应/数据。

具体的,在主设备的SPI模式为主模式时,主设备可向从设备发送命令/数据。其中,命令可具体为读/写/运算/测量等,数据可具体为写入的数据、命令参数等。此时,对应的从设备的SPI模式即为从模式,从而能够接收主设备发送的命令/数据。从设备在接收到主设备发送的命令/数据后,可执行该命令/数据并生成相应的响应/数据。待从设备生成响应/数据后,从设备可将该响应/数据主动发送至主设备。此时,从设备的SPI模式为主模式,对应的主设备的SPI模式为从模式,从设备在主模式下主动向主设备发送响应/数据。

更为具体的,本实施例所提出的主从交替SPI通信方法主要包括四个工作状态,如图7所示。主设备和从设备的SPI模式也与该四个工作状态相关,具体包括:

(1)初始态:主设备与从设备的SPI均为非数据传输状态,也可以称为空闲状态,此时主设备和从设备的SPI模式均为从模式;

(2)主设备访问态:主设备发送命令/数据,从设备接收命令/数据。此时,主设备和从设备的SPI均为数据传输状态,其中主设备的SPI模式为主模式,从设备的SPI模式为从模式;

(3)命令执行态:从设备执行接收并执行主设备发送的命令/数据,并生成相应的响应/数据。此时,主设备和从设备的SPI均为非数据传输状态,其中主设备和从设备的SPI模式均为从模式;

(4)从设备响应态:从设备主动发送响应/数据,主设备接收该响应/数据。此时,主设备和从设备的SPI均为数据传输状态,其中主设备的SPI模式为从模式,从设备的SPI模式为主模式。

实施例4

对应实施例1,本实施例提出了一种主设备,所述主设备包括处理器、传输指示信号端SS、传输时钟信号端CLK和至少一个数据信号端MOSI,所述处理器,其被配置有处理器可执行的操作指令,以执行如下操作指令:

将所述主设备的SPI模式设置为主模式,并在所述主模式下,所述主设备向从设备发送命令/数据;

将所述主设备的SPI模式设置为从模式,并在所述从模式下接收从设备主动发送的响应/数据。

本实施例所提出的主设备的工作原理可参照实施例1所记载的内容,本实施例不再进行赘述。

实施例5

对应实施例2,本实施例提出了一种从设备,所述从设备包括处理器、传输指示信号端SS、传输时钟信号端CLK和至少一个数据信号端MOSI,所述处理器,其被配置有处理器可执行的操作指令,以执行如下操作指令:

将所述从设备的SPI模式设置为从模式,并在所述从模式下,所述从设备接收主设备发送的命令/数据;

所述从设备接收并执行所述主设备发送的命令/数据,生成响应/数据;

将所述从设备的SPI模式设置为主模式,并在所述主模式下,主动向主设备发送响应/数据。

本实施例所提出的从设备的工作原理可参照实施例2所记载的内容,本实施例不再进行赘述。

实施例6

对应实施例3,本实施例提出了一种主从交替SPI通信系统,该系统包括主设备和从设备,如图8所示。主设备和从设备均包括处理器、传输指示信号端SS、传输时钟信号端CLK和至少一个数据信号端MOSI,主设备的传输指示信号端SS与从设备的传输指示信号端SS连接,主设备的传输时钟信号端CLK和从设备的传输时钟信号端CLK连接,主设备的数据信号端MOSI与从设备的数据信号端MOSI连接,处理器被配置有处理器可执行的操作指令,以执行如下操作指令:

将所述主设备的SPI模式设置为主模式,将所述从设备的SPI模式设置为从模式,并在所述主设备的SPI模式为主模式、所述从设备的SPI模式为从模式下,所述主设备向从设备发送命令/数据;

所述从设备接收并执行所述主设备发送的命令/数据,生成响应/数据;

将所述从设备的SPI模式设置为主模式,将所述主设备的SPI模式设置为从模式,并在所述从设备的SPI模式为主模式、所述主设备的SPI模式为从模式下,所述从设备主动向主设备发送响应/数据。

本实施例所提出的主从交替SPI通信系统中,SPI为8位SPI、16位SPI、32位SPI或64位SPI。其工作原理可参照实施例3所记载的内容,本实施例不再进行赘述。

进一步的,本实施例所提出的主从交替SPI通信系统在实际应用时,若完成“一问一答”模式只需要三根信号线,即:传输指示信号线SS,传输时钟信号线CLK,数据信号线MOSI,第四根信号线MISO不再需要,因为两种实际数据传输的状态的数据传输为:

主设备访问态:主设备MOSI输出,从设备MOSI输入;

从设备响应态:从设备MOSI输出,主设备MOSI输入;

即:两个传输状态均使用MOSI信号线进行数据传输,而MIOS信号线上无数据传输,因此,采用三线(SS,CLK,MOSI)可以满足主设备访问+从设备响应态(即:一问一答)模式的完整通信过程。

具体的,本实施例对三信号线定义如表2所示:

表2

三线主从交替SPI通信的过程具体如下:

(1)初始态:即起始状态:

a、主设备SPI模式为从模式;

b、从设备SPI模式为从模式;

c、无数据传输。

(2)主设备SPI开始传输命令数据,进入“主设备访问态”:

a、主设备SPI模式为主模式,发送命令/数据;

b、从设备SPI模式为从模式,接收命令/数据;

c、数据格式为:

其中,命令字为2字节,表示本次命令内容,使得从设备根据命令内容进行相应的操作:如读数据,写数据,加密数据,解密数据等等;

后续数据长度为2字节,表示后续数据的字节长度,使得从设备检验数据接收的数量是否完整;

数据:从设备待处理的数据。

(3)命令执行态:命令/数据传输完成后,进入命令执行状态;

a、主设备SPI模式为从模式,等待接收数据处理的响应/数据;

b、从设备根据接收的命令内容,处理接收的数据,处理完毕后,进入从设备响应态。

(4)从设备响应态:从设备发送响应/数据至主设备;

a、主设备SPI模式为从设备,接收响应/数据;

b、从设备SPI模式为主设备,发送响应/数据;

c、数据格式为:

其中,返回值为2字节,表示命令执行结果,0表示执行完成,其它值表示错误码;后续数据长度为2字节,表示后续数据的字节长度,使得主设备检验数据接收的数量是否完整;数据为命令/数据处理完成的数据内容。

此状态下,从设备SPI为主模式,发送完毕后,进入初始态。主设备SPI为从模式,接收完毕后,进入初始态。

本实施例通过三线SPI即可完成传统的四线SPI传输。主设备SPI和从设备SPI的工作模式不再固定不变,而是随着工作状态不同进行主从模式的交替转换。从设备在接收到命令/数据后,即可进入执行状态,期间不会受到主设备的状态查询干扰。从设备在执行完成后,可立即进入响应/数据传输状态,不必等待,提高数据传输效率。

本实施例中,主设备访问可以是一次传输完成,也可以多次完成,全部完成后,进入命令执行状态,同时完成主从模式互换。

同样地,从设备响应态的数据传输,可以是一次传输完成,也可以多次完成,全部响应传输完成后,进入初始状态。

需要说明的是,上述传输完成,是指没有后续数据需要传输,双方依据传输完成,各自进行状态转换。

更进一步的,本申请所提出的主从交替SPI通信方法同样适用于双数据线DSPI及四数据线QSPI,以进一步提高传输速率。其中:

DSPI为四根信号线,除SS、CLK外,另外两根数据信号线定义为MOSI0和MOSI1,使得相同时钟情况下,传输速度提高一倍;

QSPI为6根信号线,除SS、CLK外,另外四根数据信号线定义为MOSI0和MOSI1、MOSI2和MOSI3,四根数据线并行传输,使得相同时钟情况下,传输速度提高四倍。

具体的,QSPI为一种4根数据的SPI模式,包括传输指示信号SS,时钟信号CLK,及4个数据MOSI0-MOSI3,共6根信号线,如下表3所示:

表3

与传统QPSI主从模式固定方法不同,本申请主从交替SPI通信方法,根据状态不同主设备和从设备的SPI接口,其主从模式交替变化、互换,具体为:

(1)初始态:即起始状态:

a、主设备SPI为从模式;

b、从设备SPI为从模式;

c、无数据传输

(2)主设备SPI开始传输命令数据,进入“主设备访问态”:

a、主设备SPI为主模式,发送命令/数据;

b、从设备SPI为从模式,接收命令/数据;

c、数据格式为:

其中:

命令字为2字节,表示本次命令内容,使得从设备根据命令内容进行相应的操作:如读数据,写数据,加密数据,解密数据等等;

后续数据长度为2字节,表示后续数据的字节长度,使得从设备检验数据接收的数量是否完整;

数据:从设备待处理的数据。

(3)命令执行态,命令/数据传输完成后,进入命令执行状态:

a、主设备SPI转为从模式,等待接收数据处理的响应/数据;

b、从设备根据接收的命令内容,处理接收的数据;处理完毕后,进入“从设备响应态”。

(4)从设备响应态,从设备发送响应/数据给主设备

a、主设备SPI为从模式,接收响应/数据;

b、从设备SPI为主模式,发送响应/数据;

c、数据格式为:

其中,返回值为2字节,表示命令执行结果,0表示执行完成,其它值表示错误码;后续数据长度为2字节,表示后续数据的字节长度,使得主设备检验数据接收的数量是否完整;数据为命令/数据处理完成的数据内容。

此状态下,从设备SPI为主模式,发送完毕后,进入初始态。主设备SPI为从模式,接收完毕后,进入初始态。

通过上述可见,QSPI的传输过程与3线SPI传输过程几乎完全一样,其特点是:既保留的QSPI的4倍传输速率,使得传输速率得以提高,也具备三线SPI的主从交替方法的优点,状态交替无需等待,提高了传输和执行效率。

相关技术
  • 一种基于SPI总线的设备间通信方法及设备拓扑结构
  • 一种Type-C接口设备、通信方法和通信系统
  • 一种兼容I2C的I3C主设备、I3C主从设备通信系统及方法
  • 一种兼容I2C的I3C主设备、I3C主从设备通信系统及方法
技术分类

06120115585901