概述

本文将介绍zigbee应用程序中重要的参数与其对应的RAM开销,实际产品开发中,可根据芯片的RAM空间以及性能需求,对各个参数进行调整,已达到节约RAM的目的。


重要参数/宏定义介绍

参数名称 默认值                   占用RAM字节
EMBER_PACKET_BUFFER_COUNT             75                              40
EMBER_NEIGHBOR_TABLE_SIZE                 16                              18
EMBER_APS_UNICAST_MESSAGE_COUNT                 10                              13
EMBER_DISCOVERY_TABLE_SIZE                  4                               9
EMBER_MAX_END_DEVICE_CHILDREN                  6                               4
->EMBER_ADDRESS_TABLE_SIZE                  8                              10
->EMBER_UNICAST_ALARM_DATA_SIZE                  16                               4
->EMBER_UNICAST_ALARM_DATA_SIZE                   0                               4

各个参数,具体介绍如下:

(1)EMBER_PACKET_BUFFER_COUNT 
表示协议栈支持发送和接收信息缓存包的最大数量,其作用包括: 
a. 转发路由信息:in-transit(routed); 
b. 接收信息:incoming messages; 
c. 发送信息:outcoming messages(其中包含了父节点准备发给睡眠子节点的信息); 
d. 接受和发送碎片化信息(大数据量分多次传输):fragmented message; 
e. 为Stack存储临时信息,包括: 
–>> currently joined mobile end devices; 
–>> stored beacons being considered during a join/rejoin event; 
–>> listings of conflicted node IDs; 
–>> scan results; 
–>> matches for a ZDO End Device Bind request 
该参数对于RAM空间影响最大,但同时涉及到众多消息处理,silicon官方建议在不了解各个消息是如何处理的情况下,不要对其进行改动。不过对于em357芯片,官方设置默认值是75(共消耗300个Byte)的原因在于对于Demo程序的RAM是比较充足的。。。即便改成25也是可以的。同时对于zigbee3中设备类型,对于该参数的需求值关系:

Cordinator > Router > End Device

同时,对于网络情况复杂、信息负载重的应用场景,该值需视具体情况要调大。

(2)EMBER_NEIGHBOR_TABLE_SIZE 
neighbor table用于存储当前设备一跳范围内的节点信息。当大规模组网时: 
调大:更低的路由跳转,利于网络的稳定、低延迟; 
调小:更多的路由跳转,更高的网络延迟;

silicon官方建议设置最小为8,最大支持16。

(3)EMBER_APS_UNICAST_MESSAGE_COUNT 
在等待MessageSentHandler callback期间,最大能缓存的APS Unicast消息数量。每当协议栈发送一次单播命令时,都会给上层应用层一个反馈,应用层拿到反馈,就是在MessageSentHandler callback期间做处理的。这个数值,在发送消息不频繁的情况,可以适当改小。

(4)EMBER_DISCOVERY_TABLE_SIZE 
代表节点可以同时运行的Route Discovery命令的个数。每当执行一次one-to-one discovery,就会在该表中记录一条entry,当该one-to-one discovery发现一条节到目的地的路径时,或者在时间限制内没有发现有效路径,则entry会被删除。当table表满时,节点就不会再发route discovery命令了。对于传感器类的休眠设备,该值设置为1即可。

(5)EMBER_MAX_END_DEVICE_CHILDREN 
代表一个Cordinator/Router设备最多可以挂载的end device子节点的数量。对于ember357芯片来说,最大值为64。64作为上限,设计的原因,有以下两点: 
1) 存储器RAM容量; 
2) Cordinator/Router在接受子节点MAC Data Request(Poll)的时候,会轮询children表内所有的记录,如果在表内,则需相应Mac Ack,而802.15.4协议要求,这个响应时间必须在864ms内完成。因此数值过高,将会导致轮询时间过长,进而引发ack响应失败,子节点离开网络。

Tips: 
zigbee要求end device设备定期向父节点进行MAC Data Request,以告知父节点,“我还在线,不要删我!”

EMBER_MAX_END_DEVICE_CHILDREN会影响以下3条,因此以5-1、5-2、5-3表示: 
(5-1)EMBER_UNICAST_ALARM_DATA_SIZE 
当使用Alarm cluster(0x0009)时,才有意义;

(5-2)EMBER_ADDRESS_TABLE_SIZE 
该值包含了address table和trust center cache的总和。

(5-3)EMBER_KEY_TABLE_SIZE 
对于Trust Center来说,这个值代表Trust Center Link Key可以存储的数量。对于其他节点来说, 代表了可以存储的Application Link Key数量,而Trust Center Link key则单独存储。


总结

根据以上参数,在应用程序中可以根据自己具体的需要进行参数调整。虽然本文是基于silicon芯片em357,但原理相同,可以类推到其他zigbee芯片供应商的方案中去,当然,前提是他们开放了这些参数接口。

备注:本文使用em357芯片,协议栈版本5.3,参数配置文件如下: 
/stack/config/ember-configuration-defaults.h

[Ember Zigbee]zigbee应用程序RAM相关推荐

  1. Zigbee组网流程程序分析

    转载:http://blog.sina.com.cn/s/blog_9d48d26f01015tph.html 第一个功能:协调器的组网,终端设备和路由设备发现网络以及加入网络 //第一步:Z-Sta ...

  2. 9. Zigbee应用程序框架开发指南 - 属性管理

    1 Zigbee应用程序框架开发指南 - 概述 2 Zigbee应用程序框架开发指南 - 应用程序框架结构 3 Zigbee应用程序框架开发指南 - 应用程序框架目录结构 4 Zigbee应用程序框架 ...

  3. 新兴的短距离传输技术-zigbee技术

    新兴的短距离传输技术-zigbee技术,欢迎正在做这方面的同学来探讨 Zigbee的基础是IEEE 802.15.4,这是IEEE无线个人区域网(Personal Area Network,PAN)工 ...

  4. 关于Zigbee的常识

    什么叫物联网? 物联网是通过射频识别(RFID).红外感应器.全球定位系统.激光扫描器等信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别.定位.跟踪. ...

  5. 初步了解802.15.4协议与ZigBee

    IEEE 802.15.4网络是指在一个POS内使用相同无线信道并通过IEEE 802.15.4标准相互通信的一组设备的集合,又名LR-WPAN网络.ZigBee是基于IEEE802.15.4标准的低 ...

  6. IEEE 802.15.4和ZigBee

    IEEE 802.15.4网络简介 IEEE 802.15.4网络是指在一个POS内使用相同无线信道并通过IEEE 802.15.4标准相互通信的一组设备的集合,又名LR-WPAN网络.在这个网络中, ...

  7. zigbee智能家居基础扫盲

    zigbee Zigbee是基于IEEE802.15.4标准的低功耗个域网协议.根据这个协议规定的技术是一种短距离.低功耗的无线通信技术.这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和&qu ...

  8. ZigBee集成开发环境IAR安装

    一.Zigbee概述 1.什么是Zigbee ZigBee是一种近距离.低复杂度的双向无线通信系统,主要用于距离短.功耗低.传输速率不高的电子设备之间进行数据传输,且具有低功耗.低成本.大容量.时延短 ...

  9. 不可不知的IEEE 802.15.4和ZigBee基础

    IEEE 802.15.4网络是指在一个POS内使用相同无线信道并通过IEEE 802.15.4标准相互通信的一组设备的集合,又名LR-WPAN网络.ZigBee是基于IEEE802.15.4标准的低 ...

  10. 物联网通讯协议:MQTT,NB-IOT,Zigbee,CoAP,RFID,BLUETOOTH,NFC,4G,HTTP

    目录 一.按网络四层协议分类 二.按需要网关来分类 三.NB-IoT,4G对比 四.应用层协议:MQTT和COAP对比 物联网组网技术 WIFI 蓝牙 ZigBee 2G/4G/5G NB-IoT L ...

最新文章

  1. Linq基础知识小记二
  2. 深入JUnit源码之Rule
  3. 【PP模块】订单分割(Order Split)
  4. 音视频技术开发周刊 | 199
  5. android 两个客户端间的通信(Socket通信)
  6. Spring Boot 单例模式中依赖注入问题
  7. 作者:宋杰(1980-),男,博士,东北大学软件学院副教授
  8. 特朗普社交应用登苹果App Store下载量榜首
  9. redis数据结构、持久化、缓存淘汰策略
  10. 编程语言_java_面试题0002
  11. HttpClient 入门与正确使用姿势
  12. 电脑怎么重装系统Win11?需要什么条件
  13. Flask-Uploads文件上传的简单使用
  14. 一步一步学会JDBC
  15. 字符串算法 金策_OI-Public-Library/国家集训队论文1999-2017 at master · BlackWaters/OI-Public-Library · GitHub...
  16. Mars3D开发基础学习:3DTiles三维模型
  17. 计算机专业教学总结,计算机教研组教学工作总结
  18. 测试岗位只有一个人的公司中,如何做好测试?
  19. 阿里云云计算ACP学习(七)---弹性伸缩服务AS
  20. dd_engi 的背包九讲

热门文章

  1. 正版win8/win8.1系统激活密钥(key)备份还原操作步骤
  2. 终于搞懂了回车与换行的区别
  3. 回车、换行、回车换行、硬回车以及软回车
  4. vue下拉框数据填充
  5. 【mcuclub】红外测温-MLX90614
  6. zblog html代码,简单快速修改zblog模板的重要代码
  7. python电路仿真软件_Arduino仿真软件64位Virtual Breadboard下载 v4.21
  8. c语言中char转换为int的问题
  9. hosts文件的作用
  10. 另类搞笑:自我指涉例句不完全收集