基于Z-Stack协议,本文档使用CC2530芯片作为构建无线传感器网络的基础。个终端使用自己的A / D转换器收集温度数据,并通过网络将其汇总到协调器中。个节点的数据和网络拓扑最终显示在PC上。实验提供ZigBee网络通信,并验证无线传感器网络的自组织,自修复和多跳特性。线传感器网络由大量廉价传感器节点组成,具有无线通信,检测和数据处理功能,遍及整个观察区域,跳跃并通过无线通信自组织。ZigBee网络系统被广泛应用于WSN中,尤其是智能抄表,家庭控制,医疗监控和环境传感方面的无线网络通信标准,专注于低功耗和低功耗速度。文主要介绍基于Z-Stack协议栈的WSN设置过程。过定义不同的网络拓扑并以温度采集为例,分析了基于Z-Stack协议栈的应用开发过程。Z_Stack协议堆栈主要由Zigbee协议,操作系统抽象层(OSAL)和硬件抽象层(HAL)等层组成。

Z_Stack协议栈的通用框架如图1所示。AL提供了丰富的API,例如I / O,ADC,SPI等。OSAL层负责管理系统的任务调度,该任务调度使用轮询机制和优先级控制管理任务,其主要目的是隔离硬件系统和协议栈。果,用户可以大大缩短开发周期,并且基于未知硬件平台的详细信息,他们可以使用OSAL提供的丰富工具来实现各种功能[4]。Z_Stack协议从main()函数开始,该函数根据模块的划分执行两项任务:第一项是系统的硬件和软件初始化,第二项是系统的操作系统执行。用请求,它进入无限循环状态。Z_Stack的任务管理主要由OSAL层完成。系统运行时,OSAL调用osal_run_system()函数来启动主任务调度循环,该循环是从代码结构派生的。OSAL中,事件由tsakEvents任务事件[idx]确定。始化OSAL文件时,tsakEvents数组初始化为0。查询机制下,在系统中生成任务后,调用osal_set_event()函数将tsakEvents [taskID]分配给相应的事件。同的任务对应于不同的任务,tsakEvents表列出了包含非托管事件的系统任务,然后调用相应的任务来处理相应的事件。议栈通过调用ApplicationName_ProcessEvent函数(可自定义)来处理任务事件。
强制事件外,任何OSAL任务最多可定义15个任务事件[5]。

如,恒温阀芯当检测到节点成功加入所创建的网络时,ZDO将设备状态更改消息发送到应用程序框架中注册的任务,其状态指示当前网络的状态。果,任务事件处理程序可以通过基于系统信息(例如AF_INCOMING_MSG_CMD)处理事件来执行相应的应用程序功能。ZigBee网络的构建由网络协调器执行,每个网络只有一个协调器。通协调器节点的电源后,首先完成系统初始化:初始化系统时钟,检测芯片电压,falsh内存,端口描述符等,然后进入系统运行。一步是进入应用程序层的任务功能,通过按下按钮与协调器进行定义,然后将设备类型ZG_DEVICETYPE_COORDINATOR写入NV非易失性存储器中,然后系统重新启动。新引导后,系统将执行zb_StartRequest()函数来初始化ZDO ZDOInitDevice()设备功能。时,将开始整个网络的构建,并通过ZDO层中的ZDApp_NetworkInit()网络初始化函数以及网络通道和网络号,调用NLME_NetworkFormationRequest()网络训练功能来构建整个网络。定义的标识。测试网络拓扑中,本文加入了路由器节点。由器采用自动启动模式。
始化网络后,将调用NLME_NetworkDiscoveryRequest()函数来检测网络,然后等待协调器响应,直到网络正确连接为止。了在PC上显示实时路由器节点(即使它不充当路由功能),计时器也会调用osal_set_event函数(TaskID,REPORT_EVT)。系统收到MY_REPORT_EVT事件时,使用osal_start_timerEx函数(Task_,REPORT_EVT,Report_MyPeriod)。功能定期将有关路由器节点的信息发送到协调器。

传感器的终端节点打开时,传感器会自动搜索网络的存在,如果找到了网络,则调用函数NLME_JionRequest()将请求加入网络的请求发送给协调器。外,必须迫使终端和协调器完成传输,并且链路是用于控制两个应用设备之间的信息传输的机制。先,协调器通过在启动时运行zb_AllowBind()函数来启动允许的链接功能。这种情况下,默认的链接时间是无限等待。终端节点已发出链接请求函数zb_BindDevice()时,协调器节点将对链接作出响应并终止链接操作。后,通过调用osal_set_event()函数触发数据传输事件,并在每次传输后调用osal_start_timerEx()函数以定期发送收集的数据。系统使用四个用户设计的CC2330开发板形成传感器阵列,测试数据由集成温度传感器提供。
过将Z_Stack协议堆栈nwk_globals.h中的STACK_PROFILE_ID值更改为GENERIC_STAR,在编译环境中关闭一些宏(例如LCD_SUPPORT_ED)并编写一个温度采集程序。调器以某种数据格式将数据发送到串行端口。协调器的串行端口连接到PC,然后启动ZigBee Sensor Monitor PC软件。开目标板,重新启动它,打开路由器节点,按S2键,恒温阀芯路由器开始向协调器发送报告。开终端节点的电源,直到LED1开始闪烁,地面节点加入网络,按S3键,终端节点开始向协调器发送报告。1显示了星形网络网络通信实验的结果。
Z_Stack nwk_globals.h协议堆栈中的STACK_PROFILE_ID值更改为GENERIC_TREE,重新编译它,并将其下载到每个传感器节点。开协调器,路由器和终端,部署网络后,您可以看到树的拓扑,如图2所示。

过移动终端节点,您可以看到网络的拓扑是网络已作相应修改。之,本文从应用程序侧开始,简要介绍ZigBee协议栈的体系结构,使用TI的Z_Stack协议栈,并基于带有芯片的Z_Stack协议栈创建无线传感器网络。CC2530为核心。
可以大大减轻开发人员的负担并加快开发过程。时,它的开源和免费功能降低了成本,可用于智能家居,环境监控等。
本文转载自
恒温阀芯 https://www.wisdom-thermostats.com
