CN112363962B - 数据通信方法、系统、电子设备及计算机存储介质 - Google Patents

数据通信方法、系统、电子设备及计算机存储介质 Download PDF

Info

Publication number
CN112363962B
CN112363962B CN202011193246.7A CN202011193246A CN112363962B CN 112363962 B CN112363962 B CN 112363962B CN 202011193246 A CN202011193246 A CN 202011193246A CN 112363962 B CN112363962 B CN 112363962B
Authority
CN
China
Prior art keywords
gpio interface
communication
data
communication data
gpio
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
Application number
CN202011193246.7A
Other languages
English (en)
Other versions
CN112363962A (zh
Inventor
何晓龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Goodix Technology Co Ltd
Original Assignee
Shenzhen Goodix Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Goodix Technology Co Ltd filed Critical Shenzhen Goodix Technology Co Ltd
Priority to CN202011193246.7A priority Critical patent/CN112363962B/zh
Publication of CN112363962A publication Critical patent/CN112363962A/zh
Application granted granted Critical
Publication of CN112363962B publication Critical patent/CN112363962B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本申请提供一种数据通信方法、系统、电子设备及计算机存储介质,涉及通信技术领域,以实现一个设备通过两个通用输入输出端口与对端设备实现双向主动通信,其中对端设备也只需要使用两个通用输入输出端口与该设备连接。该数据通信方法包括:在第一设备处于空闲状态时,第一设备的第一GPIO接口处于输出模式,第一设备的第二GPIO接口处于中断模式,第二设备处于空闲状态时,第三GPIO接口处于中断模式,且第四GPIO接口处于输出模式;第一设备通过第一GPIO接口向第二设备的第三GPIO接口发送第一通信请求信号,在第一设备和第二设备在第一通信数据传输完毕之后,由通信状态切换至空闲状态。

Description

数据通信方法、系统、电子设备及计算机存储介质
技术领域
本申请涉及通信技术领域,尤其涉及一种数据通信方法、系统、电子设备及计算机存储介质。
背景技术
目前两个电子设备通过两根数据线(两根数据线包含一根时钟信号线和一根数据线)连接通信时,实现半双工通信的方式主要是采用I2C(Inter-Integrated Circuit Bus,集成电路总线)通信协议。
半双工通信方式是指,可以由设备A传输数据给设备B,也可以由设备B传输数据给设备A,但是同一时段只能有一种情况发生,也即,两个设备不能在同一时段互相传输数据。
但是,目前在使用I2C通信协议实现半双工通信方式的情况下,两个设备需要预先指定主设备和从设备,只能由主设备发起向从设备发送数据的请求,或者主设备在从设备处读取数据的请求,而从设备不能向主设备发起请求,从设备只能被动的等待主设备的请求,两个设备的主从关系不会发生改变,通信方式不够灵活。
另外I2C接口需要专门的硬件接口支持,对于一些不带有I2C硬件接口的设备或者电路模块来讲,无法采用类似的数据通信方法。
发明内容
本申请提供一种数据通信方法、系统、电子设备及计算机存储介质,以实现一个设备通过两个通用输入输出端口与对端设备实现双向主动通信,其中对端设备也只需要使用两个通用输入输出端口与该设备连接。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种数据通信方法,该方法应用于具有GPIO接口的数据通信系统,其中数据通信系统包括第一设备和第二设备,第一设备包括第一通用输入输出GPIO接口和第二GPIO接口,第二设备包括与第一GPIO接口相连接的第三GPIO接口和与第二GPIO接口相连接的第四GPIO接口,该方法包括:在第一设备处于空闲状态时,第一设备的第一GPIO接口处于输出模式,第一设备的第二GPIO接口处于中断模式,第二设备处于空闲状态时,第三GPIO接口处于中断模式,且第四GPIO接口处于输出模式;第一设备控制第一GPIO接口向第二设备的第三GPIO接口发送第一通信请求信号,第二设备响应于第一通信请求信号,向第一设备反馈第一请求响应信号;响应于第一请求响应信号,第一设备与第二设备进入通信状态以传输第一通信数据;第一设备和第二设备在第一通信数据传输完毕之后,由通信状态切换至空闲状态。
本申请实施例提供的数据通信方法,在第一设备处于空闲状态时,由于第一GPIO接口设置为输出模式,使得第一设备在需要与第二设备通信时,可以通过第一GPIO接口向第二设备的第三GPIO接口发送通信请求,如果第二设备处于空闲状态,则第二设备可以通过处于中断模式的第三GPIO接口检测到第一设备发送的通信请求,并在第一设备与第二设备通信结束之后设置第一设备处于空闲状态,使得第二设备也可以主动向第一设备发送通信请求,这样,通信双方的设备都可以主动向对方发起通信请求,通信方式更为灵活,实现了一个设备可以通过两个通用输入输出端口与对端设备实现双向主动通信,其中对端设备也只需要使用两个通用输入输出端口与该设备连接。
在一种可能的实现方式中,响应于第一请求响应信号,第一设备与第二设备传输第一通信数据,包括:第一设备确定第一设备的第二GPIO接口接收到第二设备的第四GPIO接口反馈的第一请求响应信号;第一设备控制第二GPIO接口向第四GPIO接口发送第一通信数据,并控制第一GPIO接口向第三GPIO接口发送第一触发信号,其中,第一触发信号用于触发第四GPIO接口接收第一通信数据;第一设备确定第二GPIO接口接收到第四GPIO接口反馈的第一结束信号,其中,第一结束信号用于表示第二设备结束接收第一通信数据。
在一种可能的实现方式中,第一设备确定处于空闲状态,包括:第一设备获取第一GPIO接口和第二GPIO接口的工作模式;第一设备确定第一GPIO接口的工作模式为输出模式,且第二GPIO接口的工作模式为中断模式。
在一种可能的实现方式中,在第一设备控制第二GPIO接口向第四GPIO接口发送第一通信数据之前,该方法还包括:第一设备控制第二GPIO接口的工作模式由中断模式切换至输出模式。
在一种可能的实现方式中,第一设备由通信状态切换至空闲状态,包括:第一设备设置第一GPIO接口的工作模式为输出模式,并设置第二GPIO接口的工作模式为中断模式,以使第一设备进入空闲状态。
在一种可能的实现方式中,第一触发信号为时钟信号的每个上升沿和每个下降沿,每个第一触发信号用于触发第四GPIO接口接收通信数据的一位数据。
在一种可能的实现方式中,第一设备在每个上升沿和每个下降沿之前,控制第二GPIO接口输出第一通信数据中对应于下一个沿的信号。
在一种可能的实现方式中,该方法还包括:第二设备控制第四GPIO接口向第二设备的第二GPIO接口发送第二通信请求信号,第一设备响应于第二通信请求信号,向第二设备反馈第二请求响应信号;响应于第二请求响应信号,第一设备与第二设备传输第二通信数据并进入通信状态,并在第二通信数据传输完毕之后,由通信状态切换至空闲状态。
在一种可能的实现方式中,响应于第二请求响应信号,第二设备与第一设备传输第二通信数据,包括:第二设备确定第二设备的第三GPIO接口接收到第一设备的第一GPIO接口反馈的第二请求响应信号;第二设备控制第三GPIO接口向第一GPIO接口发送第二通信数据,并控制第四GPIO接口向第二GPIO接口发送第二触发信号,其中,第二触发信号用于触发第一GPIO接口接收第二通信数据;第二设备确定第三GPIO接口接收到第一GPIO接口反馈的第二结束信号,其中,第二结束信号用于表示第一设备结束接收第二通信数据。
在一种可能的实现方式中,在第二设备控制第四GPIO接口向第一设备的第二GPIO接口发送第一请求响应信号之后,在第四GPIO接口接收第二GPIO接口发送的第一通信数据之前,该方法还包括:第二设备控制第四GPIO接口的工作模式由输出模式切换为输入模式。
在一种可能的实现方式中,该方法还包括:第二设备解析第一通信数据已接收到的部分获得解析结果,并根据解析结果确定第一通信数据的预设长度,其中,第一通信数据中携带有预设长度的信息;第二设备确定第一通信数据接收完毕,包括:第二设备确定接收到的第一通信数据的长度为预设长度。
第二方面,本申请提供一种电子系统,包括:第一设备和第二设备,第一设备包括第一通用输入输出GPIO接口和第二GPIO接口,第二设备包括与第一GPIO接口相连接的第三GPIO接口和与第二GPIO接口相连接的第四GPIO接口;一个或多个处理器;一个或多个存储器;以及一个或多个计算机程序,其中一个或多个计算机程序被存储在一个或多个存储器中,一个或多个计算机程序包括指令,当指令被电子系统执行时,使得电子系统执行如第一方面及其任一种可能的实现方式中的数据通信方法。
第三方面,本申请提供一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的实现方式中的数据通信方法。
第四方面,本申请提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的实现方式中的数据通信方法。
第五方面,本申请提供一种数据通信系统,包括:第一设备,包括第一通用输入输出GPIO接口和第二GPIO接口,其中,在第一设备处于空闲状态时,第一GPIO接口处于输出模式,且第二GPIO接口处于中断模式;第二设备,包括与第一GPIO接口相连接的第三GPIO接口和与第二GPIO接口相连接的第四GPIO接口,其中,在第二设备处于空闲状态时,第三GPIO接口处于中断模式,且第四GPIO接口处于输出模式;其中,在第一设备和第二设备中的一方需要向另一方发送通信数据时,发送方在处于空闲状态时能够通过处于输出模式的GPIO接口发送通信请求,以使接收方在处于空闲状态时能够通过处于中断模式的GPIO接口接收通信请求。
本申请实施例提供的数据通信系统,在第一设备和第二设备处于空闲状态时,由于第一GPIO接口设置为输出模式,第三GPIO接口设置为中断模式,使得第一设备在需要与第二设备通信时,可以通过第一GPIO接口向第三GPIO接口发送通信请求,在第二设备处于空闲状态时,可以通过处于中断模式的第三GPIO接口检测到第一设备发送的通信请求;相似的,在第一设备和第二设备处于空闲状态时,第四GPIO接口设置为中断模式,使得第二设备在需要与第一设备通信时,可以通过第四GPIO接口向第二GPIO接口发送通信请求。通过本申请实施例提供的数据通信系统,使得通信双方的设备都可以主动向对方发起通信请求,通信方式更为灵活,实现了一个设备可以通过两个通用输入输出端口与对端设备实现双向主动通信,其中对端设备也只需要使用两个通用输入输出端口与该设备连接。
可以理解地,上述提供的电子设备、计算机存储介质以及计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种数据通信系统的示意图;
图2为本申请实施例提供的一种数据通信方法的流程示意图一;
图3为本申请实施例提供的一种数据通信方法的流程示意图二;
图4为本申请实施例提供的一种电子设备的状态机示意图;
图5为本申请实施例提供的一种数据通信方法的流程示意图三;
图6为本申请实施例提供的一种数据通信方法的发送方的时序示意图;
图7为本申请实施例提供的一种数据通信方法的接收方的时序示意图。
具体实施方式
下面将结合附图对本实施例的实施方式进行详细描述。
本申请实施例提供一种数据通信系统,如图1所示,包括第一设备101和第二设备102。其中,第一设备101和第二102分别都配置有两个GPIO(General-purpose input/output,通用型输入输出)接口,每个GPIO接口配置有一个引脚。每个GPIO接口可以工作在不同的模式,包括:输出(out)模式、输入(in)模式、中断(irq)模式等。其中,在out模式下,GPIO接口可以用于输出数据(包括时钟信号、请求信号或通信数据等)。在in模式下,GPIO接口可以用于接收数据(包括时钟信号、请求信号或通信数据等。在irq模式下,GPIO接口可以等待接收数据,可选的,GPIO接口的引脚在irq模式下可以处于低电平状态,等待高电平的输入。在本申请实施例中,每个设备的处理器可以根据执行的指令控制每个GPIO接口的引脚在不同的时刻处于上述三种模式之一,以实现输入、输出或等待输入的通信功能。
第一设备101包括第一GPIO接口1011和第二GPIO接口1012,第二设备102包括第三GPIO接口1021和第四GPIO接口1022。其中,第一设备101的第一GPIO接口1011与第二设备102的第三GPIO接口1021相连接,第一设备101的第二GPIO接口1012与第二设备102的第四GPIO接口1022相连接。
第一设备101还可以包括一个或多个处理器,和一个或多个存储器,以及一个或多个计算机程序,其中一个或多个计算机程序被存储在一个或多个存储器中,一个或多个计算机程序包括指令,其中一个计算机程序可以是如图1所示的双向通信驱动1013。当双向通信驱动1013的指令被第一设备101执行时,使得第一设备101可以执行如图2所示的数据通信方法,第一设备101的第一GPIO接口1011或第二GPIO接口1012可以根据处理器的控制接收输入的数据(可以包括接收时钟信号)、输出数据(可以包括提供时钟信号)。
相似的,第二设备102还包括一个或多个处理器,和一个或多个存储器,以及一个或多个计算机程序,其中一个或多个计算机程序被存储在一个或多个存储器中,一个或多个计算机程序包括指令,其中一个计算机程序可以是如图1所示的双向通信驱动1023。当双向通信驱动1023的指令被第二设备102执行时,使得第二设备102可以执行如图3所示的数据通信方法。
本申请实施例提供的数据通信系统,在第一设备和第二设备处于空闲状态时,由于第一GPIO接口设置为输出模式,第三GPIO接口设置为中断模式,使得第一设备在需要与第二设备通信时,可以通过第一GPIO接口向第三GPIO接口发送通信请求,在第二设备处于空闲状态时,可以通过处于中断模式的第三GPIO接口检测到第一设备发送的通信请求;相似的,在第一设备和第二设备处于空闲状态时,第四GPIO接口设置为中断模式,使得第二设备在需要与第一设备通信时,可以通过第四GPIO接口向第二GPIO接口发送通信请求。通过本申请实施例提供的数据通信系统,使得通信双方的设备都可以主动向对方发起通信请求,通信方式更为灵活。
本申请实施例提供的一种数据通信方法可以由第一设备101执行,如图2所示,具体可以包括如下步骤:
步骤201,第一设备确定处于空闲状态。
在第一设备101处于空闲状态时,第一设备101的第一GPIO接口1011处于输出模式,且第一设备101的第二GPIO接口1012处于中断模式。
第一设备101可以通过获取第一GPIO接口1011和第二GPIO接口1012的工作模式,来确定是否处于空闲状态,如果第一GPIO接口1011处于输出模式且第二GPIO接口1012处于中断模式,则第一设备101处于空闲状态。
或者,第一设备101也可以通过设置一个空闲状态标识来判断是否处于空闲状态,具体的,在第一设备101处于空闲状态时,空闲状态标识为1,在第一设备101发送通信请求信号之后,设置空闲状态标识为0,在第一设备101结束通信之后,将空闲状态标识设置为1,进而,第一设备101可以通过检测空闲状态标识来判断当前是否处于空闲状态。
步骤202,第一设备控制第一GPIO接口向第二设备的第三GPIO接口发送通信请求信号。
第一设备101控制第一设备101的第一通用输入输出GPIO接口1011向第二设备102的第三GPIO接口1021发送通信请求信号。
通信请求信号用于请求与第二设备102通信以向第二设备102发送通信数据。可选的,通信请求信号可以是一个沿变化或多个沿变化,沿变化是指从低电平切换至高电平的上升沿,或者,从高电平切换至低电平的一个下降沿;或者,通信请求信号还可以包括高电平或低电平,或者,也可以是按照一定顺序发送的沿变化以及电平的组合,本申请实施例对此不作具体限制。
第一设备101在控制第一GPIO接口1011发送通信请求信号之前,需要先配置第一GPIO接口1011为输出(out)模式,在配置第一GPIO接口1011为out模式之后,可以向连接的第三GPIO接口1021发送通信请求信号。
相应的,第二设备102的第三GPIO接口1021如果处于中断(irq)模式,则可以接收到通信请求信号。
在本申请实施例中,如果第一设备101处于空闲状态(也即在没有执行通信传输阶段下设备所处的工作模式),则可以控制第一GPIO接口1011处于out模式,控制第二GPIO接口1012处于irq模式,相似的,如果第二设备102处于空闲状态,则可以控制与第一GPIO接口1011相连接的第三GPIO接口处于irq模式,以等待第一GPIO接口1011输出的数据,并控制与第二GPIO接口1012相连接的第四GPIO接口处于out模式,以在需要时向第二GPIO接口1012发送数据。
由上述处于空闲状态下的情况可知,如果第一设备101或第二设备102处于空闲状态,则可以等待对方设备的输入,因此可以实现通信双方都可以主动的向对方发起通信请求的效果,而不是只有其中一方才可以主动向另一方发起通信。
图2所示实施例以第一设备101主动向第二设备102发起通信请求为例,对通信过程的步骤进行说明。相似的,如果第二设备102需要向第一设备101发送通信数据,则可以由第二设备102主动向第一设备101发起通信请求,具体过程可以根据第一设备101主动发起通信请求完成通信的过程以此类推,不再赘述。
在第一设备向第二设备发送通信请求信号之后,如果第二设备处于空闲状态,则第二设备响应于通信请求信号,向第一设备反馈请求响应信号。
步骤203,响应于请求响应信号,第一设备与第二设备传输通信数据。
其中,在第一设备和第二设备传输通信数据时,第一设备和第二设备处于通信状态,可选的,在上述第一设备101通过设置一个空闲状态标识来判断是否处于空闲状态的实施方式中,空闲状态标识设置为0时可以用于表示第一设备101处于通信状态。
可选的,第一设备101可以通过第二GPIO接口1012检测并接收到第二设备102的第四GPIO接口1022反馈的请求响应信号。
如果第一设备101在执行步骤202之前处于空闲状态,则第二GPIO接口1012处于irq模式,可以等待输入的信号,无需改变第二GPIO接口1012的工作模式,可选的,第一设备101也可以在执行步骤203时,无论第二GPIO接口1012处于什么工作模式,都控制第二GPIO接口1012的工作模式切换至irq模式。另一种可选的实施方式为,除了工作在irq模式,也可以控制第二GPIO接口1012工作于in模式,以接收信号,只要第二GPIO接口1012能够接收信号即可。
请求响应信号表示第二设备102接收到通信请求信号且可以开始通信。第一设备101在接收到请求响应信号之后,可以开始发送通信数据,通信数据可以包括多个字节,第一设备101可以在发送通信请求信号之前生成通信数据的所有字节的内容,也可以同步执行发送当前已生成的字节和生成下一字节,本申请实施例对此时序不作具体限定,可以根据第一设备101的处理器运算能力进行具体设定。一种可选的示例为,第一设备101可以在发送通信请求信号之前准备好通信数据,通信数据可以存储(可以是暂时保存,在发送完毕之后删除)在第一设备101的存储器中,也可以在接收到请求响应信号之后准备通信数据,等等,准备通信数据的时机本申请实施例不作具体限制,可以根据第一设备101的运算能力进行设计。
可选的,第一设备101可以通过第二GPIO接口1012向第四GPIO接口1022发送通信数据,并控制第一GPIO接口1011向第三GPIO1021接口发送触发信号,其中,触发信号用于触发第四GPIO接口接收通信数据。
在执行步骤203时,第一设备101可以控制第二GPIO接口1012工作在out模式,一种可选的情景为第一设备101控制第二GPIO接口1012由irq模式切换至out模式,另一种可选的情景可以是第一设备101控制第二GPIO接口1012由in模式切换至out模式。在第二GPIO接口1012切换至out模式之后,可以输出数据,具体的,发送通信数据的具体内容。通信数据可以包括多个字节。
由于通信数据可以包括多个字节,每个字节可以包括多位数据,为了触发第四GPIO接口1022接收第二GPIO接口1012发送的每一位通信数据,第一设备101可以控制第一GPIO接口1011工作在out模式,以向第二设备102的第三GPIO接口1021发送触发信号,由触发信号触发第四GPIO接口1022接收每一位通信数据。
可选的,第一GPIO接口1011可以发送时钟信号,其中,触发信号可以是时钟信号的高电平或低电平,或者,触发信号也可以是时钟信号的上升沿、或下降沿、或沿变化(沿变化包括上升沿和下降沿)。
以触发信号为时钟信号的沿变化为例,时钟信号的每一次电平的翻转,都会触发第二设备102的第四GPIO接口1022接收第一设备101的第一GPIO接口1011发送的一位通信数据。如果触发信号采用时钟信号的沿变化,可以提高数据传输效率,相较于I2C接口中仅使用上升沿或下降沿其中之一触发对方接收数据,传输数据的速率可以提高一倍。
进一步的,为了防止在时钟信号的沿变化时,通信数据没有变化,导致对方接收数据出现错误,第一设备101可以在每一个沿变化之前,控制第二GPIO接口准备好下一个沿变化需要传输的通信数据,这样可以使得在第一GPIO接口发生电平翻转(沿变化)时,第二GPIO接口的通信数据已经处于对应的电平,可以减少通信数据的传输错误。
步骤204,第一设备和第二设备在通信数据传输完毕之后,由通信状态切换至空闲状态。
具体的,第一设备由通信状态切换至空闲状态时,需要将第一设备的第一GPIO接口设置为输出模式,将第二GPIO接口设置为中断模式。可选的,如果第一设备通过空闲状态标识来标识当前的工作状态时,除了设置GPIO接口的工作模式,还可以将空闲状态标识设置为用于表示当前处于空闲状态的标识,例如将空闲状态标识设置为1。第二设备在通信数据传输完毕之后,也会将通信状态切换至空闲状态。
可选的,判断通信数据是否传输完毕可以是由第二设备执行,由第二设备向第一设备发送用于表示通信数据传输完毕的结束信号,在第一设备接收到结束信号之后,第一设备确定数据传输完毕。
一种可选的实施方式为,第一设备确定第二GPIO接口接收到第四GPIO接口反馈的结束信号,其中,结束信号用于表示第二设备结束接收通信数据。相应的,在第一设备101发送通信数据结束之后,第一设备101可以控制第一GPIO接口1011结束发送触发信号,并控制第一GPIO接口1011处于irq模式,以等待第二设备102发送的结束信号。
第二设备102确定结束通信数据的传输一种可选的实施方式为,其中,通信数据中可以包括通信数据的长度,例如,通信数据可以包括多个部分,具体的,多个部分可以包括帧头部分和数据部分,帧头部分可以携带通信数据长度的信息,在第二设备102接收到帧头部分之后,可以按照第一设备101和第二设备102预先协议好的通信协议解析帧头部分,确定通信数据的长度。在第二设备102确定接收到的通信数据的长度达到帧头部分定义的长度之后,第二设备102可以控制第四GPIO接口1022向第一设备101的第二GPIO接口1011发送结束信号,以表示第二设备102结束接收通信数据。至此,一个完整的通信数据的传输过程结束。
需要说明的是,上述第二设备102确定确定结束通信数据的实施方式仅用于举例,在另一些实施例中,第二设备102确定通信数据发送完毕的方法还可以通过其他实施方式,例如,第一设备101在发送通信数据完毕之后,控制第一GPIO接口1011发送一个用于表示结束通信数据的第一信号,第二设备102的第三GPIO接口1021在接收到第一信号之后,确定通信数据发送完毕。这种实施方式相较于第二设备102解析通信数据以确定通信数据长度的实施方式,可以减少第二设备102接收通信数据之后的运算量,第二设备102等待第一信号即可;而第二设备102解析通信数据以确定通信数据长度的实施方式则可以减少等待第一信号的通信时间,简化双方通信的握手流程。除了上述两种示例的实施方式之外,第二设备102确定确定结束通信数据的实施方式还可以采用其它实施方式,本申请实施例对此不作具体限定,可以根据具体情况进行设置。
可选的,第一设备生成的通信数据可以是根据预设通信协议生成的,其中,通信数据可以包括头部信息,头部信息包括通信数据的预设长度的信息和校验信息,校验信息用于使第二设备校验通信数据的正确性,在第二设备接收通信数据时,接收到头部信息之后则可以根据预设通信协议进行解析,以根据头部信息中的预设长度信息和校验信息对通信数据进行检验,在第二设备确定接收到的通信数据的长度达到预设长度之后,可以根据校验信息对通信数据进行校验,如果校验正确,则确定通信数据传输成功,第二设备可以发送结束信号。
上述步骤201~204是从数据发送方的角度描述通信过程,下面从数据接收方的角度来描述通信过程。
需要说明的是,上述步骤201~204仅仅是以第一设备作为数据发送方为例描述,并不用于限定只能由第一设备作为数据发送方,由第二设备作为数据发送方的通信过程是相似的,第二设备的第三GPIO接口与第一设备的第二GPIO接口的作用是相同的,第二设备的第四GPIO接口与第一设备的第一GPIO接口的作用是相同的,以此可以类推出第二设备作为数据发送方,主动发起通信的过程,在此不再赘述。
以第二设备作为数据接收方为例,对本申请实施例提供的一种数据通信方法进行描述,如图3所示,可以包括如下步骤:
步骤301,在第二设备处于空闲状态的情况下,第二设备的第三GPIO接口检测并接收到第一设备的第一GPIO接口发送的通信请求信号。
其中,在第二设备处于空闲状态时,第二设备的第三GPIO接口处于中断模式,因此,第三GPIO接口在处于中断模式时可以检测到第一GPIO接口发送的通信请求信号。在第二设备处于空闲状态时,第二设备的第四GPIO接口处于输出模式。
步骤302,第二设备向第一设备发送请求响应信号。
由于第二设备处于空闲状态,因此可以进行通信,第二设备可以向第一设备发送请求响应信号,以通知第一设备可以开始通信。
步骤303,第二设备与第一设备传输通信数据,其中,在第二设备与第一设备传输通信数据时处于通信状态。
在第一设备接收到请求响应信号之后,开始传输通信数据。
步骤304,第二设备在通信数据传输完毕之后,由通信状态切换至空闲状态。
具体的,第二设备由通信状态切换至空闲状态时,需要设置第二设备的第三GPIO接口为中断模式,并设置第四GPIO接口为输出模式。可选的,与第一设备相似的,第二设备可以通过空闲状态标识来标识自己当前的工作状态,如果处于空闲状态,则可以将空闲状态标识设置为用于表示自己处于空闲状态的标识,例如设置为1,如果处于不处于空闲状态,例如处于通信状态,则可以将空闲状态标识设置为用于标识自己处于通信状态的标识,例如设置为0。可选的,空闲状态标识可以被配置为通过更多的位数来进行标识,本申请实施例对此不作限制。
在第二设备向第一设备发送请求响应信号时,一种可选的实施方式为,第二设备控制第四GPIO接口向第一设备的第二GPIO接口发送请求响应信号;相应的,第二设备与第一设备传输通信数据的步骤,可以包括:第二设备的第三GPIO接口检测并接收第一GPIO接口发送的触发信号,且第四GPIO接口接收第二GPIO接口发送的通信数据,其中,触发信号用于触发第四GPIO接口接收通信数据;第二设备确定通信数据接收完毕;第二设备控制第四GPIO接口向第二GPIO接口发送结束信号,其中,结束信号用于表示第二设备结束接收通信数据。
可选的,在第二设备控制第四GPIO接口向第一设备的第二GPIO接口发送请求响应信号之后,在第四GPIO接口接收第二GPIO接口发送的通信数据之前,该方法还包括:第二设备控制第四GPIO接口的工作模式由输出模式切换为输入模式。
在一种可能的实现方式中,在第二设备与第一设备传输通信数据时,该方法还可以包括:第二设备解析通信数据已接收到的部分;第二设备根据解析结果确定通信数据的预设长度,其中,通信数据中携带有预设长度的信息;第二设备确定通信数据接收完毕,包括:第二设备确定接收到的通信数据的长度为预设长度。
需要说明的是,图3所示实施例提供的应用于图1所示实施例提供的数据通信系统中的接收方的数据通信方法,是与图2所示实施例提供的发送方的数据通信方法相对应的方法,在图3所示实施例中未详述的步骤或可选的实施方式,可以参考图2所示实施例中的说明。
本申请实施例还提供一种电子设备,包括:两个GPIO接口;一个或多个处理器;一个或多个存储器;以及一个或多个计算机程序,其中一个或多个计算机程序被存储在一个或多个存储器中,一个或多个计算机程序包括指令,当指令被电子设备执行时,使得电子设备执行如上述图2或图3所示的数据通信方法。
图4提供了该电子设备的一种状态机的示意图,如图4所示,在电子设备处于空闲状态时,由于一个GPIO接口处于中断模式,另一个GPIO接口处于输出模式,因此,可以根据当前的情况进入不同的循环流程:如果在处于空闲状态时该电子设备准备发送数据,则可以进入左侧的循环流程,该电子设备作为发送方;如果在处于空闲状态时该电子设备的处于中断模式的GPIO接口接收到的通信请求信号,则可以进入右侧的循环流程,该电子设备作为接收方。
在电子设备作为发送方时,可以进入图4所示状态机左侧的循环。在准备发送通信数据时,通过在空闲状态时处于输出模式的GPIO接口向对方发送通信请求信号,如果对方当前处于空闲状态,则对方处于中断模式的GPIO接口可以检测到通信请求信号,进而,对方可以反馈请求响应信号。如果电子设备等待请求响应信号超时,则可以回到空闲状态。如果电子设备接收到请求响应信号,则可以发送通信数据,其中,在发送通信数据的过程中,如果操作失败,例如时钟信号发生错误,或者未找到通信数据等,则可以回到空闲状态。在发送通信数据完毕之后,等待结束信号,如果等待超时,可以回到空闲状态,如果收到结束信号,则通信成功,回到空闲状态。
在电子设备接收到通信请求信号之后,电子设备作为接收方,可以进入图4所示状态机的右侧循环。在接收到通信请求信号之后,发送请求响应信号,如果发送失败,则可以控制进入空闲状态,如果发送成功,则对方在接收到请求响应信号之后会开始发送通信数据,相应的,电子设备可以接收到对方发送的通信数据,其中,如果通信数据接收超时,则可以进入空闲状态,以等待下一次通信。如果对接收到的通信数据校验成功,则可以想对方发送结束信号,进而进入空闲状态。
需要说明的是,在任意时机回到空闲状态时,都需要对GPIO接口的工作模式进行设置,以使得电子设备在处于空闲状态时,两个GPIO接口分别处于输出模式和中断模式,并且,每次设置空闲状态时,都是设置相同的GPIO接口为输出模式,且设置相同的GPIO接口为中断模式。
如图5所示,为两个设备在使用图4所示状态机时,执行数据通信的流程。其中,发送方的流程如图5中左侧部分所示,接收方的流程如图6中右侧部分所示。
结合图6和图7提供的时序图,以发送方为第一设备,接收方为第二设备为例,对第一设备和第二设备的传输过程进行说明。其中,图6所示为发送方以第一设备为例时,第一设备两个GPIO接口的时序,图7所示为接收方以第二设备为例时,第二设备两个GPIO接口的时序。
空闲状态阶段:第一设备在处于空闲状态时,第一GPIO接口处于输出(out)模式,第二GPIO接口处于中断(irq)模式。第二设备在处于空闲状态时,第三GPIO接口处于中断模式,第四GPIO接口处于输出模式。
通信请求阶段:第一设备在准备发送数据时,通过第一GPIO接口发送通信请求,具体可以是一个上升沿。第二设备的第三GPIO接口接收到沿变化,确定接收到通信请求,进而,通过第四GPIO接口发送请求响应信号。请求响应信号可以是两个沿变化。
数据传输阶段:第一设备通过第一GPIO接口发送时钟信号,时钟信号的上升沿和下降沿的沿变化用于触发第二设备接收一位通信数据。在第三GPIO接口检测到第一GPIO接口的电平翻转时,触发第四GPIO接口接收第二GPIO接口提供的通信数据。其中,第一设备的第二GPIO接口在每一次沿变化之前,就准备好下一个沿变化要传输的数据。第二设备在接收到通信数据时,可以解析通信数据头部信息,以确定通信数据的长度和校验信息。
结束通信阶段:第一设备传输数据完毕之后,第一GPIO接口停止发送时钟信号,同时,第二GPIO接口由数据传输阶段时所处的输出模式切换至中断模式,以检测第二设备的结束信号。第二设备在根据通信数据头部信息中的长度信息确定已接收完毕之后,可以控制第四GPIO接口由数据传输阶段时的输入(in)模式切换为输出模式。在第二设备通过校验信息对通信数据进行校验之后,如果校验成功,则可以通过处于输出模式的第四GPIO接口发送结束信号。结束信号可以是两个电平翻转,也即两个沿变化。
需要说明的是,以上为在一种可选的应用场景中,第一设备与第二设备传输一次通信数据的具体过程,仅用于示例性的说明本申请实施例提供的数据通信方法,并不用于对本申请实施例提供的数据通信方法进行限定。
本申请实施例还提供一种电子系统,包括:第一设备和第二设备,第一设备包括第一通用输入输出GPIO接口和第二GPIO接口,第二设备包括与第一GPIO接口相连接的第三GPIO接口和与第二GPIO接口相连接的第四GPIO接口;一个或多个处理器;一个或多个存储器;以及一个或多个计算机程序,其中一个或多个计算机程序被存储在一个或多个存储器中,一个或多个计算机程序包括指令,当指令被电子系统执行时,使得电子系统执行如图5所示实施例提供的数据通信方法,其中,第一设备可以作为图5中的发送方或接收方,相对应的,第二设备可以作为图5中的接收方或发送方。
本申请实施例还提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上述图2或图3所示的数据通信方法。
本申请实施例还提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如上述图2或图3所示的数据通信方法。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种数据通信方法,其特征在于,所述方法应用于具有GPIO接口的数据通信系统,其中所述数据通信系统包括第一设备和第二设备,所述第一设备包括第一通用输入输出GPIO接口和第二GPIO接口,所述第二设备包括与所述第一GPIO接口相连接的第三GPIO接口和与所述第二GPIO接口相连接的第四GPIO接口,所述方法包括:
在所述第一设备处于空闲状态时,所述第一设备的第一GPIO接口处于输出模式,所述第一设备的第二GPIO接口处于中断模式,所述第二设备处于空闲状态时,所述第三GPIO接口处于中断模式,且所述第四GPIO接口处于输出模式;
所述第一设备控制所述第一GPIO接口向第二设备的第三GPIO接口发送第一通信请求信号,所述第二设备响应于所述第一通信请求信号,向所述第一设备反馈第一请求响应信号;
响应于所述第一请求响应信号,所述第一设备与所述第二设备进入通信状态以传输第一通信数据;
所述第一设备和所述第二设备在所述第一通信数据传输完毕之后,由所述通信状态切换至所述空闲状态;
所述响应于所述第一请求响应信号,所述第一设备与所述第二设备传输第一通信数据,包括:
所述第一设备确定所述第一设备的第二GPIO接口接收到所述第二设备的第四GPIO接口反馈的所述第一请求响应信号;
所述第一设备控制所述第二GPIO接口向所述第四GPIO接口发送所述第一通信数据,并控制所述第一GPIO接口向所述第三GPIO接口发送第一触发信号,其中,所述第一触发信号用于触发所述第四GPIO接口接收所述第一通信数据;
所述第一设备确定所述第二GPIO接口接收到所述第四GPIO接口反馈的第一结束信号,其中,所述第一结束信号用于表示所述第二设备结束接收所述第一通信数据。
2.根据权利要求1所述的方法,其特征在于,所述第一设备确定处于空闲状态,包括:
所述第一设备获取所述第一GPIO接口和所述第二GPIO接口的工作模式;
所述第一设备确定所述第一GPIO接口的工作模式为所述输出模式,且所述第二GPIO接口的工作模式为所述中断模式。
3.根据权利要求2所述的方法,其特征在于,在所述第一设备控制所述第二GPIO接口向所述第四GPIO接口发送第一通信数据之前,所述方法还包括:
所述第一设备控制所述第二GPIO接口的工作模式由所述中断模式切换至所述输出模式。
4.根据权利要求2所述的方法,其特征在于,所述第一设备由所述通信状态切换至所述空闲状态,包括:
所述第一设备设置所述第一GPIO接口的工作模式为所述输出模式,并设置所述第二GPIO接口的工作模式为所述中断模式,以使所述第一设备进入所述空闲状态。
5.根据权利要求1所述的方法,其特征在于,所述第一触发信号为时钟信号的每个上升沿和每个下降沿,每个所述第一触发信号用于触发所述第四GPIO接口接收所述通信数据的一位数据。
6.根据权利要求5所述的方法,其特征在于,所述第一设备在每个所述上升沿和每个所述下降沿之前,控制所述第二GPIO接口输出所述第一通信数据中对应于下一个沿的信号。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述方法还包括:
所述第二设备控制所述第四GPIO接口向所述第二设备的第二GPIO接口发送第二通信请求信号,所述第一设备响应于所述第二通信请求信号,向所述第二设备反馈第二请求响应信号;
响应于所述第二请求响应信号,所述第一设备与所述第二设备传输第二通信数据并进入通信状态,并在所述第二通信数据传输完毕之后,由所述通信状态切换至所述空闲状态。
8.根据权利要求7所述的方法,其特征在于,
所述响应于所述第二请求响应信号,所述第二设备与所述第一设备传输第二通信数据,包括:
所述第二设备确定所述第二设备的第三GPIO接口接收到所述第一设备的第一GPIO接口反馈的所述第二请求响应信号;
所述第二设备控制所述第三GPIO接口向所述第一GPIO接口发送所述第二通信数据,并控制所述第四GPIO接口向所述第二GPIO接口发送第二触发信号,其中,所述第二触发信号用于触发所述第一GPIO接口接收所述第二通信数据;
所述第二设备确定所述第三GPIO接口接收到所述第一GPIO接口反馈的第二结束信号,其中,所述第二结束信号用于表示所述第一设备结束接收所述第二通信数据。
9.根据权利要求7所述的方法,其特征在于,在所述第二设备控制第四GPIO接口向所述第一设备的第二GPIO接口发送所述第一请求响应信号之后,在所述第四GPIO接口接收所述第二GPIO接口发送的所述第一通信数据之前,所述方法还包括:
所述第二设备控制所述第四GPIO接口的工作模式由所述输出模式切换为输入模式。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:所述第二设备解析所述第一通信数据已接收到的部分获得解析结果,并根据所述解析结果确定所述第一通信数据的预设长度,其中,所述第一通信数据中携带有所述预设长度的信息;
所述第二设备确定所述第一通信数据接收完毕,包括:所述第二设备确定接收到的所述第一通信数据的长度为所述预设长度。
11.一种电子系统,其特征在于,所述电子系统包括:
第一设备和第二设备,所述第一设备包括第一通用输入输出GPIO接口和第二GPIO接口,所述第二设备包括与所述第一GPIO接口相连接的第三GPIO接口和与所述第二GPIO接口相连接的第四GPIO接口;
一个或多个处理器;
一个或多个存储器;
以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述一个或多个存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子系统执行时,使得所述电子系统执行如权利要求1-10中任一项所述的数据通信方法。
12.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行所述权利要求1-10中任一项所述的数据通信方法。
13.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1-10中任一项所述的数据通信方法。
14.一种数据通信系统,其特征在于,所述数据通信系统包括:
第一设备,包括第一通用输入输出GPIO接口和第二GPIO接口,其中,在所述第一设备处于空闲状态时,所述第一GPIO接口处于输出模式,且所述第二GPIO接口处于中断模式;
第二设备,包括与所述第一GPIO接口相连接的第三GPIO接口和与所述第二GPIO接口相连接的第四GPIO接口,其中,在所述第二设备处于所述空闲状态时,所述第三GPIO接口处于所述中断模式,且所述第四GPIO接口处于所述输出模式;
其中,在所述第一设备和所述第二设备中的一方需要向另一方发送通信数据时,发送方在处于所述空闲状态时能够通过处于所述输出模式的GPIO接口发送通信请求,以使接收方在处于所述空闲状态时能够通过处于所述中断模式的GPIO接口接收所述通信请求。
CN202011193246.7A 2020-10-30 2020-10-30 数据通信方法、系统、电子设备及计算机存储介质 Active CN112363962B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011193246.7A CN112363962B (zh) 2020-10-30 2020-10-30 数据通信方法、系统、电子设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011193246.7A CN112363962B (zh) 2020-10-30 2020-10-30 数据通信方法、系统、电子设备及计算机存储介质

Publications (2)

Publication Number Publication Date
CN112363962A CN112363962A (zh) 2021-02-12
CN112363962B true CN112363962B (zh) 2024-06-25

Family

ID=74513638

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011193246.7A Active CN112363962B (zh) 2020-10-30 2020-10-30 数据通信方法、系统、电子设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN112363962B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399834A (zh) * 2013-07-10 2013-11-20 北京创毅讯联科技股份有限公司 数据传输方法、装置和系统
CN109960672A (zh) * 2017-12-22 2019-07-02 苏州迈瑞微电子有限公司 一种基于gpio接口的数字通讯方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100414531C (zh) * 2005-04-22 2008-08-27 四川长虹电器股份有限公司 双处理器通信的方法
CN101080073B (zh) * 2007-06-22 2011-09-21 中兴通讯股份有限公司 一种双模通讯终端的模块间通讯电路及方法
CN104111902B (zh) * 2013-04-19 2017-12-19 联芯科技有限公司 基于双倍速率同步动态随机存储器接口的通信系统及方法
EP3343386B1 (en) * 2016-12-30 2020-02-05 GN Audio A/S Apparatus with inter-communicating processors
CN111579973B (zh) * 2019-02-19 2022-03-08 深圳市汇顶科技股份有限公司 芯片同步测试方法、芯片、电子设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399834A (zh) * 2013-07-10 2013-11-20 北京创毅讯联科技股份有限公司 数据传输方法、装置和系统
CN109960672A (zh) * 2017-12-22 2019-07-02 苏州迈瑞微电子有限公司 一种基于gpio接口的数字通讯方法

Also Published As

Publication number Publication date
CN112363962A (zh) 2021-02-12

Similar Documents

Publication Publication Date Title
US11010327B2 (en) I3C point to point
US10339093B2 (en) USB interface using repeaters with guest protocol support
CN108763140B (zh) 一种双向通信的方法、系统及终端设备
WO2007002942A1 (en) Point-to-point link negotiation method and apparatus
CN108255776B (zh) 一种兼容apb总线的i3c主设备、主从系统及通信方法
CN108920401B (zh) 多主多从的i2c通信方法、系统及节点设备
CN112269749B (zh) I2c通信系统
CN111131542A (zh) 电池地址管理方法及电池管理系统
CN113312284A (zh) 数据传输方法、装置、系统、存储介质及电子装置
CN116243853A (zh) 数据传输方法、装置、电子设备及非易失性存储介质
CN112363962B (zh) 数据通信方法、系统、电子设备及计算机存储介质
KR101443276B1 (ko) 차량용 이더넷을 위한 제어기 및 그 제어방법
CN115941382A (zh) 一种spi通信的流控方法、装置、终端设备及存储介质
CN116909977A (zh) 一种多机通信方法及系统
CN111427806A (zh) 一种双核amp系统共用串口的方法、存储介质及智能终端
US11520729B2 (en) I2C bus architecture using shared clock and dedicated data lines
CN116126771A (zh) 一种两线spi的通信系统及方法
CN112615739B (zh) 一种多主机应用环境下ocp3.0网卡的适配方法及系统
CN111130678B (zh) 数据传输方法、装置、设备及计算机可读存储介质
CN113900985A (zh) Io和spi复用芯片、复用辅助芯片和数据交互方法
CN109344113B (zh) 一种芯片间通讯的数据派发方法及系统
CN113268443A (zh) Smi总线通信方法、装置、电子设备和介质
CN116974636B (zh) 多路互联系统及其总线接口初始化方法、装置
US11847089B2 (en) Electronic device and method for sharing data lanes of a network interface device between two or more computing devices
CN114884768B (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