CN112817886B - 基于spi的主从通信方法及装置 - Google Patents
基于spi的主从通信方法及装置 Download PDFInfo
- Publication number
- CN112817886B CN112817886B CN202110155404.8A CN202110155404A CN112817886B CN 112817886 B CN112817886 B CN 112817886B CN 202110155404 A CN202110155404 A CN 202110155404A CN 112817886 B CN112817886 B CN 112817886B
- Authority
- CN
- China
- Prior art keywords
- slave
- data
- host
- interrupt signal
- master
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种基于SPI的主从通信方法及装置,该方法通过从机在接收到主机发送的命令帧之后,向主机发送用于提示主机接收从机发送的响应帧的数据中断信号,并在确定发送完毕响应帧之后,再向主机发送另一个用于表示从机已进入数据接收状态的数据中断信号,主机接收完毕该数据中断信号后再发送下一笔数据传输,能够使得主机清楚知晓从机的数据处理情况,从而便于根据从机的数据处理情况启动下一数据的传输,减少传输数据丢失的情况发生;以及通过响应帧能够使得在数据传输出错时数据发送方及时且准确知晓,以便于数据发送方重新传输数据;还能够反馈传输数据的正确性与实现数据处理后的结果反馈,提高主机和从机之间的通信灵活性以及拓展性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于SPI的主从通信方法及装置。
背景技术
SPI(Serial Peripheral Interface,串行外设接口)总线***是一种微处理控制单元(Microcontroller Unit,MCU)和***设备之间进行通信的同步串行外设接口,其使用4线接口:时钟信号线(CLK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效的从机选择线(CSn)。
实际应用中,SPI总线采用主从模式工作,所有通信必须由主机发起(时钟由主机提供),数据可以由主机发送给从机,也可以由从机发送给主机。然而,实践发现,不同的主机、从机具有不同的处理能力和响应速度,对不同数据的处理时间也会存在较大差异,这导致在缺乏同步机制的情况下,主机无法知道从机何时有能力处理下一笔数据传输,容易出现主机启动传输但从机却无法处理的情况,导致传输数据丢失的问题。
发明内容
本发明所要解决的技术问题在于,提供一种基于SPI的主从通信方法及装置,能够使得主机清楚知晓从机的数据处理情况,从而便于根据从机的数据处理情况启动下一数据的传输,减少传输数据丢失的情况发生。
为了解决上述技术问题,本发明实施例第一方面公开了一种基于SPI的主从通信方法,所述方法包括:
主机向从机发送第一命令帧,所述从机接收所述主机发送的所述第一命令帧,并根据所述第一命令帧确定需要发送的响应帧,以及向所述主机发送第一数据中断信号,所述第一数据中断信号用于提示所述主机接收所述响应帧;
所述主机接收所述从机发送的所述第一数据中断信号,并根据所述第一数据中断信号接收所述响应帧;
在所述主机接收完毕所述响应帧之后,所述从机向所述主机发送第二数据中断信号,所述第二数据中断信号用于提示所述主机所述从机已经进入数据接收状态;
所述主机接收所述第二数据中断信号,并重新执行所述的向所述从机发送第一命令帧的操作。
作为一种可选的实施方式,在本发明第一方面中,所述主机接收所述第二数据中断信号之后,以及所述主机重新执行所述的向所述从机发送第一命令帧的操作之前,所述方法还包括:
所述主机判断是否需要向所述从机发送第一数据帧,当判断出不需要向所述从机发送所述第一数据帧时,重新执行所述的向所述从机发送第一命令帧的操作;
当判断出需要向所述从机发送所述第一数据帧时,所述主机向所述从机发送所述第一数据帧;
所述从机接收所述主机发送的所述第一数据帧,并根据所述第一数据帧生成第三数据中断信号,以及向所述主机发送所述第三数据中断信号,所述第三数据中断信号用于提示所述主机所述从机已经进入数据接收状态;
所述主机接收所述第三数据中断信号,并重新执行所述的向所述从机发送第一命令帧的操作。
作为一种可选的实施方式,在本发明第一方面中,在所述主机接收完毕所述响应帧之后,以及所述从机向所述主机发送第二数据中断信号之前,所述方法还包括:
所述从机判断是否需要向所述主机发送第二数据帧,当判断出不需要向所述主机发送所述第二数据帧时,触发执行所述的向所述主机发送第二数据中断信号的操作;
当判断出需要向所述主机发送所述第二数据帧时,所述从机向所述主机发送第四数据中断信号,所述第四数据中断信号用于提示所述主机接收所述第二数据帧;
所述主机接收所述从机发送的所述第四数据中断信号,并根据所述第四数据中断信号接收所述第二数据帧;
在所述主机接收完毕所述第二数据帧之后,所述从机触发执行所述的向所述主机发送第二数据中断信号的操作。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
在所述主机和所述从机处于通信状态时,所述主机判断是否需要将所述主机和所述从机的当前通信状态切换至事件状态;
当判断出需要切换至所述事件状态时,所述主机向所述从机发送第一命令,并根据所述第一命令将所述主机的当前通信状态切换至所述事件状态,所述第一命令用于通知所述从机将所述从机的当前通信状态切换至所述事件状态;
所述从机接收所述第一命令,并根据所述第一命令将所述从机的当前通信状态切换至所述事件状态。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
在所述主机和所述从机处于所述事件状态时,所述从机判断是否需要向所述主机发送目标事件,当判断出需要向所述主机发送所述目标事件时,向所述主机发送事件中断信号,所述事件中断信号用于提示所述主机处理所述目标事件;
所述主机接收所述事件中断信号,并根据所述事件中断信号向所述从机发送第二命令,以及根据所述第二命令将所述事件状态切换至通信状态;
所述从机接收所述主机发送的所述第二命令,并根据所述第二命令将所述事件状态切换至通信状态。
作为一种可选的实施方式,在本发明第一方面中,所述从机向所述主机发送事件中断信号之前,所述方法包括:
所述从机判断所述从机的当前电平是否为确定出的高电平,当判断出所述从机的当前电平为所述高电平时,触发执行所述的向所述主机发送事件中断信号的操作;
当判断出所述从机的当前电平不为所述高电平时,所述从机将所述从机的当前电平转换为所述高电平,并触发执行所述的向所述主机发送事件中断信号的操作。
本发明实施例第二方面公开了一种基于SPI的主从通信装置,所述装置包括主机和从机,所述主机包括第一通信模块,所述从机包括第二通信模块以及确定模块,其中:
所述第一通信模块,用于向从机发送第一命令帧;
所述第二通信模块,用于接收所述主机发送的所述第一命令帧;
所述确定模块,用于根据所述第一命令帧确定需要发送的响应帧;
所述第二通信模块,还用于向所述主机发送第一数据中断信号,所述第一数据中断信号用于提示所述主机接收所述响应帧;
所述第一通信模块,还用于接收所述从机发送的所述第一数据中断信号;
所述第一通信模块,还用于根据所述第一数据中断信号接收所述响应帧;
所述第二通信模块,还用于在所述主机接收完毕所述响应帧之后,向所述主机发送第二数据中断信号,所述第二数据中断信号用于提示所述主机所述从机已经进入数据接收状态;
所述第一通信模块,还用于接收所述第二数据中断信号,并重新执行所述的向所述从机发送第一命令帧的操作。
作为一种可选的实施方式,在本发明第二方面中,所述主机还包括第一判断模块,所述从机还包括生成模块,其中:
所述第一判断模块,用于在所述第一通信模块接收所述第二数据中断信号之后,以及在所述第一通信模块重新执行所述的向所述从机发送第一命令帧的操作之前,判断是否需要向所述从机发送第一数据帧,当判断出不需要向所述从机发送所述第一数据帧时,触发所述第一通信模块重新执行所述的向所述从机发送第一命令帧的操作;
所述第一通信模块,还用于当所述第一判断模块判断出需要向所述从机发送所述第一数据帧时,向所述从机发送所述第一数据帧;
所述第二通信模块,还用于接收所述主机发送的所述第一数据帧;
生成模块,用于根据所述第一数据帧生成第三数据中断信号;
所述第二通信模块,还用于向所述主机发送所述第三数据中断信号,所述第三数据中断信号用于提示所述主机所述从机已经进入数据接收状态;
所述第一通信模块,还用于接收所述第三数据中断信号,并重新执行所述的向所述从机发送第一命令帧的操作。
作为一种可选的实施方式,在本发明第二方面中,所述从机还包括第二判断模块,其中:
所述第二判断模块,用于在所述主机接收完毕所述响应帧之后,以及在所述第二通信模块向所述主机发送第二数据中断信号之前,判断是否需要向所述主机发送第二数据帧,当判断出不需要向所述主机发送所述第二数据帧时,触发所述第二通信模块执行所述的向所述主机发送第二数据中断信号的操作;
所述第二通信模块,还用于当所述第二判断模块判断出需要向所述主机发送所述第二数据帧时,向所述主机发送第四数据中断信号,所述第四数据中断信号用于提示所述主机接收所述第二数据帧;
所述第一通信模块,还用于接收所述从机发送的所述第四数据中断信号;
所述第一通信模块,还用于根据所述第四数据中断信号接收所述第二数据帧;
所述第二通信模块,还用于在所述主机接收完毕所述第二数据帧之后,触发执行所述的向所述主机发送第二数据中断信号的操作。
作为一种可选的实施方式,在本发明第二方面中,所述主机还包括第三判断模块以及第一切换模块,所述从机还包括第二切换模块,其中:
所述第三判断模块,用于在所述主机和所述从机处于通信状态时,判断是否需要将所述主机和所述从机的当前通信状态切换至事件状态;
所述第一通信模块,用于当所述第三判断模块判断出需要切换至所述事件状态时,向所述从机发送第一命令;
第一切换模块,用于根据所述第一命令将所述主机的当前通信状态切换至所述事件状态,所述第一命令用于通知所述从机将所述从机的当前通信状态切换至所述事件状态;
所述第二通信模块,还用于接收所述第一命令;
第二切换模块,用于根据所述第一命令将所述从机的当前通信状态切换至所述事件状态。
作为一种可选的实施方式,在本发明第二方面中,所述从机还包括第四判断模块,其中:
所述第四判断模块,用于在所述主机和所述从机处于所述事件状态时,判断是否需要向所述主机发送目标事件;
所述第二通信模块,还用于当所述第四判断模块判断出需要向所述主机发送所述目标事件时,向所述主机发送事件中断信号,所述事件中断信号用于提示所述主机处理所述目标事件;
所述第一通信模块,还用于接收所述事件中断信号;
所述第一通信模块,还用于根据所述事件中断信号向所述从机发送第二命令;
所述第一切换模块,还用于根据所述第二命令将所述事件状态切换至通信状态;
所述第二通信模块,还用于接收所述主机发送的所述第二命令;
所述第二切换模块,还用于根据所述第二命令将所述事件状态切换至通信状态。
作为一种可选的实施方式,在本发明第二方面中,所述第四判断模块,还用于在所述第二通信模块向所述主机发送事件中断信号之前,判断所述从机的当前电平是否为确定出的高电平,当判断出所述从机的当前电平为所述高电平时,触发所述第二通信模块执行所述的向所述主机发送事件中断信号的操作;
所述第二切换模块,还用于当所述第四判断模块判断出所述从机的当前电平不为所述高电平时,将所述从机的当前电平转换为所述高电平,并触发所述第二通信模块执行所述的向所述主机发送事件中断信号的操作。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,公开了一种基于SPI的主从通信方法及装置,该方法包括:主机向从机发送第一命令帧;从机接收主机发送的第一命令帧,并根据第一命令帧确定需要发送的响应帧,以及向主机发送第一数据中断信号,第一数据中断信号用于提示主机接收响应帧;主机接收从机发送的第一数据中断信号,并根据第一数据中断信号接收响应帧;在主机接收完毕响应帧之后,从机向主机发送第二数据中断信号,第二数据中断信号用于提示主机从机已经进入数据接收状态;主机接收第二数据中断信号,并重新执行上述的向从机发送第一命令帧的操作。可见,本发明实施例通过从机在接收到主机发送的命令帧之后,向主机发送用于提示主机接收从机发送的响应帧的数据中断信号,并在确定发送完毕响应帧之后,即在主机接收完毕响应帧之后再向主机发送另一个用于表示从机已进入数据接收状态的数据中断信号,能够实现主机和从机的同步,从而使得主机清楚知晓从机的数据处理情况,以便于根据从机的数据处理情况启动下一数据的传输,减少传输数据丢失的情况发生以及协调主机与从机处理能力、响应速度的差异;以及通过响应帧,能够使得在数据传输出错时数据发送方及时且准确知晓,以便于数据发送方重新传输数据;以及通过响应帧能够反馈传输数据的正确性与实现数据处理后的结果反馈,提高主机和从机之间的通信灵活性以及拓展性;以及通过从机的中断信号触发响应帧的传输,无需通过主机提供时钟信号,即无需通过轮询方式检测从机的应答字节,能够减少***资源浪费的情况发生。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种基于SPI的主从通信方法的流程示意图;
图2是本发明实施例公开的另一种基于SPI的主从通信方法的流程示意图;
图3是本发明实施例公开的一种基于SPI的主从通信装置的结构示意图;
图4是本发明实施例公开的另一种基于SPI的主从通信装置的结构示意图;
图5是本发明实施例公开的一种主机的结构示意图;
图6是本发明实施例公开的一种从机的结构示意图;
图7是本发明实施例公开的一种主机和从机之间通信的硬件拓扑的结构示意图;
图8是本发明实施例公开的一种基于SPI的工作原理波形示意图;
图9是本发明实施例公开的另一种基于SPI的工作原理波形示意图;
图10是本发明实施例公开的又一种基于SPI的工作原理波形示意图;
图11是本发明实施例公开的一种基于SPI的主机和从机的通信状态和事件状态进行切换的原理波形示意图;
图12是本发明实施例公开的一种帧头格式的示意图;
图13是本发明实施例公开的一种第一命令帧的帧格式的示意图;
图14是本发明实施例公开的一种响应帧的帧格式的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种基于SPI的主从通信方法及装置,能够通过从机在接收到主机发送的命令帧之后,向主机发送用于提示主机接收从机发送的响应帧的数据中断信号,并在确定发送完毕响应帧之后,即在主机接收完毕响应帧之后再向主机发送另一个用于表示从机已进入数据接收状态的数据中断信号,主机接收完毕该数据中断信号后再发送下一笔数据传输,能够使得主机清楚知晓从机的数据处理情况,从而便于根据从机的数据处理情况启动下一数据的传输,减少传输数据丢失的情况发生;以及通过响应帧,能够使得在数据传输出错时数据发送方及时且准确知晓,以便于数据发送方重新传输数据;以及通过响应帧能够反馈传输数据的正确性与实现数据处理后的结果反馈,提高主机和从机之间的通信灵活性以及拓展性。以下分别进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种基于SPI的主从通信方法的流程示意图。如图1所示,该基于SPI的主从通信方法可以包括以下操作:
101、主机向从机发送第一命令帧。
本发明实施例中,如图7所示,图7是本发明公开的一种主机和从机之间通信的硬件拓扑的结构示意图。如图7所示,该硬件拓扑包括主机(Master)和从机(Slave),以及设置在主机和从机之间用于进行通信的数据信号线,其中,数据信号线包括主机向从机提供时钟的时钟信号线(SPI_CLK)、主机输入/从机输出数据线(SPI_MISO)、主机输出/从机输入数据线(SPI_MOSI)、低电平有效的从机选择线(SPI_CSn)以及从机向主机反馈中断信号的中断信号线(GPIO_IRQ)。
本发明实施例中,可选的,第一命令帧的长度可以是固定的,例如:48字节,也可以是任意的,即有多少有效数据,第一命令帧的长度就多长,优选固定的长度,这样便于从机接收以及缓存命令帧,以及简化主机和从机之间通信的处理逻辑。
本发明实施例中,当需要与从机进行通信时,才向从机发送第一命令帧。
本发明实施例中,可选的,在向从机发送第一命令帧的过程中,向从机提供时钟,以触发从机接收第一命令帧。
102、从机接收主机发送的第一命令帧,并根据第一命令帧确定需要发送的响应帧,以及向主机发送第一数据中断信号,该第一数据中断信号用于提示主机接收响应帧。
本发明实施例中,可选的,响应帧的长度可以是固定的,例如:48字节,也可以是任意的,即有多少有效数据,响应帧的长度就多长,优选固定的长度,这样便于主机接收以及缓存响应帧,以及简化主机和从机之间通信的处理逻辑。
本发明实施例中,进一步可选的,第一命令帧和响应帧均有固定的帧头格式,且帧头格式可以是以小端模式或者大端模式进行表示,优先小端模式表示。如图12和表1所示,图12是本发明实施例公开的一种帧头格式的示意图,表1为图12公开的帧头格式的各字段描述;图13是本发明实施例公开的一种第一命令帧的帧格式的示意图,表2为图13公开的第一命令帧的帧格式的各字段描述;图14是本发明实施例公开的一种响应帧的帧格式的示意图,表3为图14公开的响应帧的帧格式的各字段描述,表4为图14公开的响应帧的响应状态码定义。
表1为图12公开的帧头格式的各字段描述
表2为图13公开的第一命令帧的帧格式的各字段描述
表3为图14公开的响应帧的帧格式的各字段描述
表4为图14公开的响应帧的响应状态码定义
响应状态码 | 描述 |
0x00 | 命令执行成功 |
0x01 | 通用错误 |
0x02 | 无效的命令帧 |
0x03 | 不支持的命令 |
0x04 | 不支持的参数 |
0x05 | 设备忙,无法响应 |
本发明实施例中,当根据第一命令帧确定需要发送的响应帧之后,从机马上进入发送状态。
本发明实施例中,通过上述中断信号线向主机发送第一数据中断信号,可以理解为第一数据中断信号已经预先生成的,当需要用到时,直接通过上述中断信号线向主机发送即可,也可以理解为在确定需要发送的响应帧之后,即马上产生第一数据中断信号并向主机发送,也可以理解为在从机进入发送状态之后,才产生第一数据中断信号并通过上述中断信号线向主机发送。其中,第一数据中断信号可以是上升沿触发的,即高电平触发的。
本发明实施例中,可选的,响应帧可以是承载在第一数据中断信号上的,也可以是单独传输给主机的。
103、主机接收从机发送的第一数据中断信号,并根据第一数据中断信号接收响应帧。
本发明实施例中,可选的,第一数据中断信号承载有响应帧,当主机接收到第一数据中断信号之后,直接获取第一数据中断信号上的响应帧;或者,从机在向主机发送第一数据中断信号后的第一预设时长(例如:0.01ms)之后向主机发送响应帧,主机再接收响应帧,其中,第一预设时长的起始时刻为发送第一数据中断信号的时刻。这样通过从机的数据中断信号触发响应帧的传输,无需主机提供时钟,即无需采用轮询方式进行通信,减少了***资源浪费的情况发生。其中,响应帧包括第一命令帧的数据处理结果和/或第一命令帧的正确传输标识。这样能够通过响应帧来判断从机是否已经正确接收命令帧,提高主机和从机的通信灵活性以及可拓展性。
104、在主机接收完毕响应帧之后,从机向主机发送第二数据中断信号,该第二数据中断信号用于提示主机从机已经进入数据接收状态。
本发明实施例中,从机发送完毕响应帧,即代表主机接收完毕响应帧,或者,当从机发送完毕响应帧之后的第二预设时长(例如:0.02ms)之后,代表主机接收完毕响应帧,其中,第二预设时长的起始时刻为发送响应帧的时刻。
本发明实施例中,针对第二数据中断信号的描述请参阅上述针对第一数据中断信号的描述,在此不再赘述。
105、主机接收第二数据中断信号,并重新执行步骤101。
本发明实施例中,可选的,可以通过预先定义命令集,并将命令集存储在主机中,当需要通信时,直接从命令集中取用所需的命令帧,这样有利于主机的远程调用。进一步可选的,还可以预先定义响应集,当需要向主机反馈时,直接从响应集中取用所需的响应帧,这样有利于从机的远程调用,从而提高主机和从机的通信效率。
举例来说,请参阅图8,图8是本发明实施例中公开的一种基于SPI的工作原理波形示意图,主机通过主机输出/从机输入数据线(SPI_MOSI)向从机发生第一命令帧(command),且同时通过时钟信号线(SPI_CLK)发送时钟给从机,以触发从机接收第一命令帧,从机接收第一命令帧之后,根据第一命令帧确定需要发送的响应帧,以及当中断信号线(GPIO_IRQ)的信号为上升沿时通过主机输入/从机输出数据线(SPI_MISO)向主机发送第一数据中断信号(respond),以使主机接收第一数据中断信号,并根据第一数据中断信号接收响应帧;在主机接收完毕响应帧之后,从机再通过主机输入/从机输出数据线(SPI_MISO)向主机发送第二数据中断信号(respond),该第二数据中断信号用于提示主机从机已经进入数据接收状态,主机接收第二数据中断信号,并进行后续的帧传输。
可见,实施图1所描述的基于SPI的主从通信方法通过从机在接收到主机发送的命令帧之后,向主机发送用于提示主机接收从机发送的响应帧的数据中断信号,并在确定发送完毕响应帧之后,即在主机接收完毕响应帧之后再向主机发送另一个用于表示从机已进入数据接收状态的数据中断信号,能够实现主机和从机的同步,从而使得主机清楚知晓从机的数据处理情况,以便于根据从机的数据处理情况启动下一数据的传输,减少传输数据丢失的情况发生以及协调主机与从机处理能力、响应速度的差异;以及通过响应帧,能够使得在数据传输出错时数据发送方及时且准确知晓,以便于数据发送方重新传输数据;以及通过响应帧能够反馈传输数据的正确性与实现数据处理后的结果反馈,提高主机和从机之间的通信灵活性以及拓展性;以及通过从机的中断信号触发响应帧的传输,无需通过主机提供时钟信号,即无需通过轮询方式检测从机的应答字节,能够减少***资源浪费的情况发生。
在一个可选的实施例中,主机接收第二数据中断信号之后,以及主机重新执行步骤101之前,该基于SPI的主从通信方法还可以包括以下操作:
主机判断是否需要向从机发送第一数据帧,当判断出不需要向从机发送第一数据帧时,触发重新执行步骤101;
当判断出需要向从机发送第一数据帧时,主机向从机发送第一数据帧;
从机接收主机发送的第一数据帧,并根据第一数据帧生成第三数据中断信号,以及向主机发送第三数据中断信号,第三数据中断信号用于提示主机从机已经进入数据接收状态;
主机接收第三数据中断信号,并重新执行步骤101。
该可选的实施例中,通过上述中断信号线向主机发送第三数据中断信号。且第三数据中断信号可以是上升沿触发的,即高电平触发的。
该可选的实施例中,可选的,当主机接收第三数据信号的时长小于等于预设时长阈值(例如:20ms)时,表示成功接收第三数据中断信号,即代表传输事务传输成功;当主机接收第三数据信号的时长不小于等于预设时长阈值时,表示失败接收第三数据中断信号,即代表传输事务传输失败。
该可选的实施例中,主机判断是否需要向从机发送第一数据帧,包括:
主机判断第一命令帧是否包括用于表示需要传输数据的标识,当判断出存在时,确定需要向从机发送第一数据帧;当判断出不存在时,确定不需要向从机发送第一数据帧。其中,第一数据帧的帧格式可以为确定出的,也可以是根据第一命令帧确定的。
举例来说,请参阅图9,图9是本发明实施例中公开的另一种基于SPI的工作原理波形示意图,主机通过主机输出/从机输入数据线(SPI_MOSI)向从机发生第一命令帧(command),且同时通过时钟信号线(SPI_CLK)发送时钟给从机,以触发从机接收第一命令帧,从机接收第一命令帧之后,根据第一命令帧确定需要发送的响应帧,以及当中断信号线(GPIO_IRQ)的信号为上升沿时通过主机输入/从机输出数据线(SPI_MISO)向主机发送第一数据中断信号(respond),以使主机接收第一数据中断信号,并根据第一数据中断信号接收响应帧;在主机接收完毕响应帧之后,从机再通过主机输入/从机输出数据线(SPI_MISO)向主机发送第二数据中断信号(respond),该第二数据中断信号用于提示主机从机已经进入数据接收状态。主机接收第二数据中断信号,且当判断出需要向从机发送第一数据帧(data)时,主机向从机发送第一数据帧;从机接收主机发送的第一数据帧,并根据第一数据帧生成第三数据中断信号,以及向主机发送第三数据中断信号,第三数据中断信号用于提示主机从机已经进入数据接收状态;主机接收第三数据中断信号,并进行后续的帧传输。
可见,该可选的实施例在接收完毕用于从机已经进入数据接收状态之后,主机进一步在判断出不需要向从机发送数据帧时,直接向从机发送命令帧,在判断出需要向从机发送数据帧时,则向从机发送数据帧,以使得从机对数据帧中的数据处理后向主机反馈用于表示处理完毕所接收到的数据,即从机又进入数据接收状态的数据中断信号,以便于主机向从机传输数据,提供了命令帧、响应帧和数据帧三种帧类型以及主机向从机传输数据帧的事务来进一步提高主机和从机之间的数据传输可靠性,以及通过从机的中断信号触发数据帧处理完成的反馈同步,能够进一步减少***资源浪费的发生情况。
在另一个可选的实施例中,在主机接收完毕响应帧之后,以及从机向主机发送第二数据中断信号之前,该基于SPI的主从通信方法还可以包括以下操作:
从机判断是否需要向主机发送第二数据帧,当判断出不需要向主机发送第二数据帧时,触发执行上述的向主机发送第二数据中断信号的操作;
当判断出需要向主机发送第二数据帧时,从机向主机发送第四数据中断信号,第四数据中断信号用于提示主机接收第二数据帧;
主机接收从机发送的第四数据中断信号,并根据第四数据中断信号接收第二数据帧;
在主机接收完毕第二数据帧之后,从机触发执行上述的向主机发送第二数据中断信号的操作。
该可选的实施例中,从机判断是否需要向主机发送第二数据帧,包括:
从机判断上述响应帧是否包括用于表示需要传输数据的标识,当判断出存在时,确定需要向主机发送第二数据帧;当判断出不存在时,确定不需要向主机发送第二数据帧。其中,第二数据帧的帧格式可以为确定出的,也可以是根据响应帧确定的。
举例来说,请参阅图10,图10是本发明实施例中公开的又一种基于SPI的工作原理波形示意图,主机通过主机输出/从机输入数据线(SPI_MOSI)向从机发生第一命令帧(command),且同时通过时钟信号线(SPI_CLK)发送时钟给从机,以触发从机接收第一命令帧,从机接收第一命令帧之后,根据第一命令帧确定需要发送的响应帧,以及当中断信号线(GPIO_IRQ)的信号为上升沿时通过主机输入/从机输出数据线(SPI_MISO)向主机发送第一数据中断信号(respond),以使主机接收第一数据中断信号,并根据第一数据中断信号接收响应帧;在主机接收完毕响应帧之后,且当判断出需要向主机发送第二数据帧(data)时,从机通过主机输入/从机输出数据线(SPI_MISO)向主机发送第四数据中断信号,第四数据中断信号用于提示主机接收第二数据帧;主机接收从机发送的第四数据中断信号,并根据第四数据中断信号接收第二数据帧;在主机接收完毕第二数据帧之后,从机再通过主机输入/从机输出数据线(SPI_MISO)向主机发送第二数据中断信号(respond),该第二数据中断信号用于提示主机从机已经进入数据接收状态。主机接收第二数据中断信号,并进行后续的帧传输。
可见,该可选的实施例在检测到主机接收完毕响应帧之后,从机进一步判断是否需要向主机发送数据,若否,则直接向主机发送用于表示已经做好接收数据准备的中断信号,若是,则通过向主机发送数据中断信号,以提示主机接收从机发送的数据,并在确保主机接收完毕数据之后,才向主机发送用于表示已经做好接收数据准备的中断信号,既能够提高从机向主机传输数据的可靠性,又能够提高用于表示已经做好接收数据准备的中断信号的发送准确性以及可靠性。
实施例二
请参阅图2,图2是本发明实施例公开的另一种基于SPI的主从通信方法的流程示意图。如图2所示,该基于SPI的主从通信方法可以包括以下操作:
201、主机向从机发送第一命令帧。
202、从机接收主机发送的第一命令帧,并根据第一命令帧确定需要发送的响应帧,以及向主机发送第一数据中断信号,该第一数据中断信号用于提示主机接收响应帧。
203、主机接收从机发送的第一数据中断信号,并根据第一数据中断信号接收响应帧。
204、在主机接收完毕响应帧之后,从机向主机发送第二数据中断信号,该第二数据中断信号用于提示主机从机已经进入数据接收状态。
205、主机接收第二数据中断信号,并重新执行步骤201。
本发明实施例中,在步骤201-步骤205中任何两个步骤之间(包括实施例一中任何一个可选的实施例的两个步骤之间),可以触发执行步骤206,或者在步骤205之后,可以直接触发执行步骤206。
206、在主机和从机处于通信状态时,主机判断是否需要将主机和从机的当前通信状态切换至事件状态;当判断出需要切换至事件状态时,触发执行步骤207;当判断出不需要切换至事件状态时,结束本次流程。
本发明实施例中,如果步骤206是发生在步骤205之后,当判断出需要切换至事件状态时,不再重新执行步骤201;当判断出不需要切换至事件状态时,触发执行步骤201。
207、主机向从机发送第一命令,并根据第一命令将主机的当前通信状态切换至事件状态,该第一命令用于通知从机将从机的当前通信状态切换至事件状态。
208、从机接收第一命令,并根据第一命令将从机的当前通信状态切换至事件状态。
本发明实施例中,可选的,从机接收第一命令之后,并成功响应第一命令后,无需再向主机发送数据中断信号,而是直接进入数据接收状态,且将从机的当前通信状态切换至事件状态。
可见,本发明实施例在主机和从机处于通信状态之后,主机进一步判断是否需要将主机和从机的当前状态切换为事件状态,若是,则向从机发出特定指令,以使得主机和从机切换至事件状态,能够提高主机和从机切换至事件状态的准确性以及效率,从而便于主机和从机进行异步事件的处理。
可见,实施图2所描述的基于SPI的主从通信方法能够通过从机在接收到主机发送的命令帧之后,向主机发送用于提示主机接收从机发送的响应帧的数据中断信号,并在确定发送完毕响应帧之后,即在主机接收完毕响应帧之后再向主机发送另一个用于表示从机已进入数据接收状态的数据中断信号,能够实现主机和从机的同步,从而使得主机清楚知晓从机的数据处理情况,以便于根据从机的数据处理情况启动下一数据的传输,减少传输数据丢失的情况发生以及协调主机与从机处理能力、响应速度的差异;以及通过响应帧,能够使得在数据传输出错时数据发送方及时且准确知晓,以便于数据发送方重新传输数据;以及通过响应帧能够反馈传输数据的正确性与实现数据处理后的结果反馈,提高主机和从机之间的通信灵活性以及拓展性;以及通过从机的中断信号触发响应帧的传输,无需通过主机提供时钟信号,即无需通过轮询方式检测从机的应答字节,能够减少***资源浪费的情况发生;还能够提高主机和从机切换至事件状态的准确性以及效率,从而便于主机和从机进行异步事件的处理。
在一个可选的实施例中,该基于SPI的主从通信方法还可以包括以下操作:
在主机和从机处于事件状态时,从机判断是否需要向主机发送目标事件,当判断出需要向主机发送目标事件时,向主机发送事件中断信号,事件中断信号用于提示主机处理目标事件;
主机接收事件中断信号,并根据事件中断信号向从机发送第二命令,以及根据第二命令将事件状态切换至通信状态;
从机接收主机发送的第二命令,并根据第二命令将事件状态切换至通信状态。
该可选的实施例中,当需要有新的数据要发送给主机时,确定需要向主机发送目标事件。通过上述中断信号线向主机发送事件中断信号。
该可选的实施例中,第二命令为任何一个命令。
可见,该可选的实施例在主机和从机处于事件状态之后,且当有事件要通知主机时,通过主动产生事件中断信号并发送给主机,能够实现从机的异步事件的主动通知,以使得主机发起新的命令对从机的事件进行处理。
在另一个可选的实施例中,从机向主机发送事件中断信号之前,该基于SPI的主从通信方法还可以包括以下操作:
从机判断从机的当前电平是否为确定出的高电平,当判断出从机的当前电平为高电平时,触发执行上述的向主机发送事件中断信号的操作;
当判断出从机的当前电平不为高电平时,从机将从机的当前电平转换为高电平,并触发执行上述的向主机发送事件中断信号的操作。
可见,该可选的实施例通过在向主机发送事件中断信号之前,从机先判断当前的电平是否为高电平,若是,方向主机发送事件中断信号,若否,则先将当前的低电平切换为高电平才向主机发送事件中断信号,能够提高事件中断信号的传输准确性以及可靠性,从而提高异步事件的处理准确性以及可靠性。
举例来说,请参阅图11,图11是本发明实施例中公开的一种基于SPI的主机和从机的通信状态和事件状态进行切换的原理波形示意图,在主机和从机处于通信状态时,且当判断出需要切换至事件状态(Event State)时,主机向从机发送第一命令(Comand(Enterenvent state)),并根据第一命令将主机的当前通信状态切换至事件状态,该第一命令用于通知从机将从机的当前通信状态切换至事件状态,从机接收第一命令,并成功响应后(Respond Suceeess)并根据第一命令将从机的当前通信状态切换至事件状态;当判断出需要向主机发送目标事件(Event)时,从机向主机发送事件中断信号,事件中断信号用于提示主机处理目标事件;主机接收事件中断信号,并根据事件中断信号向从机发送第二命令,以及根据第二命令将事件状态切换至通信状态(respond);从机接收主机发送的第二命令,并根据第二命令将事件状态切换至通信状态(respond)。
实施例三
请参阅图3,图3是本发明实施例公开的一种基于SPI的主从通信装置的结构示意图。如图3所示,该基于SPI的主从通信装置可以包括主机301和从机302,主机301包括第一通信模块3011,从机302包括第二通信模块3021以及确定模块3022,其中:
第一通信模块3011,用于向从机302发送第一命令帧。
第二通信模块3021,用于接收主机301发送的第一命令帧。
确定模块3022,用于根据第一命令帧确定需要发送的响应帧。
第二通信模块3021,还用于向主机301发送第一数据中断信号,该第一数据中断信号用于提示主机301接收响应帧。
第一通信模块3011,还用于接收从机302发送的第一数据中断信号。
第一通信模块3011,还用于根据第一数据中断信号接收响应帧。
第二通信模块3021,还用于在主机301接收完毕响应帧之后,向主机301发送第二数据中断信号,该第二数据中断信号用于提示主机301从机302已经进入数据接收状态。
第一通信模块3011,还用于接收第二数据中断信号,并重新执行上述的向从机302发送第一命令帧的操作。
可见,实施图3所描述的基于SPI的主从通信装置能够通过从机在接收到主机发送的命令帧之后,向主机发送用于提示主机接收从机发送的响应帧的数据中断信号,并在确定发送完毕响应帧之后,即在主机接收完毕响应帧之后再向主机发送另一个用于表示从机已进入数据接收状态的数据中断信号,能够实现主机和从机的同步,从而使得主机清楚知晓从机的数据处理情况,以便于根据从机的数据处理情况启动下一数据的传输,减少传输数据丢失的情况发生以及协调主机与从机处理能力、响应速度的差异;以及通过响应帧,能够使得在数据传输出错时数据发送方及时且准确知晓,以便于数据发送方重新传输数据;以及通过响应帧能够反馈传输数据的正确性与实现数据处理后的结果反馈,提高主机和从机之间的通信灵活性以及拓展性;以及通过从机的中断信号触发响应帧的传输,无需通过主机提供时钟信号,即无需通过轮询方式检测从机的应答字节,能够减少***资源浪费的情况发生。
在另一个可选的实施例中,如图4所示,主机301还包括第一判断模块3012,从机302还包括生成模块3023,其中:
第一判断模块3012,用于在第一通信模块3011接收第二数据中断信号之后,以及在第一通信模块3011重新执行上述的向从机302发送第一命令帧的操作之前,判断是否需要向从机302发送第一数据帧,当判断出不需要向从机302发送第一数据帧时,触发第一通信模块3011重新执行上述的向从机发送第一命令帧的操作。
第一通信模块3011,还用于当第一判断模块3012判断出需要向从机发送第一数据帧时,向从机发送第一数据帧。
第二通信模块3021,还用于接收主机301发送的第一数据帧。
生成模块3023,用于根据第一数据帧生成第三数据中断信号。
第二通信模块3021,还用于向主机301发送第三数据中断信号,该第三数据中断信号用于提示主机301从机302已经进入数据接收状态。
第一通信模块3011,还用于接收第三数据中断信号,并重新执行上述的向从机302发送第一命令帧的操作。
可见,实施图4所描述的基于SPI的主从通信装置能够在接收完毕用于从机已经进入数据接收状态之后,主机进一步在判断出不需要向从机发送数据帧时,直接向从机发送命令帧,在判断出需要向从机发送数据帧时,则向从机发送数据帧,以使得从机对数据帧中的数据处理后向主机反馈用于表示处理完毕所接收到的数据,即从机又进入数据接收状态的数据中断信号,以便于主机向从机传输数据,提供了命令帧、响应帧和数据帧三种帧类型以及主机向从机传输数据帧的事务来进一步提高主机和从机之间的数据传输可靠性,以及通过从机的中断信号触发数据帧处理完成的反馈同步,能够进一步减少***资源浪费的发生情况。
在另一个可选的实施例中,如图4所示,从机302还包括第二判断模块3024,其中:
第二判断模块3024,用于在主机301接收完毕响应帧之后,以及在第二通信模块3021向主机301发送第二数据中断信号之前,判断是否需要向主机301发送第二数据帧,当判断出不需要向主机301发送第二数据帧时,触发第二通信模块3021执行上述的向主机发送第二数据中断信号的操作。
第二通信模块3021,还用于当第二判断模块3024判断出需要向主机发送第二数据帧时,向主机301发送第四数据中断信号,该第四数据中断信号用于提示主机301接收第二数据帧。
第一通信模块3011,还用于接收从机302发送的第四数据中断信号。
第一通信模块3011,还用于根据第四数据中断信号接收第二数据帧。
第二通信模块3021,还用于在主机301接收完毕第二数据帧之后,触发执行上述的向主机发送第二数据中断信号的操作。
可见,实施图4所描述的基于SPI的主从通信装置能够在检测到主机接收完毕响应帧之后,从机进一步判断是否需要向主机发送数据,若否,则直接向主机发送用于表示已经做好接收数据准备的中断信号,若是,则通过向主机发送数据中断信号,以提示主机接收从机发送的数据,并在确保主机接收完毕数据之后,才向主机发送用于表示已经做好接收数据准备的中断信号,既能够提高从机向主机传输数据的可靠性,又能够提高用于表示已经做好接收数据准备的中断信号的发送准确性以及可靠性。
在又一个可选的实施例中,如图4所示,主机301还包括第三判断模块3013以及第一切换模块3014,从机302还包括第二切换模块3025,其中:
第三判断模块3013,用于在主机301和从机302处于通信状态时,判断是否需要将主机301和从机302的当前通信状态切换至事件状态。
第一通信模块3011,用于当第三判断模块3013判断出需要切换至事件状态时,向从机302发送第一命令。
第一切换模块3014,用于根据第一命令将主机的当前通信状态切换至事件状态,该第一命令用于通知从机将从机的当前通信状态切换至事件状态。
第二通信模块3021,还用于接收第一命令。
第二切换模块3025,用于根据第一命令将从机302的当前通信状态切换至事件状态。
可见,实施图4所描述的基于SPI的主从通信装置通过在主机和从机处于通信状态之后,主机进一步判断是否需要将主机和从机的当前状态切换为事件状态,若是,则向从机发出特定指令,以使得主机和从机切换至事件状态,能够提高主机和从机切换至事件状态的准确性以及效率,从而便于主机和从机进行异步事件的处理。
在又一个可选的实施例中,如图4所示,从机302还包括第四判断模块3026,其中:
第四判断模块3026,用于在主机301和从机302处于事件状态时,判断是否需要向主机301发送目标事件。
第二通信模块3021,还用于当第四判断模块3026判断出需要向主机301发送目标事件时,向主机301发送事件中断信号,该事件中断信号用于提示主机处理目标事件。
第一通信模块3011,还用于接收事件中断信号。
第一通信模块3011,还用于根据事件中断信号向从机302发送第二命令。
第一切换模块3014,还用于根据第二命令将事件状态切换至通信状态。
第二通信模块3021,还用于接收主机301发送的第二命令。
第二切换模块3025,还用于根据第二命令将事件状态切换至通信状态。
可见,实施图4所描述的基于SPI的主从通信装置通过在主机和从机处于事件状态之后,且当有事件要通知主机时,通过主动产生事件中断信号并发送给主机,能够实现从机的异步事件的主动通知,以使得主机发起新的命令对从机的事件进行处理。
在又一个可选的实施例中,如图4所示,第四判断模块3026,还用于在第二通信模块3021向主机301发送事件中断信号之前,判断从机的当前电平是否为确定出的高电平,当判断出从机302的当前电平为高电平时,触发第二通信模块3021执行上述的向主机301发送事件中断信号的操作。
第二切换模块3025,还用于当第四判断模块3026判断出从机302的当前电平不为高电平时,将从机302的当前电平转换为高电平,并触发第二通信模块3021执行上述的向主机301发送事件中断信号的操作。
可见,实施图4所描述的基于SPI的主从通信装置通过在向主机发送事件中断信号之前,从机先判断当前的电平是否为高电平,若是,方向主机发送事件中断信号,若否,则先将当前的低电平切换为高电平才向主机发送事件中断信号,能够提高事件中断信号的传输准确性以及可靠性,从而提高异步事件的处理准确性以及可靠性。
实施例四
请参阅图5,图5是本发明实施例公开的一种主机的结构示意图。如图5所示,该主机可以包括:
存储有可执行程序代码的存储器501;
与存储器501耦合的处理器502;
进一步的,还可以包括与处理器502耦合的输入接口503和输出接口504;
其中,处理器502调用存储器501中存储的可执行程序代码,用于执行实施例一或实施例二所描述的基于SPI的主从通信方法中主机所执行的步骤。
实施例五
请参阅图6,图6是本发明实施例公开的一种从机的结构示意图。如图6所示,该从机可以包括:
存储有可执行程序代码的存储器601;
与存储器601耦合的处理器602;
进一步的,还可以包括与处理器602耦合的输入接口603和输出接口604;
其中,处理器602调用存储器601中存储的可执行程序代码,用于执行实施例一或实施例二所描述的基于SPI的主从通信方法中从机所执行的步骤。
实施例六
本发明实施例公开了一种计算机读存储介质,其存储用于电子数据交换的计算机程序,其中,该计算机程序使得计算机执行实施例一或实施例二所描述的基于SPI的主从通信方法中主机所执行的步骤。
实施例七
本发明实施例公开了一种计算机读存储介质,其存储用于电子数据交换的计算机程序,其中,该计算机程序使得计算机执行实施例一或实施例二所描述的基于SPI的主从通信方法中从机所执行的步骤。
实施例八
本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一或实施例二所描述的基于SPI的主从通信方法中主机所执行的步骤。
实施例九
本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一或实施例二所描述的基于SPI的主从通信方法中从机所执行的步骤。
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种基于SPI的主从通信方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
Claims (12)
1.一种基于SPI的主从通信方法,其特征在于,所述方法包括:
主机向从机发送第一命令帧;所述从机接收所述主机发送的所述第一命令帧,并根据所述第一命令帧确定需要发送的响应帧,以及向所述主机发送第一数据中断信号,所述第一数据中断信号用于提示所述主机接收所述响应帧,所述响应帧承载在所述第一数据中断信号上或者单独传输给所述主机;
所述主机接收所述从机发送的所述第一数据中断信号,并根据所述第一数据中断信号接收所述响应帧;
在所述主机接收完毕所述响应帧之后,所述从机向所述主机发送第二数据中断信号,所述第二数据中断信号用于提示所述主机所述从机已经进入数据接收状态;
所述主机接收所述第二数据中断信号,并重新执行所述的向所述从机发送第一命令帧的操作。
2.根据权利要求1所述的基于SPI的主从通信方法,其特征在于,所述主机接收所述第二数据中断信号之后,以及所述主机重新执行所述的向所述从机发送第一命令帧的操作之前,所述方法还包括:
所述主机判断是否需要向所述从机发送第一数据帧,当判断出不需要向所述从机发送所述第一数据帧时,重新执行所述的向所述从机发送第一命令帧的操作;
当判断出需要向所述从机发送所述第一数据帧时,所述主机向所述从机发送所述第一数据帧;
所述从机接收所述主机发送的所述第一数据帧,并根据所述第一数据帧生成第三数据中断信号,以及向所述主机发送所述第三数据中断信号,所述第三数据中断信号用于提示所述主机所述从机已经进入数据接收状态;
所述主机接收所述第三数据中断信号,并重新执行所述的向所述从机发送第一命令帧的操作。
3.根据权利要求1或2所述的基于SPI的主从通信方法,其特征在于,在所述主机接收完毕所述响应帧之后,以及所述从机向所述主机发送第二数据中断信号之前,所述方法还包括:
所述从机判断是否需要向所述主机发送第二数据帧,当判断出不需要向所述主机发送所述第二数据帧时,触发执行所述的向所述主机发送第二数据中断信号的操作;
当判断出需要向所述主机发送所述第二数据帧时,所述从机向所述主机发送第四数据中断信号,所述第四数据中断信号用于提示所述主机接收所述第二数据帧;
所述主机接收所述从机发送的所述第四数据中断信号,并根据所述第四数据中断信号接收所述第二数据帧;
在所述主机接收完毕所述第二数据帧之后,所述从机触发执行所述的向所述主机发送第二数据中断信号的操作。
4.根据权利要求1或2所述的基于SPI的主从通信方法,其特征在于,所述方法还包括:
在所述主机和所述从机处于通信状态时,所述主机判断是否需要将所述主机和所述从机的当前通信状态切换至事件状态;
当判断出需要切换至所述事件状态时,所述主机向所述从机发送第一命令,并根据所述第一命令将所述主机的当前通信状态切换至所述事件状态,所述第一命令用于通知所述从机将所述从机的当前通信状态切换至所述事件状态;
所述从机接收所述第一命令,并根据所述第一命令将所述从机的当前通信状态切换至所述事件状态。
5.根据权利要求4所述的基于SPI的主从通信方法,其特征在于,所述方法还包括:
在所述主机和所述从机处于所述事件状态时,所述从机判断是否需要向所述主机发送目标事件,当判断出需要向所述主机发送所述目标事件时,向所述主机发送事件中断信号,所述事件中断信号用于提示所述主机处理所述目标事件;
所述主机接收所述事件中断信号,并根据所述事件中断信号向所述从机发送第二命令,以及根据所述第二命令将所述事件状态切换至通信状态;
所述从机接收所述主机发送的所述第二命令,并根据所述第二命令将所述事件状态切换至通信状态。
6.根据权利要求5所述的基于SPI的主从通信方法,其特征在于,所述从机向所述主机发送事件中断信号之前,所述方法包括:
所述从机判断所述从机的当前电平是否为确定出的高电平,当判断出所述从机的当前电平为所述高电平时,触发执行所述的向所述主机发送事件中断信号的操作;
当判断出所述从机的当前电平不为所述高电平时,所述从机将所述从机的当前电平转换为所述高电平,并触发执行所述的向所述主机发送事件中断信号的操作。
7.根据权利要求3所述的基于SPI的主从通信方法,其特征在于,所述方法还包括:
在所述主机和所述从机处于通信状态时,所述主机判断是否需要将所述主机和所述从机的当前通信状态切换至事件状态;
当判断出需要切换至所述事件状态时,所述主机向所述从机发送第一命令,并根据所述第一命令将所述主机的当前通信状态切换至所述事件状态,所述第一命令用于通知所述从机将所述从机的当前通信状态切换至所述事件状态;
所述从机接收所述第一命令,并根据所述第一命令将所述从机的当前通信状态切换至所述事件状态。
8.一种基于SPI的主从通信装置,其特征在于,所述装置包括主机和从机,所述主机包括第一通信模块,所述从机包括第二通信模块以及确定模块,其中:
所述第一通信模块,用于向从机发送第一命令帧;
所述第二通信模块,用于接收所述主机发送的所述第一命令帧;
所述确定模块,用于根据所述第一命令帧确定需要发送的响应帧;
所述第二通信模块,还用于向所述主机发送第一数据中断信号,所述第一数据中断信号用于提示所述主机接收所述响应帧,所述响应帧承载在所述第一数据中断信号上或者单独传输给所述主机;
所述第一通信模块,还用于接收所述从机发送的所述第一数据中断信号;
所述第一通信模块,还用于根据所述第一数据中断信号接收所述响应帧;
所述第二通信模块,还用于在所述主机接收完毕所述响应帧之后,向所述主机发送第二数据中断信号,所述第二数据中断信号用于提示所述主机所述从机已经进入数据接收状态;
所述第一通信模块,还用于接收所述第二数据中断信号,并重新执行所述的向所述从机发送第一命令帧的操作。
9.根据权利要求8所述的基于SPI的主从通信装置,其特征在于,所述主机还包括第一判断模块,所述从机还包括生成模块,其中:
所述第一判断模块,用于在所述第一通信模块接收所述第二数据中断信号之后,以及在所述第一通信模块重新执行所述的向所述从机发送第一命令帧的操作之前,判断是否需要向所述从机发送第一数据帧,当判断出不需要向所述从机发送所述第一数据帧时,触发所述第一通信模块重新执行所述的向所述从机发送第一命令帧的操作;
所述第一通信模块,还用于当所述第一判断模块判断出需要向所述从机发送所述第一数据帧时,向所述从机发送所述第一数据帧;
所述第二通信模块,还用于接收所述主机发送的所述第一数据帧;
生成模块,用于根据所述第一数据帧生成第三数据中断信号;
所述第二通信模块,还用于向所述主机发送所述第三数据中断信号,所述第三数据中断信号用于提示所述主机所述从机已经进入数据接收状态;
所述第一通信模块,还用于接收所述第三数据中断信号,并重新执行所述的向所述从机发送第一命令帧的操作。
10.根据权利要求8或9所述的基于SPI的主从通信装置,其特征在于,所述从机还包括第二判断模块,其中:
所述第二判断模块,用于在所述主机接收完毕所述响应帧之后,以及在所述第二通信模块向所述主机发送第二数据中断信号之前,判断是否需要向所述主机发送第二数据帧,当判断出不需要向所述主机发送所述第二数据帧时,触发所述第二通信模块执行所述的向所述主机发送第二数据中断信号的操作;
所述第二通信模块,还用于当所述第二判断模块判断出需要向所述主机发送所述第二数据帧时,向所述主机发送第四数据中断信号,所述第四数据中断信号用于提示所述主机接收所述第二数据帧;
所述第一通信模块,还用于接收所述从机发送的所述第四数据中断信号;
所述第一通信模块,还用于根据所述第四数据中断信号接收所述第二数据帧;
所述第二通信模块,还用于在所述主机接收完毕所述第二数据帧之后,触发执行所述的向所述主机发送第二数据中断信号的操作。
11.根据权利要求8或9所述的基于SPI的主从通信装置,其特征在于,所述主机还包括第三判断模块以及第一切换模块,所述从机还包括第二切换模块,其中:
所述第三判断模块,用于在所述主机和所述从机处于通信状态时,判断是否需要将所述主机和所述从机的当前通信状态切换至事件状态;
所述第一通信模块,用于当所述第三判断模块判断出需要切换至所述事件状态时,向所述从机发送第一命令;
第一切换模块,用于根据所述第一命令将所述主机的当前通信状态切换至所述事件状态,所述第一命令用于通知所述从机将所述从机的当前通信状态切换至所述事件状态;
所述第二通信模块,还用于接收所述第一命令;
第二切换模块,用于根据所述第一命令将所述从机的当前通信状态切换至所述事件状态。
12.根据权利要求10所述的基于SPI的主从通信装置,其特征在于,所述主机还包括第三判断模块以及第一切换模块,所述从机还包括第二切换模块,其中:
所述第三判断模块,用于在所述主机和所述从机处于通信状态时,判断是否需要将所述主机和所述从机的当前通信状态切换至事件状态;
所述第一通信模块,用于当所述第三判断模块判断出需要切换至所述事件状态时,向所述从机发送第一命令;
第一切换模块,用于根据所述第一命令将所述主机的当前通信状态切换至所述事件状态,所述第一命令用于通知所述从机将所述从机的当前通信状态切换至所述事件状态;
所述第二通信模块,还用于接收所述第一命令;
第二切换模块,用于根据所述第一命令将所述从机的当前通信状态切换至所述事件状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110155404.8A CN112817886B (zh) | 2021-02-04 | 2021-02-04 | 基于spi的主从通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110155404.8A CN112817886B (zh) | 2021-02-04 | 2021-02-04 | 基于spi的主从通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817886A CN112817886A (zh) | 2021-05-18 |
CN112817886B true CN112817886B (zh) | 2023-01-24 |
Family
ID=75861363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110155404.8A Active CN112817886B (zh) | 2021-02-04 | 2021-02-04 | 基于spi的主从通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817886B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806265B (zh) * | 2021-09-18 | 2024-07-26 | 国家石油天然气管网集团有限公司 | 一种spi主从式通讯方法 |
CN114115133A (zh) * | 2021-11-02 | 2022-03-01 | 深圳市华成工业控制股份有限公司 | 一种基于内部通信的多芯片五轴伺服驱控***及方法 |
CN114050947A (zh) * | 2021-11-09 | 2022-02-15 | 北京经纬恒润科技股份有限公司 | 一种基于车载spi总线的通信方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459632A (zh) * | 2020-03-30 | 2020-07-28 | 南京邮电大学 | 一种供终端应用程序调用的串口代理及实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6652702B2 (ja) * | 2015-12-25 | 2020-02-26 | 富士通クライアントコンピューティング株式会社 | 伝送システムおよびマスタ装置 |
IT201800003980A1 (it) * | 2018-03-26 | 2019-09-26 | Stmicroelectronics Application Gmbh | Procedimento di comunicazione, sistema, dispositivi, segnale e veicolo corrispondenti |
CN111130710B (zh) * | 2019-12-10 | 2022-03-08 | 常州新途软件有限公司 | 一种基于spi的双工通信方法 |
CN112260724A (zh) * | 2020-10-26 | 2021-01-22 | 青岛鼎信通讯股份有限公司 | 一种中压电力线载波动态组网方法 |
-
2021
- 2021-02-04 CN CN202110155404.8A patent/CN112817886B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459632A (zh) * | 2020-03-30 | 2020-07-28 | 南京邮电大学 | 一种供终端应用程序调用的串口代理及实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112817886A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112817886B (zh) | 基于spi的主从通信方法及装置 | |
CN103645975B (zh) | 一种异常恢复的方法及串行总线传输装置 | |
CN101980171A (zh) | 一种软件***故障自恢复方法及其使用的软件看门狗*** | |
CN113765714A (zh) | 设备配网方法、装置、存储介质及电子设备 | |
CN112929431A (zh) | 基于微服务框架的消息同步与异步应答转换方法及装置 | |
EP4325439A1 (en) | Image processing method and apparatus, and device and storage medium | |
CN115941382A (zh) | 一种spi通信的流控方法、装置、终端设备及存储介质 | |
CN112822002B (zh) | 基于spi的通信方法及装置、电子设备和存储介质 | |
CN111008169B (zh) | 一种低成本高速通信总线及其传输控制方法 | |
CN109905459B (zh) | 一种数据传输方法及装置 | |
CN109445806B (zh) | 基于Ble的多设备升级方法、装置、***及终端 | |
CN113250944B (zh) | 一种基于主从控制***的控制方法及水泵控制*** | |
CN113242169B (zh) | 多从机数据更新方法、***、设备和存储介质 | |
EP4207637A1 (en) | Time synchronization method and apparatus, device, and storage medium | |
CN109586832B (zh) | 无线同步方法、无线从机、无线主机和无线同步*** | |
US20010024442A1 (en) | Control program structure of ATM switching system and method thereof | |
CN114268935A (zh) | 设备连接方法、终端及存储介质 | |
CN112346366A (zh) | 终端设备的控制方法、装置、设备及计算机可读存储介质 | |
CN215181976U (zh) | 一种电子设备 | |
CN115525415B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN115981924B (zh) | 设备控制方法、电子设备及存储介质 | |
CN113886296B (zh) | 数据传输方法、装置、设备和存储介质 | |
CN112769824B (zh) | 一种信息传输状态更新方法、终端、装置及存储介质 | |
CN108446131B (zh) | 一种atm机固件升级方法、装置、设备及存储介质 | |
CN112134771B (zh) | 用于冰箱的半双工通信方法与冰箱 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |