一种数据分包传输系统及方法与流程

文档序号:13476770阅读:1838来源:国知局
一种数据分包传输系统及方法与流程

【技术领域】

本发明涉及zigbee传输技术领域,尤其涉及一种数据分包传输系统及方法。



背景技术:

zigbee是基于ieee802.15.4标准的低功耗局域网协议,具有近距离、低复杂度、自组织、低功耗、低传输速率及低成本的特点。它的数据报文的基本组成结构较为简单,物理层数据最大传输127字节,其中,mac(媒体访问控制)层占用11个字节、网络层至少占用8个字节、应用层占用8个字节,因此,一个数据包最多能携带的应用层数据为100个字节。然而,在实际应用过程中,用户自定义数据可能远远大于100个字节,进而导致使用zigbee传输技术无法满足用户大数据传输的需求。

鉴于此,实有必要提供一种新的数据分包传输系统及方法以克服上述缺陷。



技术实现要素:

本发明的目的是提供一种能够实现基于zigbee网络的大数据传输的数据分包传输系统及方法。

为了实现上述目的,本发明提供一种数据分包传输系统,包括发送端及接收端;所述发送端包括获取模块、生成模块、填充模块及第一发送模块;所述接收端包括解析模块;所述获取模块用于获取待传输数据并将所述待传输数据封装成命令包;所述生成模块用于在所述命令包的数据量大于预设数据量时,生成一个起始包、多个数据包、一个结束包以及包标识码;所述填充模块用于依次对所述起始包、所述多个数据包及所述结束包进行填充;所述第一发送模块用于将经过填充的起始包、多个数据包及结束包依次发送至所述接收端;所述解析模块用于对所述经过填充的起始包、多个数据包及结束包进行解析并重组以重新生成所述命令包。

本发明还提供一种数据分包传输方法,应用于数据分包传输系统中,所述数据分包传输系统包括发送端以及接收端;所述数据分包传输方法包括如下步骤:

获取待传输数据并将所述待传输数据封装成命令包;

在所述命令包的数据量大于预设数据量时,生成一个起始包、多个数据包、一个结束包以及包标识码;

依次对所述起始包、所述多个数据包及所述结束包进行填充;

将经过填充的起始包、多个数据包及结束包依次发送至所述接收端;

对所述经过填充的起始包、多个数据包及结束包进行解析并重组以重新生成所述命令包。

本发明所提供的数据分包传输系统及方法,应用于zigbee数据传输中,当待传输数据的数据量大于预设数据量时,发送端将待传输数据拆分到多个数据包传输,接收端对接收到的数据进行解析重组以得到命令包,进而实现了zigbee的大数据传输,更好的满足了用户的需求。

【附图说明】

图1为本发明实施例中提供的数据分包传输系统的功能模块图。

图2为本发明实施例中提供的数据分包传输方法的流程图。

【具体实施方式】

为了使本发明的目的、技术方案和有益技术效果更加清晰明白,以下结合附图和具体实施方式,对本发明进行进一步详细说明。应当理解的是,本说明书中描述的具体实施方式仅仅是为了解释本发明,并不是为了限定本发明。

请参阅图1,其为本发明实施例中数据分包传输系统100的功能模块图。所述数据分包传输系统100包括发送端10及接收端20。其中,所述发送端10包括获取模块11、生成模块12、填充模块13、第一发送模块14及判断模块15。所述接收端20包括解析模块21、反馈模块22以及第二发送模块23。可以理解地,上述各功能模块可以软件程序的形式存储于存储器中,并由处理器执行。也可为具有特定功能的硬件,例如,烧录有特定软件程序的芯片或者具有特定功能的电路。

下面结合图2对上述各功能模块进行详细的介绍。

如图2所示,其为本发明实施例中数据分包传输方法的流程图。所应说明的是,本发明的方法并不受限于下述步骤的顺序,且其他实施例中,本发明的方法可以只包括以下所述步骤的其中一部分,或者其中的部分步骤可以被删除。

步骤s01,所述获取模块11用于获取待传输数据并将所述待传输数据封装成命令包。

具体地,所述获取模块11用于对所述待传输的数据进行处理以形成命令包,其中,所述命令包的结构属性符合zigbee技术的传输协议。

步骤s02,所述生成模块12用于在所述命令包的数据量大于预设数据量时,生成一个起始包、多个数据包、一个结束包以及包标识码。

依据zigbee技术传输的数据报文的基本组成结构可知,一个数据包最多能携带的应用层数据为100个字节,因此,本实施例中的预设数据量为100个字节。具体地,数据包的数量可以依据实际要发送的数据长度而定。可以理解,所述多个数据包中有一个数据包的数据量小于所述预设数据量,或者多个数据包的数据量均为预设数据量。例如,当实际要发送的数据量为300个字节时,则可以将其生成三个数据包,且每个数据包占用100个字节;当实际要发送的数据量为270个字节时,则可以将其生成三个数据包,其中一个数据包占70个字节,其他两个数据包占100个字节。

进一步地,在生成起始包、多个数据包以及结束包的同时还生成包标识码以对所述起始包、多个数据包以及结束包进行标记。可以理解,所述包识别码为所述起始包、所述多个数据包以及所述结束包的唯一标识,其代表着zigbee网络中拆分出来的起始包、多个数据包以及结束包的数据来源。在本实施方式中,所述包标识码依据当前系统的rtc(实时时钟,real-timeclock)随机生成,由于系统的rtc是实时在变化的,因此,所述包标识码包含了时间因子,进而保证了同一时间生成的起始包、多个数据包以及结束包的唯一组合性,避免了组合错误的情况发生,提高了数据传输的准确度。

步骤s03,所述填充模块13用于依次对所述起始包、所述多个数据包及所述结束包进行填充。

所述起始包的结构如表1所示。

表1

由表1可知,所述起始包需要填充的内容包括起始包标识、包标识码、起始包包编号、数据包包数、数据包长度以及起始包校验码。在本实施方式中,所述起始包校验码通过对所述起始包的传输数据层的起始包标识、包识别码、起始包包编号、数据包包数及数据包长度进行校验处理而生成。可以理解,为了便于数据包的组合,起始包的包编号默认为0。本实施例中所提到的校验码为crc(cyclicredundancycheck,循环冗余校验码)。

每个数据包的结构如表2所示。

表2

由表2可知,每个数据包需要填充的内容包括数据包标识、包标识码、数据包包编号、数据包包数、待传输数据以及数据包校验码。在本实施方式中,所述数据包校验码通过对所述数据包标识、包标识码、数据包包编号、数据包包数、待传输数据进行校验处理而生成。可以理解,所述数据包包编号从1开始设置并依次加1。所述数据包包编号用作所述待传输数据拆分和重组的包序号索引,用于防止所述待传输数据重组出现乱序。

所述结束包的结构如表3所示。

表3

由表3可知,所述结束包需要填充的内容包括结束包标识、包标识码以及总校验码。其中,所述总校验码通过对所述起始包及所述每个数据包进行校验处理而生成。

步骤s04,所述第一发送模块14用于将经过填充的起始包、多个数据包及结束包依次发送至所述接收端20。

步骤s05,所述解析模块21用于对所述经过填充的起始包、多个数据包及结束包进行解析并重组以重新生成所述命令包。

可以理解,所述解析模块21分别对所述起始包、所述多个数据包以及所述结束包进行解析并依据包标识码以及包编号进行重组以重新生成所述命令包。可以理解,若在传输过程中没有错误,重新生成的命令包与初始命令包应该相同,若不同,则表明传输过程中出现错误。

步骤s06,所述反馈模块22用于对所述重新生成的命令包进行校验处理以生成反馈码。

步骤s07,所述第二发送模块23用于将所述反馈码发送至所述发送端10。

步骤s08,所述判断模块15用于判断所述反馈码是否正确;若所述反馈码正确,则执行步骤s01;若所述反馈码不正确,则执行步骤s04。

具体地,若所述反馈码与所述总校验码一致,则表明反馈码正确,进而表明传输数据过程中没有出现错误,因此,可以发送其他待发送的数据;若所述反馈码与所述总校验码不一致,则表明反馈码不正确,进而表明数据传输过程中出现错误,因此,需要对所述起始包、所述多个数据包及所述结束包进行重新填充后发送,直到反馈码正确为止。

本发明提供的数据分包传输系统100及方法,应用于zigbee数据传输中,当待传输数据的数据量大于预设数据量时,发送端10将待传输数据拆分到多个数据包传输,接收端20对接收到的数据进行重组生成待传输数据,并对重组后的待传输数据进行检验,以保证数据的准确、完整,进而实现了zigbee的大数据传输,更好的满足了用户的需求。

进一步的,在其他实施例中,所述反馈模块22还用于对解析后的起始包进行校验处理以生成起始包验证码,所述第二发送模块23还用于将所述起始包验证码发送至所述发送端10。所述判断模块15还用于判断所述起始包验证码与所述起始包校验码是否相同,若相同,则再接着发送所述多个数据包,若不同,则直接执行步骤s04。同理,在发送多个数据包时也同样处理,若数据包验证码与数据包校验码相同,则继续发送,若不同,则执行步骤s04,亦即,在依次发送过程中,对每个包都进行反馈,若反馈正确则再接着发送,若反馈错误,则重新发送,进而节约了数据传输的时间,在传输过程中进行逐一反馈,也进一步提高了数据传输的精度。

本发明并不仅仅限于说明书和实施方式中所描述,因此对于熟悉领域的人员而言可容易地实现另外的优点和修改,故在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。

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