zigbee
绿叶清风
这个作者很懒,什么都没留下…
展开
-
Zigbee深入浅出之Zigbee入门
什么是Zigbee?它能干什么用? 为什么要引入zigbee? zigbee是无线设备之间的一种通信方式,类似于人和人之间的通话交流,普通话就是一种通信方式. zigbee通信方式,zigbee协议说的一回事。zigbee的作用构建无线局域网zigbee和无线传感器网络之间的关系? 如果一个无线局域网用于传感吕的数据收集和监控,那么这个网络就叫无线传感器网络,也就是说,无线传感器原创 2017-02-11 19:16:40 · 8998 阅读 · 0 评论 -
zigbee实现网络加入过滤(相当于白名单)
1,在app.h文件中#if ZG_BUILD_COORDINATOR_TYPE#define WHITE_LIST_MAX_SIZE 2 //最大缓存数typedef struct { uint8 macAddress[8];//macAddress uint8 isAllow;//1 allow,0 reject }WhiteNode;原创 2017-03-15 17:27:38 · 3261 阅读 · 2 评论 -
zigbee终端向多个协调器发起请求的思路(终端入网流程分析)
一个ZigBee终端周围可能有多个协调器,如何让终端连接到指定的协调器?先简单的谈一下终端的入网流程(相关代码自己去看源码):1,终端上电,调用ZDOInitDevice初始化ZDO层的task2, 在ZDOInitDevice中调用ZDApp_NetworkInit方法初始化网络 3,在ZDApp_NetworkInit方法中发送了ZDO_NETWORK_INIT事件消息原创 2017-03-16 11:06:20 · 5942 阅读 · 0 评论 -
ZigBee广播通信原理及ZigBee网络的一些特性
广播通信原理:广播:可以理解成,发送模块发出数据,这个网络里面所有节点都可以拿到这个数据#define SAMPLEAPP_ENDPOINT 20 //定义端点编号uint8 SampleApp_TransID = 0;afAddrType_t SampleApp_Periodic_DstAddr; //广播// Broadcast to原创 2017-03-16 16:58:21 · 5607 阅读 · 0 评论 -
ZigBee组播通信原理
组播通信原理组播通信:在Zigbee网络,模块可以分组来标记,发送的模块如果组号和网络里面标记模块的组号相对应,那么这些模块就可以拿到这些无线数据包。组播的特点:1,分组中的编号是两个字节(即组号是两个字节)2,组号必须和已经定义了的端点相关联。 即:组都是和模块里已经定义了的端点相关联,如果我们说一个模块标记为组0x01,那么这个模块里面至少有一个定义了的原创 2017-03-16 17:39:32 · 5831 阅读 · 0 评论 -
ZigBee获取本设备及父设备的Mac地址和网络短地址
mac地址通信1,两个字节在网络里面唯一的网络短地址2,每一个CC2530芯片出厂的时候,TI公司会固化一个唯一的8个字节的MAC地址(IEEE地址)。怎么知道芯片里面的MAC地址、网络短地址是多少?#include "NLMEDE.h" //需要的头文件extern byte *NLME_GetExtAddr( void );//获得本模块的MAC地址原创 2017-03-16 18:05:25 · 5685 阅读 · 0 评论 -
ZigBee单播通信原理、串口配置 (对于理解收发数据的过程非常重要)
ZigBee网络通信学习方法:1,刚开始,我们确实需要借助官方模板,添加简单的代码实验,建立感性的认识2,然后在官方代码基本实验基础上,了解相关概念,掌握通信过程原理,结合自己的理解,自己动手做一个个性化的实验 ,来验证自己的理解。 ZigBee通信方式:单播、广播、组播、绑定。先看一下单播:单播:在ZigBee网络里面,模块之间要进行通信,发送模块非常明原创 2017-03-16 16:08:06 · 6337 阅读 · 0 评论 -
ZigBee MAC地址通信原理
先看有关通信的结构体或枚举://ZigBee在发送数据的时候,有以下同种地址模式 typedef enum{ afAddrNotPresent = AddrNotPresent,//间接传送 afAddr16Bit = Addr16Bit,//指定地址单点传送(Unicast) 16位网络地址 afAddr64Bit = Addr64Bit,//以6原创 2017-03-17 09:37:53 · 5072 阅读 · 2 评论 -
ZigBee绑定通信原理
ZigBee的通信方式分为:组播、单播、广播、MAC地址通信、绑定ZigBee绑定1,绑定是ZigBee一种基本通信方式,具体绑定通信又分为三种模式,这里只拿源绑定来说明。单播的时候需要指明如下参数:发送模块的网络地址发送模块的发送端点接收模块的网络地址接收模块的接收端点接收模块的接收簇MAC地址通信的时候需要指明如下参数:发送模块的MA原创 2017-03-17 10:48:16 · 2665 阅读 · 1 评论 -
ZigBee 中 z-Stack协议中的任务、事件、消息处理流程
1,系统上电以后在main函数的最后会调用osal_start_system()方法来启动系统,这个方法是个死循环,只循环里面只做一件事:不断的检测任务,看任务里面有没有事件需要处理; 检测方法:如果tasksEvents[idx]不为0,则表示要事件需要处理。2,事件是怎么的? /***********************************************原创 2017-03-17 11:53:32 · 3152 阅读 · 0 评论 -
zigbee nv操作实例
(1)第一步, 添加自定义的 NV_ITEM_ID: 在Zmain.c引用的ZComDef.h文件中,有如下代码; // NV Items Reserved for applications (user applications) // 0x0201 ?0x0FFF原创 2017-04-14 18:57:15 · 1570 阅读 · 0 评论 -
cc2530串口驱动程序
使用IAR驱动CC2530的串口0,串口1,实现数据发送以及printf,中断接收数据uart.c[cpp] view plain copy /************************************************************************************转载 2017-04-06 10:48:57 · 2214 阅读 · 0 评论 -
已知网络地址查询MAC地址
已知网络地址查询MAC地址1、实验内容: 协调器上电后建立网路,路由器自动加入网络。然后路由器调用调用相关的API函数获得某一网络号节点的MAC地址,然后通过串口将其发送到PC端的串口调试助手2、知识补充:获得某一网络号节点的MAC地址的API函数。 ZDP_IEEEAddrReq(uint16 shortAddr,byte ReqType,byte StartInd转载 2017-04-17 10:34:11 · 1081 阅读 · 0 评论 -
IAR 中 CC2530工程生成.hex文件
利用IAR建完一个工程后,进行设置如下:这里以CC2430为例子,CC2530设置也差不多。 选择 Project 菜单下的Options 配置与 CC2430 相关的选项。1、General Options选项,按下图配置Target标签,选择Code model 和Data model,以及其它参数。 a、单击 Derivative information 栏右边的转载 2017-04-24 13:36:50 · 1703 阅读 · 0 评论 -
zigbee z-stack实现按键的长按
按键流程参考P0_1 I/O口对应的按键无使用可以参考由于按键检测有中断、和轮询两种方式,默认采用轮询方式,对于轮询方式的长按处理比较简单,利用松开的时间点和松下的时间点之间的时间差即可实现。对于中断的方式可以采用定时器方式,当中断触发的时候,开一个定时器,如果定时器到期了,按钮还是按下状态,就认为是长按。核心代码:#define KEY_HOLD_LONG_IN原创 2017-04-10 14:18:49 · 2904 阅读 · 6 评论 -
ZigBee终端怎样检测协调器或路由器已不在网络中
使用TI Z-STACK, 终端与协调器中间没有路由. 终端通过定时发送MAC地址请求或发送数据的结果来判断协议器是否还在网络中.如果连续数次mac地址请求失败或发送数据失败,则认为协调器已经不在网络.检测次数通过f8wConfig.cfg中的宏MAX_POLL_FAILURE_RETRIES来定,默认值为2.当检测到协调器不在网络时,app会收到ZDO_STATE_CHA转载 2017-04-26 18:35:20 · 1205 阅读 · 0 评论 -
zigbee抓包
2、任何一个zigbee模块要加入到某个网络,一定要有一个处于该网络里的节点作为介绍人,并且这个介绍人不能是终端节点。介绍人节点为被介绍人节点的父节点,被介绍加入的节点称为子节点。二者是父子节点关系。3、有三个模块:A模块下载了协调器功能代码;B模块下载了路由器功能代码;C模块下载了终端功能代码;当A没上电,而B、C上电的时候,会一直去寻找网络请求加入网络;直到A模块上电以后,先去原创 2017-04-26 19:49:08 · 7256 阅读 · 2 评论 -
zigbee关联表AssociatedDevList
关联表的操作AssociatedDevList 表为与此设备相关联的设备表,并不是 ZigBee 网络中的所有设备信息表。表中信息的 IEEE 地址是唯一的,每个设备加入它的父节点时会在表中添加一个记录,但是子节点断电离开网络时不会删除该条记录,如果有多个子节点,频繁更换父节点会造成 AssociatedDevList 表满或溢出,使其它子节点无法加入该父节点,因此需要及时的删除一些已离开转载 2017-05-20 09:22:13 · 751 阅读 · 0 评论 -
IAR的有用的快捷键
1、显示行号:在代码段点击右键,找到Options->Editor,将右面的Show Line Numbers 勾选上就可以了。2、注释的快捷键:Ctrl+K;取消注释:Ctrl+Shfit+K3、Ctrl+Shfit+空格,可以使用IAR提供的内部代码的编写,如if语句。4、格式化源码 CTRL + T5、程序{}花括号的配对内容查找。CTRL + B 则自动的把这段内容 反色转载 2017-03-15 17:11:18 · 3704 阅读 · 0 评论 -
ZigBee协议栈中定时器的几种使用方法(在Zigbee中使用定时器)
原文链接:http://www.kaleidscope.cn:1020/archives/1056Zigbee协议栈中如果要实现一个定时事件或者延时的话,有很多种方法,定时事件呢其实就是我们熟悉的使用定时器来定时,产生定时事件,当然也可以用来延时。1、协议栈定时器HalTimerConfigZigBee协议栈提供了定时器的使用接口,在hal层调用HalTimerConfig即可配置使用转载 2017-03-15 15:43:10 · 8143 阅读 · 0 评论 -
Zigbee深入浅出之开发环境搭建
本节介绍ZigBee基本开发环境搭建,附件中有本节介绍的软件下载地址~链接:http://pan.baidu.com/s/1bLdqxg 1、IAR Embedded Workbench 的安装 Step1、双击安装程序,进行安装 Step2、一直采用默认NEXT,直到点击Accept之后: Step原创 2017-02-11 20:42:02 · 3462 阅读 · 0 评论 -
ZigBee基础实验——GPIO输出控制实验-控制Led亮灭
出自1、CC2530的IO口概述 CC2530芯片有21 个数字输入/输出引脚,可以配置为通用数字I/O 或外设I/O 信号,配置为连接到ADC、定时器或USART外设。这些I/O 口的用途可以通过一系列寄存器配置,由用户软件加以实现。 I/O 端口具备如下重要特性:转载 2017-02-12 16:20:56 · 4745 阅读 · 0 评论 -
ZigBee基础实验——中断
出自前言 上一篇介绍了CC2530的IO的基础知识,并用LED的控制来展示如何配置并控制GPIO的输出,用KEY状态的读取实验来展示如何读取GPIO的状态。从上一节的KEY状态读取的代码看出是采用轮训方式的,这种方式是很浪费资源,本节将介绍一种中断方式来替换轮训的方案。 一、中断 电路依然没变,若要使用CC2530的外部中断需要使用P0IEN转载 2017-02-12 16:29:19 · 1145 阅读 · 0 评论 -
ZigBee ZDO_NetworkDiscoveryConfirmCB方法 及 ZDO_NWK_DISC_CNF事件源码分析
当模块调用NLME_NetworkDiscoveryRequest()搜索周边路由节点或协调器节点时,当底层发现其他模块时,会调用ZDO层的ZDO_NetworkDiscoveryConfirmCB( uint8 ResultCount, networkDesc_t *NetworkList ) 方法。我现在对这个方法的理解也是一知半解,在这里先记录一下,以后有时间再回来慢慢理解。原创 2017-03-17 18:08:11 · 2274 阅读 · 0 评论 -
zigbee学习:示例程序SampleApp中按键工作流程
zigbee学习:示例程序SampleApp中按键工作流程本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境:主机:WIN7开发环境:IAR8.10.3MCU:CC2530示例程序:SampleApp按键电路:电路原理为利用ADC转载 2017-03-08 17:00:14 · 688 阅读 · 0 评论 -
zigbee printf 输出打印信息到控制台
在学习zigbee协议栈的时候,想实现单步走,并且为了让程序运转到某一步时希望能够输出一些打印信息到IAR工作台。这里给出具体的步骤:添加需要输出的信息,比如我想在Zmain.c文件的main函数中打印“ok”;则在main函数中加入语句:printf("ok")并且包含头文件: # include "stdio.h";。为了更加清晰的看到打印信息,我们在printf语句前面加上断点。转载 2017-03-10 15:18:46 · 1348 阅读 · 0 评论 -
ZigBee终端怎样检测协调器或路由器已不在网络中
使用TI Z-STACK, 终端与协调器中间没有路由. 终端通过定时发送MAC地址请求或发送数据的结果来判断协议器是否还在网络中.如果连续数次mac地址请求失败或发送数据失败,则认为协调器已经不在网络.检测次数通过f8wConfig.cfg中的宏MAX_POLL_FAILURE_RETRIES来定,默认值为2.当检测到协调器不在网络时,app会收到ZDO_STATE_CHA转载 2017-03-10 16:54:52 · 1861 阅读 · 0 评论 -
osal_start_system运行操作系统函数
/********************************************************************* * @fn osal_start_system * * @brief * * This function is the main loop function of the task system. It * wil转载 2017-03-10 17:06:42 · 1915 阅读 · 0 评论 -
CC2530 输入输出配置、中断配置、时钟、串口配置
如何配置管脚的输入、输出状态? 以配置LED灯为例,输出怎么配置(三步): 1,需要让P1_0牌普通IO口模式,而不是片上外设的模式 (普通IO口模式,上外设的模式的区别?) 找到对应的寄存器 P1SEL 的第0位为0 2,让P1_0处于输出状态,非输入状态 找到P1DIR对应的第0位,让它等于1(1为输出,0为输入) 3,P1_0 = 0;/原创 2017-03-21 13:12:01 · 7473 阅读 · 0 评论 -
谈谈#define st(x) do { x } while (__LINE__ == -1) 的理解
最近在学习TI 的ZigBee协议栈,其中发现了一个问题:#define HAL_ENTER_CRITICAL_SECTION(x) st( x = EA; HAL_DISABLE_INTERRUPTS(); )#define HAL_EXIT_CRITICAL_SECTION(x) st( EA = x; )其中st(x)应作何解释?#define st(x) d转载 2017-03-21 17:35:01 · 972 阅读 · 0 评论 -
Zigbee协议栈(CC2530开发板) 修改发射功率
http://blog.163.com/baly_bao/blog/static/12848655720101173140957/CC2530 控制输出功率的寄存器是 TXPOWER: 推荐功率设置: 协议栈默认的设置是 0xd5,为了扩展信号传输的距离,我把TXPOWER寄存器值改为0xf5, 此时输出功率为4.5dBm.在mac_radio.c文件,转载 2017-04-08 09:30:10 · 1086 阅读 · 0 评论 -
修改Zigbee的Channel、PANID、发射功率、灵敏度及其它参数
转自:http://blog.csdn.net/xiaoshengyige/article/details/7577115(Channel、PANID、发射功率)原文如下:现对z-stack里几个网络参数的设置以及如何获取总结一下。信道配置:Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个20Kb/s信道,915MHz频段中定义了10个40Kb/s信转载 2017-04-08 09:57:59 · 4585 阅读 · 2 评论 -
cc2530串口(网络)通信流程
//串口发送接收流程main: //主函数 ->osal_init_system(); //操作系统初始化 ->osalInitTasks(); //任务初始化 -->ZDApp_Init(taskID++); //该函数初始化后,协调器建立网络、终端将加入网络 -->ZDOInitDevice(0);原创 2017-03-14 16:00:49 · 6924 阅读 · 0 评论 -
ZigBee协议栈中终端设备的状态切换详解
https://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/p/104629/283400.aspx转载 2017-03-14 16:36:25 · 1258 阅读 · 0 评论 -
IAR创建工程文件快速建立之ZigBee CC2530
第一步:打开我们上次已经安装好的IAR软件,新建一个Project-Create NewProject,选择默认选项可以了,点击OK。保存在自己希望的路径。第二步:新建文件,输入#include, 我们基础实验需要用到的也只有这个头文件。然后保存为.c 格式到工程文件路径下。第三步:弄好后就可以继续敲代码了转载 2017-03-31 14:14:38 · 4261 阅读 · 0 评论 -
zigbee网络地址与mac地址的相互转换
z-stack底层有一个地址管理对象,并提供了一系列方法进行转换。我们只需要导入头文件#include "AddrMgr.h"然后调用以下两个方法即可:AddrMgrExtAddrLookup根据网络地址找mac地址AddrMgrNwkAddrLookup根据mac地址找网络地址原创 2017-05-20 14:22:54 · 2301 阅读 · 0 评论