|
本帖最后由 langchaojian 于 2013-6-16 19:22 编辑
大家好!该设备是一个关于zigbee信道扫描和PANID扫描的,主要目的是为了在复杂现场环境中辅助调试、安装zigbee设备的。采用的平台为TI公司的CC2530,协议栈使用的版本为“ZStack-CC2530-2.5.1a”。该设备具有以下功能:
1、设备为终端节点型或路由型设备,可以手动配置信道和PANID,加入任意网络,且可以和协调器通信,测量现场环境中各个位置协调器或路由设备信号强度。
2、可以扫描zigbee的全部16个信道,检查哪些信道已经被占用,从而可以避开这些信道。
3、可以扫描zigbee任意信道内已经存在的网络的PANID,从而可以避开这些PANID。
在这里送上我在开发板上调试时完成的程序(开发板并非飞比的开发板),希望能给大家一些思路。有兴趣的朋友可以一起交流下。
注释:
1、本设备主菜单分四个功能:正常启动,配置信道PANID,信道扫描,PANID扫描;还有一个确认件,和一个系统复位键(非单片机复位键);
2、关于配置信道、PANID的思路:文件“ZComDef.c"中,有关于信道和PANID初始化语句”uint32 zgDefaultChannelList = DEFAULT_CHANLIST; uint16 zgConfigPANID = ZDAPP_CONFIG_PAN_ID;“;
我们可以将其赋值去掉,然后再为其重新赋值,至于我们自己的信道和PANID需要事先保存在flash中。重新赋值的位置在”ZMain.c=>zgInit()=>zgInitItems( setDefault )"后面;
3、关于信道扫描,我们知道当终端节点或路由的设PANID为0xFFFF时,会随机选择信号较好的PANID加入,正式利用这一点,我们便可以做到检查信道是否被占用;
4、关于PANID的思想和信道扫描一样,也是利用0xFFFF。设备上电启动后会向指定的信道内的协调器发送请求包,收到回应后变可获知协调器的PANID,我们可以屏蔽掉设备入网的程序,让设备一直处于入网请求状态,变可以并一直可以不停的检测信道已经存在的PANID;位置在“ZDApp.c=>networkDesc_t* ZDApp_NwkDescListProcessing(void)=>for ( i = 0; i < ResultCount; i++, pNwkDesc = pNwkDesc->nextDesc )循环内”;
有需要程序的朋友把邮箱留下,我发给你们! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|