关于如何上手Zigbee产品开发的一些个人感受

panjian0430 2019-02-18 01:15:21
分享一些个人关于如何上手Zigbee产品开发的观点。
先说明一下,这里提及的Zigbee产品是需要过Zigbee认证的。
目前网上不少中文资料都略显陈旧,论坛中有些贴子还混淆了Zigbee的概念,比如MAC和PHY属于IEEE 802.15.4,这不属于Zigbee协议。

Zigbee产品按设备类型基本分为三类:Coordinator(网关)、Router(灯)和End Device(开关,传感器等)

网关基本采用Host+Slave,其中Host配以功能强大的MCU,Slave就是类似Ti CC2538这样的Zigbee全栈芯片,Host和Slave之间多数采用UART通讯。按照网络节点规模通常有这么两种实现: (1) 如果网络节点数在100以内,Host上跑应用,Slave上跑所有的Zigbee协议;
(2)如果网络节点数达到甚至超过200,则采用NCP模式:Slave跑AF以下的Zigbee协议,而诸如ZCL则放到Host上,对于更大规模的网络,甚至Slave只跑802.15.4而将Zigbee协议完全放到Host上

Router以灯居多(不断电),主要有Dimmable,RGB及色温(ColorTemperature)等,对于RGB的灯,Zigbee芯片资源占用较多(由于Zigbee联盟强制Router设备支持GreenPower功能,即使最终网络中没用GreenPower设备,也必须过GP认证从而增加了GP实现的代码)

End Device的产品类型较多,而且不少是使用电池供电,因此基本需要休眠(Sleep),这时芯片选型就比较重要,比如除了芯片的最大输出功率Tx和接收灵敏度Sensitivity外,Tx和Rx的电流也是关键参数;此外,设备是否支持OTA及如何进行OTA也是一个比较困难的选择。

个人觉得,就初学者而言,从掌握上述三种设备类型及相应的应用入手,比一开始就纠缠到Zigbee协议的细节之中,学习效果更明显。

以本人当初学习NXP的JN5169为例(如果没有NXP的JN5169 EVM板,可以用4个JN5169 USB Dongle代替:1个配Ubiqua作为抓包用,1个Coordinate,1个Router,1个End Device),

在NXP官网www.nxp.com免费注册一个用户,然后从
https://www.nxp.com/products/wireless/proprietary-ieee-802.15.4-based/zigbee/zigbee-3.0:ZIGBEE-3-0
下载JN-SW-4141,JN-SW-4170和JN-AN-1216(Coordinator),JN-AN-1218(Router灯),JN-AN-1219(End Device开关)
(这几个AN里的工程都是可以过ZTT认证的)
1)安装JN-SW-4141,即JN5169的开发环境BeyondStudio
2)安装JN-SW-4170,即Zigbee协议栈
3)依次把JN-AN-1216,JN-AN-1218和JN-AN-1219的工程复制到Beyondstudio的工作目录中
可以先用Pre-Build的binary文件:
ZigbeeNodeControlBridge_JN5169_GP_Proxy_FULL_FUNC_DEVICE_1000000,
DimmableLight_GpProxy_JN5169_DR1175.bin,
DimmerSwitch_NtagIcode_JN5169_DR1199.bin
分别烧录3个JN5169 USB Dongle
也可以根据各个AN下\doc\里的PDF说明文件,修改Makefile(比如去掉GreenPower功能)或编译配置(去掉NtagIcode),分别编译
上述三个文件,
4)参考AN1216\doc\JN-AN-1216-ZigBee-3-0-IoT-ControlBridge-UserGuide.pdf目录第五章的说明,
在PC上运行\Tools\TestGUI\TestGUI\ZGWUI,控制Coordinator,实现Zigbee组网,依次将烧录了DimmableLight和DimmerSwitch
的两个JN5169 USB Dongle加入该网
(如果有Ubiqua,可以通过入网过程所抓的包,结合Zigbee标准,理解Zigbee的Commissioning/Provision概念)
5) 通过PC上的串口工具(如串口调试助手)可以看到Router和EndDevice的打印信息(各工程对应的Makefile中有多种打印选项供组
合)
6) ZGWUI中的很多命令可以帮助有效理解各种Zigbee概念,如ZCL和ZDP及Nwk层的命令
(强烈建议配合Ubiqua抓包,学习效率和进度都会明显加快)
7)阅读AN的代码,配合SDK中ZCL和BDB的代码,可避免新人从一开始就陷入学习复杂枯燥的Stack实现细节,从而能够比较快的理解掌握Zigbee概貌,减少产品开发的入门时间。


Zigbee问世已经十多年了,始终不温不火,十分小众地自嗨,只是从前几年才开始逐渐显露出一些生机,
愿以拙文抛砖引玉,为推广Zigbee的应用出一点力,希望大家直抒己见。





...全文
1724 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
物联网神教 2019-06-18
  • 打赏
  • 举报
回复
引用 1 楼 C_Rabbit 的回复:
zigbee的最根本的问题是无法落地,十年前还能算是新技术有潜力,现在已经快要被新技术淘汰了。
这十年内zigbee有没有技术上的升级和更新?
物联网神教 2019-05-16
  • 打赏
  • 举报
回复
NCP太弱了,作为协调器来说,可以直接做ZCL层透传。协调器可以看成一个万能的client,大可不必开启所有的cluster。
worldy 2019-02-21
  • 打赏
  • 举报
回复
还是用wifi或蓝牙实在
C_Rabbit 2019-02-20
  • 打赏
  • 举报
回复
zigbee的最根本的问题是无法落地,十年前还能算是新技术有潜力,现在已经快要被新技术淘汰了。

3,846

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 无线
社区管理员
  • 无线
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧