减少 Instant Passed (0x28) BLE 断开错误的发生
Reduce occurrence of Instant Passed (0x28) BLE disconnection error
我正在 STM32 SPBTLE-1S 模块 (BLE 4.2) 上开发应用程序。该模块连接到 Raspberry Pi.
当连接质量低下时,有时会在连接超时前断开连接,错误代码为0x28(原因:即时通过)。
当前连接设置为:
Conn_Interval_Min: 10
Conn_Interval_Max: 20
Slave_latency: 5
Timeout_Multiplier: 3200
阅读有关此类错误的更多信息,它似乎发生在 "an LMP PDU or LL PDU that includes an instant cannot be performed because the instant when this would have occurred has passed." 这些 paquets 通常用于跳频或连接更新时。就我而言,它们必须是希望频率的 paquets。
知道如何防止因 "Instant Passed" 错误导致的这些断开连接吗?或者它们仅仅是 BLE 技术的结果?
您的问题听起来类似于 this one
简而言之,只有两种可能的 link 层请求会导致这种类型的断开连接(在最新的 [=13= 中称为 LL_CONNECTION_UPDATE_IND
和 LL_CHANNEL_MAP_IND
])
如果您可以访问嵌入式设备上蓝牙堆栈的低级固件,我过去所做的就是增加将来的插槽数量,开关 "Instant" 就这样在嘈杂的环境中,数据包有更多的时间通过。
否则,您能做的最好的事情就是尝试限制更改连接参数的次数,以减少这种断开连接的可能性。 (断开连接仍可能由通道映射更改触发,但我还没有看到很多 BLE 堆栈在这些发生时公开大量配置。)
我正在 STM32 SPBTLE-1S 模块 (BLE 4.2) 上开发应用程序。该模块连接到 Raspberry Pi.
当连接质量低下时,有时会在连接超时前断开连接,错误代码为0x28(原因:即时通过)。
当前连接设置为:
Conn_Interval_Min: 10
Conn_Interval_Max: 20
Slave_latency: 5
Timeout_Multiplier: 3200
阅读有关此类错误的更多信息,它似乎发生在 "an LMP PDU or LL PDU that includes an instant cannot be performed because the instant when this would have occurred has passed." 这些 paquets 通常用于跳频或连接更新时。就我而言,它们必须是希望频率的 paquets。
知道如何防止因 "Instant Passed" 错误导致的这些断开连接吗?或者它们仅仅是 BLE 技术的结果?
您的问题听起来类似于 this one
简而言之,只有两种可能的 link 层请求会导致这种类型的断开连接(在最新的 [=13= 中称为 LL_CONNECTION_UPDATE_IND
和 LL_CHANNEL_MAP_IND
])
如果您可以访问嵌入式设备上蓝牙堆栈的低级固件,我过去所做的就是增加将来的插槽数量,开关 "Instant" 就这样在嘈杂的环境中,数据包有更多的时间通过。
否则,您能做的最好的事情就是尝试限制更改连接参数的次数,以减少这种断开连接的可能性。 (断开连接仍可能由通道映射更改触发,但我还没有看到很多 BLE 堆栈在这些发生时公开大量配置。)