找回密码
 注册
搜索
查看: 1675|回复: 0

[讨论] 关于如何上手Zigbee产品开发的一些个人感悟

[复制链接]
发表于 2019-2-18 01:20:31 | 显示全部楼层 |阅读模式
分享一些个人关于如何上手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/wir ... gbee-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的应用出一点力,希望大家直抒己见。





高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-23 02:01 , Processed in 0.070880 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表