zigbee组网的设计_物联网组网技术

zigbee组网的设计_物联网组网技术目前,针对一定区域内信息和设备进行监测和控制多采用有线方式通信,网络在布线和维护过程中由于线路腐蚀和损坏造成网络中断,给正常生产工作带来影响,同时也增加了人力资源成本比重。基于此,从节省成本和网络稳定性考虑,给出一种基于ZigBee技术的多节点设备无线自组网设计方案。   基于IEEE802.15.4协议的ZigBee技术是一种新兴的短距离无线通信技术,具有功耗低、成本低

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

目前,针对一定区域内信息和设备进行监测和控制多采用有线方式通信,网络在布线和维护过程中由于线路腐蚀和损坏造成网络中断,给正常生产工作带来影响,同时也增加了人力资源成本比重。基于此,从节省成本和网络稳定性考虑,给出一种基于ZigBee技术的多节点设备无线自组网设计方案。

    基于IEEE 802154协议的ZigBee技术是一种新兴的短距离无线通信技术,具有功耗低、成本低、网络容量大、可靠性和安全性高等特点。采用ZigBee无线模块的传感器节点只需要很少的能量,就可以在多个传感器之间相互协调,以接力棒的方式利用无线传输将数据信息从一个传感器传到另一个传感器。ZigBee数传技术目前被广泛应用到无线工业、精准农业、家庭和楼宇自动化、消费家电以及医疗服务等领域,是国家“十二五”规划中信息技术重点扶持方向。本文主要内容包括网络节点硬件设计、ZigBee数传网络结构实现和无线Mesh网络测试。系统利用终端节点采集数据,通过多跳路由汇聚到协调器节点实现多节点设备无线自组网。

1 系统网络结构

系统网络拓扑结构如图l所示,采用基于树状Mesh拓扑结构,网络由协调器节点(Coordinator)、路由节点(Router)和终端节点(End Device)3种类型的功能模块构成。

 

l 基于树状无线Mesh拓扑网络结构图

2 无线自组网络节点硬件设计

无线自组网络节点能耗决定整个网络的生命周期,从硬件结构看,节点能耗主要在微处理器模块,选择高性能低功耗微处理器可以降低节点能耗,延长网络生命周期。基于此,采用TI公司的CC2530作为主控芯片,用于ZigBee无线模块的片上系统,内部集成射频收发器、增强型8051内核、8 KB RAM,封装小、功耗低。

21终端节点和路由节点

终端节点主要负责ZigBee数据采集,通过射频电路传送信息到协调器节点。路由节点允许子设备加入网络,多跳路由并协助终端节点进行通信,完成数据信息的转发,延长数据传输距离。两种节点硬件电路结构如图2所示。

 

2 终端和路由节点硬件结构图

 

路由节点没有传感器电路,由于实现功能不同,两种节点软件驱动也不同。传感器电路负责ZigBee数据采集并完成数据转换;片上系统CC2530负责对采集信息进行处理以及整个节点设备的任务管理(包括无线信号的收发处理以及ZigBee协议操作);电路射频部分采用阻抗匹配电路与天线馈线组成,用一个巴伦优化处理,满足输入输出匹配电阻(50 )要求;液晶电路显示节点状态;Flash ROM负责存储数据信息;按键电路方便用户对节点设置,如收发数据时通过按键配置;LED电路指示网络连接状态。

22协调器节点

协调器节点硬件结构图如图3所示。节点负责整个网络初始化,确定ZigBee网络ID号和操作的物理信道,并统筹短地址分配,提供数据路由和安全管理服务。协调器节点与终端节点以及路由节点最大的区别在于:

(1)协调器节点通过SP3232电路与上位机通信,由于PC与单片机之间接口不一致,通过SP3232实现USB到串口转换;

(2)协调器节点负责与终端节点或者路由节点进行信息通信,不具有ZigBee采集采集功能。

 

3 协调器节点硬件结构图

3   ZigBee协议栈软件设计

 

系统设计ZigBee协议选择ZigBee-Pro,协议栈版本为ZSTACK-CC2530-2.3.O- 1.4.0 。整个系统无线网络由事先被定义为协调器的主节点建立。

31协调器节点软件设计

协调器软件设计包括初始化设备、协调器组网、路由节点和传感器节点入网以及数据信息处理(包括数据收发功能)等。协调器节点上电后监测到ZigBee数传模块网络,则协调器节点作为路由节点加入到该网络;若监测无网络,则该节点作为协调器节点构建ZigBee网络,终端节点和路由节点加入到该网络。ZigBee网络在24 GHz频带划分16个信道,步长值为5 MHz,编号为 1l26。协调器通过调用函数MAC_MlmeScanReq((macMlmeScanReq_t*)pData)对信道能量扫描,能量水平高标志该信道无线信号活跃,协调器根据能量扫描信息选择一个可以利用的信道建立自己的无线网络。另外,每个协调器设备已经具有唯一固定的64 bit MAC地址作为组网标识,同时必须分配给自己一个16 bit的网络短地址(PAN ID),节点设备使用短地址通信可以使网络更轻量级、更加高效。协调器默认网络短地址为0x0000。协调器节点的主要功能是对网络中各子节点进行管理,接收各子节点的状态信息并将信息上报上位机进行数据处理。图4为协调器通信流程图。

 

4 协调器通信流程图

32 路由节点软件设计

路由节点一旦监测到网络便会自动绑定到一个相应的协调器节点或者父路由节点,申请加入网络。作为入网申请,无论是路由节点还是终端节点,都需要对设备进行配置,作为路由节点令logiclType=ZG_DEVICETYPLROUTER,通过调用函数zb_WriteConfigration(ZCD_NV_LOGICAL_TYPEsizeof()&logicalType)选择路由节点。路由节点申请入网成功后若有其他节点申请加入,需要判断申请节点是路由节点还是终端节点,为节点配置系统加载项,完成节点入网工作。若节点入网成功则该路由节点为申请入网节点分配网络地址。通过多跳数据转发机制进行数据交换,并根据选择的路由节点转发数据,提供网络的连通性,数据的发送和接收通过应用层调用完成数据帧ACK应答机制。图5给出了路由节点通信流程图。

 

5 路由节点通信流程图

33 终端感知节点软件设计

终端感知节点主要完成信息采集,通过路由节点传送到协调器节点以RS232方式进行传输供上位机对数据进行处理。终端节点上电后,对节点设备进行配置,令1ogicalType=ZG_DEVICETYPE_ENDDEVICE,通过调用ZD0_Start()申请加入父节点。但是在终端节点入网之前,路由或者协调器节点无法获得终端节点的网络地址,可通过对设备绑定解决该问题。终端节点调用zb_Bind_DeviceRequest()发出绑定请求,并通过zb_AllowBindResponse()对配对请求作出响应,同时路由或者协调器节点执行zb_BindDevice(TRUEclusterIDNULL)与终端节点发生绑定,如果绑定成功则绑定表建立在路由或者协调器节点上,绑定表中的ClustedD(簇标识符)值相等,且属性相反。通过clustedD获得终端节点的网络地址,绑定成功后终端节点执行zb_sendDataReques()周期性发送采集的数据信息。图6为终端节点通信流程图。

 

6 终端节点通信流程图

4 节点网络自组织和自愈功能测试

进行ZigBee组网测试时,通过设置4个节点(其中1个协调器节点、两个路由节点、1个终端感知节点)进行自组和自愈网络测试。采用串口调试助手和TI公司监控软件ZigBee_Sensor_Monitor进行组网测试。串口配置:端口号COM8,波特率38 400 bps8位数据位、l位停止位。测试过程中,系统通过串口实现协调器与上位机监控端通信。协调器汇聚各个节点采集的信息,串口接收到的数据帧定义如表l所示。

 

l 数据帧格式

    由于每个网络只能拥有网络内唯一一个协调器,协调器通电后,初始化其中64IEEE地址为0x00124B000lFA9D87,网络短地址PAN lD0x00100,协调器执行zb_BindDevice()接收其他节点绑定请求,组建网络。

    路由节点l上电后,自动搜索父节点(即协调器节点)加入网络,入网成功则路由节点l周期性发送节点信息经协调器上传到PC端,串口接收到数据信息为0x(FE 0A 46 87 01 00 02 00 04 00 FF FF 00 00 CC),根据表l中对数据帧定义,其中路由节点l短地址PANID0x 000l ,其父节点PAN lDOx0000。继续将路由节点2上电加入到网络中,路由节点2搜索父节点(即协调器节点),入网成功后路由节点2周期性发送数据信息,上位机通过串口接收数据信息为0x(FE OA 46 87 3E 14 02 00 04 00 FF FF 00 00 E7),根据表l中对数据帧定义,其中路由节点2短地址PAN ID0x143E,其父节点PAN ID0x0000

继续将终端节点上电加入到网络中,终端节点自动搜索并绑定到距离其最近的路由节点2,成功入网后终端节点周期性地将采集到的信息通过路由节点2和协调器节点上传到PC端。串口接收数据信息为:0x(FE 0A 46 87 6D 28 02 00 04 00 14 23 3E 14 95),其终端节点短地址PAN ID0x286D,其父节点PAN ID0x143E,信息位0x14表示当前采集温度为 20℃ ,4个节点无需人工干预,组网成功,实现了网络拓扑结构的自动组建功能。终端节点入网成功后通过上位机组网监控界面如图7所示。

 

7 节点组网结构

设定路由节点2故障,中断信号传输,则终端节点会自动搜索网络找到距离其最近的父节点(即路由节点1),绑定并入网成功,同时周期性地向协调器发送采集数据信息。串口接收到的数据信息为:0x(FE 0A 46 87 30 14 02 00 04 00 13 23 0l 00 D8)。其中终端节点短地址PAN ID0x1430,其父节点PAN ID0x0001,信息位0x13表示当前采集温度为 19℃ 。当节点2发生故障时,网络能够自我修复,并对网络拓扑结构进行相应的调整,无须人工干扰,系统能够正常工作。节点自我修复后上位机组网监控界面如图8所示。

 

8 节点修复组网结构图

    本文给出了一种基于ZigBee无线模块多节点设备无线自组网方案,详细介绍了ZigBee数传模块节点硬件电路和软件系统设计,通过对多个节点进行ZigBee数据采集测试完成网络的自组织连接和自愈修复功能,使网络系统运行正常。节点设备具有通信协议简单可靠、灵敏度高、测量准确、功耗低,节点布置灵活、系统易于扩展等优点。另外,系统可应用于农村蔬菜种植、花卉园艺等各种类型温室大棚环境的智能化监控、智能家居节点设备的组网、工业节点的无线定位、医疗物联网等领域,具有较大的市场竞争力和广阔的应用前景。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184527.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • transactionscope mysql_TransactionScope 的基本原理简介

    transactionscope mysql_TransactionScope 的基本原理简介C#的事务编程1Db事务DbConnection中创建基于当前连接的DbTransaction2使用TransactionScope,创建环境事务一旦创建,在这个环境包含的DbConnection实例都会根据连接字符串中的Sqlserver连接字符串支持,是否自动附加当前环境事务.连接字符串关键字(Enlist)SqlConnection.ConnectionString属性…

  • 小红书用户画像分析_抖音运营之:用户画像的分析方法

    小红书用户画像分析_抖音运营之:用户画像的分析方法不管是从事哪种新媒体,新媒体的核心都是内容,优质的内容才能吸引来用户并留下用户,而用户则是所有运营人员的最终目的,如何服务好用户,如何让用户持续留存下来并保持活性,是每个运营人员的难题,那么如何服务用户呢?想要服务用户首先要了解用户,今天96新媒体就来为大家介绍一下如何通过用户画像来了解用户。一、基础数据用户的基础数据包括用户的一些基本的信息,例如年龄、性别、收入、教育情况等等,这些是最底层的数据…

  • Protostuff 介绍

    Protostuff 介绍2019独角兽企业重金招聘Python工程师标准>>>…

  • native2ascii命令找不到_native method

    native2ascii命令找不到_native method 背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码。原因是java默认的编码方式为Unicode,而我们的计算机系统编码常常是GBK等编码。需要将系统的编码转换为java正确识别的编码问题就解决了。 1、native2ascii简介:native2asci…

  • Java解析XML字符串「建议收藏」

    Java解析XML字符串「建议收藏」在网上找了很多Java语言解析XML字符串的资料,很多内容写得很繁复,没有普适性,遂自己动手写了一个用Java解析XML的工具类。话不多说,直接看下面代码:XML解析工具类:importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.Node;importorg.dom4j.io.SAXReader;importjava.io.ByteArrayInputStream;importjava.

  • Java获取当前时间年月日_jquery获取当前时间年月日

    Java获取当前时间年月日_jquery获取当前时间年月日packagecom.ob;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;publicclassDateTest{ publicstaticvoidmain(String[]args)

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号