【经验】Silicon Labs 蓝牙Mesh SoC版Provisioner流程介绍
SILICON LABS的蓝牙Mesh SoC EFR32BG是目前市场上非常流行的蓝牙Mesh方案,该芯片支持BLE5.1的全部特性,支持BT Mesh 1.1的全部特性,具有技术上的先进性。在做蓝牙Mesh网关时,需要使用EFR32BG作为Provisioner,本文介绍下Silicon Labs SoC版Provisioner的流程。
初始化:
按需初始化,作为Provisioner,必须要有config client init
gecko_stack_init(&config);
gecko_bgapi_class_dfu_init();
gecko_bgapi_class_system_init();
gecko_bgapi_class_le_gap_init();
gecko_bgapi_class_le_connection_init();
gecko_bgapi_class_gatt_init();
gecko_bgapi_class_gatt_server_init();
gecko_bgapi_class_hardware_init();
gecko_bgapi_class_flash_init();
gecko_bgapi_class_test_init();
gecko_bgapi_class_sm_init();
gecko_bgapi_class_mesh_vendor_model_init();
mesh_native_bgapi_init();
gecko_bgapi_class_mesh_config_client_init();
gecko_initCoexHAL();//WIFI与蓝牙共存功能的初始化
1、系统初始化完成:
case gecko_evt_system_boot_id:
如果此时有任意按键按下,则恢复出厂,否则进行正常功能初始化。
对Provisioner功能进行初始化:gecko_cmd_mesh_prov_init();等待初始化完成事件。
2、Provisioner功能初始化完成:
case gecko_evt_mesh_prov_initialized_id:
首先检查设备是否已经建立网络,如果未建立网络,则需要创建网络,创建网络就是创建networkkey:gecko_cmd_mesh_prov_create_network(0, (const uint8 *)"");
创建Appkey:gecko_cmd_mesh_prov_create_appkey(netkey_id, 0, (const uint8 *)"");
然后开始扫描Unprovisioned Device:gecko_cmd_mesh_prov_scan_unprov_beacons();
开始定时扫描按键:gecko_cmd_hardware_set_soft_timer(TIMER_MS_2_TIMERTICK(100), TIMER_ID_BUTTON_POLL, 0);(这个函数的意思是100ms后会产生一个gecko_evt_hardware_soft_timer_id的事件,该事件的参数就是TIMER_ID_BUTTON_POLL)
等待设备扫描结果。
3、Provisioner扫描到设备:gecko_evt_mesh_prov_unprov_beacon_id
获取信息,读取设备的DCD数据:
gecko_cmd_hardware_set_soft_timer(TIMER_MS_2_TIMERTICK(100), TIMER_ID_GET_DCD, 1);这个实际是一个定时器事件,最后的参数1,代表仅触发一次,0,代表重复触发。
这个函数表示100ms后。会触发id为TIMER_ID_GET_DCD的定时器事件。
4、定时器事件触发:gecko_evt_hardware_soft_timer_id
Id为TIMER_ID_GET_DCD: case TIMER_ID_GET_DCD:
开始读取dcd数据:gecko_cmd_mesh_config_client_get_dcd(netkey_id, provisionee_address, 0);
等待dcd数据。
5、DCD数据获得:gecko_evt_mesh_config_client_dcd_data_id
先保存起来,直到获取所有dcd数据,触发:
gecko_evt_mesh_config_client_dcd_data_end_id:事件。
6、DCD数据获取完成gecko_evt_mesh_config_client_dcd_data_end_id:
解析dcd数据,把设备包含的Element/Model解析出来:DCD_decode();
把开关、灯的Model解析出来准备绑定和设置订阅、发布:config_check();
在这里面把需要订阅和发布的参数首先保存起来,再集中处理:
config_pub_add(SWITCH_MODEL_ID, 0xFFFF, LIGHT_CTRL_GRP_ADDR);开关的Model发布到LIGHT_CTRL_GRP_ADDR地址。c config_sub_add(SWITCH_MODEL_ID, 0xFFFF, LIGHT_STATUS_GRP_ADDR);开关的Model订阅来自LIGHT_STATUS_GRP_ADDR的消息。
解析完成后,准备给设备发送AppKey: trigger_next_state(TIMER_ID_APPKEY_ADD);
7、在定时器事件case TIMER_ID_APPKEY_ADD:中给设备发送AppKey:
gecko_cmd_mesh_config_client_add_appkey(netkey_id, provisionee_address, appkey_id, netkey_id);等待设备反馈收到AppKey。
8、收到设备的AppKey反馈:gecko_evt_mesh_config_client_appkey_status_id:
准备发起AppKey对Model的反馈:trigger_next_state(TIMER_ID_APPKEY_BIND);
在定时器的TIMER_ID_APPKEY_BIND定时器ID事件下,对将Model和AppKey进行绑定:
gecko_cmd_mesh_config_client_bind_model(netkey_id,
provisionee_address,
0, // element index
appkey_id,
vendor_id,
model_id);
等待绑定完成事件。
9、绑定完成事件触发:gecko_evt_mesh_config_client_binding_status_id
准备Model消息发布的配置:trigger_next_state(TIMER_ID_PUB_SET);
在TIMER_ID_PUB_SET事件下,将之前保存的待配置发布的列表中的model和address进行配置:gecko_cmd_mesh_config_client_set_model_pub(netkey_id,
provisionee_address,
0, /* element index */
vendor_id,
model_id,
pub_address,
appkey_id,
0, /* friendship credential flag */
3, /* Publication time-to-live value */
0, /* period = NONE */
0, /* Publication retransmission count */
50 /* Publication retransmission interval */
);
等待发布配置完成事件。
10、发布的配置完成的事件:gecko_evt_mesh_config_client_model_pub_status_id
准备进行订阅的配置:trigger_next_state(TIMER_ID_SUB_ADD);同订阅的流程一样。
11、再等待下一个unprovisioned Device,重复流程。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由Song提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
实测蓝牙Mesh 1.1的性能更新
蓝牙Mesh 1.1版本中引入了远程配置和无线设备固件更新(OTA DFU)的功能。在这篇技术博客中,我们通过广泛部署基于Silicon Labs(亦称“芯科科技”)的xG24和xG21无线SoC开发板的节点并组成网络,来分析在多个测试节点上进行的一系列实验结果,进一步探索蓝牙Mesh 1.1网络的性能,包括网络延迟、远程配置和OTA, DFU性能的详细测试设置和结果等实用数据。点击文末的阅读原文
【经验】低功耗蓝牙SoC芯片EFR32BG系列的UART串口通信参考代码与解析
EFR32BG是Silicon Labs公司的高性能低功耗蓝牙SoC芯片。支持蓝牙5.0、5.1协议和蓝牙Mesh协议,发射电流3.5mA@0dbm,接收电流仅有2.6mA。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居;在开发EFR32BG蓝牙SoC的代码过程中,经常需要用到uart通信,本文详细介绍如何找到参考代码以及代码解析。
【经验】蓝牙MESH网关程序中的Vendor Model的OpCode的设置
在使用FR32BG21开发蓝牙MESH网关的程序时,我们有时需要使用Vendor Model功能,这时我们需要定义OpCode,在程序中我们可以查到默认定义了两个Opcode:0X00,0X01,这个定义与SIG标准有些冲突,这是什么原因?我们要如何定义OpCode?
Silicon Labs(芯科科技) 物联网无线产品选型指南
目录- Company and product overview Bluetooth Modules Bluetooth Modules Overview Bluetooth Modules Bluetooth Low Energy Kits Bluetooth Modules Blue Gecko Wireless Modules Bluetooth Modules Bluetooth Xpress Modules Bluetooth Modules Blue Gecko Wireless SoCs Bluetooth Modules Bluetooth BR/EDR Kits Bluetooth Modules Bluetooth BR/EDR Modules proprietary wireless devices proprietary wireless devices Proprietary Kits Proprietary Wireless Sub-GHz and 2.4 GHz Dual Band Devices Proprietary Wireless Sub-GHz Devices Wi-Fi Modules Wi-Fi Modules Wi-Fi Kits Mighty Gecko Modules Mighty Gecko Modules Mighty Gecko Development Kit Mighty Gecko Modules Mighty Gecko Mesh Networking Wireless SoCs Z-Wave Modules Z-Wave Modules Z-Wave Reference Designs Z-Wave Modules Z-Wave Development Kits
型号- EBWT41U,ZDB5202,SLEXP8027A,EFR32FG13P233F512GM48,EFR32™,SLWSTK6061B,MGM12P,EZR32WG,EFR32FG13P231F512GM32,EFR32BG12P232F1024GM68,EFR32MG13P733F512GM48,EFR32BG13P532F512GM32,WT12,AMW007-E04,EFR32,WT32I,EZR32™,BGM121,BGM11S,WT11U,EFR32FG,EFR32FG14P233F256GM48,SLWSTK6062B,RBK-ZW500DEV-CON2,SLWSTK6120A,SLWSTK6063B,RBK-ZW500,EFR32BG12P132F1024GL125,SI4XXX,ZM5101,ZM5304,ZDB5101,ACC-UZB3-U-BRG,BGM111,EBWT11U,EFR32FG14P233F128GM48,ACC-UZB3-U-STA,MGM111,ZDB5304,SLWSTK6000B,SLWSTK6020B,WT32,SI10XX,SLWSTK6101C,EFR32MG13P632F512GM32,AMW037,EFR32FG12P433F1024GM48,DKWT32I-A,EFR32MG12P132F1024GL125,EFR32MG1P133F256GM48,BGM13S,EZR32HG,BGM13P,BGX13P,EZR32LG,MGM13P,WT41U,EFR32BG13P733F512GM48,BGX13S,SLWSTK6060B,MGM13S,SLWSTK6065B,WGM110,RBK-ZW500DEV-EMB2,EFR32BG12P433F1024GL125,EBWT12-A,ZM5202,AMW007,SLTB004A,EFR32MG14P733F256GM48
芯科科技针对蓝牙Mesh 1.1标准版本发布技术更新,增强安全性和系统可靠性,引入许多通信增强功能
芯科科技宣布针对最新的蓝牙Mesh 1.1标准版本发布技术更新,包括改进了安装和更新过程,增强安全性和系统可靠性,并引入许多通信增强功能。这些功能提升将在许多商业和工业应用中发挥作用,例如商业照明系统,有助于降低进入连接网络照明控制(NLC)系统的门槛。
芯科科技支援新的蓝牙®网状网络功能增强和网络照明控制标准化配置文件
中国,北京 - 2023年9月21日 – 致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB),今日宣布其支持蓝牙技术联盟(Bluetooth SIG)针对蓝牙网状网络(Bluetooth Mesh)实现的新功能增强,以及他们新的网络照明控制(NLC)标准,该标准旨在为使用蓝牙网状网络的商业和工业照明提供一种统一标准。
【技术】蓝牙5与蓝牙MESH,增加蓝牙传输距离并将蓝牙设备进行组网通讯
Silicon Labs公司作为世界顶级的物联网芯片、软件、解决方案供应商,推出支持蓝牙5.0的SOC芯片EFR32BG系列和通过认证、集成天线、远距离传输、小封装的蓝牙模块BGM系列。Silicon Labs公公司针对蓝牙产品,提供整套完善的开发工具,蓝牙Mesh网络开发包,例程和手机APP代码。运用Silicon Labs公司提供的丰富资源,可以提高设计产品的稳定性,加快上市时间。
Silicon labs 蓝牙SOC选型表
Cortex-M4/M33内核,支持蓝牙5,待机功耗1.2μA;实测网络节点100+,工作温度高达125℃,提供芯片和模块。其最新的1.4μA超低功耗蓝牙SoC EFR32BG22具有主频高达76.8MHz Cortex-M33内核,16位ADC,支持蓝牙5.2与AoX定位和蓝牙Mesh协议。
产品型号
|
品类
|
MCU Core
|
Core Frequency (MHz)
|
Flash
|
RAM
|
Secure Vault
|
Bluetooth
|
Bluetooth 5
|
Bluetooth Mesh
|
Cryptography
|
Output Power Range (dBm)
|
GPIO
|
I²C
|
SPI
|
I²S
|
Receive Sensitivity
|
ADC
|
Comparators
|
Temperature Range (ºC)
|
Package Type
|
Package Size(mm)
|
EFR32BG24B110F1536IM48-B
|
Bluetooth®Wireless SoC
|
ARM Cortex-M33
|
78
|
1536
|
256
|
High
|
5.3
|
Bluetooth 5
|
Bluetooth Mesh
|
AES-128;AES-256;ECC;SHA-1;SHA-2
|
-20 to 10
|
28
|
2
|
3
|
1
|
-97.6DBM(1Mbit/s GFSK)
|
12-bit,SAR,1Msps
|
2
|
-40 to 125
|
QFN48
|
6x6
|
选型表 - SILICON LABS 立即选型
思为无线发布低功耗、小体积、远距离蓝牙5.2数传模块BLE5201,发射功率最高6dBm
思为无线BLE5201蓝牙5.2数传模块具备超低发射和接收电流(发射功率为0dBm时3.6mA;接收2.6mA)和高性能、低功耗M33内核,可将纽扣电池的寿命延长至十年。目标应用包括蓝牙Mesh低功耗节点、智能门锁、个人医疗保健和健身设备。
【经验】如何开启低功耗蓝牙SoC芯片EFR32BG系列参考代码soc-empty工程中的调试串口打印输出功能
EFR32BG是Silicon Labs公司的高性能低功耗蓝牙SoC芯片。支持蓝牙5.1协议和蓝牙Mesh协议,支持AOA定位功能,苹果HomeKit,支持多种硬件加密等。发射电流3.5mA@0dbm,接收电流仅有2.6mA。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居。开发过程中,经常需要用到uart串口调试,本文详细介绍如何在soc-empty工程中开启调试串口。
【技术】网状网络技术三分天下,蓝牙Mesh欲异军突起
随着2009年蓝牙低功耗(BluetoothLowEnergy)的切入,再到现在的蓝牙网状网络(Mesh),我们正看到并将看到有更多的新应用出现。早期,家庭/楼宇自动化、信标、照明和资产追踪/管理等组网应用主要采用Zigbee网络。然而,Zigbee需要设计路由器/网关,这对开发者形成负担,因此行业也进一步提出了基于IPv6的Thread网状网络标准,形成目前技术三分天下的局面。
“蓝牙开发流程”详解低功耗蓝牙5.4、蓝牙Mesh和定位服务开发步骤
SILICON LABS(芯科科技)致力于为客户提供最佳蓝牙解决方案。我们的蓝牙协议栈支持长距离、1M 和 2M PHY,使设备能够进行更远距离或更高速率的通信。该蓝牙协议栈还支持方向查找和其他定位服务,可实现室内导航、资产跟踪和接近检测等应用。此外,我们的蓝牙设备可在 SoC、NCP 和 RCP 模式下运行,这三种不同的集成和功能模式可提供成本、性能和灵活性之间的不同权衡。
【经验】如何使用Simplicity Studio V5的蓝牙工程在EFR32BG22中导入外设串口功能?
Silicon Labs公司的蓝牙SoC产品EFR32BG22支持Bluetooth5.2标准及蓝牙MESH网络功能,有客户需要在Simplicity Studio V5中的蓝牙工程SOC-empty下导入串口的功能,实现串口调试功能,本文将带来具体实现步骤。
【经验】EFR32BG蓝牙SOC芯片如何用SimplicityStudio设置蓝牙绑定操作
EFR32BG是Silicon Labs公司的高性能低功耗蓝牙SOC芯片。Silicon Labs公司针对蓝牙产品,提供整套完善的开发工具,蓝牙Mesh网络开发包,例程和手机APP代码,可提高设计产品的稳定性,加快上市时间。本文主要是介绍一下如何使用Silicon Labs软件中的BGTOOL工具实现蓝牙的绑定的操作,实现蓝牙主从绑定操作的目的主要是下次链接可以快速配对。
【IC】芯科科技具备丰富的蓝牙SoC和模块产品阵容,满足从家庭到商业网状网络的设计需求
藉由芯科科技的专业知识、软硬件产品组合以及以开发人员需求为中心的资源库,芯科科技至今已帮助行业部署了超过1亿个网状网络节点。针对蓝牙Mesh标准开发,芯科科技具备丰富的蓝牙SoC和模块产品阵容,包括BG21、BG22、BG24和BG27等系列,并制作了产品简介和选型指南以提供开发者参考评估。
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,878
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
支持Bluetooth SIG最新的测试规范,支持2.0(EDR), 2.1(EDR), 3.0(HS), 4.0(LE)规范, 并且能完整覆盖BR/EDR/HS/BLE的所有射频测试项目。测试标准:RF.TS/4.03 ;RF-PHYTS/40.3。
实验室地址: 深圳 提交需求>
可定制内置FPC天线的频率尺寸等参数,频率范围315MHz、433MHz、470MHz、868MHz、915MHz,2.4GHz、5.8GHz、2G(GSM)、3G、4G、5G、WIFI、蓝牙、LoRa、NB-IoT多频段可选。
最小起订量: 1000 提交需求>
登录 | 立即注册
提交评论