数据传输方法、装置、电子设备及存储介质

文档序号:168639 发布日期:2021-10-29 浏览:62次 >En<

阅读说明:本技术 数据传输方法、装置、电子设备及存储介质 (Data transmission method and device, electronic equipment and storage medium ) 是由 周柳慧 于 2020-04-29 设计创作,主要内容包括:本申请实施例提供了数据传输方法、装置、电子设备及存储介质,该方法包括:获取待发送数据的数字编码;根据预设帧时间及预设编码电平转换规则,确定待发送数据的数字编码对应的各通用输入/输出端口GPIO电平帧,得到各目标GPIO电平帧,其中,预设帧时间为单帧GPIO电平帧的时长,预设编码电平转换规则为数字编码与GPIO电平帧的对应规则;依次向接收端发送各目标GPIO电平帧。本申请实施例的数据传输方法中,采用GPIO电平帧的形式进行数据传输,各单帧GPIO电平帧的时长均为预设帧时间,能够通过时长有效区分各GPIO电平帧,从而能够有效区分各数据,降低了采样难度,有效的实现了点对点的单线GPIO数据传输。(The embodiment of the application provides a data transmission method, a data transmission device, electronic equipment and a storage medium, wherein the method comprises the following steps: acquiring a digital code of data to be transmitted; determining general input/output port GPIO level frames corresponding to digital codes of data to be transmitted according to preset frame time and a preset coding level conversion rule to obtain target GPIO level frames, wherein the preset frame time is the duration of a single frame GPIO level frame, and the preset coding level conversion rule is a corresponding rule of the digital codes and the GPIO level frames; and sequentially sending each target GPIO level frame to a receiving end. According to the data transmission method, the data transmission is carried out in the mode of the GPIO level frames, the duration of each single frame GPIO level frame is the preset frame time, and each GPIO level frame can be effectively distinguished through the duration, so that each data can be effectively distinguished, the sampling difficulty is reduced, and the point-to-point single-wire GPIO data transmission is effectively realized.)

数据传输方法、装置、电子设备及存储介质

技术领域

本申请涉及通信技术领域,特别是涉及数据传输方法、装置、电子设备及存储介质。

背景技术

在点对点单线通信协议中,最常用的是UART(Universal AsynchronousReceiver/Transmitter,通用异步收发传输器)、1-WIRE协议等。在这些协议中,接收端需要远超过发送端波特率的采样频率不断检测接收信号,对CPU负荷非常大。而且现有的UART或者是1-WIRE协议通过软件在GPIO(General Purpose Input/Output,通用输入/输出端口)上实现比较困难,主要的原因有2点,1是BIT(binary digit,比特)边沿采样不准确,2是多个连续0或者连续1的数据采样比较困难,因此亟需一种能够有效应用于点对点的单线GPIO数据传输方式。

发明内容

本申请实施例的目的在于提供一种数据传输方法、装置、电子设备及存储介质,以实现提供一种有效的应用于点对点的单线GPIO数据传输方式。具体技术方案如下:

第一方面,本申请实施例提供了一种数据传输方法,应用于发送端,所述方法包括:

获取待发送数据的数字编码;

根据预设帧时间及预设编码电平转换规则,确定所述待发送数据的数字编码对应的各通用输入/输出端口GPIO电平帧,得到各目标GPIO电平帧,其中,所述预设帧时间为单帧GPIO电平帧的时长,所述预设编码电平转换规则为数字编码与GPIO电平帧的对应规则;

依次向接收端发送各所述目标GPIO电平帧。

可选的,所述GPIO电平帧通过不同的电平中断次数和/或电平的高低表示不同的数字编码。

可选的,所述数字编码为二进制编码,所述二进制编码包括0及1,0对应的GPIO电平帧包括一个中断,1对应的GPIO电平帧包括三个中断。

可选的,开始信号及结束信号各自对应的GPIO电平帧均包括5个中断,且所述开始信号与所述结束信号的起始电平不同。

可选的,在传输阶段,第一个数字位用两帧GPIO电平帧表示。

可选的,所述发送端为主设备或从设备,其中,通信过程由所述主设备发起。

第二方面,本申请实施例提供了一种数据传输方法,应用于接收端,所述方法包括:

接收由发送端发送的各待解码GPIO电平帧;

根据预设帧时间及预设编码电平转换规则,依次将各所述待解码GPIO电平帧解码为数字编码,其中,所述预设帧时间为单帧GPIO电平帧的时长,所述预设编码电平转换规则为数字编码与GPIO电平帧的对应规则。

可选的,所述GPIO电平帧通过不同的电平中断次数和/或电平的高低表示不同的数字编码。

可选的,所述数字编码为二进制编码,所述二进制编码包括0及1,0对应的GPIO电平帧包括一个中断,1对应的GPIO电平帧包括三个中断。

可选的,开始信号及结束信号各自对应的GPIO电平帧均包括5个中断,且所述开始信号与所述结束信号的起始电平不同。

可选的,在传输阶段,第一个数字位用两帧GPIO电平帧表示。

可选的,所述接收端为主设备或从设备,其中,通信过程由所述主设备发起。

第三方面,本申请实施例提供了一种数据传输装置,应用于发送端,所述装置包括:

数字编码获取模块,用于获取待发送数据的数字编码;

GPIO电平帧确定模块,用于根据预设帧时间及预设编码电平转换规则,确定所述待发送数据的数字编码对应的各通用输入/输出端口GPIO电平帧,得到各目标GPIO电平帧,其中,所述预设帧时间为单帧GPIO电平帧的时长,所述预设编码电平转换规则为数字编码与GPIO电平帧的对应规则;

GPIO电平帧发送模块,用于依次向接收端发送各所述目标GPIO电平帧。

可选的,所述GPIO电平帧通过不同的电平中断次数和/或电平的高低表示不同的数字编码。

可选的,所述数字编码为二进制编码,所述二进制编码包括0及1,0对应的GPIO电平帧包括一个中断,1对应的GPIO电平帧包括三个中断。

可选的,开始信号及结束信号各自对应的GPIO电平帧均包括5个中断,且所述开始信号与所述结束信号的起始电平不同。

可选的,在传输阶段,第一个数字位用两帧GPIO电平帧表示。

可选的,所述发送端为主设备或从设备,其中,通信过程由所述主设备发起。

第四方面,本申请实施例提供了一种数据传输装置,应用于接收端,所述装置包括:

GPIO电平帧接收模块,用于接收由发送端发送的各待解码GPIO电平帧;

数字编码转换模块,用于根据预设帧时间及预设编码电平转换规则,依次将各所述待解码GPIO电平帧解码为数字编码,其中,所述预设帧时间为单帧GPIO电平帧的时长,所述预设编码电平转换规则为数字编码与GPIO电平帧的对应规则。

可选的,所述GPIO电平帧通过不同的电平中断次数和/或电平的高低表示不同的数字编码。

可选的,所述数字编码为二进制编码,所述二进制编码包括0及1,0对应的GPIO电平帧包括一个中断,1对应的GPIO电平帧包括三个中断。

可选的,开始信号及结束信号各自对应的GPIO电平帧均包括5个中断,且所述开始信号与所述结束信号的起始电平不同。

可选的,在传输阶段,第一个数字位用两帧GPIO电平帧表示。

可选的,所述接收端为主设备或从设备,其中,通信过程由所述主设备发起。

第五方面,本申请实施例提供了一种电子设备,包括存储器及至少两个处理器,所述至少两个处理器之间通过GPIO进行连接;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一所述的数据传输方法。

第六方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的数据传输方法。

本申请实施例提供的数据传输方法、装置、电子设备及存储介质,获取待发送数据的数字编码;根据预设帧时间及预设编码电平转换规则,确定待发送数据的数字编码对应的各通用输入/输出端口GPIO电平帧,得到各目标GPIO电平帧,其中,预设帧时间为单帧GPIO电平帧的时长,预设编码电平转换规则为数字编码与GPIO电平帧的对应规则;依次向接收端发送各目标GPIO电平帧。提供了一种基于GPIO电平帧的数据传输方式,采用GPIO电平帧的形式进行数据传输,各单帧GPIO电平帧的时长均为预设帧时间,能够根据时长有效区分各GPIO电平帧,即使发送多个连续0或者1,也可以根据时长进行有效区分,降低采样难度,有效的实现了点对点的单线GPIO数据传输。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例的应用于发送端的数据传输方法的一种示意图;

图2为本申请实施例的应用场景的一种示意图;

图3为本申请实施例的数据传输方法中的电平的一种示意图;

图4为本申请实施例的应用于接收端的数据传输方法的一种示意图;

图5为本申请实施例的应用于发送端的数据传输装置的一种示意图;

图6为本申请实施例的应用于接收端的数据传输装置的一种示意图;

图7为本申请实施例的电子设备的一种示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

首先,对本申请实施例中的专业术语进行解释:

GPIO:(General Purpose Input/Output,通用输入/输出端口),是嵌入式设备可控制的引脚,与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。

中断:指计算机运行过程中,出现某些意外情况需要主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。本申请实施例的GPIO电平帧的中断是由电平的上升沿及下降沿触发的。

嵌入式:用于控制、监视或者辅助操作机器和设备的装置,是一种、对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统,是软件与硬件的综合体。

波特率:表示每秒传送的码元符号个数,是衡量数据传送速率的指标,用单位时间内载波调制状态改变的次数来表示。

CPU:(Central Processing Unit,中央处理器)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

GPIO广泛应用于现有的CPU芯片中,在很多通信方式中,会将一个设备分成多块子板,很多情况下子板之间的信号接口是比较少的,但是各个模块之间又需要实现通信。现有技术中,很多时候模块之间都是采用网络通信的方式,但在子板间未配置IP地址和MAC地址时,网络通信无法使用。

有鉴于此,本申请实施例提供了一种数据传输方法,应用于发送端,参见图1,该方法包括:

S101,获取待发送数据的数字编码。

本申请实施例的应用于发送端的数据传输方法可以通过电子设备实现,具体的,可以通过电子设备的CPU实现,接收端与发送端可以为不同的CPU,例如参见图2,在两个设备间进行数据传输只需要一根GPIO信号连接线。当两设备间接口信号少,网络通信还没建立前,本申请实施例就能满足两设备简单通信的需求。由于芯片中最常见的就是GPIO接口,且GPIO具有低功耗、布线简单的优点,适用性强,所以本申请实施例中采用GPIO进行通信。

待发送数据可以采用数字编码的形式进行传输,将待发送数据转换为数字编码,例如,二进制编码或十进制编码等,获取待发送数据的数字编码。

S102,根据预设帧时间及预设编码电平转换规则,确定上述待发送数据的数字编码对应的各GPIO电平帧,得到各目标GPIO电平帧,其中,上述预设帧时间为单帧GPIO电平帧的时长,上述预设编码电平转换规则为数字编码与GPIO电平帧的对应规则。

本申请实施例中采用GPIO电平帧的形式进行数据传输。GPIO电平帧是指单位时长内的GPIO电平,单位时长即为预设帧时间,可以根据实际情况自定义设定。预设编码电平转换规则为数字编码与GPIO电平帧的对应规则。不同的数字编码对应不同的GPIO电平帧。本申请实施例中的数据传输可以分为三个阶段,包括:Start(开始)、Trans(传输)及Stop(停止)。Start表示数据传输开始,Trans表示传输的具体数据,即待发送数据,Stop表示数据传输停止。按照预设编码电平转换规则,以预设帧时间为每帧GPIO电平帧的时长,依次生成待发送数据的数字编码对应的各GPIO电平帧,即各目标GPIO电平帧。

在一种可能的实施方式中,上述GPIO电平帧通过不同的电平中断次数和/或电平的高低表示不同的数字编码。

本申请实施例中电平的中断是由电平的上升沿及下降沿触发的,电平由低电平转换为高电平时,触发一次电平中断,同样电平由高电平转换为低电平时,也会触发一次电平中断。可以利用单位时长内(即一帧GPIO电平帧中)电平中断的次数和/或电平的高低(即高电平、低电平)来区别不同的数字编码、Start、Stop等。

因为本申请实施例中采用中断次数表示不同的数字编码,所以对于计数时间点的选取尤为重要,为了避免不同阶段和BYTE(字节)间每个BIT间计数混淆,在每个阶段和每个BIT传输结束后,引入帧时间(预设帧时间),从而区分各GPIO电平帧。波特率连续中断的间隔时间,相较于帧时间可忽略不计。

S103,依次向接收端发送各上述目标GPIO电平帧。

发送端向接收端依次发送各目标GPIO电平帧。

在本申请实施例中,提供了一种基于GPIO电平帧的数据传输方式,采用GPIO电平帧的形式进行数据传输,各单帧GPIO电平帧的时长均为预设帧时间,能够根据时长有效区分各GPIO电平帧,即使发送多个连续0或者1,也可以根据时长进行有效区分,降低采样难度,有效的实现了点对点的单线GPIO数据传输。

以二进制编码为例,Trans阶段中0(BIT0)与1(BIT1)的中断次数是可调节的,可以按照实际情形自定义设定。在一种可能的实施方式中,上述数字编码为二进制编码,参见图3,上述二进制编码包括0及1,0对应的GPIO电平帧包括一个中断,1对应的GPIO电平帧包括三个中断。

GPIO电平帧是靠帧时间为间隔区分,结合不同阶段的计数特点,进行中断次数计算,最终计算出待发送数据对应的各目标GPIO电平帧。Start与Stop阶段中间是Trans阶段。Trans阶段中一个BYTE由八个BIT组成,每一BIT可能是0或是1。为了区分BIT0和BIT1,可以设计BIT0为1个中断,BIT1为3个连续中断。

在一种可能的实施方式中,参见图3,开始信号及结束信号各自对应的GPIO电平帧均包括5个中断,且上述开始信号与上述结束信号的起始电平不同。

开始信号表示Start,即为传输开始;结束信号表示Stop,即为传输结束。在Start阶段是连续5个中断,Stop阶段也是连续5个中断。虽然Start与Stop阶段都为连续5个中断,但是可以通过不同的起始电平来区分Start与Stop。例如Start阶段起始电平为高,5个翻转后电平保持低,而Stop阶段起始电平为低,5个翻转后电平保持为高。当然Start阶段与Stop阶段的起始电平的高低也可以调换,可以按照实际情况自定义设定。

在本申请实施例中,开始信号与结束信号的起始电平不同,可以有效区分Start阶段与Stop阶段。

在一种可能的实施方式中,在传输阶段,第一个数字位用两帧GPIO电平帧表示。

在Trans阶段,对于第一个数字位的计数,只用一帧GPIO电平帧,无法有效区分是BIT0还是BIT1,因此Trans阶段要分为两部分:第一个数字位和其他位。

对于第一个数字位,选用两帧GPIO电平帧,即从Start结束后的一帧时间加上一个数字位结束后的帧时间。例如针对单帧BIT0为1个中断,单帧BIT1为3个连续中断的情况,如果第一个数字位是BIT0,则两帧结束后,GPIO中断计数为2;如果第一个数字位是BIT1,则两帧结束后,GPIO中断计数为4。

Trans阶段中除第一个数字位外的其他位的计数,只需一帧GPIO电平帧,计数结束时间是该位结束后的帧时间。如果除第一个数字位外的某一位是BIT0,则该位的GPIO电平帧结束后,GPIO中断计数为1;如果除第一个数字位外的某一位是BIT1,则该位的GPIO电平帧结束后,GPIO中断计数为3。

在一种可能的实施方式中,上述发送端为主设备或从设备,其中,通信过程由上述主设备发起。

在单GPIO模式下,为了不引起GPIO连接的双方抢占GPIO发送,规定一方为HOST(主设备),另一方则为SLAVE(从设备),所有的通信过程必须由HOST发起,也就是说,SLAVE方发送的数据也是由HOST通知之后再发起的,从而可以避免两端同时发送数据导致异常的情况。

本申请实施例还提供了一种数据传输方法,应用于接收端,参见图4,该方法包括:

S201,接收由发送端发送的各待解码GPIO电平帧。

S202,根据预设帧时间及预设编码电平转换规则,依次将各上述待解码GPIO电平帧解码为数字编码,其中,上述预设帧时间为单帧GPIO电平帧的时长,上述预设编码电平转换规则为数字编码与GPIO电平帧的对应规则。

在一种可能的实施方式中,上述GPIO电平帧通过不同的电平中断次数和/或电平的高低表示不同的数字编码。

在一种可能的实施方式中,上述数字编码为二进制编码,上述二进制编码包括0及1,0对应的GPIO电平帧包括一个中断,1对应的GPIO电平帧包括三个中断。

在一种可能的实施方式中,开始信号及结束信号各自对应的GPIO电平帧均包括5个中断,且上述开始信号与上述结束信号的起始电平不同。

在一种可能的实施方式中,在传输阶段,第一个数字位用两帧GPIO电平帧表示。

在一种可能的实施方式中,上述接收端为主设备或从设备,其中,通信过程由上述主设备发起。

将GPIO中断模式设置成上升沿与下降沿触发。计数是靠帧时间为间隔区分,结合不同阶段的计数特点,进行中断数比对,最终计算出传输数据。

在Start和Stop阶段,两者的中断个数与Trans阶段不同,且两者间传输结束后电平状态也不同,Start传输结束后电平为低,Stop传输结束后电平为高,因此Start和Stop阶段在时序中十分容易被甄别。

在Trans阶段,对于第一位的计数,只用一帧时间,是无法判断是BIT0还是BIT1,因此计数要分为两部分:第一位和其他位的计数。对于第一位,选用两帧时间,即从Start结束后的一帧时间加上第一位结束后的帧时间,如果第一位是BIT0,则两帧结束后,GPIO中断计数为2;如果第一位是BIT1,则两帧结束后,GPIO中断计数为4。

对于Trans阶段中除第一位外的其他位的计数,只需一帧时间,该帧时间是该位结束后的帧时间。如果第一位是BIT0,则该帧结束后,GPIO中断计数为1;如果第一位是BIT1,则该帧结束后,GPIO中断计数为3。

虽然定义Stop阶段为5个中断,但是由于Trans阶段每位的计数是该位之后的帧时间,因此在实际判断中Stop位只剩下4个中断。

在本申请实施例中,提供了一种基于GPIO电平帧的数据传输方式,有效的实现了点对点的单线GPIO数据传输。

本申请实施例还提供了一种数据传输装置,参见图5,应用于发送端,该装置包括:

数字编码获取模块11,用于获取待发送数据的数字编码;

GPIO电平帧确定模块12,用于根据预设帧时间及预设编码电平转换规则,确定上述待发送数据的数字编码对应的各通用输入/输出端口GPIO电平帧,得到各目标GPIO电平帧,其中,上述预设帧时间为单帧GPIO电平帧的时长,上述预设编码电平转换规则为数字编码与GPIO电平帧的对应规则;

GPIO电平帧发送模块13,用于依次向接收端发送各上述目标GPIO电平帧。

可选的,上述GPIO电平帧通过不同的电平中断次数和/或电平的高低表示不同的数字编码。

可选的,上述数字编码为二进制编码,上述二进制编码包括0及1,0对应的GPIO电平帧包括一个中断,1对应的GPIO电平帧包括三个中断。

可选的,开始信号及结束信号各自对应的GPIO电平帧均包括5个中断,且上述开始信号与上述结束信号的起始电平不同。

可选的,在传输阶段,第一个数字位用两帧GPIO电平帧表示。

可选的,上述发送端为主设备或从设备,其中,通信过程由上述主设备发起。

本申请实施例还提供了一种数据传输装置,参见图6,应用于接收端,上述装置包括:

GPIO电平帧接收模块21,用于接收由发送端发送的各待解码GPIO电平帧;

数字编码转换模块22,用于根据预设帧时间及预设编码电平转换规则,依次将各上述待解码GPIO电平帧解码为数字编码,其中,上述预设帧时间为单帧GPIO电平帧的时长,上述预设编码电平转换规则为数字编码与GPIO电平帧的对应规则。

可选的,上述GPIO电平帧通过不同的电平中断次数和/或电平的高低表示不同的数字编码。

可选的,上述数字编码为二进制编码,上述二进制编码包括0及1,0对应的GPIO电平帧包括一个中断,1对应的GPIO电平帧包括三个中断。

可选的,开始信号及结束信号各自对应的GPIO电平帧均包括5个中断,且上述开始信号与上述结束信号的起始电平不同。

可选的,在传输阶段,第一个数字位用两帧GPIO电平帧表示。

可选的,上述接收端为主设备或从设备,其中,通信过程由上述主设备发起。

本申请实施例还提供了一种电子设备,参见图7,包括存储器32及至少两个处理器31,上述至少两个处理器31之间通过GPIO进行连接;

所述存储器32,用于存放计算机程序;

所述处理器31,用于执行所述存储器32上所存放的程序时,实现上述任一数据传输方法。

存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现上述任意数据传输方法。

需要说明的是,在本文中,各个可选方案中的技术特征只要不矛盾均可组合来形成方案,这些方案均在本申请公开的范围内。诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:访问存储器的方法及对应电路

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!