数据传输方法、装置及系统与流程

文档序号:11959415阅读:155来源:国知局
数据传输方法、装置及系统与流程

本公开涉及通信技术领域,特别涉及一种数据传输方法、装置及系统。



背景技术:

串行外设接口(Serial Peripheral Interface,简称SPI)总线系统是一种同步串行外设接口,主要使用在带电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM)、闪存FLASH、实时时钟、A/D转换器,还有数字信号处理器和数字信号解码器等之间。

基于SPI连接的数据传输过程是没有指定的流控制,即没有应答机制确认是否正确接收到数据帧。



技术实现要素:

为克服相关技术中存在的问题,本公开实施例提供了一种数据传输方法、装置及系统。所述技术方案如下:

根据本公开实施例的第一方面,提供一种数据传输方法,包括:

第一数据传输装置通过串行外设接口SPI接收第二数据传输装置发送的数据帧,数据帧包括N个数据,N大于或者等于2,N为正整数,数据帧中第一个数据用于标识数据帧的起始位置,数据帧中最后一个数据用于校验数据帧是否正确;

第一数据传输装置根据最后一个数据判断是否正确接收到数据帧;

第一数据传输装置向第二数据传输装置发送指示消息,指示消息用于指示第一数据传输装置是否正确接收到数据帧。

本公开实施例提供的技术方案可以包括以下有益效果:在第一数据传输装置与第二数据传输装置通过串行外设接口SPI接口连接的场景下,第一数据传输装置根据最后一个数据判断是否正确接收到数据帧,并向第二数据传输装置发送指示消息,以确定第一数据传输装置是否正确接收到所述数据帧,从而提高数据传输的可靠性。

可选地,还包括:当第一数据传输装置接收到第一个数据时,第一数据传输装置产生一次中断,并将第一个数据存储至长度为N的队列的队尾;

当第一数据传输装置接收到第M+1个数据时,第一数据传输装置产生一次中断,并将前M个数据都向前移动一位,将第M+1个数据存储至所述队列的对尾,直至第一个数据位于队列的对头,其中,M大于或者等于1。通过该存储方式,可以确保数据帧已被接收完毕。

可选地,第一数据传输装置根据最后一个数据判断是否正确接收到数据帧,包括:

所述第一数据传输装置确定所述第一个数据之后的N-2个数据,并对N-2个数据求和;

第一数据传输装置判断N-2个数据之和与最后一个数据是否相同;

若N-2个数据之和与最后一个数据相同,则第一数据传输装置确定已正确接收到数据帧;

若N-2个数据之和与最后一个数据不同,则第一数据传输装置确定未正确接收到数据帧。

可选地,第一数据传输装置根据最后一个数据判断是否正确接收到数据帧,包括所述第一数据传输装置确定所述第一个数据之后的N-2个数据,并确定N-2个数据的中值;

第一数据传输装置判断N-2个数据的中值与最后一个数据是否相同;

若N-2个数据的中值与最后一个数据相同,则第一数据传输装置确定已正确接收到数据帧;

若N-2个数据的中值与最后一个数据不同,则第一数据传输装置确定未正确接收到数据帧。

可选地,第二数据传输装置根据最后一个数据判断是否正确接收到数据帧,包括:

所述第一数据传输装置确定所述第一个数据之后的N-2个数据,并对N-2个数据的所有奇数项数据求和;

第一数据传输装置判断所有奇数项数据之和与最后一个数据是否相同;

若所有奇数项数据之和与所述最后一个数据相同,则第一数据传输装置确定已正确接收到数据帧;

若所有奇数项数据之和与最后一个数据不同,则第一数据传输装置确定未正确接收到数据帧。

根据本公开实施例的第二方面,提供一种数据传输方法,包括:

第二数据传输装置通过串行外设接口SPI向第一数据传输装置发送数据帧,所述数据帧包括N个数据,所述N大于或者等于2,所述N为正整数,所述数据帧中第一个数据用于标识所述数据帧的起始位置,所述数据帧中最后一个数据用于校验所述数据帧是否正确;

所述第二数据传输装置接收所述第一数据传输装置发送的指示消息,所述指示消息用于指示所述第一数据传输装置是否正确接收到所述数据帧。

在第一数据传输装置与第二数据传输装置通过串行外设接口SPI接口连接的场景下,第二数据传输装置向第一数据传输装置发送数据帧,第二数据传输装置可以接收第一数据传输装置发送的指示消息,以确定第一数据传输装置是否正确接收到所述数据帧,从而提高数据传输的可靠性。

下面将介绍发明实施例提供一种数据传输装置,其中装置部分与上述方法对应,对应内容技术效果相同,在此不再赘述。

根据本公开实施例的第三方面,提供一种数据传输装置,包括:

接收模块,被配置为通过串行外设接口SPI接收第二数据传输装置发送的数据帧,数据帧包括N个数据,N大于或者等于2,N为正整数,数据帧中第一个数据用于标识数据帧的起始位置,数据帧中最后一个数据用于校验数据帧是否正确;

判断模块,被配置为根据最后一个数据判断是否正确接收到数据帧;

发送模块,被配置为向第二数据传输装置发送指示消息,指示消息用于指示第一数据传输装置是否正确接收到数据帧。

可选地,还包括:中断模块和存储模块;

当所述接收模块接收到所述第一个数据时,则所述中断模块,被配置为产生一次中断,所述存储模块,被配置为所述第一个数据存储至长度为N的队列的队尾;

当所述接收模块接收到第M+1个数据时,则所述中断模块,被配置为产生一次中断,所述存储模块,被配置为将前M个数据都向前移动一位,将第M+1个数据存储至所述队列的对尾,直至所述第一个数据位于所述队列的对头,其中,M大于或者等于1。

可选地,判断模块被配置为:

确定所述第一个数据之后的N-2个数据,并对所述N-2个数据求和;

判断所述N-2个数据之和与所述最后一个数据是否相同;

若所述N-2个数据之和与所述最后一个数据相同,则确定已正确接收到所述数据帧;

若所述N-2个数据之和与所述最后一个数据不同,则第确定未正确接收到所述数据帧。

可选地,所述判断模块被配置为:

确定所述第一个数据之后的N-2个数据,并确定所述N-2个数据的中值;

判断所述N-2个数据的中值与所述最后一个数据是否相同;

若所述N-2个数据的中值与所述最后一个数据相同,则确定已正确接收到所述数据帧;

若所述N-2个数据的中值与所述最后一个数据不同,则确定未正确接收到所述数据帧。

可选地,所述判断模块被配置为:

确定所述第一个数据之后的N-2个数据,并对所述N-2个数据的所有奇数项数据求和;

判断所述所有奇数项数据之和与所述最后一个数据是否相同;

若所述所有奇数项数据之和与所述最后一个数据相同,则确定已正确接收到所述数据帧;

若所述所有奇数项数据之和与所述最后一个数据不同,则确定未正确接收到所述数据帧。

根据本公开实施例的第四方面,提供一种数据传输装置,包括:

发送模块,被配置为通过串行外设接口SPI向第一数据传输装置发送数据帧,所述数据帧包括N个数据,所述N大于或者等于2,所述N为正整数,所述数据帧中第一个数据用于标识所述数据帧的起始位置,所述数据帧中最后一个数据用于校验所述数据帧是否正确;

接收模块,被配置为接收所述第一数据传输装置发送的指示消息,所述指示消息用于指示所述第一数据传输装置是否正确接收到所述数据帧。

下面将介绍发明实施例提供一种数据传输系统,其中系统部分与上述方法、所述装置对应,对应内容技术效果相同,在此不再赘述。

根据本公开实施例的第五方面,提供一种数据传输系统,包括上述第三方面或者第三方面的可选方面的数据传输装置和第四方面所述的数据传输装置;

其中,所述数据传输装置之间通过串行外设接口SPI接口连接。

本公开实施例提供的技术方案可以包括以下有益效果:在第一数据传输装置与第二数据传输装置通过串行外设接口SPI接口连接的场景下,第二数据传输装置向第一数据传输装置发送数据帧,第二数据传输装置可以接收第二数据传输装置发送的指示消息,以确定第一数据传输装置是否正确接收到所述数据帧,从而提高数据传输的可靠性。

本公开的实施例提供的技术方案可以包括以下有益效果:本公开是关于一种应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种数据传输方法的流程图;

图2是根据另一示例性实施例示出的一种数据传输方法的流程图;

图3是根据又一示例性实施例示出的一种数据传输方法的流程图;

图4为根据一示例性实施例示出的一种数据帧示意图;

图5是根据一示例性实施例示出的一种数据传输装置的框图;

图6是根据另一示例性实施例示出的一种数据传输装置的框图;

图7是根据又一示例性实施例示出的一种数据传输装置的框图;

图8是根据一示例性实施例示出的一种数据传输系统的框图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种数据传输方法的流程图,本实施例以该数据传输方法应用于终端中来举例说明,其中该终端可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等,该方法的执行主体为第一数据传输装置,该第一数据传输装置可以通过软件、硬件或者两者的结合实现成为所述终端的部分或者全部。例如该第一数据传输装置可以是终端中的带电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM)、闪存FLASH、实时时钟、A/D转换器,还有数字信号处理器和数字信号解码器等,该数据传输方法可以包括如下几个步骤:

在步骤S101中:第一数据传输装置通过串行外设接口SPI接收第二数据传输装置发送的数据帧,数据帧包括N个数据,N大于或者等于2,N为正整数,数据帧中第一个数据用于标识数据帧的起始位置,数据帧中最后一个数据用于校验数据帧是否正确;

在步骤S102中:第一数据传输装置根据最后一个数据判断是否正确接收到数据帧;

在步骤S103中:第一数据传输装置向第二数据传输装置发送指示消息,指示消息用于指示第一数据传输装置是否正确接收到数据帧。

其中,所述第一数据传输装置与所述第二数据传输装置通过串行外设接口SPI接口连接。由于数据帧中第一个数据用于标识数据帧的起始位置,因此,第一数据传输装置可以从该起始位置读取N个数据,以确定最后一个数据,然后根据最后一个数据判断是否正确接收到数据帧,当确定已经正确接收到数据帧,则第一数据传输装置向第二数据传输装置发送第一指示消息,该第一指示消息用于指示第一数据传输装置已经正确接收到所述数据帧。相反,当确定未正确接收到数据帧,则第一数据传输装置向第二数据传输装置发送第二指示消息,该第二指示消息用于指示第一数据传输装置未接收到所述数据帧。

基于上一实施例的基础,在第一数据传输装置接收第二数据传输装置发送的数据帧过程中,还可以包括如下步骤,已确定是否将数据帧接收完毕,具体地,图2是根据另一示例性实施例示出的一种数据传输方法的流程图,该数据传输方法可以包括如下几个步骤:

在步骤S201中:当第一数据传输装置接收到所述第一个数据时,第一数据传输装置产生一次中断,并将第一个数据存储至长度为N的队列的队尾;

在步骤S202中:当第一数据传输装置接收到第M+1个数据时,第一数据传输装置产生一次中断,并将前M个数据都向前移动一位,将第M+1个数据存储至所述队列的对尾,直至所述第一个数据位于队列的对头,其中,M大于或者等于1;

第一数据传输装置定义一个含有N个元素的数组spi_rdata[N-1],该N个元素组成上述的队列,第一数据传输装置每接收到一个数据触发一次接收中断,程序跳转到接收中断服务程序,中断服务程序中将依次spi_rdata[1]中的数据复制到spi_rdata[0]中,spi_rdata[2]中的数据复制到spi_rdata[1]中…spi_rdata[n-2]中的数据复制到spi_rdata[N-1]中,最新接收的数据存于spi_rdata[N-1]中,当spi_rdata[0]中的数据为上述的第一个数据,并且spi_rdata[N-1]中的数据为上述最后一个数据时,则表示数据帧接收完毕,如果没有检测到所述第一个数据或者所述最后一个数据,则队列继续向前移动一位,直至spi_rdata[0]中的数据为上述的第一个数据,并且spi_rdata[N-1]中的数据为上述最后一个数据为止。

可选地,当通过校验策略计算得到的校验数值与spi_rdata[N-1]中的最后一个数据相同,则表示接收到的数据帧为正确的数据帧,如果正确,则取出该数据帧,并且发送第一指示消息,否则,则向第二数据传输装置发送第二指示消息,以使第二数据传输装置重新发送所述数据帧。

下面为接收数据的中断服务程序spiRxFifoIsr示例:示例中定义队列数组spi_rdata,每10个数据为一帧,SPIRXBUF为新接收到的数据,

本公开实施例中,在第一数据传输装置与第二数据传输装置通过串行外设接口SPI接口连接的场景下,第一数据传输装置通过将N个数据存储至队列的方式,以确定第一数据传输装置是否接收完上述数据帧,并且根据最后一个数据确定接收到的数据帧是否正确,从而提高数据传输的可靠性。

其中,步骤S102包括三种可选方式:这三种可选方式基于第一数据传输装置和第二数据传输装置之间的三种校验策略实现的。

一种可选方式,第一数据传输装置确定第一个数据之后的N-2个数据,并对N-2个数据求和;第一数据传输装置判断N-2个数据之和与最后一个数据是否相同;若N-2个数据之和与所述最后一个数据相同,则第一数据传输装置确定已正确接收到所述数据帧;若所述N-2个数据之和与所述最后一个数据不同,则第一数据传输装置确定未正确接收到所述数据帧。

具体地,数据帧中第一个数据用于标识数据帧的起始位置,最后一个数据用于校验数据帧是否正确;因此,这两个数据只是两个标识数据,实际需要传输的数据是位于第一个数据和最后一个数据直接的N-2个数据,第一数据传输装置从第一个数据的后一个数据开始确定N-2个数据,并对N-2个数据求和;第一数据传输装置判断N-2个数据之和与最后一个数据是否相同;若N-2个数据之和与所述最后一个数据相同,则第一数据传输装置确定已正确接收到所述数据帧;若所述N-2个数据之和与所述最后一个数据不同,则第一数据传输装置确定未正确接收到所述数据帧。

另一种可选方式,第一数据传输装置确定第一个数据之后的N-2个数据,并确定N-2个数据的中值;第一数据传输装置判断N-2个数据的中值与最后一个数据是否相同;若N-2个数据的中值与所述最后一个数据相同,则第一数据传输装置确定已正确接收到所述数据帧;若所述N-2个数据的中值与所述最后一个数据不同,则第一数据传输装置确定未正确接收到所述数据帧。

其中,所述中值为N-2个数据的中间值,当N-2为奇数时,则N-2个数据的中值为(N-1)/2项对应的数据,当N-2为偶数时,则N-2个数据的中值为(N-2)/2项对应的数据。

又一种可选方式,第一数据传输装置确定第一个数据之后的N-2个数据,并对所述N-2个数据的所有奇数项数据求和;所述第一数据传输装置判断所述所有奇数项数据之和与所述最后一个数据是否相同;若所述所有奇数项数据之和与所述最后一个数据相同,则第一数据传输装置确定已正确接收到所述数据帧;若所述所有奇数项数据之和与所述最后一个数据不同,则第一数据传输装置确定未正确接收到所述数据帧。

需要说明的是,本公开实施例并不局限于上述三种方式来判断是否正确接收到数据帧。

本公开实施例中,通过上述三种方式以判断是否正确接收到数据帧,从而提高数据传输的可靠性。

图3是根据又一示例性实施例示出的一种数据传输方法的流程图,本实施例以该数据传输方法应用于终端中来举例说明,其中该终端可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等,该方法的执行主体为第二数据传输装置,该第二数据传输装置可以通过软件、硬件或者两者的结合实现成为所述终端的部分或者全部。例如该第一数据传输装置可以是终端中的带电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM)、闪存FLASH、实时时钟、A/D转换器,还有数字信号处理器和数字信号解码器等,该数据传输方法可以包括如下几个步骤:

在步骤S301中:第二数据传输装置通过串行外设接口SPI向第一数据传输装置发送数据帧,数据帧包括N个数据,N大于或者等于2,N为正整数,数据帧中第一个数据用于标识数据帧的起始位置,数据帧中最后一个数据用于校验数据帧是否正确;

图4为根据一示例性实施例示出的一种数据帧示意图,如图4所示,该数据帧包括至少一个数据,按照数据发送的时间顺序可以将数据帧中的数据分别称为第一个数据、第二个数据……最后一个数据,这些数据依次可以存于数组a的元素a[0]、a[1]、a[2]…a[N-1]中,其中,N大于或者等于1,N为正整数,第一个数据用于标识所述数据帧的起始位置,比如它可以为0xEB90。最后一个数据用于标识所述数据帧的终止位置。

在步骤S302中:第二数据传输装置接收第一数据传输装置发送的指示消息,指示消息用于指示第一数据传输装置是否正确接收到数据帧。

其中,所述第一数据传输装置与所述第二数据传输装置通过串行外设接口SPI接口连接,由于数据帧中第一个数据用于标识数据帧的起始位置,因此,第一数据传输装置可以从该起始位置读取N个数据,以确定最后一个数据,然后根据最后一个数据判断是否正确接收到数据帧,第二数据传输装置接收第一数据传输装置发送的指示消息。

本公开实施例中,在第一数据传输装置与第二数据传输装置通过串行外设接口SPI接口连接的场景下,第二数据传输装置向第一数据传输装置发送数据帧,第二数据传输装置可以收第一数据传输装置发送的指示消息,以确定第一数据传输装置是否接收到所述数据帧,从而提高数据传输的可靠性。

下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。

图5是根据一示例性实施例示出的一种数据传输装置的框图,该数据传输装置可以通过软件、硬件或者两者的结合实现成为包括显示屏的终端的部分或者全部。该数据传输装置可以包括:

接收模块51,被配置为通过串行外设接口SPI接收第二数据传输装置发送的数据帧,所述数据帧包括N个数据,所述N大于或者等于2,所述N为正整数,所述数据帧中第一个数据用于标识所述数据帧的起始位置,所述数据帧中最后一个数据用于校验所述数据帧是否正确;

判断模块52,被配置为根据所述接收模块51所接收到的最后一个数据判断是否正确接收到数据帧;

发送模块53,被配置为根据判断模块52的判断结果向所述第二数据传输装置发送指示消息,所述指示消息用于指示所述第一数据传输装置是否正确接收到所述数据帧;

其中,所述第一数据传输装置与所述数据传输装置通过串行外设接口SPI接口连接。

本公开实施例所提供的数据传输装置,该装置部分与图1所示技术方案对应,对应内容技术效果相同,在此不再赘述。

图6是根据另一示例性实施例示出的一种数据传输装置的框图,如图6所示,还包括:中断模块54和存储模块55;

当所述接收模块51接收到所述第一个数据时,则所述中断模块54被配置为产生一次中断,所述存储模块55被配置为所述第一个数据存储至长度为N的队列的队尾;

当所述接收模块51接收到第M+1个数据时,则所述中断模块54被配置为产生一次中断,所述存储模块55被配置为将前M个数据都向前移动一位,将第M+1个数据存储至所述队列的对尾,直至所述第一个数据位于所述队列的对头,其中,M大于或者等于1。

可选地,所述判断模块52被配置为:

确定所述第一个数据之后的N-2个数据,并对所述N-2个数据求和;

判断所述N-2个数据之和与所述最后一个数据是否相同;

若所述N-2个数据之和与所述最后一个数据相同,则确定已正确接收到所述数据帧;

若所述N-2个数据之和与所述最后一个数据不同,则第确定未正确接收到所述数据帧。

可选地,所述判断模块52被配置为:

确定所述第一个数据之后的N-2个数据,并确定所述N-2个数据的中值;

判断所述N-2个数据的中值与所述最后一个数据是否相同;

若所述N-2个数据的中值与所述最后一个数据相同,则确定已正确接收到所述数据帧;

若所述N-2个数据的中值与所述最后一个数据不同,则确定未正确接收到所述数据帧。

可选地,所述判断模块52被配置为:

确定所述第一个数据之后的N-2个数据,并对所述N-2个数据的所有奇数项数据求和;

判断所述所有奇数项数据之和与所述最后一个数据是否相同;

若所述所有奇数项数据之和与所述最后一个数据相同,则确定已正确接收到所述数据帧;

若所述所有奇数项数据之和与所述最后一个数据不同,则确定未正确接收到所述数据帧。

图7是根据又一示例性实施例示出的一种数据传输装置的框图,该数据传输装置可以通过软件、硬件或者两者的结合实现成为包括显示屏的终端的部分或者全部。该数据传输装置可以包括:

发送模块71,被配置为通过串行外设接口SPI向第一数据传输装置发送数据帧,所述数据帧包括N个数据,所述N大于或者等于2,所述N为正整数,所述数据帧中第一个数据用于标识所述数据帧的起始位置,所述数据帧中最后一个数据用于校验所述数据帧是否正确;

接收模块72,被配置为接收所述第一数据传输装置发送的指示消息,所述指示消息用于指示所述第一数据传输装置是否正确接收到所述数据帧。

本公开实施例所提供的数据传输装置,该装置部分与图3所示技术方案对应,对应内容技术效果相同,在此不再赘述。

图8是根据一示例性实施例示出的一种数据传输系统的框图,包括上述第一数据传输装置82和第二数据传输装置81;其中,第一数据传输装置82和第二数据传输装置81之间通过串行外设接口SPI接口连接。

第二数据传输装置81向第一数据传输装置82发送数据帧,所述数据帧包括至少一个数据,所述数据帧中第一个数据用于标识所述数据帧的起始位置,数据帧中最后一个数据用于校验数据帧是否正确;

第一数据传输装置82根据最后一个数据判断是否正确接收到数据帧;

第一数据传输装置82向所述第二数据传输装置81发送指示消息,所述指示消息用于指示所述第二数据传输装置是否正确接收到所述数据帧。

本公开实施例中,在第一数据传输装置与第二数据传输装置通过串行外设接口SPI接口连接的场景下,第二数据传输装置向第一数据传输装置发送数据帧,第二数据传输装置可以收第一数据传输装置发送的指示消息,以确定第一数据传输装置是否接收到所述数据帧,从而提高整个数据传输系统的传输可靠性。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1