在前面,我已经搭建好开发环境,熟悉了开发流程,现在就进入正题,ZigBee通信评估环节了。根据互联网上对ZigBee通信特点的总结主要有以下几个方面:
这个是相对过失的总结,也基本符合,尽管有些出入,比如频率(868欧洲,915美国这两个载波频段占11个Channel),再比如低成本,其实JN5189是Cortex-M4内核,RAM,ROM等都很充足,但就贸泽上的售价来看,成本也不低,所以应用场合也要更高。低功耗,距离等方面应该优化的更好了比如Zigbee 3.0 中的
Green Power:ZigBee Green Power (GP) is an optionalcluster with the aim of minimising the power demands on a network node in order to support:
在评测之前,首先准备有用的调试工具,比如ZigBee的抓包工具,刚好这个USB Dongle版的JN5189就可以作为嗅探工具的硬件,软件使用的是Ubiqua ProtocolAnalyzer(官网下),之所以到官网下这个版本,是因为别的版本太旧的可能不支持,试了V1.4破解版。
接下来使用官方提供的demo,稍作修改来进行试验:
代码修改部分可以参照NXP官方开发板和大联大开发板的差异修改,比如User Button、LED等,补充一下我对协调器中串口命令处理的修改如下:
协调器负责最初形成网络,然后通过信任中心功能管理哪些其他设备可以加入网络,并将安全材料分发给那些被允许加入的设备。协调器支持ZigBee基础设备行为规范中定义的基础设备的强制集群和特性。为了演示查找和绑定功能,协调器还支持作为客户机的On/Off集群。协调器还可以充当OTA服务器。这使协调器能够发布任何ZigBee OTA升级映像。可以托管的最大图像大小是288千字节。假设示例ZigBee协调器的内存占用小于288千字节。通过USB连接到Zigbee设备的PC上运行的终端程序发出的串行命令来控制协调器。协调程序被配置为通信在115200波特,8位数据,1停止位,没有奇偶校验或流控制。串行接口不区分大小写。
一个网络可以由一个factory-new协调器组成(Network Steering但不在一个网络上),在串行上输入“form”到接口(加密狗或载体板)。然后协调器启动一个网络。使用ZigBee数据包嗅探器(运行在一个单独的USB加密狗上),可以看到周期性链接状态消息应该出现在操作通道上。
网络形成后,为了允许路由器或者终端的加入,通过串口再发送steer命令,然后协调器向网络广播一个管理许可连接请求,以打开“Permit Join”窗口,持续180秒。网络转向进程(对于不在网络上的设备)现在可以在要加入网络的设备上触发。
绑定节点“find”命令, “查找和绑定”是ZigBee控制设备通过匹配操作找到ZigBee控制设备的过程群集并在绑定表中创建条目。协调器支持作为尝试查找的“启动器”进行查找和绑定要绑定到的目标。为了演示,协调器将On/Off集群作为客户机支持,因此查找和绑定过程寻找支持开/关集群的设备作为服务器,以便创建绑定。
本演示中的此设备的操作功能由On/Off集群提供。现在可以发送OnOff了,当在串行接口中输入“toggle”时,切换命令到绑定的设备(在绑定表中)。
路由器和终端也都有其承担的功能。详见ZigBee Demo Applications User's Guide.pdf
由于时间仓促,没有尝试OTA功能。通过这一次适用让我认识到了Zigbee中的一些高端SoC ,JN5189、JN5188,K32W061,K32W041,再次感谢厂家和平台给予的机会。
更多回帖