【经验】Silicon Labs ZigBee终端节点(End Device)重入网络失败后的处理方法

2019-02-24 世强
无线通信芯片,zigbee芯片,EFR32MG13,LNK3202D 无线通信芯片,zigbee芯片,EFR32MG13,LNK3202D 无线通信芯片,zigbee芯片,EFR32MG13,LNK3202D 无线通信芯片,zigbee芯片,EFR32MG13,LNK3202D

此前我们有专门介绍过终端节点在无法与父节点联系以后,EmberZnet默认代码是偿试重新联系父节点,以及重入网络的流程,一旦重入网络失败,则将进入SLEEP模式,如果应用不需要进入长时间的低功耗,而是另有安排时,则需要自己另外补写代码来完成目标工作。本文以一个简单的例子来说明增写代码的方法。

 

ZigBee重入网络失败后的行为是可以自行定义的,因此协议栈只提供了休眠这个比较普遍适用的代码,如果产品在被动地与网络断开后,并不是期望进入休眠,就需要开发者自行定义了。在EmberZnet中,通过填写回调函数可以实现这一目的。

 

首先,我们要找到终端节点掉网后会触发的回调函数。通过阅读代码,可以判断该回调函数的名称是:emberAfPluginEndDeviceSupportPreNetworkMoveCallback()

 

通过在IAR中进行仿真,可以看到调用的关系如下:


 

函数调用层级关系如下(灰色部分代码不可见):

emberAfMain()

emberTick()

emMacPacketSendCompleteCallback()

emNetworkTransmitComplete()

emAfPollCompleteHandler()

emberAfStartMoveCallback()

emberAfPluginEndDeviceSupportPreNetworkMoveCallback()

 

进一步阅读代码可以了解到, 在Polling的过程中,返回结果为:“应答”的情况下(EMBER_MAC_NO_ACK_RECEIVED)就是出现了与父节点失去连接。并且在最后一层调用就到了协议栈留出的自定义回调函数。

 

协议栈的自定义回调函数设计准则是,如何返回值为true,表示该部分自行处理,且处理流程在函数内部结束,函数返回时,协议不会有任何后续的处理。返回为false,则表示用户没有处理,或者希望保留协议栈默认的处理流程作为目标流程的延续。

 

下面的代码是回调函数的调用环境范例: 

bool emberAfStartMoveCallback(void)

{

    // The consumer of the   emberAfPluginEndDeviceSupportPreNetworkMoveCallback

    // callback is given a chance to not issue a network move

    if (false == emberAfPluginEndDeviceSupportPreNetworkMoveCallback()) {

      if (!emberAfMoveInProgressCallback()) {

        scheduleMoveEvent();

        return true;

      }

  }

    return false;

}

 

至此,我们所有的准备工作已经完成,本例中我们要实现设备不停的重新入网,则该回调函数可以写为:

#define REJOIN_DELAY_QS  (10 *   4) // 10 Seconds

extern EmberEventControl   emberAfPluginEndDeviceSupportMoveNetworkEventControls[];

bool emberAfPluginEndDeviceSupportPreNetworkMoveCallback(void)

{

  static uint16_t   rejoinAttempts  =  0;

 

 

    emberAfNetworkEventControlSetDelayQS(emberAfPluginEndDeviceSupportMoveNetworkEventControls,

                                           (rejoinAttempts == 0

                                          ? 0

                                          :   REJOIN_DELAY_QS));

 

    emberAfAppPrintln("Rejoin...    %d", rejoinAttempts);

          

  rejoinAttempts++;

  if (   rejoinAttempts > 0xFFFE )

rejoinAttempts = 1; //   restart form 1 when overflow

 

  return true; // 重入网的流程自行控制,不再由协议栈管理。

}

 

经过测试, 这家设备在与父节点失去连接后,会自行重新入网,直到重回网络。

 

世强代理SILICON LABS推出的EFR32MG13系列无线通信芯片,可以支持ZigBee, Ble等低功耗协议,内部有Cotex-M4 内核(40MHz), 以及支持多路GPIO,  极低的休眠功耗(2uA), 较小的封装(5mmx5mm),极高的射频发射功率(19.0dBm),配合PI公司电源芯片LNK3202D可以实现单火开关,并且支持多个协议。如果需要观看demo演示或者购买评估套件请联系世强。

  

扩展阅读:

EFR32MG13芯片手册  

EFR32MG13开发环境  

ZigBee终端节点离网后流程       

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 3

本文由南城月提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

平台合作

评论

   |   

提交评论

全部评论(3

  • VictorD Lv5 技术专家 2020-08-11
    你好,您上面说的方法的确可行,不过我通过测试发现,只是在睡眠设备第一次丢失父节点的情况会正常循环发送beacon request,但是在该设备不重新上电的情况下第二次、或者多次让其丢失父节点,则该设备会一直发送data request,emberAfAddToCurrentAppTasksCallback(EMBER_AF_FORCE_SHORT_POLL_FOR_PARENT_CONNECTIVITY);一直在短周期Poll,没有进入下一步network down的状态,看了代码脑壳有点大 提问来源:https://www.sekorm.com/news/57203149.html
    • asd回复: 您好。根据您的描述,您这里在掉线时不需要添加 EMBER_AF_FORCE_SHORT_POLL_FOR_PARENT_CONNECTIVITY,否则会出现未 rejoin 成功时反复执行 short polling。请直接使用 end-device-move.c 中的 move 机制来执行rejoin,当结束之后您可以根据当前网络状态再次调用 emberAfStartMoveCallback(void) 来启动 move 流程 。

      查看全部1条回复

  • 用户17941269 Lv4. 资深工程师 2020-12-11
    感谢分享
  • VictorD Lv5. 技术专家 2020-08-10
    你好,您上面说的方法的确可行,不过我通过测试发现,只是在睡眠设备第一次丢失父节点的情况会正常循环发送beacon request,但是在该设备不重新上电的情况下第二次、或者多次让其丢失父节点,则该设备会一直发送data request,emberAfAddToCurrentAppTasksCallback(EMBER_AF_FORCE_SHORT_POLL_FOR_PARENT_CONNECTIVITY);一直在短周期Poll,没有进入下一步network down的状态,看了代码脑壳有点大
没有更多评论了

相关推荐

【经验】借助wireshark 来调试zigbee网络

在开发zigbee设备的过程,通常要使用zigbee sniffer , 目前可以用的工具比较多,包括TI, Silicon Labs都有自己的工具,不过还有一个开源工具做的非常优秀,特别在此推荐给大家,它可以对数据包进行规则着色,在设计的过程中会更加直观。

2019-03-31 -  设计经验 代理服务 技术支持 采购服务

【经验】 从头说起,如何搭建Silicon Labs ZigBee开发环境?

越来越多的智能家居产品选择择Silicon Labs的ZigBee平台(EFR32MG1x),许多原来使用TI CC2530 / NXP 5169的用户在开发入门遇到的第一个问题是:如何装Silicon Labs ZigBee开发环境?

2019-04-20 -  设计经验 代理服务 技术支持 采购服务

【经验】EFR32低功耗ZigBee芯片的节点设计之软件详解

物联网产品,在许多品类中都有低功耗要求,Silicon Labs EFR32也有着不错的低功耗特性,即要在硬件设计上进行合理的设计 ,也要在软件上进行相应的配置,本文介绍在软件开发过程要注意到的设计要点。

2019-05-03 -  设计经验 代理服务 技术支持 采购服务

深圳物联网展观察:Matter&Zigbee双模参考设计助力提升市场采用率

在甫于上周圆满落幕的深圳物联网展中,Silicon Labs(亦称“芯科科技”)参与连接标准联盟(Connected Standard Alliance)的联合展台并展出基于MG26无线多协议SoC的Matter &Zigbee Concurrent参考设计,助力企业轻松应对市场变革,并持续拓展Matter标准在市场上的能见度和采用率。

2024-10-21 -  原厂动态 代理服务 技术支持 采购服务

【应用】支持PTA共存机制的WIFI、ZigBee、BlueTooth和4G多协议智能家居网关应用方案

早期的多协议智能家居网关大多不支持共存机制,在拥挤的2.4GHz频段中,存在着相互干扰的问题,影响通讯效果。为解决上述问题,本方案采用支持PTA共存机制的WIFI、ZigBee、BlueTooth的SOC芯片和全网通4G模块,并搭配高性价比的电源和高精度晶振,实现支持共存机制的多协议智能家居网关应用方案。

2020-04-11 -  应用方案 代理服务 技术支持 采购服务

【选型】ZigBee Soc芯片EM3585与EFR32MG21(Serial 2)参数对比

自2013以来,Silicon Labs(原Ember)推出了EM35x系列,这个方案凭借极好的协议栈运行稳定性,在大量产品中得到应用。2019年EFR32MG Serial 2推出后,在性能与价格方面都体现出具大的优势。加之许多原来在用EM3585,EM357的产品也遇到了一些供应和维护的困难,在进行产品升级或者降成本两个方面考虑,都会遇到选型困难,希望本文可以可以帮助大家了解到ZigBee芯片

2019-07-26 -  器件选型 代理服务 技术支持 采购服务

请问如何实现智能家居的语音控制联动?

可以采用语音AIOT方案,即使用智能语音芯片进行语音功能控制,同时增加WiFi、zigbeeg等无线模块进行设备间互联,实现用语音控制所有连接的智能家居设备。

2024-07-29 -  技术问答 代理服务 技术支持 采购服务

【应用】基于EFR32MG21作为zigbee接入单元和SGM2205作为电源转换芯片设计的智能家居zigbee网关产品

笔者有参与一款智能家居zigbee网关产品研发,zigbee单元基于芯科科技最新Gecko系列2高性价比EFR32MG21A020F512IM32-B芯片设计,WiFi单元基于专注于物联网应用的乐鑫ESP32-DOWD芯片设计,并选用圣邦微SGM2205-ADJXTDB8G/TR电源芯片实现5V转3.3V为zigbee和WiFi芯片供电。

2019-08-15 -  应用方案 代理服务 技术支持 采购服务

Zigbee模组为Blaze Automation开发网关、控制器和传感器系统提供完整解决方案

Silicon Labs提供Zigbee芯片组与模块(包括MGM21和MGM24)和软件协议栈,为Blaze Automation提供完整的开发支持,并通过在无线连接专业领域的广度和深度,助力该公司实现其包含网关、控制器和传感器系统的B.One OS物联网解决方案。

2024-01-12 -  应用方案 代理服务 技术支持 采购服务

【应用】国民技术32位主控MCU用于智能家居zigbee,最高主频108M,支持浮点运算和DSP指令

随着时代的进步,越来越多的家庭使用上了智能家居,通过它可以将家中的各种电器通过无线方式非常方便地有机组织起来,形成一个完整的系统,方便了人们的生活,实现了系统化的管理。本文介绍国民技术的MCU-N32G432R8L7,一款国产32位高性能主控芯片。

2023-02-11 -  应用方案 代理服务 技术支持 采购服务

【应用】东胜DSGW-030网关支持双Zigbee模块,提供智能家居网关更全面和强大连接功能,信号不受干扰

东胜为客户提供全面且具有成本效益的解决方案,包括Zigbee智能网关。在DSGW-030外形的基础上,将主芯片调整为MTK7628(MIPS24KEc(580MHZ)),并重新设计了PCBA。另外,Zigbee智能插座也可供选择.这款网关不仅支持双Zigbee模块,还充分利用了主芯片内置的2.4GHz Wi—Fi功能,在连接方面功能更全面、更强大,同时又不会让信号受到干扰。

2023-09-20 -  应用方案 代理服务 技术支持 采购服务

请问下世强的大神们,针对芯科efr32mg系列zigbee芯片 ,目前我们网关并没有采用host+ncp方式,网关主控【host】跟协调器采用自定义串口协议,这种情况下,通过网关主控可以给协调器和子设备进行ota升级么?如果可以请教下具体的操作流程?

你好,这种host和EFR32MG之间是自定义串口协议我们称作SOC模式,这种模式协调器选用的BootLoader是Application或者Local Storage,这两种BootLoader无法直接给协调器升级。但是SOC模式是可以给子设备OTA升级的,请参考如何在Gateway Soc (internal flash)中实现 Ota Server?或如何在Gateway Soc (external flash)中实现 Ota Server?

2020-05-11 -  技术问答 代理服务 技术支持 采购服务

【经验】如何建立一个EFR32无线通信芯片的裸机程序

为了便于测试,部分用户需要在EFR32MG运行简单的代码,以进行快速的功能验证,比如测试功耗等。为了能够实现这样的目标,便可以先不使用zigbee协议栈,降低功能验证的复杂度,并可以加快工程师熟悉EFR32平台,本文以一个串口通信程序为例子,介绍应用官方在github提供的工程模板,生成裸机工程进行验证的方法。

2019-04-24 -  设计经验 代理服务 技术支持 采购服务

AN724:在单个Zigbee芯片上设计多个网络

本文档探讨了在单个Zigbee芯片上设计多网络功能的设计考虑因素。主要内容包括多网络与多PAN的区别、设计注意事项、网络上下文和堆栈API、应用框架支持、令牌以及多网络时序考虑。文档详细介绍了如何在单个Zigbee无线电上实现设备在两个Zigbee网络上的并发操作,并讨论了不同配置下的限制和权衡。

SILICON LABS

2023/3/1  - 应用笔记或设计指南  - Rev. 0.9 代理服务 技术支持 采购服务 查看更多版本
展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:Mighty Gecko Multi-Protocol Wireless SoC

价格:¥27.0929

现货: 62,767

品牌:SILICON LABS

品类:Mighty Gecko Multi-Protocol Wireless SoC

价格:¥15.3301

现货: 2,800

品牌:西南集成

品类:光伏智能模块

价格:

现货: 0

品牌:西南集成

品类:光伏智能模块

价格:

现货: 0

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.5305

现货: 94,130

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥8.1764

现货: 93,329

品牌:SILICON LABS

品类:Wireless SoC

价格:¥35.3989

现货: 91,810

品牌:SILICON LABS

品类:Wireless SoC

价格:¥31.7756

现货: 88,140

品牌:SILICON LABS

品类:Transceiver

价格:¥15.8878

现货: 84,434

品牌:SILICON LABS

品类:Wireless SoC

价格:¥19.9760

现货: 80,352

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:SILICON LABS

品类:Switch Hall Effect Magnetic Position Sensor

价格:¥2.2924

现货:126,000

品牌:SILICON LABS

品类:Light Sensor

价格:¥20.3400

现货:28,003

品牌:SILICON LABS

品类:8位MCU

价格:¥4.9000

现货:12,000

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥10.1700

现货:10,000

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.7900

现货:3,451

品牌:SILICON LABS

品类:芯片

价格:¥14.5550

现货:1,874

品牌:SILICON LABS

品类:Wireless SoC

价格:¥15.1400

现货:1,455

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥11.1200

现货:1,201

品牌:SILICON LABS

品类:8位MCU

价格:¥56.0000

现货:550

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥16.8500

现货:550

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

物联网通信玻璃钢天线定制

可定制玻璃钢天线的工作频段:100MHz-40GHz;工作温度:-40℃~85℃;增益:2dBi-50dBi;尺寸范围:100mm~30000mm。

最小起订量: 100pcs 提交需求>

EDA芯片设计软件免费使用

世强深圳实验室提供Robei EDA软件免费使用服务,与VCS、NC-Verilog、Modelsim等EDA工具无缝衔接,将IC设计高度抽象化,并精简到三个基本元素:模块、引脚、连接线,自动生成代码。点击预约,支持到场/视频直播使用,资深专家全程指导。

实验室地址: 深圳 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

平台客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面