一种处理传输数据的方法和装置的制造方法_2

文档序号:8415354阅读:来源:国知局
存储区和第二存储区中的数据进行拼接,其中,第四预设数量比特小于丢弃数据长度。
[0060]例如,当丢弃数据长度为6比特,第四预设数量比特为3比特,第一存储区存储有36比特的数据“010100010101010101010101010101111110”,第二存储区存储有10比特的数据“0100010100”,则将第一存储区中最先接收到的3比特数据“010”丢弃,将第二存储区中最后接收到的3比特数据“100”丢弃,拼接得到的数据为“1111100100010100010101010101010101010101”。
[0061]本发明实施例在接收到数据头和数据长度之后,根据该数据长度以及在接收到数据头之前接收并存储的数据的长度,确定是否继续接收数据,并对接收到的数据进行拼接,能够减少数据接收时间,提高数据接收速度。
[0062]需要说明的是,在本发明的其他实施方式中,第一存储区和第二存储区可以为同一存储区。
[0063]在本发明的其他实施方式中,传输数据按照从高位到低位的顺序依次包括:数据头、数据长度、数据类别、有效数据和校验码,其中,数据类别和数据长度的长度之和为第二预设数量比特,数据长度的长度为第三预设数量比特,相应地,可以根据第二存储区中最先接收到的第三预设数量比特的数据,获取数据长度。
[0064]在本发明的其他实施方式中,传输数据按照从高位到低位的顺序依次包括:数据头、数据长度、有效数据和校验码,相应地,第二预设数量比特与第三预设数量比特相等。
[0065]实施例二
[0066]在本发明实施例二中,发送端可以发送预设长度的数据,即,发送端与接收端预先约定需要传输的数据的长度,发送端发送的数据中包括:数据头、有效数据和校验码,数据总长度为第五预设数量比特,数据头的长度为第六预设数量比特,有效数据的长度为第七预设数量比特。本发明实施例二中的接收端处理传输数据的方法,如图2所示,包括以下步骤:
[0067]步骤201,接收端接收第五预设数量比特的数据,将接收到的数据存储到第三存储区。
[0068]其中,第五预设数量比特为发送端发送的数据头、有效数据和校验码的长度之和。当发送端先发送高位数据时,接收端可以将先接收到的数据作为高位数据存储到第三存储区,将后接收到的数据作为低位数据存储到第三存储区;当发送端先发送低位数据时,接收端可以将先接收到的数据作为低位数据存储到第三存储区,将后接收到的数据作为高位数据存储到第三存储区。
[0069]步骤202,接收端判断第三存储区中的数据是否符合预设格式,如果符合预设格式,则结束流程;如果不符合预设格式,则执行步骤203。
[0070]其中,预设格式可以为:按照从高位到低位的顺序,第三存储区中的数据依次包括数据头、有效数据和校验码,数据头的长度为第六预设数量比特,有效数据的长度为第七预设数量比特,且数据头的内容为预设内容,根据有效数据计算得到的校验值与校验码的内容相同。
[0071]接收端可以按照从高到低的顺序从第三存储区读取第六预设数量比特的数据,判断读取到的数据的内容是否为预设内容,如果不是预设内容,则确定存储的数据不符合预设格式;如果是预设内容,则继续从第三存储区读取第七预设数量比特的数据,根据读取到的第七预设数量比特的数据获取校验值,判断该校验值是否与第三存储区中剩余的数据的内容相同,如果相同,则确定第三存储区中的数据符合预设格式;如果不同,则确定第三存储区中的数据不符合预设格式。
[0072]例如,第五预设数量比特为30个比特,第六预设数量比特为6个比特,第七预设数量比特为20个比特,第三存储区中的数据为“111110010101010101010101010101”,接收端先读取6个比特的数据“111110”,在确定读取的6个比特的数据的内容与预设内容相同后,继续读取20个比特的数据“01010101010101010101”,根据该20个比特的数据计算校验值,如果计算得到的校验值与剩余的数据“0101”相同,则确定第三存储区中的数据符合预设格式;否则,则确定存储的数据不符合预设格式。
[0073]步骤203,接收端将第三存储区中的数据存储到第四存储区,将第四存储区中的数据左移第八预设数量比特,将被移出第四存储区的数据补到移位后的剩余数据的右端,并将左移次数加I。
[0074]具体地,接收端可以按照各个比特数据被移出第四存储区的先后顺序,将被移出的数据依次存储到第四存储区中的剩余数据的右端。其中,第八预设数量比特可以为I比特,也可以大于I比特,左移次数的初始值可以为O。
[0075]例如,当第四存储区存储的数据为“010111111001010101010101010101”,第八预设数量比特为4个比特时,接收端可以将“0101”移出第四存储区,并将“0101”存储到移位后的剩余数据“11111001010101010101010101”的右端,得到“111110010101010101010101010101”。
[0076]步骤204,接收端判断第四存储区中的数据是否符合预设格式,如果符合预设格式,则结束流程;如果不符合预设格式,则执行步骤205。
[0077]具体地,接收端判断第四存储区中的数据是否符合预设格式的具体方法,可以与步骤202中接收端判断第三存储区中的数据是否符合预设格式的具体方法相同。
[0078]步骤205,接收端判断左移次数是否小于预设次数,如果小于预设次数,则返回步骤203 ;否则,执行步骤206。
[0079]其中,当第八预设数量比特为I比特时,预设次数的取值可以为第四存储区存储的数据的比特数减I得到的结果。
[0080]步骤206,接收端将第三存储区中最先接收到的第九预设数量比特的数据丢弃,从发送端接收第九预设数量比特的数据,将接收到的数据存储到第三存储区中与已有数据相邻的位置,并返回步骤202。
[0081]具体地,接收端可以将接收到的第九预设数量比特的数据存储到第三存储区中的已有数据的右端或左端,接收端将第九预设数量比特的数据存储到第三存储区的方式,可以与接收端将第五预设数量比特的数据存储到第三存储区的方式相同。其中,第九预设数量比特可以为I比特,也可以大于I比特。
[0082]本发明实施例在接收到的数据不符合预设格式时,通过对接收到的数据进行移位以实现对该数据的重新组合,以使组合后的数据符合预设格式,可以在预定长度数据对应的时间内将数据接收完毕,缩短了数据接收时间,提高了数据接收速度。
[0083]需要说明的是,在本发明的其他实施方式中,接收端也可以将第四存储区中的数据右移第十预设数量比特,将被移出的数据补到第四存储区中的剩余数据的左端。具体地,接收端可以按照各个比特数据被移出第四存储区的先后顺序,将被移出的数据依次存储到第四存储区中与已有数据相邻的位置,即,已有数据的左端,并继续判断第四存储区中的数据是否符合预设格式。同样可以实现本发明的发明目的。
[0084]在本发明的其他实施方式中,可以将第四存储区中的数据定义为一个循环队列,当第四存储区中的数据不符合预设格式时,则将该循环队列的指针向预设方向移位第八预设数量比特,将移位次数加1,并判断移位后的循环队列中的数据是否符合预设格式,如不符合,则继续将该循环队列的指针向预设方向移位第八预设数量比特,直到移位后的循环队列中的数据符合预设格式,或者移位次数大于或等于预设次数,则将第三存储区中最先接收到的第九预设数量比特的数据丢弃,从发送端接收第九预设数量比特的数据,将接收到的数据存储到第三存储区中与已有数据相邻的位置,并继续判断第三存储区中的数据是否符合预设格式。
[0085]在本发明的其他实施方式中,发送端发送的数据中包括:有效数据和校验码,数据总长度为第五预设数量比特,有效数据的长度为第七预设数量比特。相应地,预设格式可以具体为:按照从高位到低位的顺序,数据依次包括有效数据和校验码,有效数据的长度为第七预设数量比特,且根据有效数据计算得到的校验值与校验码的内容相同。
[0086]实施例三
[0087]本发明实施例一和本发明实施例二中,发送端以比特为单位发送数据;本发明实施例三中,发送端以字节为单位发送数据,传输数据包括:数据头、数据长度、有效数据和校验码,其中,数据头的长度为第一预设数量字节,数据长度的长度为第二预设数量字节。接收端处理传输数据的方法流程,如图3所示,包括以下步骤:
[0088]步骤301,接收第一预设数量字节的数据,将接收到的数据存储到第五存储区。
[0089]其中,第一预设数量字节可以为数据头的长度。例如,当数据头的长度为2字节时,可以接收2字节的数据,并将该2字节的数据存储到第五存储区。
[0090]步骤302,判断第五存储区中最后接收到的第一预设数量字节的数据是否为数据头,如果是,则执彳丁步骤304,否则,执彳丁步骤303。
[0091]具体地,当数据头的内容为预设内容时,判断第五存储区中最后接收到的第一预设数量字节的数据的内容是否为预设内容。
[0092]例如,当数据头的长度为2字节,预设内容为“AA 44”时,可以判断第五存储区中最后接收到的2字节的数据的内容是否为“AA 44”。
[0093]步骤303,继续接收第十一预设数量字节的数据,将接收到的数据存储到第五存储区,并返回步骤302。
[0094]其中,第十一预设数量字节可以为I字节,也可以为其他数量的字节。
[0095]步骤304,继续接收第二预设数量字节的数据,将该数据存储到第六存储区。
[0096]其中,第二预设数量字节可以为数据长度的长度。例如,当数据长度的长度为I字节时,可以继续接收I字节的数据,并将该I字节的数据存储到第六存储区。
[0097]步骤305,根据第六存储区存储的数据,获取数据长度。
[0098]具体地,可以读取第六存储区存储的数据的内容,将该内容作为数据长度。例如,当第六存储区存储的数据为“05”时,则数据长度为5字节。
[0099]步骤306,根据校验位的长度、第五存储区中除数据头之外的其他数据的长度和数据长度,获取需要接收的剩余数据长度。
[0100]具体地,可以将校验位的长度和数据长度之和,减去第五存储区中除数据头之外的其他数据的长度,得到需要接收的剩余数据长度。
[0101]例如,当数据长度为5字节,校验位的长度为I字节,第五存储区存储有4字节的数据,其中包括长度为2字节的数据头时,则需要接收的剩余数据长度为5+1-(4-2) = 4字
-K-T。
[0102]步骤307,判断需要接收的剩余数据长度是否大于零,如果大于零,则执行步骤308 ;否则,执行步骤309。
[0103]步骤308,根据需要接收的剩余数据长度,继续接收数据,将接收到的数据存储到第六存储区,并对第五存储区和第六存储区中的数据进行拼接。
[0104]具体地,可以继续接收长度为需要接收的剩余数据长度的数据,并将该数据存储到第六存储区。在对第五存储区和第六存储区中的数据进行拼接时,
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1