基于Zigbee网络的多源数据传输方法
【技术领域】
[0001] 本发明涉及无线数据传输领域,具体涉及一种基于Zigbee网络的多源数据传输 方法。
【背景技术】
[0002] Zigbee,在中国被译为"紫蜂",一种新兴的短距离、低功耗、低成本、低复杂度、自 组织的无线通信技术,与蓝牙类似,主要适合用于自动控制和远程控制领域,可以嵌入各种 设备。
[0003]目前,在Zigbee网络中,传感器的类型较多,传统的数据传输方式是一种传感器 对应一种传输方法,即针对每种不同类型的传感器,将该传感器采集的数据通过特定协议 封装后,再传输到后端服务器,这种数据传输方式难以适应多源传感器,而且增加了后端服 务器解析数据时的复杂度。
【发明内容】
[0004] 针对现有技术中存在的缺陷,本发明的目的在于提供一种基于Zigbee网络的多 源数据传输方法,实现多源传感器信息的统一传输,提高对多源传感器的适应性,降低后 端服务器解析数据时的复杂度。为达到以上目的,本发明采取的技术方案是:一种基于 Zigbee网络的多源数据传输方法,包括以下步骤:
[0005] S1.发送端采集传感器的数据,并按照通用帧的格式进行处理:通用帧包括数据 域,将采集数据加载到通用帧的数据域中,并对加载后的通用帧的数据域的帧头、帧尾分 别进行替换处理,封装成若干第一数据帧,将所有第一数据帧按照采集数据的顺序进行排 列;
[0006] S2.发送端按照第一数据帧的排列顺序,依次判断每个第一数据帧的长度是否> 32字节,若是,则转到步骤S3 ;若否,则将该第一数据帧命名为第二数据帧,转到步骤S4 ;
[0007] S3.发送端按照采集数据的顺序,对第一数据帧进行分割,再按照通用帧的格式重 新组帧、排列,得到若干第二数据帧,每个第二数据帧的长度< 32字节,转到步骤S4 ;
[0008] S4.发送端按照第二数据帧的排列顺序,依次对第二数据帧进行帧校验,得到若干 第三数据帧,转到步骤S5 ;
[0009] S5.发送端按照第三数据帧的排列顺序,依次传输第三数据帧,转到步骤S6 ;
[0010] S6.接收端依次接收第三数据帧,对接收到的第三数据帧依次进行检测操作:当 接收端检测到第三数据帧的数据域的帧头时,判断是否检测到第三数据帧的数据域的帧 尾,若是,则转到步骤S7 ;若否,则重复执行步骤S6 ;
[0011] S7.接收端对第三数据帧的数据域中经过替换处理的数据进行还原操作,并存储, 直至接收端接收到所有的第三数据帧,并经过检测操作、还原操作,最终得到发送端采集的 数据。
[0012] 在上述技术方案的基础上,所述通用帧的格式为:帧头+帧标识+当前帧帧内序号 +当前帧帧内剩余数+从节点短地址+数据域+CRC校验+帧尾。
[0013] 在上述技术方案的基础上,步骤S1具体包括以下步骤:
[0014] S101.发送端采集传感器的数据,将采集数据分割成若干条子数据;
[0015] S102.发送端按子数据的排列顺序,将子数据依次加载到对应通用帧的数据域 中;
[0016] S103.发送端对数据域的帧头、帧尾分别进行替换处理,封装成若干第一数据帧, 将所有第一数据帧按照采集数据的顺序进行排列。
[0017] 在上述技术方案的基础上,步骤S3中,所述得到若干第二数据帧的过程为:将第 一数字帧的数据域中的子数据分割成若干条分数据,按照分数据的排列顺序,将分数据依 次加载到对应通用帧的数据域中,得到若干第二数据帧。
[0018] 在上述技术方案的基础上,步骤S1中,所述对加载后的通用帧的数据域的帧头、 帧尾分别进行替换处理的过程为:当加载后的通用帧的数据域的帧头、帧尾中存在Oxff或 Oxfe时,将加载后的通用帧的数据域的帧头、帧尾中的Oxff替换为Oxfe0x00,将Oxfe替 换为OxfeOxfl。
[0019] 在上述技术方案的基础上,步骤S7中,所述对第三数据帧的数据域中经过替换 处理的数据进行还原操作的过程为:将第三数据帧的数据域中经过替换处理的数据中的 Oxfe0x00 还原为Oxff,将OxfeOxfl还原为Oxfe。
[0020] 在上述技术方案的基础上,步骤S5中,所述传输第三数据帧的过程为:发送端每 次只发送一个第三数据帧:发送端包括串口、发送芯片和天线,发送端通过串口将第三数据 帧传递给发送芯片,发送芯片通过天线依次将第三数据帧的单个字节发送给接收端,直至 发送芯片将第三数据帧的所有字节发送完毕。
[0021] 在上述技术方案的基础上,步骤S5还包括以下步骤:所述发送端设置第一安全时 间,若发送端传输第三数据帧的时间 > 第一安全时间,则发送端结束传输第三数据帧。
[0022] 在上述技术方案的基础上,步骤S6还包括以下步骤:所述接收端设置第二安全时 间,若接收端接收第三数据帧的时间 > 第二安全时间,则接收端停止接收第三数据帧。
[0023] 在上述技术方案的基础上,所述第二安全时间为20毫秒。
[0024] 与现有技术相比,本发明的优点在于:
[0025] (1)本发明将传感器的数据加载到通用帧的数据域中,并对加载后的通用帧的数 据域的帧头、帧尾分别进行替换处理,封装成若干第一数据帧。这种方式将多源传感器信息 按照通用帧的格式进行统一处理,提高多源传感器的适应性;采用隧道传输方式,将统一处 理后的多源传感器信息传输到接收端(后端服务器),降低后端服务器解析数据时的复杂 度。
[0026] (2)本发明中,针对传感器的类型不同,对应的传感器信息的格式不同,设计了不 定长的通用帧,这种可变字长的传输协议,适应多种传感器信息的传输,即多源数据的传 输,尤其适应在水文及仓库货物信息传输过程中,因传感器多样导致的数据长度不可控的 情形。
[0027] (3)本发明中,当加载后的通用帧的数据域的帧头、帧尾中存在Oxff或Oxfe时, 将加载后的通用帧的数据域的帧头、帧尾中的Oxff替换为Oxfe0x00,将Oxfe替换为Oxfe Oxfl,这是因为数据域的其他部分也可能存在Oxff或Oxfe,对加载后的通用帧的数据域的 帧头、帧尾进行替换处理,可以防止出现错误辨识数据域的帧头、帧尾的现象。
[0028] (4)本发明在发送数据帧前,依次判断每个第一数据帧的长度是否>32字节,若 第一数据帧的长度<32字节,则将第一数据帧命名为第二数据帧,若第一数据帧的长度 >32字节,则对第一数据帧进行分割,再按照通用帧的格式重新组帧、排列,得到若干长度 <32字节的第二数据帧,保证每个第二数据帧的长度均<32字节,从而保证数据帧传输过 程的可靠性。
【附图说明】
[0029] 图1为本发明实施例中基于Zigbee网络的多源数据传输方法的流程示意图;
[0030] 图2为图1中步骤S1的流程示意图。
【具体实施方式】
[0031] 以下结合附图及实施例对本发明作进一步详细说明。
[0032] 参见图1所示,本发明实施例提供一种基于Zigbee网络的多源数据传输方法,包 括以下步骤:
[0033] S1.发送端采集传感器的数据,并按照通用帧的格式进行处理:通用帧包括数据 域,将采集数据加载到通用帧的数据域中,并对加载后的通用帧的数据域的帧头、帧尾分别 进行替换处理,封装成若干第一数据帧,将所有第一数据帧按照采集数据的顺序进行排列。
[0034] 其中,通用帧的格式为:帧头(3字节)+帧标识(1字节)+当前帧帧内序号(1字 节)+当前帧帧内剩余数(1字节)+从节点短地址(2字节)+数据域(n< 18字节)+CRC校 验(2字节)+帧尾(3字节),n为正整数。为了实现不同的功能,通用帧的格式可以不同。
[0035] 对加载后的通用帧的数据域的帧头、帧尾分别进行替换处理的过程为:当加载后 的通用帧的数据域的帧头、帧尾中存在Oxff(-个字符)或Oxfe(-个字符)时,将加载后 的通用帧的数据域的帧头、帧尾中的Oxff替换为Oxfe0x00 (两个字符),将Oxfe替换为 OxfeOxfl(两个字符)。这是因为数据域的其他部分也可能存在Oxff或Oxfe,对加载后的 通用帧的数据域的帧头、帧尾进行替换处理,可以防止出现错误辨识数据域的帧头、帧尾的 现象。
[0036] 参见图2所示,步骤S1包括以下步骤:
[0037] S101.发送端采集传感器的数据,将采集数据分割成若干条子数据;
[0038]S102.发送端按子数据的排列顺序,将子数据依次加载到对应通