583/2系列蓝牙芯片的LE CODED广播功能详解

在蓝牙低功耗(BLE)技术中,PHY(物理层)决定了无线通信的基础速率与模式。CH583/2系列芯片支持包括传统1M、高速2M以及远距离LE CODED在内的多种PHY。其中,LE CODED 是一种通过前向纠错编码来显著提升通信距离和抗干扰能力的物理层方案,特别适用于需要更广覆盖范围的应用场景。

本文将在《CH5xx 扩展广播》一文的基础上,重点介绍CH583/2芯片中LE CODED广播的具体配置方法与注意事项。

广播PHY配置详解

在扩展广播中,设备需要配置两个物理层参数:

PRIMARY_PHY:用于广播事件的初始通道,支持 1M 和 LE CODED,默认为1M。

SECONDARY_PHY:用于后续广播数据包,支持 1M2M 和 LE CODED,默认为1M。

不同的PHY组合会影响主机设备的扫描发现逻辑。以下是两种典型配置场景:

场景一:主机可默认扫描发现
当从机(广播设备)采用 1M + LE CODED 的组合时,大多数主机设备无需特殊配置即可直接扫描到广播信号。

// 从机配置示例
#define GAP_PHY_VAL_LE_1M                       0x01
#define GAP_PHY_VAL_LE_2M                       0x02
#define GAP_PHY_VAL_LE_CODED                    0x03

GAP_SetParamValue(TGAP_ADV_PRIMARY_PHY, GAP_PHY_VAL_LE_1M);      // 主PHY设为1M
GAP_SetParamValue(TGAP_ADV_SECONDARY_PHY, GAP_PHY_VAL_LE_CODED); // 次PHY设为LE CODED

场景二:主机需匹配PHY配置才能发现
若从机将主、次PHY均配置为 LE CODED,则主机也必须相应地将扫描PHY配置为 LE CODED,否则将无法发现设备。

// 从机配置
GAP_SetParamValue(TGAP_ADV_PRIMARY_PHY, GAP_PHY_VAL_LE_CODED);
GAP_SetParamValue(TGAP_ADV_SECONDARY_PHY, GAP_PHY_VAL_LE_CODED);
// 主机配置(扫描侧需匹配)
GAP_SetParamValue(TGAP_DISC_SCAN_PHY, GAP_PHY_BIT_LE_CODED);

连接后的PHY切换

设备建立连接后,默认使用 1M PHY 进行通信。在实际应用中,可以根据需求(如追求速度或距离)动态切换至 2M 或 LE CODED PHY。相关参数定义如下:

#define GAP_PHY_BIT_LE_1M        (1<<0)
#define GAP_PHY_BIT_LE_2M        (1<<1)
#define GAP_PHY_BIT_LE_CODED     (1<<2)
#define GAP_PHY_BIT_ALL          (GAP_PHY_BIT_LE_1M|GAP_PHY_BIT_LE_2M|GAP_PHY_BIT_LE_CODED)

主机发起PHY更新请求示例:

GAPRole_UpdatePHY(centralConnHandle, 
                  0, 
                  GAP_PHY_BIT_LE_2M, // 期望的TX PHY
                  GAP_PHY_BIT_LE_2M, // 期望的RX PHY
                  GAP_PHY_OPTIONS_NOPRE);

从机发起PHY更新请求示例:

GAPRole_UpdatePHY(peripheralConnList.connHandle, 
                  0, 
                  GAP_PHY_BIT_LE_2M, // 期望的TX PHY
                  GAP_PHY_BIT_LE_2M, // 期望的RX PHY
                  GAP_PHY_OPTIONS_NOPRE);

通过以上配置,开发者可以灵活利用CH583/2芯片的LE CODED特性,在通信距离和速率之间取得最佳平衡,满足各类低功耗蓝牙应用的复杂需求。

posted on 2026-02-07 08:59  WCH蓝牙应用分享  阅读(166)  评论(0)    收藏  举报