这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
cc2640r2f:channel_selection_algorithm [2017/09/01 21:42] long |
cc2640r2f:channel_selection_algorithm [2021/06/22 23:14] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
< | < | ||
+ | |||
# 概要 # | # 概要 # | ||
- | 信道选择算法#2(CSA#2)是更复杂和更难跟踪用于获得下一个连接事件的信道索引的算法。特别是在高通量使用情况下,避免干扰和多路径衰落效应比通道选择算法#1更有效。 | ||
- | 有关算法的详细说明,请参见蓝牙核心规范版本5.0的第6卷B部分4.5.8.2节。 | + | 信道选择算法#2( CSA#2 )是更复杂更难跟踪的用于获得下一个连接事件的信道索引算法。在高通量使用情况下,算法#2比算法#1在避免干扰和多路径衰落效应方面更有效。 |
+ | |||
+ | 有关算法的详细说明,请参见蓝牙核心规范版本 5.0 的第 6 卷 B 部分 4.5.8.2 节。 | ||
- | 以下是37和9个使用频道的算法对100多个事件的样本: | + | 下图 1 分别是使用 |
![](http:// | ![](http:// | ||
+ | |||
+ | 图1. 相同样本下,不同频道数对应的算法效果图。 | ||
## 默认配置 ## | ## 默认配置 ## | ||
- | 该堆栈默认情况下支持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。 | + | CSA#2 是否用于连接取决于对等设备支持的内容。该蓝牙核心规范版本 5.0 规定: |
- | 有关更多详细信息,请参阅蓝牙核心规范版本5.0的第6卷B部分4.5节。 | + | |
- | ## 禁用CSA#2 ## | + | 如果发起者响应于 ADV_IND 或 AD_DIRECT_IND PDU 发送了一个CONNECT_IND PDU,且一个或两个设备的 PDU 都将 ChSel 字段设置为 0 ,则在连接上应使用信道选择算法#1。否则使用信道选择算法#2。 |
- | 可以通过清除相应的支持的功能位来禁用CSA#2。 | + | 有关更多详细信息,请参阅蓝牙核心规范版本 5.0 的第 6 卷 B 部分 4.5 节。 |
- | 首先,使用HCI_LE_ReadLocalSupportedFeaturesCmd()获取当前设置的本地支持的LE功能。 | + | ## 禁用 CSA#2 ## |
- | 然后,在收集相应的HCI_LE_READ_LOCAL_SUPPORTED_FEATURES事件后(请参阅主机控制器接口(HCI)以了解有关如何接收事件的更多详细信息),清除LL_FEATURE_CHAN_ALGO_2位(字节1的位6),并使用HCI_EXT_SetLocalSupportedFeaturesCmd()更新修改的功能: | + | 可以通过清除相应支持的功能位来禁用 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 : | case HCI_LE_READ_LOCAL_SUPPORTED_FEATURES : | ||
行 39: | 行 45: | ||
} | } | ||
- | 注意:对于slave广播之前必须这样做,对于master initiating 之前必须这样做。 | + | 注意:对于 slave 广播之前必须这样做,对于 master initiating 之前必须这样做。 |
## 加入我们 ## | ## 加入我们 ## | ||
+ | |||
文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http:// | 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http:// | ||
<div> | <div> | ||
行 50: | 行 57: | ||
</ | </ | ||
</ | </ | ||
- |