随笔分类 -  ZigBee开发笔记

摘要:在ZDApp.c中修改ZDApp_event_loop()函数,在调用ZDO_StartDevice(…)之前,亦即在终端设备扫描网络和请求入网前增加一段代码。当终端和协调器PAN ID不同,并且是再继续模式时,重新搜索是否有与PAN ID相同的协调器,而不请求人网。 这样就使得终端有协调器可挑选了。 关于如何修改PAN ID,给出代码如下(该代码为协调器和终端通用的。_NIB是和网络相关的全局结构体): 另外非协调器设备在初始化时,应该增加如下的代码(gu16RecBuffLen为自定义的16位整型数): 通过对扫描网络结果处理函数的分析,研究扫描网络和请求人网前的程序段。在程序... 阅读全文
posted @ 2013-02-16 10:09 sierllen 阅读(1228) 评论(0) 推荐(0)
摘要:(1)第一步, 添加自定义的 NV_ITEM_ID: 在Zmain.c引用的ZComDef.h文件中,有如下代码; // NV Items Reserved for applications (user applications) // 0x0201 ?0x0FFF 意思是 0x0201 到 0x0FFF 段是为用户应用层保留的NV Item 区, 所以,用户定义的NV_ITEM_ID 必须在此值返回内, 例如,这里我自定义了两个自制表ID如下 #define FS_APP_TABLE_1_START 0x0201 #de... 阅读全文
posted @ 2013-01-29 09:48 sierllen 阅读(2666) 评论(0) 推荐(0)
摘要:处理器和传感器模块的功耗很低,绝大部分的能量都消耗在无线通信模块上。而无线通信模块在不同状态及不同状态问转换时,其所耗费的能量大小截然不同。无线通信模块的状态可归结为4种:发射、接收、空闲和睡眠状态。其中,发射和接收状态意味着节点正在发送或者接收数据包;空闲状态下.节点既不发射也不接收数据,只是不断地侦听无线信道.这是为了保证在要接收的数据包到达时,节点能够及时完成接收状态的转换。所以空闲状态下的节点也是要消耗能量的,其值约等于发射状态下的能耗;节点在处于睡眠模式时能耗最低。此时收发机都处在低能耗甚至关闭状态。传输1bit信息100m需要的能量大约相当于执行3000条计算机指令消耗的能... 阅读全文
posted @ 2013-01-23 15:50 sierllen 阅读(1565) 评论(0) 推荐(0)
摘要:Zigbee有两种地址分配方式:分布式分配机制和随机分配机制。1.随机分配机制随机分配机制是指当NIB的nwkAddrAlloc值为0x02 时,地址随机选择。在这种情况下nwkMaxRouter就无意义了。随机地址分配应符合NIST测试中的描述 。当一个设备加入网络使用的是Mac地址,其父设备应选择一个尚未分配过的随机地址。一旦设备已分配一个地址,它没有理由放弃该地址,并应予以保留,除非它收到声明,其地址与另一个设备冲突。此外,设备可能自我指派随机地址,比如利用加入命令帧加入一个网络。2.分布式分配机制我们知道,每个zigbee设备应该拥有一个唯一的MAC地址。协调器(coordinator 阅读全文
posted @ 2013-01-21 17:08 sierllen 阅读(1354) 评论(0) 推荐(0)
摘要:大家都知道2430有3种睡眠模式,pm2模式比较省功耗而且可以被定时唤醒;pm3模式最省电但是只能被外部中断唤醒。开启睡眠功能很简单:首先确认/Texas Instruments/ZStack-1.4.3-1.2.1/Projects/zstack/Tools/CC2430DB目录下的f8wConfig.cfg文件中DRFD_RCVC_ALWAYS_ON定义为FALSE;然后在IAR的Options->C/C++Compiler->Defined symbols中添加“POWER_SAVING”;最后在Options->Linker->Linker command li 阅读全文
posted @ 2013-01-21 17:02 sierllen 阅读(2283) 评论(0) 推荐(0)
摘要:如下图所示: 在 linker --> Extra Options 中选中 Use command line option , 然后在其中添加-Ointel-extended,(CODE)=.hex , 重新编译即可。 阅读全文
posted @ 2013-01-04 09:32 sierllen 阅读(702) 评论(0) 推荐(0)
摘要:一、ZigBee 有两种类型的地址: 一种是 64 位 IEEE 地址,即 MAC 地址, 另一种是 16 位的网络地址。 (1) 64 位的IEEE地址是一个全球唯一的地址,一经分配就将跟随设备一生。它通常由制造商或者被安装时设置。这些地址由 IEEE 组织来维护和分配。 问题:用Z-stack 协议栈编程,64位IEEE地址是否是芯片自带的,还是需要在编程时给予赋值?这点需要继续深入研究后找出答案 (2) 16 位网络地址是当设备加入网络后分配的, 它在网络中是唯一的,用来在网络中鉴别设备和发送数据。二、网络地址的分配 (1) ZigBee使用分布式寻址方案来... 阅读全文
posted @ 2013-01-03 09:41 sierllen 阅读(9715) 评论(0) 推荐(0)
摘要:在协议栈的 Tools 文件夹下,有五个文件: F8w2530.xc1、F8wConfig.cfg、F8wCoord.cfg、F8wEndDev.cfg、F8wRouter.cfg其中 F8w2530.xc1 包含了cc2530单片机的连接控制指令,如堆栈大小、内存分配等,一般不需要改动。 F8wConfig.cfg 包含了信道选择、网络号等相关的连接指令 F8wCoord.cfg、F8wEndDev.cfg、F8wRouter.cfg 根据选择的设备类型不同,编译时只编译其中一个. 分别定义了设备类型为 协调器、终端、路由器 阅读全文
posted @ 2012-12-31 13:56 sierllen 阅读(2798) 评论(0) 推荐(0)
摘要:对于IAR编译工程时产生Warning[w2]: Symbol ?PBANK is redefined in command-line警告,可以在配置文件中修改,Tools文件夹下的f8w2530.xcl中屏蔽掉-D?PBANK=93这一行。 阅读全文
posted @ 2012-12-31 13:42 sierllen 阅读(2641) 评论(0) 推荐(0)
摘要:利用通用模版建立自己的工程文件共分 6 步:1. 找到Texas Instruments\ZStack-CC2530-2.5.1a\Projects\zstack\Samples文件夹下的GenericApp 文件夹,拷贝该文件夹的副本2. 修改副本的文件夹名为工程名,例如 testA3. 进入testA文件夹中的 testA\Source 文件夹,修改如下文件名: 修改 GenericApp.c 文件名为 testA.c 修改 GenericApp.h 文件名为 testA.h 修改 OSAL_GenericApp.c... 阅读全文
posted @ 2012-12-31 08:57 sierllen 阅读(877) 评论(0) 推荐(1)