本帖最后由 mingxiangjun 于 2022-12-7 09:24 编辑
蓝牙mesh兼容性测试 之前是做Nordic平台蓝牙mesh的开发,趁着这次拿到SiliconLabs家的EFR32MG24,就来一波简单横评和mesh兼容性测试: 一、单纯Server组网测试 nRF52840和EFR32MG24板子均做server,由于没有第3和第4块板子作为provisioner和client,以及更多板子来充当relay和friend,所以relay这一多跳Ad-hoc泛洪特性就无法体现和测试了,故provisioner和client此两角色均由手机来扮演,通过nRF52840的**广播PB-GATT承载连入该subnet(比如nRF mesh分配的是NetworkKey=0xE6BB6E6561C5708F282E63C3DCCB8436),绑定应用(比如nRF mesh的是AppKey=0x8E60B918069B05D440E6F87550C0252D),统一把元素Genereic OnOff Server(modelID=0x1000)订阅到组0xC000,EFR32MG24演示例程使用的是第1个元素,nRF52840只有1个元素,完整的分配秘钥->获取随机数鉴权->获取composition数据->绑定应用秘钥->分派发布/订阅地址等一系列完整入网过程就略过。 测试方案工具: 1.Nordic:Segger Embedded Studio v4.30 + Segger RTT Viewer + nRF Mesh应用 2.SiliconLabs:Simplicity Studio v5.5.2.0 + Bluetooth mesh应用 EFR32MG24烧录的是Bluetooth Mesh - SoC Light,nRF52840烧录的是light_switch_server,可以看到EFR32MG24支持17个model模型用于照明、取暖、通风等HVAC智能家居场景: 图1 Nordic和SiliconLabs server provisioned元素列表 手机proviosioner分别使用Nordic家的nRF mesh和SiliconLabs家的Bluetooth mesh: 图2 Nordic和SiliconLabs手机APP充当provisioner和client 可以看到兼容性不错,可以互操作 图3 client发布的set opcode均收到 图4 Bluetooth mesh未能邀nRF52840入网,能控制自家server 二、Client/Server控制: 这一轮SiliconLabs安卓APP兼容性不好,只能provision自家的EFR32MG24入网,别家的如Nordic发送入网邀请PDU后一直超时失败甚至有时会把Nordic给整assert error, 图5 Bluetooth mesh无法provision配置Nordic nRF mesh胜利,可以邀请自家和SiliconLabs成功入网(Google商店下载的会一直闪退,可能Google框架支持性不好,GitHub上下的版本就没有闪退现象,但也偶尔报错,重启就正常了),但不知为何SiliconLabs发布的set opcode延迟很高,Nordic半天才有动作,这个需要看协议栈和代码框架才能解决, 图6 SiliconLabs作client,Nordic作server,兼容性不错,延迟偏大 三、总结 Nordic作为BLE老将,SDK、社区资源更丰富,mesh兼容性更强,可以配置别家,反过来SiliconLabs配置别家可能需要摸索,先试试效果。 |