一种基于SPI协议的通信方法、装置及系统与流程

文档序号:12821823阅读:202来源:国知局
一种基于SPI协议的通信方法、装置及系统与流程

本发明涉及通信技术领域,特别是涉及一种基于spi协议的通信方法、装置及系统。



背景技术:

spi(serialperipheralinterface,串行外围设备接口)是一种高速的、全双工通信总线,主要应用在带电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、flash、实时时钟、ad转换器、以及数字信号处理器和数字信号解码器之间。spi通信协议是非应答机制。也就是,当发送端将数据发送给接收端后,接收端只负责接收数据,这样的话,发送端无法确认接收端是否接收到数据。

在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:在对数据传输安全性要求较高的应用场景中,如机顶盒监控信号传输、微控制单元(microcontrollerunit,mcu)信号传输等场景中,由于受周围磁场,时钟频率等环境影响,可能存在数据重复、丢失、错误、延迟等问题。由于spi通信协议采用非应答机制,因此,对于未到达接收端的数据,发送端无法重发,这无疑导致无法保证通信数据的准确性。



技术实现要素:

本发明实施例的目的在于提供一种基于spi协议的通信方法、装置及系统,以保证通信数据的准确性。具体技术方案如下:

第一方面,本发明实施例提供了一种基于spi协议的通信方法,应用于发送端;所述方法包括:

在基于串行外围设备接口spi协议向接收端发送目标数据后,判断预定时间段内是否接收到所述接收端反馈的所述目标数据对应的应答消息;其中,所述应答消息中携带有所述接收端对所述目标数据进行数据校验获得的数据校验结果;

如果预定时间段内接收到所述接收端反馈的所述目标数据对应的应答消息,判断所述数据校验结果是否为接收不正确;

如果所述数据校验结果为接收不正确,向所述接收端重新发送目标数据。

可选地,所述目标数据包括数据内容和所述数据内容对应的控制数据;

所述数据校验结果为所述接收端根据所述控制数据对所述目标数据进行数据校验所获得的。

第二方面,本发明实施例提供了一种基于spi协议的通信方法,应用于接收端;所述方法包括:

在基于spi协议接收到发送端发送的目标数据后,对所述目标数据进行数据校验,得到数据校验结果;

构建所述目标数据对应的携带有所述数据校验结果的应答消息;

在接收到所述目标数据后的下一时钟周期内,向所述发送端反馈所述应答消息。

可选地,所述目标数据包括数据内容和所述数据内容对应的控制数据;

对所述目标数据进行数据校验,得到数据校验结果的步骤,包括:

根据所述目标数据中的所述控制数据,对所述目标数据进行数据校验,得到数据校验结果。

可选地,所述控制数据包括计数器值、奇偶值、计时器值中的至少一种。

可选地,所述控制数据包括计数器值,所述根据所述目标数据中包括的控制数据对所述目标数据进行数据校验,获得数据校验结果,包括:

判断接收到的目标数据包括的计数器值是否比上一次接收到的数据包括的计数器值大1,如果是,将接收正确作为所述目标数据对应的数据校验结果;如果否,将接收不正确作为所述目标数据对应的数据校验结果;

或者,

所述控制数据包括奇偶值,所述根据所述目标数据中包括的控制数据对所述目标数据进行数据校验,获得数据校验结果,包括:

计算所述目标数据所包括的数据内容的奇偶值,判断所计算出的奇偶值与所述目标数据中包括的奇偶值是否一致,如果一致,将接收正确作为所述目标数据对应的数据校验结果;如果不一致,将接收不正确作为所述目标数据对应的数据校验结果;

或者,

所述控制数据包括计时器值,所述根据所述目标数据中包括的控制数据对所述目标数据进行数据校验,获得数据校验结果,包括:

根据所述计时器值获得接收所述目标数据所用时长,并判断所述时长是否小于预设时长,如果小于,将接收正确作为所述目标数据对应的数据校验结果;如果不小于,将接收不正确作为所述目标数据对应的数据校验结果。

可选地,所述控制数据包括计数器值、奇偶值以及计时器值,所述根据所述目标数据中包括的控制数据对所述目标数据进行数据校验,获得数据校验结果,包括:

判断接收到的目标数据包括的计数器值是否比上一次接收到的数据包括的计数器值大1;

如果否,将接收不正确作为所述目标数据对应的数据校验结果,如果是,计算所述目标数据所包括的数据内容的奇偶值,判断所计算出的奇偶值与所述目标数据中包括的奇偶值是否一致;

如果不一致,将接收不正确作为所述目标数据对应的数据校验结果,如果一致,根据所述计时器值获得接收所述目标数据所用时长,并判断所述时长是否小于预设时长;

如果小于,将接收正确作为所述目标数据对应的数据校验结果,如果不小于,将接收不正确作为所述目标数据对应的数据校验结果。

第三方面,本发明实施例提供了一种基于spi协议的通信装置,应用于发送端;所述装置包括:

消息判断模块,在基于串行外围设备接口spi协议向接收端发送目标数据后,判断预定时间段内是否接收到所述接收端反馈的所述目标数据对应的应答消息,如果预定时间段内接收到所述接收端反馈的所述目标数据对应的应答消息,触发数据判断模块;其中,所述应答消息中携带有所述接收端对所述目标数据进行数据校验获得的数据校验结果;

所述数据判断模块,用于判断所述数据校验结果是否为接收不正确,如果所述数据校验结果为接收不正确,触发数据发送模块;

所述数据发送模块,用于向所述接收端重新发送目标数据。

可选地,所述目标数据包括数据内容和所述数据内容对应的控制数据;

所述数据校验结果为所述接收端根据所述控制数据对所述目标数据进行数据校验所获得的。

第四方面,本发明实施例提供了一种基于spi协议的通信装置,应用于接收端;所述装置包括:

数据校验模块,用于在基于spi协议接收到发送端发送的目标数据后,对所述目标数据进行数据校验,得到数据校验结果;

消息构建模块,用于构建所述目标数据对应的携带有所述数据校验结果的应答消息;

消息发送模块,用于在接收到所述目标数据后的下一时钟周期内,向所述发送端反馈所述应答消息。

可选地,所述目标数据包括数据内容和所述数据内容对应的控制数据;

数据校验模块具体用于:

根据所述目标数据中的所述控制数据,对所述目标数据进行数据校验,得到数据校验结果。

可选地,所述控制数据包括计数器值、奇偶值、计时器值中的至少一种。

可选地,所述控制数据包括计数器值,所述数据校验模块具体用于:

判断接收到的目标数据包括的计数器值是否比上一次接收到的数据包括的计数器值大1,如果是,将接收正确作为所述目标数据对应的数据校验结果;如果否,将接收不正确作为所述目标数据对应的数据校验结果;

或者,

所述控制数据包括奇偶值,所述数据校验模块具体用于:

计算所述目标数据所包括的数据内容的奇偶值,判断所计算出的奇偶值与所述目标数据中包括的奇偶值是否一致,如果一致,将接收正确作为所述目标数据对应的数据校验结果;如果不一致,将接收不正确作为所述目标数据对应的数据校验结果;

或者,

所述控制数据包括计时器值,所述数据校验模块具体用于:

根据所述计时器值获得接收所述目标数据所用时长,并判断所述时长是否小于预设时长,如果小于,将接收正确作为所述目标数据对应的数据校验结果;如果不小于,将接收不正确作为所述目标数据对应的数据校验结果。

可选地,所述控制数据包括计数器值、奇偶值以及计时器值,所述数据校验模块具体用于:

判断接收到的目标数据包括的计数器值是否比上一次接收到的数据包括的计数器值大1;

如果否,将接收不正确作为所述目标数据对应的数据校验结果,如果是,计算所述目标数据所包括的数据内容的奇偶值,判断所计算出的奇偶值与所述目标数据中包括的奇偶值是否一致;

如果不一致,将接收不正确作为所述目标数据对应的数据校验结果,如果一致,根据所述计时器值获得接收所述目标数据所用时长,并判断所述时长是否小于预设时长;

如果小于,将接收正确作为所述目标数据对应的数据校验结果,如果不小于,将接收不正确作为所述目标数据对应的数据校验结果。

第五方面,本发明实施例提供了一种基于spi协议的通信系统,包括接收端和发送端;

所述接收端,在基于spi协议接收到所述发送端发送的目标数据后,对所述目标数据进行数据校验,得到数据校验结果;构建所述目标数据对应的携带有所述数据校验结果的应答消息;在接收到所述目标数据后的下一时钟周期内,向所述发送端反馈所述应答消息;

所述发送端,在基于串行外围设备接口spi协议向所述接收端发送目标数据后,判断预定时间段内是否接收到所述接收端反馈的所述应答消息;其中,所述预定时间段为所述发送端发送所述目标数据后的下一个时钟周期;如果预定时间段内接收到所述接收端反馈的所述应答消息,判断所述数据校验结果是否为接收不正确;如果为接收不正确,向所述接收端重新发送目标数据。

第六方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的基于spi协议的通信方法。

第七方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的基于spi协议的通信方法。

与现有技术相比,本发明实施例所提供的方案中,通过判断预定时间段内是否接收到接收端反馈的目标数据对应的应答消息来确定接收端是否接收到了目标数据,并且,当预定时间段内接收到接收端反馈的目标数据对应的应答消息时,判断接收端对目标数据是否校验正确,进而能够保证通信数据的准确性。在接收端没有接收到目标数据时,重新向接收端发送目标数据,可以进一步保证通信数据的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例所提供的一种基于spi协议的通信方法的第一种流程图;

图2为应用本发明实施例所提供的一种基于spi协议的通信方法进行通信的流程图;

图3为本发明实施例所提供的一种基于spi协议的通信方法是具体实施例的流程图;

图4为本发明实施例所提供的一种基于spi协议的通信方法的第二种流程图;

图5为本发明实施例所提供的一种基于spi协议的通信装置的第一种结构示意图;

图6为本发明实施例所提供的一种基于spi协议的通信方法的第二种结构示意图;

图7为本发明实施例所提供的一种基于spi协议的通信系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

为了保证通信数据的准确性,本发明实施例提供了一种基于spi协议的通信系统,该系统包括:接收端和发送端。发送端基于spi(serialperipheralinterface,串行外围设备接口)协议向接收端发送数据,接收端基于spi协议接收发送端发送的数据。

具体地,接收端基于spi协议接收发送端发送的目标数据,然后,接收端对目标数据进行数据校验,得到数据校验结果;构建目标数据对应的携带有数据校验结果的应答消息;在接收到目标数据后的下一时钟周期内,向发送端馈应答消息。

发送端在基于串行外围设备接口spi协议向接收端发送目标数据后,判断预定时间段内是否接收到接收端反馈的应答消息;如果预定时间段内接收到接收端反馈应答消息,判断数据校验结果是否为接收不正确;如果数据校验结果为接收不正确,向接收端重新发送目标数据。

下面对本发明实施例所提供的一种基于spi协议的通信方法、装置及系统进行详细说明。

第一方面,为了保证通信数据的准确性,从发送端的角度,本发明实施例提供了一种基于spi协议的通信方法。

需要说明的是,实现本发明实施例从发送端的角度所提供的一种基于spi协议的通信方法的功能软件可以为一种基于spi协议的通信装置,该基于spi协议的通信装置应用于发送端。

参见图1所示,本发明实施例从发送端的角度所提供的一种基于spi协议的通信方法可以包括以下步骤:

s110,在基于spi协议向接收端发送目标数据后,判断预定时间段内是否接收到所述接收端反馈的所述目标数据对应的应答消息,如果是,执行s120。

其中,应答消息为接收端在接收到目标数据后的下一时钟周期内所发送;并且应答消息中携带有接收端对目标数据进行数据校验后获得的数据校验结果。

其中,本发明实施例中,发送端在向基于spi协议向接收端发送目标数据后,接收端如果接收到该目标数据,接收端可以构建所述目标数据对应的应答消息,并在接收到所述目标数据后的下一时钟周期内,向所述发送端反馈所述应答消息;相应的,该发送端可以在基于spi协议向接收端发送目标数据后,判断预定时间段内是否接收到所述接收端反馈的所述目标数据对应的应答消息,并在判断结果为是时,执行后续的s120。在判断结果为否时,即发送端再预设时间段内没有接收到接收端反馈的目标数据对应的应答消息,则表明通信失败,发送端会执行s130,向所述接收端重新发送所述目标数据。

可以理解,预定时间段可以为发送端发送目标数据后的下一个时钟周期。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,发送端仅完成一个最基本的动作。并且,可以理解的是,理论上,发送端向接收端发送目标数据后,理论上,接收端会在与发送端发送该目标数据的同一时钟周期内接收到该目标数据。类似的,接收端向发送端反馈信息应答消息时,理论上,发送端也会在与接收端反馈信息应答消息的同一时钟周期内接收到该信息应答消息。因此,如果接收端在接收到目标数据的下一时钟周期发送应答消息,发送端应该会在发送目标数据后的下一时钟周期内接收到该应答消息。

在实际应用中,由于网络延迟等影响,预定时间段也可以为发送端发送目标数据后的下两个时钟周期、下三个时钟周期等时间段。

s120,判断数据校验结果是否为接收不正确,如果是,执行后续的s130。

当发送端在预定时间段内接收到接收端反馈的目标数据对应的应答消息时,发送端会再判断接收端对目标数据的数据校验结果是否为接收正确。

具体地,目标数据可以包括数据内容和数据内容对应的控制数据;数据校验结果为接收端根据所述控制数据对所述目标数据进行数据校验,获得数据校验结果。

其中,目标数据包括的控制数据可以包括计数器值和奇偶值。

具体地,接收端对目标数据包括的计数器值的校验过程可以为:判断接收到的目标数据包括的计数器值是否比上一次接收到的数据包括的计数器值大1,如果是,则接收到的目标数据正确,将接收正确作为所述目标数据对应的数据校验结果;如果否,则接收到的目标数据不正确,将接收接收不正确作为所述目标数据对应的数据校验结果。

另外,接收端对目标数据包括的奇偶值的校验过程可以为:计算目标数据所包括的数据内容的奇偶值,判断所计算出的奇偶值与目标数据中包括的奇偶值是否一致,如果一致,则目标数据在传输过程中未发送接收不正确,将接收正确作为目标数据对应的数据校验结果;如果不一致,则目标数据在传输过程中发送接收不正确,将接收接收不正确作为目标数据对应的数据校验结果。

例如,在一种实现方式中,发送端和接收端之间的通信过程可以如图2所示,发送端依次发送1byte命令(cmmand,cmd)数据,cmd数据中包含传输控制字节,再发送1bytedata数据,接收端依次反馈1bytecmd数据对应的应答消息,1bytedata数据对应的应答消息。

可以理解,当判断数据校验结果为接收正确时,表明通信成功,则发送端会再向接收端基于spi协议发送新的数据。

s130,向所述接收端重新发送所述目标数据。

如果发送端没有在下一个时钟周期内接收到发送端反馈的目标数据对应的应答消息,则通信失败,此时可能丢失了通信数据,则发送端重新向接收端发送目标数据。

与现有技术相比,本发明实施例所提供的方案中,通过判断预定时间段内是否接收到接收端反馈的目标数据对应的应答消息来确定接收端是否接收到了目标数据,并且,当预定时间段内接收到接收端反馈的目标数据对应的应答消息时,对接收端对目标数据进行校验获得的数据校验结果进行判断,能够保证通信数据的准确性。在接收端没有接收到目标数据时,重新向接收端发送目标数据,可以进一步保证通信数据的准确性。并且,该方法可以应用在存储容量有限的工作环境中。

下面通过一个具体实施例对本发明实施例所提供的一种基于spi协议的通信方法进行详细介绍。如图3所示,该方法包括以下步骤:

s310,发送端基于spi协议向接收端发送1bytecmd数据。

s320,判断接收端是否在预定时间段内反馈该cmd数据对应的应答消息,如果否,则通信失败。如果是,执行s330。

s330,判断接收端对cmd数据对应的计数器值以及奇偶值是否校验正确,如果否,则通信失败。如果是,执行s340。

具体地,如果接收端在预定时间段内反馈了应答消息,则发送端再判断接收端对计数器值以及奇偶值是否校验正确,如果不正确,则通信失败。如果正确,则发送端向接收端发送1bytedata数据。

s340,发送端基于spi协议向接收端发送1bytedata数据。

s350,判断接收端是否在预定时间段内反馈该data数据对应的应答消息,如果否,则通信失败,如果是,执行s360。

s360,判断接收端对data数据对应的奇偶值是否校验正确。

具体地,如果接收端在预定时间段内反馈了应答消息,则发送端再判断接收端对奇偶值是否校验正确。如果否,则通信失败。如果是,则发送端向接收端发送下一个1bytecmd数据,即返回到s310。

第二方面,为了保证通信数据的准确性,从接收端的角度,本发明实施例提供了一种基于spi协议的通信方法。

需要说明的是,实现本发明实施例从接收端的角度所提供的一种基于spi协议的通信方法的功能软件可以为一种基于spi协议的通信装置,该基于spi协议的通信装置应用于接收端。

参见图4所示,本发明实施例从接收端的角度所提供的一种spi协议的通信方法可以包括以下步骤:

s410,在基于spi协议接收到发送端发送的目标数据后,对目标数据进行数据校验,得到数据校验结果。

具体地,接收端在基于spi协议接收到发送的目标数据后,会对目标数据进行数据校验,得到目标数据对应的数据校验结果。当接收端对目标数据后,确定接收到的目标数据正确时,将接收正确作为目标数据对应的数据校验结果。当接收端对目标数据后,确定接收到的目标数据不正确时,将接收接收不正确作为目标数据对应的数据校验结果。

进一步地,作为本实施例的一种实施方案,目标数据可以包括数据内容和数据内容对应的控制数据;对目标数据进行数据校验,得到数据校验结果的步骤,包括:

根据目标数据中的控制数据,对目标数据进行数据校验,得到数据校验结果。

具体地,数据内容对应的控制数据可以包括计数器值、奇偶值、计时器值中的至少一种。

更为具体地,控制数据包括计数器值,接收端根据目标数据中包括的控制数据对目标数据进行数据校验,获得数据校验结果的过程,包括:

判断接收到的目标数据包括的计数器值是否比上一次接收到的数据包括的计数器值大1,如果是,则接收到的目标数据正确,将接收正确作为所述目标数据对应的数据校验结果;如果否,则接收到的目标数据不正确,将接收接收不正确作为所述目标数据对应的数据校验结果。

具体地,在一种实现方式中,数据内容对应的控制数据可以由4位二进制数据表示,表示范围0~15,发送端每发送一次数据,计数器值会加1。在通信过程中,发送端第一次发送数据时计数器值初始化为0,随后每发送一次计数器值递增1。当计数器值增加到15时,重新归0后再递增。可以理解,发送端向接收端发送同一数据时,即重新发送目标数据时,计数器值不会增加。

接收端在接收到目标数据后,判断接收到的目标数据包括的计数器值是否比上一次接收到的数据包括的计数器值大1。如果是,将接收正确作为所述目标数据对应的数据校验结果;如果否,将接收接收不正确作为所述目标数据对应的数据校验结果。

进一步地,当数据校验结果为接收接收不正确时,数据校验结果中可以携带有数据接收不正确类型。

具体地,当接收到的目标数据包括的计数器值不是比上一次接收到的数据包括的计数器值大1时,接收端会比较接收到的目标数据包括的计数器值和上一次接收到的数据包括的计数器值之间的大小关系,根据不同的比较结果确定目标数据对应的数据接收不正确类型,并将数据接收不正确类型携带在数据校验结果中。

具体地,当接收到的目标数据包括的计数器值与上一次接收到的数据包括的计数器值相同时,将接收数据重复确定为目标数据对应的数据接收不正确类型。

当接收到的目标数据包括的计数器值与上一次接收到的数据包括的计数器值相比,增加的数值大于1时,将接收数据丢失确定为目标数据对应的数据接收不正确类型。

当接收到的目标数据包括的计数器值与上一次接收到的数据包括的计数器值小时,将接收数据混合排序确定为目标数据对应的数据接收不正确类型。

另外,控制数据还可以包括奇偶值,接收端根据目标数据中包括的控制数据对目标数据进行数据校验,获得数据校验结果的过程,包括:

计算目标数据所包括的数据内容的奇偶值,判断所计算出的奇偶值与目标数据中包括的奇偶值是否一致,如果一致,则目标数据在传输过程中未发送接收不正确,将接收正确作为目标数据对应的数据校验结果;如果不一致,则目标数据在传输过程中发送接收不正确,将接收接收不正确作为目标数据对应的数据校验结果。

具体地,在一种实现方式中,数据内容对应的控制数据可以由1位二进制数据表示表示,例如,用“1”表示目标数据中“1”的个数是奇数,用“0”表示目标数据中“1”的个数是偶数。假设,发送端发送的目标数据中会包括的目标数据的数据内容对应的奇偶值为“1”。接收端在接收到目标数据后,再一次计算目标数据中“1”的个数。如果计算出的目标数据的“1”的个数为奇数,则说明,所计算出的奇偶值与目标数据中包括的奇偶值一致,则目标数据在传输过程中未发送接收不正确,将接收正确作为目标数据对应的数据校验结果。如果,计算出的目标数据的“1”的个数为偶数,则说明,所计算出的奇偶值与目标数据中包括的奇偶值不一致,则目标数据在传输过程中发送接收不正确,将接收接收不正确作为目标数据对应的数据校验结果。

当发送端和接收端之间的通信过程为图2所示的过程时,在cmd数据中包含的传输控制字节中增加2位二进制数据表示来表示奇偶值,1位表示表示cmd数据的奇偶值,1位表示通信数据的奇偶值。

再有,控制数据还可以包括计时器值,接收端根据目标数据中包括的控制数据对目标数据进行数据校验,获得数据校验结果的过程,包括:

根据计时器值获得接收目标数据所用时长,并判断所述时长是否小于预设时长,预设时长即为目标数据从被发送到被接收允许的时间范围;如果小于,则说明目标数据在允许的时间范围内被接收,将接收正确作为目标数据对应的数据校验结果;如果不小于,则说明目标数据在允许的时间范围内没有被接收,将接收接收不正确作为目标数据对应的数据校验结果。

例如,假设预设时长为3秒,计时器值为2秒,则接收端接收目标数据所用时长为2秒,且所用时长小于预设时长,则将接收正确作为目标数据对应的数据校验结果。

通过根据数据内容对应的控制数据对数据内容进行校验,可以确定接收端接收到的目标数据是否正确,可以进一步提高数据通信的准确性。

更进一步地,控制数据可以包括计数器值、奇偶值以及计时器值,接收端根据目标数据中包括的控制数据对目标数据进行数据校验,获得数据校验结果的过程,包括:

判断接收到的目标数据包括的计数器值是否比上一次接收到的数据包括的计数器值大1;

如果否,将接收接收不正确作为目标数据对应的数据校验结果,如果是,计算目标数据所包括的数据内容的奇偶值,判断所计算出的奇偶值与所述目标数据中包括的奇偶值是否一致;

如果不一致,将接收接收不正确作为目标数据对应的数据校验结果,如果一致,根据计时器值获得接收目标数据所用时长,并判断获得的时长是否小于预设时长;

如果小于,将接收正确作为目标数据对应的数据校验结果,如果不小于,将接收接收不正确作为目标数据对应的数据校验结果。

s420,构建目标数据对应的携带有数据校验结果的应答消息。

具体地,在接收端对目标数据进行数据校验,得到数据校验结果后,接收端会将数据校验结果携带在应答消息中,构建携带有数据校验结果的目标数据对应的应答消息。

s430,在接收到目标数据后的下一时钟周期内,向发送端反馈应答消息。

其中,应答消息未在预定时间段内被发送端接收时,则发送端重新发送目标数据,预定时间段为发送端发送目标数据后的下一个时钟周期。

可以理解,时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,接收端端仅完成一个最基本的动作。

如果发送端没有在发送目标数据后的下一个时钟周期内接收到发送端反馈应答消息,则通信失败,此时可能丢失了通信数据,则发送端重新向接收端发送目标数据。

如果发送端在发送目标数据后的下一个时钟周期内接收到发送端反馈应答消息,且应答消息中携带的数据校验结果为数据接收不正确,则通信失败,发送端也重新向接收端发送目标数据。

与现有技术相比,本发明实施例所提供的方案中,通过判断预定时间段内是否接收到接收端反馈的目标数据对应的应答消息来确定接收端是否接收到了目标数据,并且,当预定时间段内接收到接收端反馈的目标数据对应的应答消息时,对接收端对目标数据进行校验获得的数据校验结果进行判断,能够保证通信数据的准确性。在接收端没有接收到目标数据时,重新向接收端发送目标数据,可以进一步保证通信数据的准确性。

相应于第一方面所提供的方法,本发明实施例还提供了一种基于spi协议的通信装置,应用于发送端;如图5所示,该装置包括:

消息判断模块510,在基于串行外围设备接口spi协议向接收端发送目标数据后,判断预定时间段内是否接收到接收端反馈的目标数据对应的应答消息,如果否,触发数据判断模块520;其中,应答消息为接收端在接收到目标数据后的下一时钟周期内所发送,预定时间段为发送端发送目标数据后的下一个时钟周期,应答消息中携带有接收端对目标数据进行数据校验获得的数据校验结果。

数据判断模块520,用于判断数据校验结果是否为接收不正确,如果是,触发数据发送模块530。

数据发送模块530,用于向接收端重新发送目标数据。

具体地,目标数据包括数据内容和数据内容对应的控制数据;则所述数据校验结果为所述接收端根据所述控制数据对所述目标数据进行数据校验所获得的。

与现有技术相比,本发明实施例所提供的方案中,通过判断预定时间段内是否接收到接收端反馈的目标数据对应的应答消息来确定接收端是否接收到了目标数据,并且,当预定时间段内接收到接收端反馈的目标数据对应的应答消息时,对接收端对目标数据进行校验获得的数据校验结果进行判断,能够保证通信数据的准确性。在接收端没有接收到目标数据时,重新向接收端发送目标数据,可以进一步保证通信数据的准确性。

相应于第二方面所提供的方法,本发明实施例还提供了一种基于spi协议的通信装置,应用于接收端;如图6所示,该装置包括:

数据校验模块610,用于在基于spi协议接收到发送端发送的目标数据后,对目标数据进行数据校验,得到数据校验结果。

消息构建模块620,用于构建目标数据对应的携带有数据校验结果的应答消息。

消息发送模块630,用于在接收到目标数据后的下一时钟周期内,向发送端反馈应答消息;其中,应答消息未在预定时间段内被发送端接收时,则发送端重新发送所述目标数据,预定时间段为所述发送端发送所述目标数据后的下一个时钟周期。

具体地,目标数据包括数据内容和数据内容对应的控制数据;数据校验模块610具体用于:

根据目标数据中的控制数据,对目标数据进行数据校验,得到数据校验结果。

具体地,控制数据可以包括计数器值、奇偶值、计时器值中的至少一种。

具体地,控制数据可以包括计数器值,数据校验模块610具体用于:

判断接收到的目标数据包括的计数器值是否比上一次接收到的数据包括的计数器值大1,如果是,将接收正确作为目标数据对应的数据校验结果;如果否,将接收接收不正确作为目标数据对应的数据校验结果。

具体地,控制数据可以包括奇偶值,数据校验模块610具体用于:

计算目标数据所包括的数据内容的奇偶值,判断所计算出的奇偶值与目标数据中包括的奇偶值是否一致,如果一致,将接收正确作为目标数据对应的数据校验结果;如果不一致,将接收接收不正确作为目标数据对应的数据校验结果;

具体地,控制数据可以包括计时器值,数据校验模块610具体用于:

根据计时器值获得接收目标数据所用时长,并判断时长是否小于预设时长,如果小于,将接收正确作为目标数据对应的数据校验结果;如果不小于,将接收接收不正确作为目标数据对应的数据校验结果。

具体地,控制数据包括计数器值、奇偶值以及计时器值,数据校验模块610具体用于:

判断接收到的目标数据包括的计数器值是否比上一次接收到的数据包括的计数器值大1;

如果否,将接收接收不正确作为目标数据对应的数据校验结果,如果是,计算目标数据所包括的数据内容的奇偶值,判断所计算出的奇偶值与所述目标数据中包括的奇偶值是否一致;

如果不一致,将接收接收不正确作为目标数据对应的数据校验结果,如果一致,根据计时器值获得接收目标数据所用时长,并判断获得的时长是否小于预设时长;

如果小于,将接收正确作为目标数据对应的数据校验结果,如果不小于,将接收接收不正确作为目标数据对应的数据校验结果。

与现有技术相比,本发明实施例所提供的方案中,通过判断预定时间段内是否接收到接收端反馈的目标数据对应的应答消息来确定接收端是否接收到了目标数据,并且,当预定时间段内接收到接收端反馈的目标数据对应的应答消息时,对接收端对目标数据进行校验获得的数据校验结果进行判断,能够保证通信数据的准确性。在接收端没有接收到目标数据时,重新向接收端发送目标数据,可以进一步保证通信数据的准确性。

本发明实施例还提供了一种基于spi协议的通信系统,如图7所示,该系统包括发送端710和接收端720。

接收端720,在基于spi协议接收到发送端710发送的目标数据后,对目标数据进行数据校验,得到数据校验结果;构建目标数据对应的携带有数据校验结果的应答消息;在接收到目标数据后的下一时钟周期内,向发送端710反馈应答消息。

发送端710,在基于串行外围设备接口spi协议向接收端720发送目标数据后,判断预定时间段内是否接收到接收端720反馈的应答消息;其中,预定时间段为发送端710发送目标数据后的下一个时钟周期;如果预定时间段内接收到接收端720反馈所述应答消息,判断数据校验结果是否为接收不正确;如果数据校验结果为接收不正确,向接收端720重新发送目标数据。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的基于spi协议的通信方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的基于spi协议的通信方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

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

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

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

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