蓝牙mesh组网实践(mesh+2.4G同时运行)

目录

链接: https://pan.baidu.com/s/1DCrLUwcGuqpXHEk2CkAMNg?pwd=WCH6 提取码: WCH6

蓝牙mesh组网+2.4G射频同时运行,参考代码如上。

蓝牙mesh工程中,不可以直接调用RF_PHY例程中的接口函数,需要用mesh专用的RF函数(app_rf_tx、app_rf_rx等),且形参的变量类型、数量有所不同。

 

对于接收方向:

非低功耗的蓝牙mesh节点,蓝牙mesh包本身没有连接状态,对于多协议的兼容性还是很友好的。

各个无线协议的接收是“互相打断”的:在同一时刻,MCU只能按某一种包格式收无线包,而蓝牙mesh包与2.4GRF包的包负载格式有差异,故对于无线包接收方MCU而言,需要分时复用同一个无线收发机,接收不同格式的无线包。这或多或少会影响到丢包率

代码中需要注意安排好mesh包扫描的使能/失能、RF接收的使能/失能。建议手动管理好收发窗口。

对于发送方向:

发包时间开销少,us级别,且蓝牙mesh有包缓存机制,安排RF发包时,有包就发即可,影响不大。

 

当蓝牙mesh组网+BLE+2.4G同时运行时,有类似的情况。

沁恒的蓝牙MCU支持分时复用多个不同的无线协议,即 蓝牙mesh组网 / BLE / 2.4GRF 这几个不同的无线协议,均可排列组合去运用。

CH584的ram做到了96K,同时运行蓝牙mesh组网+BLR+2.4GRF也是绰绰有余的。

 

蓝牙mesh组网+BLE,常用于MCU需要直连手机APP的场景;但此场景下,MCU的ram开销大,建议用CH584来实现。

蓝牙mesh组网+2.4GRF,无法直连手机APP,但胜在ram开销相对较小,CH592即可实现功能;此场景下可以用一个专用的“2.4G遥控器”来进行2.4GRF收发。 

对于接收方向:

mesh+BLE同时运行,在demo包中已经实现,协议栈会协调mesh与BLE的接收窗口。不过BLE对通信时序要求相对较高,建议后续添加的2.4GRF包,尽量不影响BLE的广播/连接事件,可以参考博客BLE从机(16)广播与连接回调 - SweetTea_lllpc - 博客园,注册回调函数,在紧接着BLE的广播/连接事件后开启ms级别宽度的2.4G的接收窗口。

对于发送方向:

发包时间开销少,协议栈会安排好mesh与BLE的收发窗口,手动管理的RF发送也是有包就发即可,不过需要交互的无限包格式/数量都变多,撞包的可能性变大。

当同一时刻需要发出多个类型的包时,发包优先级mesh>BLE>2.4G。

posted @ 2026-06-02 15:50  JayWell  阅读(8)  评论(0)    收藏  举报