用户工具

站点工具


侧边栏

CC2640R2&BLE5.0开发

关于我们

入门开始

视频教程

外设驱动

开发BLE应用

工具集

其他

cc2640r2f:channel_selection_algorithm

这是本文档旧的修订版!


概要

信道选择算法#2(CSA#2)是更复杂和更难跟踪用于获得下一个连接事件的信道索引的算法。特别是在高通量使用情况下,避免干扰和多路径衰落效应比通道选择算法#1更有效。

有关算法的详细说明,请参见蓝牙核心规范版本5.0的第6卷B部分4.5.8.2节。

以下是37和9个使用频道的算法对100多个事件的样本:

默认配置

该堆栈默认情况下支持CSA#2,默认情况下也启用。也就是说,作为主设备,设备将尝试使用CSA#2建立连接,作为从设备,设备将接受CSA#2连接请求。在较低级别,这意味着,作为主设备,设备将发送ChSel字段设置为1的连接请求,作为从设备,设备将通过ChSel字段设置为1进行通告。

CSA#2是否用于连接取决于对等设备支持的内容。该蓝牙核心规范版本5.0规定,

“如果发起者响应于ADV_IND或AD_DIRECT_IND PDU发送了一个CONNECT_IND PDU,并且一个或两个设备的PDU都将ChSel字段设置为0,则在连接上应使用信道选择算法#1。否则,应使用信道选择算法#2。
有关更多详细信息,请参阅蓝牙核心规范版本5.0的第6卷B部分4.5节。

禁用CSA#2

可以通过清除相应的支持的功能位来禁用CSA#2。

首先,使用HCI_LE_ReadLocalSupportedFeaturesCmd()获取当前设置的本地支持的LE功能。

然后,在收集相应的HCI_LE_READ_LOCAL_SUPPORTED_FEATURES事件后(请参阅主机控制器接口(HCI)以了解有关如何接收事件的更多详细信息),清除LL_FEATURE_CHAN_ALGO_2位(字节1的位6),并使用HCI_EXT_SetLocalSupportedFeaturesCmd()更新修改的功能:

 case  HCI_LE_READ_LOCAL_SUPPORTED_FEATURES :
 { 
     uint8_t  featSet [ 8 ];

     //从接收到的事件(
     返回的数据
     memcpy ( featSet , &pMsg - > pReturnParam [ 1 ], 8  ))的第1-9行获取当前的特征集;

     //清除CSA#2功能位
     CLR_FEATURE_FLAG ( featSet [ 1 ], LL_FEATURE_CHAN_ALGO_2  );

     //更新具有修改功能的控制器
     HCI_EXT_SetLocalSupportedFeaturesCmd ( featSet  ); 
 }

注意:对于slave广播之前必须这样做,对于master initiating 之前必须这样做。

加入我们

文章所有代码、工具、文档开源。加入我们QQ群 591679055获取更多支持,共同研究CC2640R2F&BLE5.0。

CC2640R2F&BLE5.0-乐控畅联 © Copyright 2017, 成都乐控畅联科技有限公司.

cc2640r2f/channel_selection_algorithm.1504273355.txt.gz · 最后更改: 2021/06/22 23:14 (外部编辑)