数据丢包重传优化方法

文档序号:9767646阅读:1115来源:国知局
数据丢包重传优化方法
【技术领域】 [0001] 本发明涉及数据传输领域,特别涉及数据传输的丢包重传优化方法。
【背景技术】 [0002] 随着控制技术的发展,在各种应用系统中的数据传输越来越频繁;同 时系统的构建也由有线通信发展到无线通信,端对端联系越来越密切而物理距离越来越 大,从而因为同频干扰、障碍物或传输距离等环境因素造成的数据传输丢包现象时有发生, 不同的通信网络丢包程度轻重不同而已。
[0003] 为保证数据传输质量,现代各种通信协议栈一般都有制定丢包重传机制。举一基 于ZigBee (紫蜂协议,是一种基于IEEE802. 15. 4标准的低功耗局域网协议)技术的智能 控制系统为例,该系统包括一中控设备,用户可以通过客户端的界面工具(例如但不限于浏 览器)来访问该中控设备的控制中心,从而实现对系统中各个ZigBee终端设备的控制或 获取来自这些ZigBee终端设备的状态或传感数据。虽然ZigBee芯片所采用的ZigBee协 议栈有重传机制,但受芯片资源、处理能力有限等因素的制约,加上外界WiFi (-种基于 IEEE802. lib标准的无线局域网)信号、微波炉微波辐射等同频干扰、距离和障碍物对信号 的影响,这种重传机制变得很不可靠,尤其在有连续控制请求需求的场景控制场合将出现 较多丢包,使智能控制系统实时控制的准确度下降。

【发明内容】
[0004] 本发明要解决的技术问题是针对上述现有技术的不足之处,而提出一种 丢包重传优化方法,避免收发数据在信号传输覆盖范围内丢包较多造成通信不良。
[0005] 为解决上述技术问题,本发明的基本构思为:基于数据通信的上、下行双向传输及 数据交互的特性,若用一个消息识别码来区分不同的交互事件,即把消息识别码作为控制 请求消息及其控制响应消息的唯一识别码,控制中心即可利用该消息识别码来匹配控制请 求消息和控制响应消息,从而确认丢包事件及实现重传优化。具体到ZigBee系统中,用消 息识别码替代ZCL帧帧头中发送系列号字段,可以最大简化协调器和终端设备的编码或软 件调整。
[0006] 作为实现本发明构思的技术方案是,提供一种数据丢包重传方法,基于交互系统 的数据双向传输,包括步骤: A. 控制中心根据控制请求发送出控制请求消息; B. 控制中心接收控制响应消息; C. 控制中心完成所述控制请求; 尤其是,设置一消息识别码,用作为控制请求消息及其对应控制响应消息的唯一识别 码,被所述控制中心赋予每一所述控制请求消息使该控制请求消息携带所述消息识别码被 终端接收,并且该消息识别码将随着控制响应消息返回给所述控制中心;控制中心发送一 控制请求消息后,根据预定时间间隔内是否接收到有相同消息识别码的控制响应消息来判 断是否发生数据丢包,若没接收到则重发该控制请求消息。具体地,所述预定时间间隔可以 用定时器或定时器程序来实现。
[0007] 上述方法方案中,还包括设置一发送链表,所述控制中心每发送一控制请求消息 均还设置一对应的控制请求消息封包来添加到所述发送链表,该控制请求消息封包包括该 控制请求消息和所述消息识别码;所述控制中心每接收到一控制响应消息均根据消息识别 码来删除该发送链表中对应的控制请求消息封包。这样系统将拥有并行处理多条控制请求 消息的能力。
[0008] 进一步地,所述控制请求消息封包还包括时间戳,用来记录本对应控制请求消息 的发送时刻。所述控制请求消息封包还包括重发次数,用来记录本对应控制请求消息被重 发的次数,以便控制中心对重发超过预定次数的控制请求消息进行处理,该处理包括将对 应控制请求消息封包从发送链表中删除。这样,可以在系统有限的资源与追求数据完整传 输之间取得平衡。
[0009] 优选地,上述方案中,所述交互系统为基于ZigBee协议的智能控制系统,该智能 控制系统包括所述控制中心、一 ZigBee协调器、若干ZigBee终端和一用来发布用户控制命 令的客户端;所述控制中心通过所述ZigBee协调器来与各ZigBee终端进行包括所述控制 请求消息和控制响应消息在内的数据传输,所述消息识别码被设置在ZCL帧头的发送系列 号字段。
[0010] 上述方案中,在所述智能控制系统内设置一发送链表,所述控制中心每发送一控 制请求消息均还设置一对应的控制请求消息封包来添加到该发送链表,该控制请求消息封 包包括该控制请求消息和所述消息识别码,每接收到一控制响应消息均根据消息识别码来 删除该发送链表中对应的控制请求消息封包;所述控制请求消息封包中还包括时间戳和重 发次数,其中时间戳用来记录该控制请求消息的发送时刻,重发次数用来记录该控制请求 消息被重发的次数;对重发超过预定次数的控制请求消息,控制中心将把对应的控制请求 消息封包从发送链表中删除;重发一控制请求消息时,控制中心将更新发送链表中对应的 控制请求消息封包,把时间戳更改为当前重发时刻及把重发次数加1。
[0011] 进一步为防止误动作,所述控制请求消息包括短地址和端点;所述控制中心每发 送一控制请求消息均还遍历所述发送链表,来确保更新后的发送链表中具有与该控制请求 消息相同短地址和端点的控制请求消息封包有且仅有当前一条。
[0012] 本发明方法的有益效果是:可以在处理芯片资源和处理能力有限的条件下大大 降低数据传输中的丢包率,从而克服环境因素对丢包的影响,提升用户体验,尤其适用于 Zigbee智能系统中的大场景控制。
[0013]
【附图说明】图1为使用本发明方法的中控设备示意框图; 图2为使用本发明方法的ZigBee系统框图; 图3为图2实施例中发送控制请求消息的方法流程图; 图4为图2实施例中重传控制流程示意图; 图5为图2实施例中控制响应消息的接收处理流程示意图。
【具体实施方式】 [0014] 下面结合【附图说明】本发明方法。
[0015] 交互系统的数据双向传输一般通过如图1所示的中控设备进行控制。作为系统的 核心设备,中控设备至少包括相连的控制中心和数据收发处理模块。控制请求通过有线(例 如但不限于与控制中心电连接的一用户输入端)或无线网络(例如但不限于无线局域网)的 方式被控制中心所接收处理并得到响应结果,所述接收处理包括步骤: A.控制中心根据所述控制请求发送出控制请求消息;该控制请求消息将经过所述数 据收发处理模块通过有线或无线网络的方式传输出去;典型的控制请求消息一般包括有命 令字、消息长度、消息数据等字段; B. 控制中心接收控制响应消息;该控制响应消息是通过有线或无线网络的方式由所 述数据收发处理模块接收送往该控制中心的; C. 控制中心完成所述控制请求;进一步地,控制中心可以通过有线或无线网络的方式 对外发送响应结果。
[0016] 图2 7K意了图1在传输系统中的一个具体实施例,所述交互系统为基于ZigBee 协议的智能控制系统。所述控制中心通过相连的无线路由器例如但不限于在WiFi网络中 与用来发布用户控制命令的客户端实现数据交互;客户端可以但不限于使用浏览器来将用 户发布的用户控制命令转换为相应的若干控制请求传送往该控制中心,并根据控制中心完 成控制请求后的反馈数据而提示执行结果。所述数据收发处理模块可以具体化但不限为 Zigbee协调器,在Zigbee网络中以无线方式与若干Zigbee终端设备实现数据交互,从而所 述控制中心通过串口连接所述ZigBee协调器来与各ZigBee终端设备进行包括所述控制请 求消息和控制响应消息在内的数据传输。在小型通信系统中,不排除所述数据收发处理模 块与控制中心集成在同一芯片上的可能。
[0017] 本发明数据丢包重传方法是在上述接收处理过程中设置一消息识别码,用作为 控制请求消息及其对应控制响应消息的唯一识别码,所述控制中心将赋予每一所述控制 请求消息一个消息识别码,使该控制请求消息携带该消息识别码被终端(例如但不限于 Zigbee终端设备)接收,并且该消息识别码将随着控制响应消息由终端返回给所述控制中 心;这样控制中心发送一控制请求消息后,可以根据预定时间间隔内是否接收到返有相同 消息识别码的控制响应消息来判断是否发生数据丢包,若没接收到则重发该控制请求消 息。该预定时间间隔可以用定时器或定时器程序来实现。以图2实施例为例,ZigBee协 议规范中针对许多应用场合的数据交互定义了若干标准的Zigbee簇库(即ZCL,zigbee cluster 1 ibrary的缩写),并针对基于这些标准Zigbee簇库的数据通信定义了标准的ZCL 帧消息,格式如下表所示:
可见,ZCL帧包括ZCL帧头和ZCL帧负载,其中ZCL帧头包括了 8位帧控制、0或16位 厂商代码、8位发送系列号和8位命令ID。在Zigbee协调器和Zigbee终端设备间交互的 数据均以ZCL帧为基础。为达到对系统软硬件的最小改动,本发明方法在ZigBee智能控制 系统中最好将所述消息识别码设置在ZCL帧头的发送系列号字段。该8位字段的取值范围 为0~255。
[0018] 图2智能控制
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1