【经验】EmberZnet CLI指令之绑定功能实现过程
SILICON LABS在ZigBee的开发过程中,绑定不是一个API调用就能完成的功能,需要事先准备绑定的endpoint, cluster和目标地址,为方便zigbee开发者了解到绑定功能,本文特以emberznet中的z3swith 和 z3ligth为例进行说明。同时用到电脑串口工具,空中抓包工具,其使用方法这里不再介绍。
本例在Silicon Labs的开发板SLWS使用Z3Light Z3Switch两个工程可以支持绑定功能,大致的流程如下,将两个设备下载好代码上电,接下来对light输出以下指令。为了方便表示指令,用>表示从电脑向设备发,用<表示设备发给电脑的数据。
LIGHT
> plugin network-creator-security open-network |
SWITCH(在没有入网的情况下,输入)
> plugin network-steering start 0 |
在这个过程中,用Simplicity Studio v4中自带的Network Analyzer抓下数据,看到的数据大致如下:
在本例中, LIGHT设备的地址为0x0000, SWITCH设备的地址为0x7C0A(enddevice)。完成入网后可以看到SWITCH向LIGTH设备发送了一个Node_Desc_Request(), 也即是说SWITCH设备在第一时间便知道了灯的Cluster,但没有进一步的操作。此时按下SWITCH的按键PB0,LIGTH板上的LED0不会受到控制。
在连接SWITCH的电脑串口工具上可以收到
< Send to bindings: 0x00 |
事实上空中没有数据包的传输。
此时在SWITCH端,用串口工具查看绑定表的内容,
> option binding-table print < # type nwk loc rem clus node eui < 0 of 10 bindings used |
绑定表的内容是空的,而SWITCH当中的按键代码,仅有绑定发送控制指令。
代码如下:
emberAfGetCommandApsFrame()->sourceEndpoint = SWITCH_ENDPOINT; if (lastButton == BUTTON0) { emberAfFillCommandOnOffClusterToggle(); } else if (lastButton == BUTTON1) { uint8_t nextLevel = (uint8_t)(0xFF & emberGetPseudoRandomNumber()); emberAfFillCommandLevelControlClusterMoveToLevel(nextLevel, TRANSITION_TIME_DS, 0, 0);} status = emberAfSendCommandUnicastToBindings(); emberAfCorePrintln("%p: 0x%X", "Send to bindings", status); |
为了能有效控制,手工增加绑定表条目。串口显示如下:
> option binding-table set 0 0x0006 1 1 {000B57FFFE07AB24} > option binding-table print < # type nwk loc rem clus node eui < 0: UNICA 0 0x01 0x01 0x0006 0x0000 (>)000B57FFFE07AB24 < 1 of 10 bindings used |
这里要解释的是 binding-table set指令各参数的作用。
表一 绑定指令参数解释
参数 | 0 | 0x0006 | 1 | 1 | 000B57FFFE07AB24 |
意义 | 绑定表的位置 | 绑定的cluster | Src endpoint | Dest endpoint | LIGHT的EUI地址(64bit) |
这个过程,我们还可以抓包看到内中交互。通过EUI地址,SWITCH请求了LIGHT的网络地址。该地址为0x0000,这个内容也反击在上面的串口输出当中。
新建绑定表之后,接下来再按下SWITCH的PB0,LIGHT LED0便可以控制了。此时空中的数据包内容如下:
绑定的功能正常使用,本方介绍的是使用CLI指令,在实际产品中请理解表一各字段的内容,本例中各项数据均为作者已知,实际项目中要自行通过zigbee的标准交互拿到全部数据才能完成绑定。
世强代理的EFR32MG13系列无线通信芯片,可以支持ZigBee, Ble等低功耗协议,内部有Cotex-M4 内核(40MHz), 以及支持多路GPIO, 极低的休眠功耗(2uA), 较小的封装(5mmx5mm),极高的射频发射功率(19.0dBm),配合PI公司电源芯片LNK3202D可以实现单火开关,并且支持多个协议。如果需要观看demo演示或者购买评估套件请联系世强。
扩展阅读:
- |
- +1 赞 0
- 收藏
- 评论 2
本文由南城月提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】借助wireshark 来调试zigbee网络
在开发zigbee设备的过程,通常要使用zigbee sniffer , 目前可以用的工具比较多,包括TI, Silicon Labs都有自己的工具,不过还有一个开源工具做的非常优秀,特别在此推荐给大家,它可以对数据包进行规则着色,在设计的过程中会更加直观。
设计经验 发布时间 : 2019-03-31
【经验】无线SoC EFR32MG21使用ADC后EM2模式功耗较高问题如何解决?
EFR32MG21是Silicon Labs最新一代支持多协议的无线SoC,最近有用户发现EFR32MG21初始化ADC后,进入EM2模式的电流比较高,无法恢复到正常的EM2电流,本文就将分析问题的原因并给出解决方法。
设计经验 发布时间 : 2020-05-31
开发必备:超全的ZigBee技术规范,参考设计,开发资料,一站式下载集合!
Silicon Labs的EFR32MG系列无线SOC为ZigBee产品开发提供了多种产品组合, EFR32MG13系列产品Flash 512KB和RAM 64KB最适用于需要OTA的产品;EFR32MG21系列适用于性价比高的产品。本文整理一份超全的设计开发资料,一站式提供给ZigBee开发人员下载。【世强硬创沙龙2019】
设计经验 发布时间 : 2018-11-21
EFR32MG13 Mighty Gecko Multi-Protocol Wireless SoC Family Data Sheet
型号- EFR32MG13,EFR32MG13P632F512GM48-D,EFR32XG13,EFR32MG13P732F512GM48-D,EFR32MG13P733F512GM48-D,EFR32MG13P732F512IM48-D,EFR32MG13P733F512IM48-D,EFR32MG13P732F512IM32-D,EFR32MG FAMILIES,EFR32MG,EFR32MG13P732F512GM32-D,EFR32XG13P132F512GM48-AR,EFR32MG13P632F512GM32-D,EFR32MG13 FAMILY,EFR32
【经验】EFR32MG系列无线SoC使用DMA方式收发串口数据的方法
EFR32MG是Silicon Labs公司推出的多协议无线SoC,有时在实际使用中,要用DMA(直接存储器访问)方式来收发串口数据,从而减小MCU的负担。本文以EFR32MG13为例介绍如何实现使用DMA收发串口数据的方法。
设计经验 发布时间 : 2020-12-29
【经验】EFR32低功耗ZigBee芯片的节点设计之软件详解
物联网产品,在许多品类中都有低功耗要求,Silicon Labs EFR32也有着不错的低功耗特性,即要在硬件设计上进行合理的设计 ,也要在软件上进行相应的配置,本文介绍在软件开发过程要注意到的设计要点。
设计经验 发布时间 : 2019-05-03
【经验】 从头说起,如何搭建Silicon Labs ZigBee开发环境?
越来越多的智能家居产品选择择Silicon Labs的ZigBee平台(EFR32MG1x),许多原来使用TI CC2530 / NXP 5169的用户在开发入门遇到的第一个问题是:如何装Silicon Labs ZigBee开发环境?
设计经验 发布时间 : 2019-04-20
【经验】Silicon Labs ZigBee终端节点(End Device)重入网络失败后的处理方法
此前我们有专门介绍过终端节点在无法与父节点联系以后,EmberZnet默认代码是偿试重新联系父节点,以及重入网络的流程,一旦重入网络失败,则将进入SLEEP模式,如果应用不需要进入长时间的低功耗,而是另有安排时,则需要自己另外补写代码来完成目标工作。本文以一个简单的例子来说明增写代码的方法,推荐Silicon Labs推出的EFR32MG13系列无线通信芯片。
设计经验 发布时间 : 2019-02-24
【经验】EmberZnet ZCL通信如何关掉默认应答?
在ZigBee网络中,为了优化网络或者降低功耗,有些协议协议作出的应答,可以关掉,本文对关掉ZCL默认应答(default response)进行说明。
设计经验 发布时间 : 2019-02-24
【应用】低功耗无线通信芯片EFR32MG13助力ZigBee单火智能开关低功耗设计
Silicon Labs EFR32MG是一个支持ZigBee 3.0的低功耗SoC芯片,它在EM2电源模式下仍然可以周期性地唤醒工作,此时它的电流仅为2uA,甚至更低,因此用EFR32MG13作为Enddevice设备的话,平均工作电流能做到500uA以下。在这么低的功耗下,它仍然保持了ZigBee网络的连接性,可以进行实时控制,会带给用户较好的使用体验,是主流的ZigBee单火开关核心器件方案
应用方案 发布时间 : 2018-11-26
【应用】EFR32MG系列无线SoC满足IO-Link要求,助力革新无线工厂自动化方案,实现长距离输出
芯科科技的EFR32MG13、EFR32MG21和EFR32MG24为IO-Link Wireless的快速RF通道和无线电状态切换时间、出色的无线电灵敏度和超低功耗模式提供了优质的选择。
应用方案 发布时间 : 2023-03-24
电子商城
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 104,128
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥10.4994
现货: 61,779
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
查看全部1条回复