问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

WCH蓝牙系列芯片信道检测功能详解:以CH592开发板为例

创作时间:
作者:
@小白创作中心

WCH蓝牙系列芯片信道检测功能详解:以CH592开发板为例

引用
1
来源
1.
https://www.cnblogs.com/ZYL-FS/p/18744813

蓝牙技术在2.4GHz频段上定义了40个射频信道,通过信道检测功能可以实时监测各信道的干扰情况,从而选择最佳信道进行通信。本文将详细介绍WCH蓝牙系列芯片中CH592开发板的信道检测功能及其具体实现方法。

蓝牙技术工作在2.4 GHz的ISM频段,该频段的可用频率范围为2400MHz到2483.5MHz(2.400 GHz~2.4835 GHz)。低功耗蓝牙在2.4GHz ISM频段上定义了40个射频信道,从2402MHz开始每间隔2MHz一个信道,最高信道频率为2480MHz。BLE是40个频段,经典蓝牙则是79个频段。其中:

  • 3 个广播信道:37、38、39,用于设备发现和连接初始化。对应的中心频率是2402MHz,2426MHz,2480MHz
  • 37 个数据信道:0 到 36,用于数据传输。
  • 比特率:蓝牙4.2和蓝牙5.0的速率上是不一样的
  • 1Mbps (蓝牙4.2规范)
  • 2Mbps(蓝牙5.0规范)

在上面的图上,3个绿色的信道就是蓝牙的主广播信道,其他的37个蓝牙的信道是用于副广播、同步广播、周期广播还有数据传输。

在无线环境是动态变化的,随着周围设备的增加或减少、设备位置的移动、以及环境因素的变化,信道的干扰情况也会不断变化。可以通过定期检查和更新信道状态,设备可以实时适应环境的变化,动态选择最佳信道,确保稳定的通信质量。

在2.4G程序中,可以通过信道检测函数来对这个40个信道进行检测。通过BLE_CheckHoppingMap 函数对BLE 的扫描功能,对每个通道进行信号强度检测。可以帮助设备动态选择最佳信道进行通信,避免干扰,提高通信的稳定性和可靠性。

通过选择干净的信道,可以减少数据重传次数,提高数据传输的吞吐量和速度,从而优化通信性能。选择最佳信道可以减少因信道干扰导致的重传和通信失败,从而降低设备的功耗,延长电池寿命。

在复杂的无线环境中,如存在多个 BLE 设备或干扰源时,BLE_CheckHoppingMap函数可以帮助设备实时适应环境的变化,动态选择最佳信道,确保稳定的通信质量。

这里以CH592芯片为例,在2.4G中,添加BLE_CheckHoppingMap 函数,针对周围环境的信道进行检测。

在BLE蓝牙库中,添加一个extern int8_t BLE_CheckHoppingMap( int8_t rssi, uint8_t map[] );

  1. int8_t rssi:表示信号强度阈值,单位是 dBm。在程序中,表示当检测到的信号强度大于设置的RSSI 时,认为该通道有干扰信号,标记为 bad。
  2. uint8_t map[]:用于存储通道的状态信息。每个字节可以表示 8 个通道的状态,其中每一位对应一个信道。

在主函数那边义需要定义检测的通道数据变量。数组长度为 5:由于蓝牙有 40 个信道,每个字节可以表示 8 个信道,因此需要 5 个字节来表示所有 40 个信道的状态。初始值均为 0xFF(二进制11111111),表示所有通道初始状态下都是有效的(需要检测的通道)

在主循环中,调用 BLE_CheckHoppingMap函数,参数为:

  • rssi:-85 dBm,作为干扰信号的阈值。
  • map:传递通道掩码数组,用于存储检测结果。

函数根据-85 dBm阈值和信号强度检测结果,更新map数组中通道的状态。如果有干扰信号超过阈值(信号强度大于-85),对应通道的位会被标记为无效。

通过串口打印就可以看到具体的检测的每一个信道的情况

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号