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

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

【技术领域】

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



背景技术:

蓝牙技术是一种支持设备短距离通信的无线电技术,随着蓝牙技术的不断发展,通过使用蓝牙技术进行多媒体数据的交换也广泛应用,而蓝牙低功耗技术由于其低耗电量及低成本的特点,越来越多的应用于蓝牙传输中。

低功耗蓝牙由于功耗上的考虑,数据传输使用的单个数据包的基本数据承载能力较小,一般在几十个字节之内,而且除去已经定义好的前导字段、接入地址、报文、长度及crc(cyclicredundancycheck,循环冗余校验)等信息,留给用户的应用层可用的数据净荷为20字节。

在实际项目开发过程中,当蓝牙传输中使用到一些简单的透传功能或自定义协议数据时,需要应用层传输的数据可能大于20字节,低功耗蓝牙却无法满足用户的大数据传输需求。

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



技术实现要素:

本发明的目的是提供一种数据分包传输方法及系统,能够实现低功耗蓝牙中的大数据传输。

为了实现上述目的,本发明提供一种数据分包传输方法,所述数据分包传输方法包括以下步骤:

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

在所述命令包的数据量大于预设数据量时,所述发送端根据所述命令包的数据量生成多个预设数据量的数据包及一个数据量小于或等于所述预设数据量的数据包;

所述发送端生成一个起始包及一个结束包;

所述发送端填充所述起始包的传输数据层并根据所述起始包的传输数据层填充完整所述起始包;

所述发送端填充每个数据包的传输数据层并根据每个数据包的传输数据层填充完整对应的数据包;

所述发送端填充所述结束包的传输数据层并根据所述结束包的传输数据层填充完整所述结束包;

所述发送端建立与接收端之间的蓝牙传输链路;

所述发送端基于所述蓝牙传输链路将所述起始包、所述数据包及所述结束包依次发送至所述接收端;

所述接收端根据所述起始包的包识别码对所述数据包及所述结束包进行归类,并根据所述数据包的包识别码及数据包包编号对所述数据包进行重组以重新生成所述命令包;

所述接收端对所述命令包进行校验以生成命令包校验码;

所述接收端判断所述命令包校验码与所述结束包的总检验码是否一致;

若所述命令包校验码与所述结束包的总检验码一致,所述接收端发送校验成功信息至所述发送端。

本发明还提供一种数据分包传输系统,所述数据分包传输系统包括发送端及接收端;所述发送端包括获取模块、封装模块、第一生成模块、第一填充模块、第二填充模块、第三填充模块及链路建立模块;所述接收端包括接收模块、归类模块、重组模块、第一检验模块、判断模块及第二发送模块;所述获取模块用于获取待传输数据;所述封装模块用于将所述待传输数据封装成命令包;所述第一生成模块用于在所述命令包的数据量大于预设数据量时,生成多个预设数据量的数据包及一个数据量小于或等于所述预设数据量的数据包、一个起始包及一个结束包;所述第一填充模块用于填充所述起始包的传输数据层并根据所述起始包的传输数据层填充完整所述起始包;所述第二填充模块用于填充每个数据包的传输数据层并根据每个数据包的传输数据层填充完整对应的数据包;所述第三填充模块用于填充所述结束包的传输数据层并根据所述结束包的传输数据层填充完整所述结束包;所述链路建立模块用于建立与接收端之间的蓝牙传输链路;所述第一发送模块用于基于所述蓝牙传输链路将所述起始包、所述数据包及所述结束包依次发送至所述接收端;所述接收模块用于接收所述第一发送模块发送的所述起始包、所述数据包及所述结束包;所述归类模块用于根据所述起始包的包识别码对所述数据包及所述结束包进行归类;所述重组模块用于根据所述数据包的包识别码及数据包包编号对所述数据包进行重组以重新生成所述命令包;所述第一检验模块用于对所述命令包进行校验以生成命令包校验码;所述判断模块用于判断所述命令包校验码与所述结束包的总检验码是否一致;所述第二发送模块用于当所述命令包校验码与所述结束包的总检验码不一致时,发送校验失败信息至所述发送端;所述第二发送模块还用于当所述命令包校验码与所述结束包的总检验码一致时,发送校验成功信息至所述发送端。

本发明提供的数据分包传输系统及方法,应用于低功耗蓝牙数据传输中,当待传输数据的数据量大于预设数据量时,发送端将待传输数据拆分到多个数据包传输,接收端对接收到的数据进行重组生成待传输数据,并对重组后的待传输数据进行检验,保证数据的准确、完整,实现了低功耗蓝牙的大数据传输。

【附图说明】

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

图2为为图1中步骤s04的子流程图。

图3为为图1中步骤s05的子流程图。

图4为为图1中步骤s06的子流程图。

图5为本发明实施方式提供的数据分包传输系统的功能模块图。

图6为图5所示的第一填充模块、第二填充模块及第三填充模块的功能模块图。

【具体实施方式】

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

请参阅图5及图6,本发明提供一种数据分包传输系统100,所述数据分包传输系统100包括发送端10及接收端20。所述发送端10包括获取模块11、封装模块12、第一生成模块13、第一填充模块14、第二填充模块15、第三填充模块16、链路建立模块17及第一发送模块18。所述接收端20包括接收模块21、归类模块22、重组模块23、第一检验模块24、判断模块25及第二发送模块26。所述第一填充模块14包括第二生成模块141、计算模块142及第二检验模块143。所述第二填充模块15包括第三生成模块151及第三检验模块152。所述第三填充模块16包括第四生成模块161及第四检验模块162。

所述获取模块11用于获取待传输数据;所述封装模块12用于将所述待传输数据封装成命令包;所述第一生成模块13用于在所述命令包的数据量大于预设数据量时,生成多个预设数据量的数据包及一个数据量小于或等于所述预设数据量的数据包、一个起始包及一个结束包;所述第一填充模块14用于填充所述起始包的传输数据层并根据所述起始包的传输数据层填充完整所述起始包;所述第二填充模块15用于填充每个数据包的传输数据层并根据每个数据包的传输数据层填充完整对应的数据包;所述第三填充模块16用于填充所述结束包的传输数据层并根据所述结束包的传输数据层填充完整所述结束包;所述链路建立模块17用于建立与接收端之间的蓝牙传输链路;所述第一发送模块18用于基于所述蓝牙传输链路将所述起始包、所述数据包及所述结束包依次发送至所述接收端20;所述接收模块21用于接收所述第一发送模块18发送的所述起始包、所述数据包及所述结束包;所述归类模块22用于根据所述起始包的包识别码对所述数据包及所述结束包进行归类;所述重组模块23用于根据所述数据包的包识别码及数据包包编号对所述数据包进行重组以重新生成所述命令包;所述第一检验模块24用于对所述命令包进行校验以生成命令包校验码;所述判断模块25用于判断所述命令包校验码与所述结束包的总检验码是否一致;所述第二发送模块26用于当所述命令包校验码与所述结束包的总检验码不一致时,发送校验失败信息至所述发送端;所述第二发送模块26还用于当所述命令包校验码与所述结束包的总检验码一致时,发送校验成功信息至所述发送端10。

请参阅图1,图1包括图1a、图1b及图1c,图1a、图1b及图1c为本发明实施例中一种数据分包传输方法的流程图。所应说明的是,本发明的方法并不受限于下述步骤的顺序,且其他实施例中,本发明的方法可以只包括以下所述步骤的其中一部分,或者其中的部分步骤可以被删除。

所述数据分包传输方法包括以下步骤:

步骤s01,发送端10获取待传输数据,并将所述待传输数据封装成命令包。在基于蓝牙低功耗(bluetoothlowenergy,ble)技术的数据分包传输协议中,命令包的结构如表1所示,表1中的数据属性对应于所述待传输数据。

表1

在本实施方式中,所述应用层包括消息完整性检查域、广播地址、数据链路层及传输数据层。

步骤s02,在所述命令包的数据量大于预设数据量时,所述发送端10根据所述命令包的数据量生成多个预设数据量的数据包及一个数据量小于或等于所述预设数据量的数据包。

所述预设数据量为所述传输数据层传输的数据量。在本实施方式中,所述预设数据量为20个8位字节。

步骤s03,所述发送端10生成一个起始包及一个结束包。

所述数据包、所述起始包及所述结束包均包括前导、接入地址、报头、数据长度、应用层及检验位,其中所述前导、接入地址、报头、数据长度为所述数据包、所述起始包及所述结束包的头属性。

步骤s04,所述发送端10填充所述起始包的传输数据层并根据所述起始包的传输数据层填充完整所述起始包。

请参阅图2,图2为图1中步骤s04第一实施方式的子流程图。根据不同的需求,图2所示的子流程图中的步骤的执行顺序可以改变,某些步骤可以拆分为几个步骤,某些步骤可以省略。

“步骤s04,所述发送端10填充所述起始包的传输数据层并根据所述起始包的传输数据层填充完整所述起始包。”包括如下步骤:

步骤s041,所述发送端10生成起始包标识并填充至所述起始包的传输数据层。

步骤s042,所述发送端10生成包识别码并填充至所述起始包的传输数据层。

步骤s043,所述发送端10生成起始包包编号并填充至所述起始包的传输数据层。

步骤s044,所述发送端10计算所述数据包包数并填充至所述起始包的传输数据层。

步骤s045,所述发送端10计算所述数据包长度并填充至所述起始包的传输数据层。

步骤s046,所述发送端10对所述起始包的传输数据层的起始包标识、包识别码、起始包包编号、数据包包数及数据包长度进行校验处理生成起始包检验码并填充至所述起始包的传输数据层。

所述起始包的传输数据层的结构如表2所示。

表2

步骤s05,所述发送端10填充每个数据包的传输数据层并根据每个数据包的传输数据层填充完整对应的数据包。

请参阅图3,图3为图1中步骤s05第一实施方式的子流程图。根据不同的需求,图3所示的子流程图中的步骤的执行顺序可以改变,某些步骤可以拆分为几个步骤,某些步骤可以省略。

“步骤s05,所述发送端10填充每个数据包的传输数据层并根据每个数据包的传输数据层填充完整对应的数据包。”包括如下步骤:

步骤s051,所述发送端10生成数据包标识并填充至每个数据包的传输数据层。

步骤s052,所述发送端10将所述包识别码填充至每个数据包的传输数据层。

步骤s053,所述发送端10生成多个数据包包编号并将每个数据包包编号填充至对应一个数据包的传输数据层。

步骤s054,所述发送端10将所述待传输数据填充至每个数据包的传输数据层。

步骤s055,所述发送端10对每个数据包的传输数据层的数据包标识、包识别码、每个数据包包编号及每个数据包的待传输数据进行校验处理生成对应的数据包检验码并填充至所每个数据包的传输数据层。

每个数据包的传输数据层的结构如表3所示。

表3

步骤s06,所述发送端10填充所述结束包的传输数据层并根据所述结束包的传输数据层填充完整所述结束包。

请参阅图4,图4为图1中步骤s06第一实施方式的子流程图。根据不同的需求,图4所示的子流程图中的步骤的执行顺序可以改变,某些步骤可以拆分为几个步骤,某些步骤可以省略。

“步骤s06,所述发送端10填充所述结束包的传输数据层并根据所述结束包的传输数据层填充完整所述结束包。”包括如下步骤:

步骤s061,所述发送端10生成结束包标识并填充至所述结束包的传输数据层。

步骤s062,所述发送端10生成将所述包识别码填充至所述结束包的传输数据层。

步骤s063,所述发送端10对所述起始包及每个数据包进行校验处理生成总检验码并填充至所述结束包的传输数据层。

所述结束包的传输数据层的结构如表4所示。

表4

步骤s07,所述发送端10建立与接收端20之间的蓝牙传输链路。

步骤s08,所述发送端10基于所述蓝牙传输链路将所述起始包、所述数据包及所述结束包依次发送至所述接收端20。

步骤s09,所述接收端20根据所述起始包的包识别码对所述数据包及所述结束包进行归类,并根据所述数据包的包识别码及数据包包编号对所述数据包进行重组以重新生成所述命令包。

步骤s10,所述接收端20对所述命令包进行校验以生成命令包校验码。

步骤s11,所述接收端20判断所述命令包校验码与所述结束包的总检验码是否一致。若所述命令包校验码与所述结束包的总检验码不一致,进入步骤s012。若所述命令包校验码与所述结束包的总检验码一致,则所述接收端20接收到的所述待传输数据完整,进入步骤s13。

步骤s12,所述接收端20发送校验失败信息至所述发送端10,执行步骤s01。

步骤s13,所述接收端20发送校验成功信息至所述发送端10。

在所述命令包的数据量小于或等于预设数据量时,所述发送端10建立与接收端20之间的蓝牙传输链路,并将所述命令包发送至所述接收端20,所述接收端20对接收到的所述命令包进行处理。

每个数据包的数据包标识一致。

所述起始包、所述数据包及所述结束包的包识别码一致且为所述待传输数据的标识,代表着网络中所述待传输数据的数据来源。

所述数据包包编号用作所述待传输数据拆分和重组的包序号索引,用于防止所述待传输数据重组出现乱序。

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

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

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