【经验】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
本文由南城月提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】无线SoC EFR32MG21使用ADC后EM2模式功耗较高问题如何解决?
EFR32MG21是Silicon Labs最新一代支持多协议的无线SoC,最近有用户发现EFR32MG21初始化ADC后,进入EM2模式的电流比较高,无法恢复到正常的EM2电流,本文就将分析问题的原因并给出解决方法。
【经验】借助wireshark 来调试zigbee网络
在开发zigbee设备的过程,通常要使用zigbee sniffer , 目前可以用的工具比较多,包括TI, Silicon Labs都有自己的工具,不过还有一个开源工具做的非常优秀,特别在此推荐给大家,它可以对数据包进行规则着色,在设计的过程中会更加直观。
开发必备:超全的ZigBee技术规范,参考设计,开发资料,一站式下载集合!
Silicon Labs的EFR32MG系列无线SOC为ZigBee产品开发提供了多种产品组合, EFR32MG13系列产品Flash 512KB和RAM 64KB最适用于需要OTA的产品;EFR32MG21系列适用于性价比高的产品。本文整理一份超全的设计开发资料,一站式提供给ZigBee开发人员下载。【世强硬创沙龙2019】
SILICON LABS ZIGBEE 无线 Gecko SoC选型表
EFR32MG无线 Gecko SoC 是在 IoT 设备上实现节能多协议连网的理想之选。芯片解决方案结合了 76.8MHz ARM和高性能 2.4GHz 无线电,旨在为 IoT连接应用提供行业领先的节无线 SoC。
产品型号
|
品类
|
Protocol Stack
|
Frequency Band @ Max TX Power(GHz@dBm)
|
Flash(kB)
|
RAM(kB)
|
GPIO(个数)
|
Operating Temperature(℃)
|
Storage Temperature(℃)
|
Pin Count
|
AVDD Supply Voltage(V)
|
EFR32MG12P433F1024GL125-C
|
Gecko Multi-Protocol Wireless SoC
|
Bluetooth LE Zigbee Thread Proprietary, Wi-SUN
|
2.4GHz @ 19dBm, Sub-GHz @ 20dBm
|
1024kB
|
256kB
|
65
|
-40℃~85℃
|
-50℃~150℃
|
BGA125
|
1.8V~3.8V
|
选型表 - SILICON LABS 立即选型
【经验】EFR32MG系列无线SoC使用DMA方式收发串口数据的方法
EFR32MG是Silicon Labs公司推出的多协议无线SoC,有时在实际使用中,要用DMA(直接存储器访问)方式来收发串口数据,从而减小MCU的负担。本文以EFR32MG13为例介绍如何实现使用DMA收发串口数据的方法。
【经验】Silicon Labs ZigBee终端节点(End Device)重入网络失败后的处理方法
此前我们有专门介绍过终端节点在无法与父节点联系以后,EmberZnet默认代码是偿试重新联系父节点,以及重入网络的流程,一旦重入网络失败,则将进入SLEEP模式,如果应用不需要进入长时间的低功耗,而是另有安排时,则需要自己另外补写代码来完成目标工作。本文以一个简单的例子来说明增写代码的方法,推荐Silicon Labs推出的EFR32MG13系列无线通信芯片。
【经验】EFR32低功耗ZigBee芯片的节点设计之软件详解
物联网产品,在许多品类中都有低功耗要求,Silicon Labs EFR32也有着不错的低功耗特性,即要在硬件设计上进行合理的设计 ,也要在软件上进行相应的配置,本文介绍在软件开发过程要注意到的设计要点。
【经验】 从头说起,如何搭建Silicon Labs ZigBee开发环境?
越来越多的智能家居产品选择择Silicon Labs的ZigBee平台(EFR32MG1x),许多原来使用TI CC2530 / NXP 5169的用户在开发入门遇到的第一个问题是:如何装Silicon Labs ZigBee开发环境?
【经验】如何使用免费开源工具Wireshark监听加密的zigbee网络
Zigbee 3.0的网络有比较严格的网络加密要求,在产品的使用过程中会比较安全,但是如果在调试阶段就会比较麻烦。加密的数据以往都是借助于付费的专业工具ubiqua进行抓包和分析,实际上,免费的开源工具wireshark也可以解密的。本文以wireshare+CC2531dongle的软硬件为基础,给大家介绍使用wireshark来抓包并解密的方法。
【经验】EFR32MG的ZigBee工程中如何实现串口读写功能?
串口是ZigBee工程中最常用的一种通讯方式,在Silicon Labs多协议无线SoC EFR32MG的ZigBee工程中如何简单的实现串口读写呢?本文指导大家基于Z3LightSOC参考工程,直接调用串口的相关函数,实现串口读写功能。
【应用】EFR32MG系列无线SoC满足IO-Link要求,助力革新无线工厂自动化方案,实现长距离输出
芯科科技的EFR32MG13、EFR32MG21和EFR32MG24为IO-Link Wireless的快速RF通道和无线电状态切换时间、出色的无线电灵敏度和超低功耗模式提供了优质的选择。
电子商城
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,128
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
查看全部1条回复