通信接口的数据接收方法和装置与流程

文档序号:12477440阅读:271来源:国知局
通信接口的数据接收方法和装置与流程

本发明涉及计算机技术,尤其涉及一种通信接口的数据接收方法和装置。



背景技术:

当两个通信接口连接,进行数据传输时,两通信接口各自的收发模块根据预设的数据传输协议进行数据的发送和接收。由于两个通信接口直接接触连接,数据传输安全性较高,因此,现有的通信接口的收发模块在数据接收时,不进行数据检验。

但是,当数据传输过程中存在误操作或热插拔时,可能导致两个通信接口的通信断开,当将两个通信接口恢复连接时,由于可能出现某个数据的接收过程无法停止,进而使得新的数据的传输无法开始的情况,通信接口的数据传输无法恢复正常。为使数据传输恢复正常,只能将两个通信接口各自所在的通信设备的所有模块全部断电,确认所有模块硬件连接正常后,再为各自系统重新上电,重新进行数据传输。因此,当出现故障时,现有通信接口的数据接收方法无法自动恢复正常,稳定性较差。



技术实现要素:

本发明提供一种通信接口的数据接收方法和装置,用于解决现有通信接口的数据接收方法稳定性较低的问题。

第一方面,本发明提供一种通信接口的数据接收方法,应用于通过通信接口进行数据传输的未承载操作系统的通信设备,所述方法包括:

判断在预设传输时长内,是否接收到一个数据帧;

若否,则舍弃当前接收周期内已接收到的所有数据,将完成标志设置为已完成状态;所述当前接收周期为上一次将完成标志设置为已完成状态的时刻至本次将完成标志设置为已完成状态的时刻所经历的时长;

若是,则根据所述数据帧的校验和对所述数据帧进行校验,若校验未通过,则舍弃当前接收周期内已接收到的所有数据,将所述完成标志设置为已完成状态。

如上所述的通信接口的数据接收方法,所述判断在预设传输时长内,是否接收到一个数据帧,包括:

在确认接收到数据帧的帧头时,控制计时器开始计时,将所述完成标志设置为未完成状态;

判断在所述计时器的计时达到所述预设传输时长之前,是否完成所述数据帧的接收;

所述舍弃当前接收周期内已接收到的所有数据之后,还包括:

将所述计时器清零。

如上所述的通信接口的数据接收方法,所述判断在所述计时器的计时达到所述预设传输时长之前,是否完成所述数据帧的接收,包括:

自所述计时器开始计时起,在所述第一计时器的计时达到所述预设传输时长之前,判断是否接收到用于表征所述数据帧的长度的长度数据;

若否,则确定未完成所述数据帧的接收;

若是,则根据所述长度数据,获取所述数据帧的长度;

自接收到所述长度数据起,在所述计时器的计时达到所述预设传输时长之前,判断接收到的数据的长度是否达到所述数据帧的长度;若否,则确定未完成所述数据帧的接收。

本发明实施例提供的通信接口的数据接收方法,通过在进行数据帧的接收时,判断接收时长是否超过预设传输时长,使得通信接口可在通信异常时,放弃当前数据帧的接收,开始新的数据帧的接收,同时在完成了数据帧的接收后,进行校验和校验,确认接收到的数据帧为发送端发送的数据帧,因此,本发明实施例提供的通信接口的数据接收方法,在通信接口连接出现异常时,避免了通信设备的重新启动,节约了故障处理时间,提高了通信接口的稳定性,确保了通信数据的正确性。

第二方面,本发明提供一种通信接口的数据接收方法,应用于通过通信接口进行数据传输的承载操作系统的通信设备,所述方法包括:

获取在上一接收周期内接收到的所有数据和表示所述所有数据的总数量的计数器的计数值,所述上一接收周期为自上一次将完成标志设置为未完成状态的时刻至上一次将所述完成标志设置为已完成状态的时刻所经历的时长;

根据所述接收到的所有数据和所述计数值对所述所有数据进行校验,判断是否接收到一个填充数据帧;

若否,则舍弃上一接收周期内接收到的所有数据。

如上所述的通信接口的数据接收方法,所述获取在上一接收周期内接收到的所有数据和表示所述所有数据的总数量的计数器的计数值,包括:

当所述完成标志为已完成状态时,在确认接收到数据时,控制计时器开始计时和计数器开始计数,将接收到的数据和所述计数器的计数值存储在第一存储模块中,并将完成标志设置为未完成状态,所述计数器用于在每接收到一个数据时加1;

在所述计时器的计时达到所述预设传输时长时或所述计数值达到预设位数时,将存储在所述第一存储模块中的所述计数值和接收到的所有数据转存在第二存储模块中,将完成标志设置为已完成状态,将所述计时器和所述计数器清零,将所述第一存储模块清空。

如上所述的通信接口的数据接收方法,所述根据所述接收到的所有数据和所述计数值对所述所有数据进行校验,判断是否接收到一个填充数据帧,包括:

根据所述接收到的所有数据和所述计数值,对所述所有数据依次进行帧头校验、长度校验、以及校验和校验;

若校验未通过,则确定未接收到一个填充数据帧。

如上所述的通信接口的数据接收方法,所述方法还包括:

若确定接收到一个填充数据帧,则获取所述填充数据帧的帧头;

根据所述帧头确定真正数据帧的长度;

根据所述真正数据帧的长度,在所述接收到的所有数据中读取所述真正数据帧。

如上所述的通信接口的数据接收方法,所述方法还包括:

若确定接收到一个填充数据帧,则获取所述填充数据帧中的用于表征真正数据帧的长度的长度数据;

根据所述长度数据确定所述真正数据帧的长度;

根据所述真正数据帧的长度,在所述接收到的所有数据中读取所述真正数据帧。

本发明实施例提供的通信接口的数据接收方法,通过在进行数据帧的接收时,判断接收时长是否超过预设传输时长,使得通信接口可在接收时长过长时,停止当前数据的接收,并开始新的数据帧的接收,同时在完成了数据帧的接收后,进行校验,确认接收到的数据帧为发送端发送的数据帧,因此,本发明实施例提供的通信接口的数据接收方法,在通信接口连接出现异常时,避免了通信设备的重新启动,节约了故障处理时间,提高了通信接口的稳定性,确保了通信数据的正确性。

下面介绍本发明实施例提供的通信接口的数据接收装置,该装置与方法一一对应,用以实现上述实施例中的通信接口的数据接收方法,具有相同的技术特征和技术效果,本发明实施例对此不再赘述。

第三方面,本发明提供一种通信接口的数据接收装置,应用于通过通信接口进行数据传输的未承载操作系统的通信设备,所述装置包括:

数据接收模块,用于判断在预设传输时长内,是否接收到一个数据帧;

清除模块,用于在所述数据接收模块确定未接收到一个数据帧时,舍弃当前接收周期内已接收到的所有数据,将完成标志设置为已完成状态;所述当前接收周期为上一次将完成标志设置为已完成状态的时刻至本次将完成标志设置为已完成状态的时刻所经历的时长;

校验模块,用于在所述数据接收模块确定接收到一个数据帧时,根据所述数据帧的校验和对所述数据帧进行校验,若校验未通过,则舍弃当前接收周期内已接收到的所有数据,将所述完成标志设置为已完成状态。

第四方面,本发明提供一种通信接口的数据接收装置,应用于通过通信接口进行数据传输的承载操作系统的通信设备,所述装置包括:

数据获取模块,用于获取在上一接收周期内接收到的所有数据和表示所述所有数据的总数量的计数器的计数值,所述上一接收周期为自上一次将完成标志设置为未完成状态的时刻至上一次将所述完成标志设置为已完成状态的时刻所经历的时长;

数据校验模块,用于根据所述接收到的所有数据和所述计数值对所述所有数据进行校验,判断是否接收到一个填充数据帧;

清除模块,用于在所述数据校验模块确定未接收到一个填充数据帧时,舍弃上一接收周期内接收到的所有数据。

附图说明

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

图1是本发明实施例一提供的通信接口的数据接收方法的流程示意图;

图2是本发明实施例二提供的通信接口的数据接收方法的流程示意图;

图3是本发明实施例三提供的通信接口的数据接收方法的流程示意图;

图4是本发明实施例四提供的通信接口的数据接收方法的流程示意图;

图5是本发明实施例五提供的通信接口的数据接收装置的结构示意图;

图6是本发明实施例六提供的通信接口的数据接收装置的结构示意图。

具体实施方式

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

现有通信接口在连接出现异常后,当恢复连接时,通信接口的数据传输无法自动恢复正常,需将通信接口所在的通信设备重新启动,存在稳定性较差的问题。针对上述问题,本发明实施例提供一种通信接口的数据接收方法,应用于通过通信接口进行数据传输的通信设备,对通信接口传输数据时同时进行时长检测和数据检测,以提高通信接口的稳定性。

本发明针对通信接口所在的装置是否承载有操作系统,分别提出一种通信接口的数据接收方法,下面结合具体实施例,对本发明提供的通信接口的数据接收方法进行详细说明。

一方面,当通信设备未承载操作系统时,示例性的,该通信设备可以为单片机,单片机可以设置在冰箱、空调、电视等大型家电设备上。图1是本发明实施例一提供的通信接口的数据接收方法的流程示意图。该方法的执行主体为通信接口的数据接收装置,该装置可以通过软件或硬件实现,该装置还可集成单片机中,本发明对此不做限定。如图1所示,该方法包括:

步骤101、判断在预设传输时长内,是否接收到一个数据帧;若否,则执行步骤102;若是,则执行步骤103;

步骤102、舍弃当前接收周期内已接收到的所有数据,将完成标志设置为已完成状态;

步骤103、根据数据帧的校验和对数据帧进行校验,若校验未通过,则舍弃当前接收周期内已接收到的所有数据,将完成标志设置为已完成状态。

其中,当前接收周期为上一次将完成标志设置为已完成状态的时刻至本次将完成标志设置为已完成状态的时刻所经历的时长。

当通信设备未承载操作系统时,通信接口接收数据帧的方式为一个字节一个字节的接收,一个字节包括8比特二进制数据。通信接口在接收到数据时,首先判断该数据是否是表示一个数据帧的开始的帧头;若是,则将下一次接收到的数据视为表示帧长度的长度数据,根据长度数据即可得到当前帧头对应的数据帧的长度,当接收完成该长度的数据时,则认为完成了数据帧的接收。

具体的,在步骤101中,通信接口的数据接收装置在进行数据接收时,对数据帧的接收的持续时长进行判断,判断一个数据帧的接收时长是否在预设传输时长内。预设传输时长通常根据通信接口的通信比特率和接收的最长帧数据的长度来获取,示例性的,当通信的比特率为9600比特/秒,最长帧数据的长度为90字节时,可将预设传输时长设置为200毫秒。

当一个数据帧的接收时长超过预设传输时长时,执行步骤102。具体的,在步骤102、当一个数据帧的接收时长超过预设传输时长时,可认为当前数据帧的接收出现异常,可舍弃当前数据帧已经接收到的部分,并将表示当前数据帧的接收是否完成的完成标识设置为已完成状态,以使通信接口可以开始新的数据帧的接收,从而避免了通信接口一直处于占用状态,无法结束当前数据帧的接收,也无法开始新的数据帧的接收,进一步避免了通信接口所在的通信设备进行重新启动。示例性的,根据数据接收方式,可将数据帧的接收过程划分为一个个接收周期,从一次完成标识设置为已完成状态到下一次完成标识设置为已完成状态为一个接受周期。一个完整的接收周期包括数据帧的帧头确认部分,帧头确认后的数据接收部分;当确认接收到帧头时,则将完成标识设置为未完成状态,当接收到帧长度的数据时,则认为接收完成,将完成标识设置为已完成状态。每个接收周期的持续时间长短均不相同,预设传输时长是对帧头确认后的数据接收部分的持续时长进行限定,当超过预设传输时长时仍未完成数据帧的接收,则舍弃当前接收周期内已接收到的所有数据,将完成标志设置为已完成状态。

当在预设传输时长内完成了一个数据帧的接收时,执行步骤103。具体的,在步骤103中,当接收到符合帧长度的数据帧后,需对接收到的数据帧中的数据进行检测,以避免传输过程中数据出现异常,示例性的,可根据数据帧的帧尾的校验和位,对数据帧进行检验,例如,数据发送端欲传输10字节数据时,可在10字节数据之后,增加1字节的校验和,校验和根据该10字节数据生成,当10字节数据或校验和被更改后,通信接口在进行校验和校验时,根据接收到的10字节数据生成的校验和将与接收到的校验和不符,即可认为校验未通过。当校验未通过,可认为数据帧传输过程中,数据发生了更改,则舍弃当前接收周期内已接收到的所有数据,并将完成标志设置为已完成状态。具体的生成校验和的方式、校验方式可采用现有的校验和校验方法,本发明对此不做限定。

本发明实施例提供的通信接口的数据接收方法,通过在进行数据帧的接收时,判断接收时长是否超过预设传输时长,使得通信接口可在通信异常时,放弃当前数据帧的接收,开始新的数据帧的接收,同时在完成了数据帧的接收后,进行校验和校验,确认接收到的数据帧为发送端发送的数据帧,因此,本发明实施例提供的通信接口的数据接收方法,在通信接口连接出现异常时,避免了通信设备的重新启动,节约了故障处理时间,提高了通信接口的稳定性,确保了通信数据的正确性。

进一步的,在图1所示实施例的基础上,对步骤101中的预设传输时长的计时进行详细说明。判断在预设传输时长内,是否接收到一个数据帧,具体包括:

步骤1011、在确认接收到数据帧的帧头时,控制计时器开始计时,将完成标志设置为未完成状态;

步骤1012、判断在计时器的计时达到预设传输时长之前,是否完成数据帧的接收。

在步骤102和步骤103中,在舍弃当前接收周期内已接收到的所有数据的同时,将计时器清零。

具体的,当完成标志设置为已完成状态后,通信接口开始判断是否接收到帧头,示例性的,帧头可以为一字节或多字节,以帧头为两字节为例,当通信接口接收到两字节数据时,判断该两字节数据与预设帧头是否一致,若一致则认为接收到的两字节数据为帧头,若不一致,则舍弃在先的一字节数据,待再接收到一字节数据后,比较新的两字节数据与预设帧头是否一致,直至检测获取到帧头。在帧头之前接收到的数据,由于不是需要发送给通信接收的数据,因此均舍弃,并在检测到帧头之后控制计时器开始计时,将完成标志设置为未完成状态,表示开始一个数据帧的接收。然后判断在计时器的计时达到预设传输时长之前,是否完成数据帧的接收。

当未完成数据帧的接收时,在将完成标志设置为已完成状态的同时,还将计时器的计时清零。当完成数据帧的接收时,若数据帧校验未通过,在将完成标志设置为已完成状态的同时,也需将计时器的计时清零;若数据帧校验通过,则将当前周期内接收到的数据帧转存在存储模块,以供通信装置的其他程序使用该数据帧,并将完成标志设置为已完成状态的同时,将计时器的计时清零。

进一步地,在上述实施例的基础上,对步骤1012中的判断是否完成数据帧的接收进行详细说明。当计时器开始计时后,判断在计时器的计时达到预设传输时长之前,是否完成数据帧的接收,具体包括:

步骤1013、自计时器开始计时起,在第一计时器的计时达到预设传输时长之前,判断是否接收到用于表征数据帧的长度的长度数据;若是,则执行步骤1014;若否,则确定未完成数据帧的接收;

步骤1014、根据长度数据,获取数据帧的长度;

步骤1015、自接收到长度数据起,在计时器的计时达到预设传输时长之前,判断接收到的数据的长度是否达到数据帧的长度;若否,则确定未完成数据帧的接收。

具体的,在步骤1013中,自计时器开始计时后,通信接口将最先接收到的数据作为数据帧的长度数据,长度数据用于表征数据帧的长度,示例性的,长度数据可以为一字节,也可以为多字节。确定在第一计时器的计时达到预设传输时长之前,是否接收到该长度数据。

当未接收到该长度数据时,则确定未完成数据帧的接收。例如长度数据为两字节,但是在预设传输时长内,只接收到1字节的数据,则认为未接收到该长度数据,进而无法再预设传输时长内,完成整个数据帧的接收。当接收到该长度数据时,则执行步骤1014,根据长度数据,获取数据帧的长度。

具体的,在步骤1015中,自计时器开始计时器,计数器从0开始计数,并当通信接口接收到一个数据时,计数器的数值加1。计数器累计自接收到长度数据起,接收了多少了个数据,当计数器累计的数值达到数据帧的长度时,则确认完成了数据帧的接收,若在计时器的计时达到预设传输时长之前,计数器的数值未达到数据帧的长度;则确定未完成数据帧的接收。当完成数据帧的接收时,将计数器的数值清零。

下面结合图2,以帧头和长度数据均为一字节为例,说明本发明实施例实际应用于无操作系统的通信设备时,通信接口在接收到一字节数据时的具体处理过程。图2是本发明实施例二提供的通信接口的数据接收方法的流程示意图。如图2所示,该方法包括:

步骤201、判断帧头标识是否为1;若否;则执行步骤202;若是,则执行步骤204;

步骤202、判断接收到的数据与预设帧头是否相同;若是,则执行步骤203;若否;则执行步骤209;

步骤203、保存帧头,将帧头标识设置为1,计时器开始计时;完成标识设置为0;执行步骤209;

步骤204、判断长度标识是否为1;若否;则执行步骤205;若是,则执行步骤206;

步骤205、保存长度数据,将长度标识设置为1,计数器加1;执行步骤209;

步骤206、计数器加1,判断计数器数值是否小于数据帧的长度;若是,则执行步骤207;若否;则执行步骤208;

步骤207、保存数据;执行步骤209;

步骤208、保存数据,计数器清零,计时器清零,帧头标识设置为0,长度标识设置为0,完成标识设置为1;

步骤209、结束当前数据接收;

步骤2010、判断计时器的计时是否超过预设传输时长;若是,则执行步骤2011;

步骤2011、清除数据,计数器清零,计时器清零,帧头标识设置为0,长度标识设置为0,完成标识设置为1;执行步骤204。

其中,步骤2010、步骤2011与步骤201至步骤208无时序关系。

其中,帧头标识为1表示已接收到帧头,帧头标识为0表示未接收到帧头;长度标识为1表示已接收到数据帧的长度数据,长度标识为0表示未接收到数据帧的长度数据;完成标识为1表示当前数据帧的接收已完成,完成标识为0表示当前数据帧的接收未完成。

另一方面,当通信设备承载有操作系统时,示例性的,该通信设备可以为设置有处理器的冰箱、空调、电视等智能家电设备。图3是本发明实施例三提供的通信接口的数据接收方法的流程示意图。该方法的执行主体为通信接口的数据接收装置,该装置可以通过软件或硬件实现,本发明对此不做限定。如图3所示,该方法包括:

步骤301、获取在上一接收周期内接收到的所有数据和表示所有数据的总数量的计数器的计数值;

步骤302、根据接收到的所有数据和计数值对所有数据进行校验,判断是否接收到一个填充数据帧;若否,则执行步骤303;

步骤303、舍弃上一接收周期内接收到的所有数据。

其中,接收周期为自上一次将完成标志设置为未完成状态的时刻至上一次将完成标志设置为已完成状态的时刻所经历的时长。

当通信设备承载有操作系统时,通信接口接收数据帧的方式为在通信接口完成预设位数的数据的接收,再判断接收到的所有数据是否为一个数据帧。由于发送端发送的数据帧的位数可能小于通信接口约定的数据帧的预设位数,故在发送端将欲发送的真正数据帧进行扩充,以得到满足通信接口预定的预设位数的填充数据帧,示例性的,可在真正数据帧的末尾添加多个0以获取填充数据帧。

具体的,在步骤301中,获取通信接口在上一接收周期内接收到的所有数据和计数器的计数值,计数值用于表示所有数据的总数量。接收周期自通信接口接收到第一数据时起,并在接收完成预设位数的数据后结束,当数据传输出现异常时,当当前数据帧的接收时长超过预设传输时长时,也结束接收周期,以使通信接口可以开始新的数据帧的接收。从而避免了通信接口一直处于占用状态,无法结束当前数据帧的接收,也无法开始新的数据帧的接收,进一步避免了通信接口所在的通信设备进行重新启动。

具体的,在步骤302中,根据步骤301中接收到的所有数据和计数值对所有数据进行校验,由于步骤301中接收到的数据可能为正常接收到的数据,也可能为超过传输时长时非正常接收到的数据,因此,需对接收到的数据进行校验,确定是否接收到一个完整的填充数据帧。示例性的,可根据计数值与预设位数是否相同进行校验。

当根据校验结果确定并未接收到一个填充数据帧时,执行步骤303,舍弃上一接收周期内接收到的所有数据。

本发明实施例提供的通信接口的数据接收方法,通过在进行数据帧的接收时,判断接收时长是否超过预设传输时长,使得通信接口可在接收时长过长时,停止当前数据的接收,并开始新的数据帧的接收,同时在完成了数据帧的接收后,进行校验,确认接收到的数据帧为发送端发送的数据帧,因此,本发明实施例提供的通信接口的数据接收方法,在通信接口连接出现异常时,避免了通信设备的重新启动,节约了故障处理时间,提高了通信接口的稳定性,确保了通信数据的正确性。

进一步的,在图3所示实施例的基础上,对获取上一接收周期内接收到的所有数据进行详细说明。获取在上一接收周期内接收到的所有数据和表示所述所有数据的总数量的计数器的计数值,具体包括:

步骤3011、当完成标志为已完成状态时,在确认接收到数据时,控制计时器开始计时和计数器开始计数,将接收到的数据和计数器的计数值存储在第一存储模块中,并将完成标志设置为未完成状态,计数器用于在每接收到一个数据时加1;

步骤3012、在计时器的计时达到预设传输时长时或计数值达到预设位数时,将存储在第一存储模块中的计数值和接收到的所有数据转存在第二存储模块中,将完成标志设置为已完成状态,将计时器和计数器清零,将第一存储模块清空。

具体的,在步骤3011中,当通信接口完成一次数据帧的接收后,将完成标志设置为已完成状态。当完成标志为已完成状态时,在第一次接收到数据时,控制计时器开始计时,计数器开始计数,将接收到的数据和计数器的计数值存储在第一存储模块中,并将完成标志设置为未完成状态,计数器用于在每接收到一个数据时加1;第一存储模块可以为内部存储器或外部存储器等具有存储功能的单元。

具体的,步骤3012中,在计时器的计时达到预设传输时长时或计数值达到预设位数时,当前接收周期结束,将完成标志设置为已完成状态,并将存储在第一存储模块中的计数值和接收到的所有数据转存在第二存储模块中,将计时器和计数器清零,将第一存储模块清空,清空后的第一存储模块用于存储下一接收周期内接收到的数据。

进一步的,图3所示实施例的基础上,对步骤302中的数据校验过程进行详细说明,根据接收到的所有数据和计数值对所有数据进行校验,判断是否接收到一个填充数据帧,具体包括:

步骤3021、根据接收到的所有数据和计数值,对所有数据依次进行帧头校验、长度校验、以及校验和校验;

步骤3022、若校验未通过,则确定未接收到一个填充数据帧。

具体的,在步骤3021中,根据接收到的所有数据和计数值,对接收到的所有数据依次进行帧头校验、长度校验、以及校验和校验,校验方法与通信装置中未承载操作系统时相同,本发明对此不再赘述。

具体的,在步骤3022中,当步骤3021中的校验未通过时,则确定上一接收周期内并未接收到一个完整的填充数据帧。可选的,当校验通过时,则确定上一接收周期内接收到了一个完整的填充数据帧。

进一步的,在图3所示实施例的基础上,当确定接收到一个填充数据帧时,本发明还包括从填充数据帧中获取真正数据帧,以下为本发明提供的从填充数据帧中获取真正数据帧的可选的实现方式:

一种可行的实现方式:

若确定接收到一个填充数据帧,则获取填充数据帧的帧头;

根据帧头确定真正数据帧的长度;

根据真正数据帧的长度,在接收到的所有数据中读取真正数据帧。

具体的,数据发送端在发送数据时,可根据真正数据帧的长度,确定填充数据帧的帧头,例如,当帧头为0x66时,代表真正数据帧的长度为60字节,当帧头为0x68时,代表真正数据帧的长度为80字节。通信接口端存储有帧头与长度的对应关系。当通信接口确定接收到一个填充数据帧时,则获取填充数据帧的帧头,再根据帧头与长度的对应关系,确定真正数据帧的长度,最后根据真正数据帧的长度,在接收到的填充数据帧中读取真正数据帧。

另一种可行的实现方式:

若确定接收到一个填充数据帧,则获取填充数据帧中的用于表征真正数据帧的长度的长度数据;

根据长度数据确定真正数据帧的长度;

根据真正数据帧的长度,在接收到的所有数据中读取真正数据帧。

具体的,数据发送端在将真正数据帧填充,得到填充数据帧时,在填充数据帧的长度数据之后,增加一位长度数据,用以表示真正数据帧的长度。当通信接口确定接收到一个填充数据帧时,则获取填充数据帧中用于表征真正数据帧的长度的长度数据,再根据该长度数据确定真正数据帧的长度,最后根据真正数据帧的长度,在接收到的填充数据帧中读取真正数据帧。

下面结合图4,采用具体实施例,说明本发明实施例实际应用于有操作系统的通信设备时,通信接口在进行数据接收时的具体处理过程。图4是本发明实施例四提供的通信接口的数据接收方法的流程示意图。如图4所示,该方法包括:

步骤001、判断完成标志是否为1;若是,则执行步骤002;若否,则执行步骤003;

步骤002、存储数据,将完成标志设置为0,计时器开始计时,计数器开始计数;执行步骤005;

步骤003、存储数据,计数器加1,判断计数器的计数值是否小于预设位数;若否,则执行步骤004;若是,则执行步骤005;

步骤004、将存储的所有数据转存,将完成标志设置为1,将计时器和计数器清零;

步骤005、结束当前数据接收;

步骤000、判断计时器的计时是否超过预设传输时长;若是,则执行步骤004;

其中,步骤000与步骤001至步骤003没有时序关系。在步骤004之后,该方法还包括:

步骤401、判断填充数据帧的帧头与预设帧头是否相同;若是,则执行步骤402;若否,则执行步骤405;

步骤402、判断填充数据帧的帧长度与计数器的计数值是否相同;若是,则执行步骤403;若否,则执行步骤405;

步骤403、判断填充数据帧的校验和是否正确;若是,则执行步骤404;若否,则执行步骤405;

步骤404、根据真正数据帧的长度获取正在数据帧,并将真正数据帧转存;

步骤405、清空第二存储模块。

其中,完成标识为1表示当前数据帧的接收已完成,完成标识为0表示当前数据帧的接收未完成。

本发明实施例还提供一种通信接口的数据接收装置,用以执行如上所述的方法实施例,具有相同的技术特征和技术效果,本发明对此不再赘述。

图5是本发明实施例五提供的通信接口的数据接收装置的结构示意图。如图5所示,当该装置应用于通过通信接口进行数据传输的未承载操作系统的通信设备时,该装置包括:

数据接收模块501,用于判断在预设传输时长内,是否接收到一个数据帧;

清除模块502,用于在数据接收模块501确定未接收到一个数据帧时,舍弃当前接收周期内已接收到的所有数据,将完成标志设置为已完成状态;当前接收周期为上一次将完成标志设置为已完成状态的时刻至本次将完成标志设置为已完成状态的时刻所经历的时长;

校验模块503,用于在数据接收模块501确定接收到一个数据帧时,根据数据帧的校验和对数据帧进行校验,若校验未通过,则舍弃当前接收周期内已接收到的所有数据,将完成标志设置为已完成状态。

可选的,数据接收模块501具体用于,在确认接收到数据帧的帧头时,控制计时器开始计时,将完成标志设置为未完成状态;判断在计时器的计时达到预设传输时长之前,是否完成数据帧的接收;

清除模块502还用于在舍弃当前接收周期内已接收到的所有数据之后,将计时器清零。

校验模块503还用于在舍弃当前接收周期内已接收到的所有数据之后,将计时器清零。

可选的,数据接收模块501具体用于:

自计时器开始计时起,在第一计时器的计时达到预设传输时长之前,判断是否接收到用于表征数据帧的长度的长度数据;

若否,则确定未完成数据帧的接收;

若是,则根据长度数据,获取数据帧的长度;

自接收到长度数据起,在计时器的计时达到预设传输时长之前,判断接收到的数据的长度是否达到数据帧的长度;若否,则确定未完成数据帧的接收。

图6是本发明实施例六提供的通信接口的数据接收装置的结构示意图。如图6所示,当该装置应用于通过通信接口进行数据传输的承载操作系统的通信设备时,该装置包括:

数据获取模块601,用于获取在上一接收周期内接收到的所有数据和表示所有数据的总数量的计数器的计数值,上一接收周期为自上一次将完成标志设置为未完成状态的时刻至上一次将完成标志设置为已完成状态的时刻所经历的时长;

数据校验模块602,用于根据接收到的所有数据和计数值对所有数据进行校验,判断是否接收到一个填充数据帧;

清除模块603,用于在数据校验模块602确定未接收到一个填充数据帧时,舍弃上一接收周期内接收到的所有数据。

可选的,数据获取模块601具体用于:

当完成标志为已完成状态时,在确认接收到数据时,控制计时器开始计时和计数器开始计数,将接收到的数据和计数器的计数值存储在第一存储模块中,并将完成标志设置为未完成状态,计数器用于在每接收到一个数据时加1;

在计时器的计时达到预设传输时长时或计数值达到预设位数时,将存储在第一存储模块中的计数值和接收到的所有数据转存在第二存储模块中,将完成标志设置为已完成状态,将计时器和计数器清零,将第一存储模块清空。

可选的,数据校验模块602具体用于:

根据接收到的所有数据和计数值,对所有数据依次进行帧头校验、长度校验、以及校验和校验;

若校验未通过,则确定未接收到一个填充数据帧。

可选的,该装置还包括真正数据帧获取模块,用于:

若确定接收到一个填充数据帧,则获取填充数据帧的帧头;

根据帧头确定真正数据帧的长度;

根据真正数据帧的长度,在接收到的所有数据中读取真正数据帧。

选的,该装置还包括真正数据帧获取模块,用于:

若确定接收到一个填充数据帧,则获取填充数据帧中的用于表征真正数据帧的长度的长度数据;

根据长度数据确定真正数据帧的长度;

根据真正数据帧的长度,在接收到的所有数据中读取真正数据帧。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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