基于CC2430实现终端选择协调器入网

zigbee是一种崭新的,专注于低功耗、低成本、低复杂度、低速率的近程无线网络通信技术,也是目前嵌入式应用的一个大热点。
近年来,zigbee无线数据网络在我国应用越来越多。在很多地方取代了局域网。实际应用于楼宇监控系统、无线方式集中抄表以及矿山救援系统和家电控制等等。文中谈及在我国有较多客户使用的ti公司的产品cc2430。
1 问题的提出
在一片不大的区域内,有数个信道相同的协调器,但是pan id不同。当设置了终端的pan id后,终端只加入和其上存储的pan id相同的协调器。目前本无线组网项目使用的是ti公司的cc2430,其上的zigbee协议栈为ti的z-stack 1.4.3-1.2.1。由于ti公司的策略是终端比较随机的加入其中的一个协调器,即使其上已经定义了特定的pan id。从少量的实验来看,cc2430作为终端优先加入pan id号比较小的协调器。用户一般无法让终端选择,并且终端扫描网络和请求入网的过程都没有给出源代码。这样便给这类实际应用带来不便。
2 问题分析
关于cc2430/2431网络的形成,可以参考《zigbee技,术实践教程》一书。该书为北京航空航天大学出版社出版,高守玮和吴灿阳主编。
路由器和终端试图加入一个网络时,首先调用nlme_networkdiscoveryrequest()函数。该函数将进行网络扫描,其结果由函数zdo_networkdiscoveryconfirmcb()返回。而发现网络存在后,将调用nlme_orphanjoinrequest()函数试图加入网络。其结果由函数zdo_joinindicationcb()返回。
遗憾的是,网络扫描和请求入网两个函数都没有源代码,造成无法修改的困境。客观地说,在ti公司的zstack上修改某些参数常常是比较困难的。只好从提供了源代码的zdo_networkdiscoveryconfirmcb()函数和zdo_joinindicationcb()函数来想办法。检测zdo_networkdiscoveryconfirmcb()的代码,发现其最终调用zdo_finishprocessingmgmtnwkdiscreq()函数。
而在该函数中,有对路由器的特殊处理。条件编译变量rtr_nwk代表有路由器功能的设备,虽然协调器可以兼做路由器,但执行这段代码的只可能是普通的路由器。
#if defined(rtr_nwk)
……
#endif
……中的代码检索返回的网络信息描述结构,查看有没有和存储的pan id相同的协调器。观察zdobject.c文件中的zdo_startdevice()函数,当启动设备模式为“再继续”时,即startmode==mode_resume,终端设备以孤点方式请求加入网络。再继续模式实际上是标识非协调器设备处于网络扫描完成,准备请求入网的状态。分析到此,可以想出办法了。首先定义一个检查是否有pan id相同的协调器的全局变量bool变量p_matching。初始化时设其为false。
3 解决方法和实际代码
对刚才提及的代码段,增加终端对返回的网络信息描述结构的查询。
在zdapp.c中修改zdapp_event_loop()函数,在调用zdo_startdevice(…)之前,亦即在终端设备扫描网络和请求入网前增加一段代码。当终端和协调器pan id不同,并且是再继续模式时,重新搜索是否有与pan id相同的协调器,而不请求人网。
这样就使得终端有协调器可挑选了。
关于如何修改pan id,给出代码如下(该代码为协调器和终端通用的。_nib是和网络相关的全局结构体):
另外非协调器设备在初始化时,应该增加如下的代码(gu16recbufflen为自定义的16位整型数):
通过对扫描网络结果处理函数的分析,研究扫描网络和请求人网前的程序段。在程序段中增加一个对终端是否检索到特定pan id的协调器的逻辑变量。最后在程序中增加未检索到特定pan id的协调器时不请求入网的代码,以达到终端选择协调器入网的目的。经实验,在现场有数个不同pan id的协调器的情况下,终端设备只加入特定的协调器。
吉利汽车全新技术展示,可在无人操作下自主完成无线充电
爱知县汽车产业集群的形成与丰田集团公司发息息相关
今日看点丨德国电信:将继续购买华为5G设备,挑战欧盟不合理规则;比亚迪纯电车型海豚登陆英国市场
nrf24l01是什么模块_nrf24l01工作原理
5G+无人机如何助力电力巡检?
基于CC2430实现终端选择协调器入网
5G对于工业体系能带来颠覆性变革的技术
Poimo具有方便折叠和携带的车身结构
基于DS90UR905Q/906Q设计的24位FPD串并-并
打造机器人配送站技术终于落地 但仍要解决好这几个问题
边界扫描测试应用与九大指令
可穿戴设备中的传感器分类与国内供应商一览
计算机原码、反码、补码的概念
两级交流放大电路如何增加频率范围
中兴天机Axon 10 Pro 5G版已在国内率先完成了三大运营商5G外场通信
机械三档调速风扇的电路示意图及功能介绍
蚂蚁金服引领人工智能时代
织物表面抗湿性能测试仪(喷淋式拒水测试仪)简介
电磁兼容EMC的概念及发展
电话自动营销你见过吗?对的,它是智能电销机器人