【经验】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提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】Silicon Labs的蓝牙SoC EFR32BG22如何进行在线的OTA升级?
Silicon Labs的蓝牙SOC EFR32BG目前已经能够支持到蓝牙5.2,工艺升级后的EFR32BG22的功耗能够达到接收4.1mA,0dbm发射功耗3.6mA,休眠功耗低至1.4uA,如此低的功耗,能够大幅延长蓝牙设备的电池续航时间。本文介绍蓝牙SoC EFR32BG22如何进行在线的OTA升级。
设计经验 发布时间 : 2020-06-07
【经验】EFR32BG系列蓝牙SoC之低功耗测试操作指导
很多的蓝牙设备都是电池供电的,因此对蓝牙SoC功耗水平测试与评估就非常有必要。Silicon Labs公司提供的蓝牙评估板底板,都带有电流功耗测试功能,搭配Simplicity studio v4开发平台的energy profile功耗测试上位机,非常容易测试出EFR32BG系列蓝牙SoC的功耗水平。我们详细介绍功耗测试需要的软件和硬件以及测试操作。本文就将具体进行说明。
设计经验 发布时间 : 2020-02-20
实测蓝牙Mesh 1.1的性能更新
蓝牙Mesh 1.1版本中引入了远程配置和无线设备固件更新(OTA DFU)的功能。在这篇技术博客中,我们通过广泛部署基于Silicon Labs(亦称“芯科科技”)的xG24和xG21无线SoC开发板的节点并组成网络,来分析在多个测试节点上进行的一系列实验结果,进一步探索蓝牙Mesh 1.1网络的性能,包括网络延迟、远程配置和OTA, DFU性能的详细测试设置和结果等实用数据。点击文末的阅读原文
设计经验 发布时间 : 2024-07-15
芯科科技针对蓝牙Mesh 1.1标准版本发布技术更新,增强安全性和系统可靠性,引入许多通信增强功能
芯科科技宣布针对最新的蓝牙Mesh 1.1标准版本发布技术更新,包括改进了安装和更新过程,增强安全性和系统可靠性,并引入许多通信增强功能。这些功能提升将在许多商业和工业应用中发挥作用,例如商业照明系统,有助于降低进入连接网络照明控制(NLC)系统的门槛。
原厂动态 发布时间 : 2024-01-18
芯科科技支援新的蓝牙®网状网络功能增强和网络照明控制标准化配置文件
中国,北京 - 2023年9月21日 – 致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB),今日宣布其支持蓝牙技术联盟(Bluetooth SIG)针对蓝牙网状网络(Bluetooth Mesh)实现的新功能增强,以及他们新的网络照明控制(NLC)标准,该标准旨在为使用蓝牙网状网络的商业和工业照明提供一种统一标准。
原厂动态 发布时间 : 2024-07-25
Silicon Labs(芯科科技) 物联网无线产品选型指南
目录- Company and product overview Bluetooth Modules proprietary wireless devices Wi-Fi Modules Mighty Gecko Modules Z-Wave Modules
型号- 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
【技术】蓝牙5与蓝牙MESH,增加蓝牙传输距离并将蓝牙设备进行组网通讯
Silicon Labs公司作为世界顶级的物联网芯片、软件、解决方案供应商,推出支持蓝牙5.0的SOC芯片EFR32BG系列和通过认证、集成天线、远距离传输、小封装的蓝牙模块BGM系列。Silicon Labs公公司针对蓝牙产品,提供整套完善的开发工具,蓝牙Mesh网络开发包,例程和手机APP代码。运用Silicon Labs公司提供的丰富资源,可以提高设计产品的稳定性,加快上市时间。
新技术 发布时间 : 2018-05-18
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低功耗节点、智能门锁、个人医疗保健和健身设备。
产品 发布时间 : 2024-06-21
【经验】低功耗蓝牙SoC芯片EFR32BG系列的UART串口通信参考代码与解析
EFR32BG是Silicon Labs公司的高性能低功耗蓝牙SoC芯片。支持蓝牙5.0、5.1协议和蓝牙Mesh协议,发射电流3.5mA@0dbm,接收电流仅有2.6mA。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居;在开发EFR32BG蓝牙SoC的代码过程中,经常需要用到uart通信,本文详细介绍如何找到参考代码以及代码解析。
设计经验 发布时间 : 2020-02-10
【经验】Silicon Labs 蓝牙SOC EFR32BG系列IADC与ADC的区别
Silicon Labs蓝牙SOC EFR32BG系列包括有EFR32BG12/13和EFR32BG21两个子系列,其中EFR32BG12/13采用的是Cortex-M4内核,EFR32BG21采用的是Cortex-M33内核,二者的内核不同,另外,EFR32BG12/13集成有IADC,EFR32BG21集成的是ADC,两个ADC还是有一些区别的,在使用时需要注意一下,本文介绍其区别。
设计经验 发布时间 : 2020-02-21
“蓝牙开发流程”详解低功耗蓝牙5.4、蓝牙Mesh和定位服务开发步骤
SILICON LABS(芯科科技)致力于为客户提供最佳蓝牙解决方案。我们的蓝牙协议栈支持长距离、1M 和 2M PHY,使设备能够进行更远距离或更高速率的通信。该蓝牙协议栈还支持方向查找和其他定位服务,可实现室内导航、资产跟踪和接近检测等应用。此外,我们的蓝牙设备可在 SoC、NCP 和 RCP 模式下运行,这三种不同的集成和功能模式可提供成本、性能和灵活性之间的不同权衡。
设计经验 发布时间 : 2024-02-21
【经验】蓝牙MESH网关程序中的Vendor Model的OpCode的设置
在使用FR32BG21开发蓝牙MESH网关的程序时,我们有时需要使用Vendor Model功能,这时我们需要定义OpCode,在程序中我们可以查到默认定义了两个Opcode:0X00,0X01,这个定义与SIG标准有些冲突,这是什么原因?我们要如何定义OpCode?
设计经验 发布时间 : 2022-03-26
【经验】如何开启低功耗蓝牙SoC芯片EFR32BG系列参考代码soc-empty工程中的调试串口打印输出功能
EFR32BG是Silicon Labs公司的高性能低功耗蓝牙SoC芯片。支持蓝牙5.1协议和蓝牙Mesh协议,支持AOA定位功能,苹果HomeKit,支持多种硬件加密等。发射电流3.5mA@0dbm,接收电流仅有2.6mA。广泛用于智能门锁,蓝牙门禁系统,照明系统,智能家居。开发过程中,经常需要用到uart串口调试,本文详细介绍如何在soc-empty工程中开启调试串口。
设计经验 发布时间 : 2020-02-09
【IC】芯科科技具备丰富的蓝牙SoC和模块产品阵容,满足从家庭到商业网状网络的设计需求
藉由芯科科技的专业知识、软硬件产品组合以及以开发人员需求为中心的资源库,芯科科技至今已帮助行业部署了超过1亿个网状网络节点。针对蓝牙Mesh标准开发,芯科科技具备丰富的蓝牙SoC和模块产品阵容,包括BG21、BG22、BG24和BG27等系列,并制作了产品简介和选型指南以提供开发者参考评估。
产品 发布时间 : 2023-12-06
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 104,128
品牌: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 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
提供语音芯片、MP3芯片、录音芯片、音频蓝牙芯片等IC定制,语音时长:40秒~3小时(外挂flash),可以外挂TF卡或U盘扩容。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论