![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ZgiBee
文章平均质量分 52
黄纸明
有热情,阳光。爱专研
展开
-
zigbee关联请求入网
2、任何一个zigbee模块要加入到某个网络,一定要有一个处于该网络里的节点作为介绍人,并且这个介绍人不能是终端节点。介绍人节点为被介绍人节点的父节点,被介绍加入的节点称为子节点。二者是父子节点关系。3、有三个模块:A模块下载了协调器功能代码;B模块下载了路由器功能代码;C模块下载了终端功能代码;当A没上电,而B、C上电的时候,会一直去寻找网络请求加入网络;直到A模块上电以后,先...转载 2020-02-01 17:29:38 · 1272 阅读 · 0 评论 -
从捕包数据上看终端设备3种加入网络过程
1、通过连接加入网络 》》 终端发送Beacon 《《协调器发送超帧响应 默认这个过程为3次。 》》终端发送 Association requ原创 2014-12-30 19:53:22 · 1344 阅读 · 0 评论 -
成功Rejoin网络的判断条件
问题1:今天看Ti的协议栈-终端加入网络时,协调器建立网络,终端加入网络后,当换成了另外一个协调器他为什么可以加入?试想我们能够重新加入网络的判断是什么,父节点必须判断他的扩展PANid是否和自己的一样(即判断MAC的64位地址进行判断);且自身有终端和路由加入网络的能力,才可以加入这个网络。答案是不可以的!解决方法的关键就是找到在哪里判断扩展PanId或者mac地址(本身邻居表中的mac地址原创 2014-12-29 20:41:38 · 954 阅读 · 1 评论 -
Z-stack终端加入网络与阅读协议栈的方法
终端加入网络,学习ZgiBee已经有两个月了;如何读像协议栈这种大量的代码;1、加入网络的过程得回调函数ZDO_NetworkDiscoveryConfirmCB()开始说明ZDO_NetworkDiscoveryConfirmCB();这是终端的回调函数ZStatus_t ZDO_NetworkDiscoveryConfirmCB(uint8 status){原创 2014-12-26 15:12:28 · 2894 阅读 · 0 评论 -
cc2531电源管理和节能
Power ModesActive mode: The fully functional mode. The voltage regulator to the digital core is on, and either the16-MHz RC oscillator or the 32-MHz crystal oscillator or both are running.转载 2015-01-16 15:18:53 · 1840 阅读 · 0 评论 -
低功耗使用注意
Z-stack提供了两种sleep模式,LITE和DEEP(PM2/PM3)。当系统需 要唤醒去执行一些周期性的事件时,使用LITE sleep;当系统没有被定制周期事件而是通过外部中断(如按键)来唤醒设备,使用DEEP sleep。例如带有传感器的终端设备,它需要周期性的唤醒发送采集的数据,又如远程控制终端设备通过按键唤醒来发送一信息,它们的大部分时间都是处于 sleep,以降低功耗。第转载 2015-01-16 12:00:58 · 1053 阅读 · 0 评论 -
ZStack中的编程技巧
1. 像函数一样使用的宏//这个宏,用来被其他宏使用,构造一个正确有效的表达式。这个适合于一些离散语句的组合,不适合函数的重新命名#define st(x) do { x } while (__LINE__ == -1) 例如:#define aps_GroupsRemaingCapacity() ( APS_MAX_GROUPS - aps_CountA转载 2014-12-26 13:41:18 · 1564 阅读 · 0 评论 -
ZStack--建立自己的应用程序(API)转载
在TI提供例程中有一个SimpleApp的例程,对于应用开发而言,例程SimpleApp展现了简化的API的使用,减少了一系列的API函数和回调函数,简化了协议栈启动的流程。这里重点介绍这些简化以后的API.1、Z-Stack Simple API总述Z-Stack是TI正对CC2430/CC2431等提供的免费协议栈,简称为ZCP,他由以下单元组成:HAL(硬件抽象层)转载 2014-12-09 11:12:57 · 1825 阅读 · 0 评论 -
Z-STACK之OSAL_Nv非易失性存储解读上
1、在工程选项设置里的PreprocessoràDefined symbols里添加了NV_INIT和,xNV_INIT (保存设备基本信息到非易失性存储器里)NV_RESTORE,xNV_RESTORE(不保存网络状态信息),(前面加x代表不保存);在这里要需要搞明白的是此处的网络状态信息是具体指哪一类的信息,是否与设备类型有关呢? REFLECTOR:是实现绑定功能,在ZDobjec转载 2014-12-10 10:18:30 · 4355 阅读 · 2 评论 -
学习Z-stack的 好的网站
想要很快的掌握一种新的技术,如何从哪里获取资源是非常重要。 ZigBee联盟官网 http://www.zigbee.org----ZgiBee的鼻祖,最权威,最全面的的网站 www.ti.com----------------------------------TI 官网,最全的工具,Ti的协议栈可以看看。http://www.deyisupp原创 2014-12-15 22:13:25 · 785 阅读 · 0 评论 -
Z-satck Z-tool使用
好长一段时间没写新的东西了,最近又在筹划两款新的产品,一个BB板和一个钮扣电池供电的独立传感器节点。最近一两周的时间会与大家见面,同时为回馈老客户与VIP会员对“飞比”的支持,BB板将采取赠送的方式。细则将会在产品发行时通知大家。 言归正传,一直有网友对MT功能与Z-tool的应用很关注,但网上相关的资料又非常少,甚至TI的英文文档也没有独立一个文档介绍这一部分。结合自己的经验,想对转载 2015-01-20 22:35:26 · 1883 阅读 · 0 评论 -
如何快速看懂一个大型程序
在软件研发过程中,我们经常碰到如下情况:许多学习开发的同学或在职的程序员都经常为拿到一个大型程序后,在短时间内无法快速读懂它而烦劳。当他们拿到一个大型程序后,他们便开始一句一句的阅读分析,夜以继日,就差悬梁刺股了,可结果依然不理想,往往进入以下状态:(1)花费了很长时间,也没有多大进展,与当时预计的日期相差甚远。(2)由于周期较长,他们往往在重复阅读分析最初的极小部分。就像有的童鞋读书一样转载 2015-01-20 08:48:46 · 905 阅读 · 0 评论 -
Wi-Fi、ZigBee、BLE无线三国杀
(文/上海顺舟)随着物联网的持续推进,最为重要的连接方式——无线技术(Wi-Fi、ZigBee、BLE)呈割据趋势,正如古时三国:曹魏(Wi-Fi)、刘蜀(ZigBee)、孙吴(BLE)一样,争抢地盘,各自混战。笔者帮您梳理一下三大技术现今趋势比较,以飨看官。 曹魏,代表作Wi-Fi:三国时,曹魏以不可阻挡之势横扫中原,无可披靡,正如如今Wi-Fi一样,大规模普及,深入人“身”(手机、平转载 2015-05-20 21:43:37 · 1190 阅读 · 0 评论 -
Z-stack中回调函数及回调机制的分析
使用回调函数方法:1、注册回调函数 ZDO_RegisterForZDOMsg( ZDAppTaskID, Device_annce );2、回调函数 调用,细节:#if/**/ZG_BUILD_RTR_TYPE //131223zcl:路由节点向用户指示新节点加入 case Device_annce://问题:每次上电,只有前两次设备申明才能进转载 2015-05-15 17:21:47 · 1367 阅读 · 0 评论 -
iOs LightBlue与cc2540 BLE开发板之间的通信实验 [原创, 多图]
iOs LightBlue与cc2540 BLE开发板之间的通信实验 [原创,多图] 下面我们来一次做 iPhone 和 PC 与开发板的通信实验。只有 iPhone4S(含)以后的设备才支持低功耗蓝牙 BLE,我们这里做的实验使用的是 iPhone4s. 从 APP Store 里下载安装了 LightBlue 程序。通常,智能机设备作为主机,CC254x 作为从机,当然,CC转载 2015-04-23 19:54:22 · 1187 阅读 · 0 评论 -
Z-stack 应用程序编程接口(API)-网络层
NWK 层为更高层提供了如下功能:·· 网络管理· 地址管理· 网络参数与功能函数除了管理功能,NWK 还提供了应用程序没有的数据服务。应用程序可以通过 AF数据接口[AF_DataRequest()]来发送数据。3.4.1.1 网络管理(Network Management)3.4.1.1.1 NLME_NetworkDiscoveryRe转载 2015-04-10 10:04:10 · 539 阅读 · 0 评论 -
ZgiBee分配短地址
一、ZigBee 有两种类型的地址: 一种是 64 位 IEEE 地址,即 MAC 地址, 另一种是 16 位的网络地址。 (1) 64 位的IEEE地址是一个全球唯一的地址,一经分配就将跟随设备一生。它通常由制造商或者被安装时设置。这些地址由 IEEE 组织来维护和分配。 问题:用Z-stack 协议栈编程,64位IEEE地址翻译 2015-01-25 21:27:42 · 1646 阅读 · 0 评论 -
ZgiBee读取温度电量信息
1、传感器节点sensor采集数据发往收集节点collector什么时候传感器节点开始读取温度电池电量信息的?从绑定成功后开始的,看下zb_BindConfirm()这个函数:*********************************void zb_BindConfirm( uint16 commandId, uint8 status ){ if (转载 2015-01-25 21:57:25 · 699 阅读 · 0 评论 -
路由(Routing)与zigbee原语
概述(Overview) 路由对与应用层来说是完全透明的。应用程序只需简单的向下发送去往任何设备的数据到栈中,栈会负责寻找路径。这种方法,应用程序不知道操作是在一个多跳的网络当中的。 路由还能够自愈ZigBee网络,如果某个无线连接断开了,路由功能又能自动寻找一条新的路径避开那个断开的网络连接。这就极大的提高了网络的可靠性,同时也是ZigBe转载 2015-01-25 21:30:07 · 2246 阅读 · 0 评论 -
zstack定位程序的学习(3)--盲节点程序解读
今天来看定位的具体程序,首先是盲节点程序。花了一天时间,把程序看了一个大概,有需要交流的可以加我,我的qq号为1464283216,欢迎大家和我一起讨论。(支持原创,如需转载,请注明地址:http://blog.sina.com.cn/litianping0709 作者:叶雨荫城(阿雨))Filename: BlindNode.h Revised:转载 2015-01-23 16:32:23 · 1581 阅读 · 0 评论 -
串口修改PAN ID和CHANNEL,广播发送后重启
转载:http://www.feibit.com/forum.php?mod=viewthread&tid=8632想要实现的功能:1.串口修改PAN ID;2.串口修改CHANNEL;3.广播发送给网内节点,重启建立新的网络。实现例程:sampleapp例程修改IAR预编译:ZTOOL_P2MT_TASKMT_AF_FUNCMT_AF_CB_F转载 2014-12-05 14:43:23 · 1107 阅读 · 0 评论 -
如何利用搜索工具快速搜索到你想要的。
一、利用百度。 主要是一些基本的常识。二、百度云搜索 可以搜索一些常用的技术资料,这些技术资料可以入门的。三、在专业论坛上搜索。 例如在TI官网上搜索,TI的中文FAE网址上搜索,如何在TI官网上找CC-debuger的原理图,PCB1、首先登陆TI官网 www.ti.com2、点击右上角的Enlish ,选成字体为简体中文3、单击产品,选择无线连接。4、选原创 2014-12-20 22:23:02 · 1182 阅读 · 0 评论 -
zigbee协议及开发(3)- 基础知识
接下来,看一下Zigbee网络包的基本结构,这个与TCP/IP包结构比较类似,如下:其中缩写意义(从下层往上):SHR:Synchronization Header 同步头标志PHR:Physical Header(物理层的头)PHY Payload:包负载,即实际内容,后来在TI Packet Sniffer中经常见到这个单词。综上所示,HR表示Header,因此有MHR翻译 2014-12-16 23:28:57 · 941 阅读 · 0 评论 -
设备的64位 MAC地址是怎么样选取的?
在CC2530中分为两个IEEE地址,一个称为Primary IEEE地址,另外称为Secondary地址。Primary IEEE地址是存放在芯片的Information Page里面,这个地址是TI向IEEE协会购买的,每个芯片的地址都是唯一的。并且用户只能Read这个值,没办法擦除/修改。在协议栈中直接通过读地址可以获得 osal_memcpy(aExtendedAddress, (ui转载 2014-12-18 08:43:34 · 2257 阅读 · 0 评论 -
如何让End Device进入低功耗状态,休眠时间是如何设定的?
在协议栈宏定义中使能POWER_SAVING后,然后在f8wConfig.cfg文件里面把-DRFD_RCVC_ALWAYS_ON=FALSE,就可以让End Device进入休眠状态。关于休眠的时间是有OSAL操作系统的调度来决定,每次休眠时间都是按照最新会发生的一个Event Timeout作为休眠时间。具体在协议栈hal_sleep函数中有说明。这个timeout主要分为两类,一类是转载 2014-12-17 23:05:48 · 1752 阅读 · 0 评论 -
Z-Stack 中ZigBee 设备的 IEEE 地址 的初始化,读取,设置
Zstack协议的阅读:首先从主函数ZMain.c着手,其中Zmain.c:[cpp] view plaincopyint main( void ) { // Turn off interrupts osal_int_disable( INTS_ALL ); // Initialization fo原创 2014-12-15 22:34:16 · 4396 阅读 · 1 评论 -
zigbee协议及开发(2)- 基础知识
Zigbee可以看成是一种Ad Hoc网络。理论上,IEEE802.15.4中涉及到两种设备:全功能FFD和半功能RFD设备。从相关文档描述,FFD能够完成更多的任务,担当更多的角色,比如协调器和路由器,具有更大的处理能力和更大的内存;而RFD功能较少,通常只担当终端结点,只与一个路由器或者协调器通信。 相应的,IEEE802.15.4中设备的逻辑角色可以分为PAN Cordina转载 2014-12-15 14:45:14 · 772 阅读 · 0 评论 -
Z-STACK之cc2530串口(POLL-DMA)驱动详解下
在http://blog.csdn.net/crystal736/article/details/8541443中已经讲了Z-STACK中串口驱动的ISR方式,本文介绍串口驱动的另一种方式DMA,实际上Z-STACK中就是采用的这种方式,看hal_board_cfg.h文件中如下代码 #if HAL_UART// Always prefer to use DMA over ISR.转载 2014-11-05 11:31:30 · 3755 阅读 · 0 评论 -
波特率
9600 :1秒有9600个字节(数据+)原创 2014-10-30 15:44:30 · 1597 阅读 · 0 评论 -
OSAL系统框架专题
do { if (tasksEvents[idx]) // Task is highest priority that is ready. { break; } } while (++idx < tasksCnt);原创 2014-10-27 19:09:19 · 973 阅读 · 0 评论 -
产品如何进行标准ZigBee测试认证,需要了解哪些,需要走什么流程
2,产品如何进行标准ZigBee测试认证,需要了解哪些,需要走什么流程以开发标准ZigBee Home Automation相关产品为例。首先开发者开发产品时要按照ZigBee Home Automation Profile Specification 中描述的产品进行开发,这个文档可以在www.zigbee.org下载到。在完成产品的开发后,开发着需要了解ZigBee Home转载 2014-12-17 16:35:57 · 2821 阅读 · 0 评论 -
zigbee与其它近距离无线通信技术的比较
目前市场上近距离无线通信产品层出不穷,广泛应用的还是蓝牙(Bluetooth),红外(IrDA) 和无线局域网802.11(Wi-Fi)。同时还有一些具有发展潜力的近距离无线技术标准,它们分别是:zigbee、超宽频(UltraWideBand)、短距离通信(NFC)、WiMedia、GPS、DECT、无线139和专用无线系统等。它们都有各自立足的特点,或基于传输速度、距离、耗电量的特殊要求;或着转载 2014-12-02 19:45:44 · 4362 阅读 · 0 评论 -
zigbee协议及开发(4)- 基础知识
之前提供一个简化的Zigbee分层结构,实际实现时,必须将之细化,细化以后如下:上述图中的一些简写:-SAP: Service Access Point服务访问点,是层与层之间的接口描述;**ME:**Management Entity,即管理实体,如MLME,PLME,NLME等;**DE:**Data Entity,即数据实体,如NLDE,NLDE等;DE一般处翻译 2014-12-16 23:33:18 · 858 阅读 · 0 评论 -
第1章 ZigBee协议栈初始化网络启动流程
igBee的基本流程:由协调器的组网(创建PAN ID),终端设备和路由设备发现网络以及加入网络。基本流程:main()->osal_init_system()->osalInitTasks()->ZDApp_Init(),进协议栈初始化函数ZDApp_Init()。1.1 进入程序入口main()。ZMain.c中C++ Codeint main( voi转载 2014-12-04 16:41:26 · 2408 阅读 · 0 评论 -
宏定义,&和|的混合使用
今天在看Z-STACK的时候,有个地方迷了好久。当你判断你的设备是不是路由器或者协调器,时用了ZSTACK_DEVICE_BUILD & (DEVICE_BUILD_COORDINATOR |))DEVICE_BUILD_ROUTER)) 一直以为他是真的。仔细算了一下协调器是0001路由器是0010终端是0100所以 协调器和路由器与之后,结果是0011,,再与终端相与原创 2014-12-20 14:33:51 · 910 阅读 · 0 评论 -
End Device 加入网络参数(信道,扫描周期),加入网络过程
1)启动搜索网络 uint8 ZDApp_StartJoiningCycle( void )------------这两个函数是否可以在终端设备哪里,设置一下停止搜索网络 uint8 ZDApp_StopJoiningCycle( void )2) 更改发送Beacon Request的周期 修改变量zgDefaultStartingSc翻译 2014-12-17 23:16:00 · 3665 阅读 · 0 评论 -
ZgiBee 如何选择所有信道进行扫描
// Channels are defined in the following:// 0 : 868 MHz 0x00000001// 1 - 10 : 915 MHz 0x000007FE// 11 - 26 : 2.4 GHz 0x07FFF800////-DMAX_CHANNELS_868M原创 2014-12-18 11:46:20 · 1544 阅读 · 0 评论 -
Z-STACK 低功耗设置
Z-stack提供了两种sleep模式,LITE和DEEP(PM2/PM3)。当系统需 要唤醒去执行一些周期性的事件时,使用LITE sleep;当系统没有被定制周期事件而是通过外部中断(如按键)来唤醒设备,使用DEEP sleep。例如带有传感器的终端设备,它需要周期性的唤醒发送采集的数据,又如远程控制终端设备通过按键唤醒来发送一信息,它们的大部分时间都是处于 sleep,以降低功耗。第翻译 2014-12-18 21:10:38 · 2116 阅读 · 0 评论 -
PA的设置,PA功率的设置
我们ZgBee模块 有的是加PA的,有的是不加PA的,那么我们可以通过设置宏 HAL_PA_LNA 来使能CC2591(PA,功率放大器)。如果我们使用PA的模块,但是不使能这个选项就不能再Sniffer软件里面捕获到数据包。接下来思考一下PA功率的设置。原创 2014-12-18 16:05:41 · 2696 阅读 · 0 评论 -
ZgiBee 按键键值 流程
参考2012. MESH 网络。注意: 我们选用的是中断的方式,定义这个函数ISR_KEYINTERRUPT。1、按键初始化,主要配置 按键管教,中断模式(上升沿,下降压),中断标志位。#define HAL_KEY_SW_6_PORT P0#define HAL_KEY_SW_6_BIT BV(4)#define HAL_KEY_SW_6_SEL P0S原创 2014-12-02 14:18:44 · 1112 阅读 · 0 评论