Wireshark 中每个连接间隔的 BLE 数据包数
BLE Number of Packet per Connection Interval in Wireshark
我需要确切地知道我的 BLE 可以在每个时间间隔处理多少数据包。根据其数据表,外围设备每个间隔处理 6 个数据包,但我一直无法找出中央可以处理多少数据包。中央设备是摩托罗拉 Moto G(第 2 代),运行 Android 5.0.2.
通过检查他的 btsnoop_hci.log 文件,我已经能够识别多个连接参数,例如连接间隔(在我的例子中是 7.5 毫秒)。我的问题是是否可以通过检查 Wireshark 中的协商数据包来确定在单个连接间隔内可以交换多少个数据包。
在规范中,没有关于连接事件中最大数据包数的协商。连接事件最多只能持续 (ConnectionInterval - 150µs)(参见 6.B.4.5.1)。
任何一侧的 PHY 中都有限制(如果有的话)。大多数 HCI 固件将每个连接事件每个方向限制为 4-5 个数据包。
由主控侧的控制器决定连接事件应该打开多长时间(只要有更多来自任何一侧的数据包)。奴隶对此无话可说
对于中央主机,在创建连接以及更新连接参数时,有两个 HCI 参数 Minimum_CE_Length 和 Maximum_CE_Length。这些是信息参数,指示应将其连接事件保持打开状态多长时间。如果这些设置为高数字,控制器将尽可能长时间打开连接事件。
遗憾的是,Android 将这些参数都设置为 0,这意味着大多数控制器会将连接事件限制为仅 3 或 4 个数据包。
我需要确切地知道我的 BLE 可以在每个时间间隔处理多少数据包。根据其数据表,外围设备每个间隔处理 6 个数据包,但我一直无法找出中央可以处理多少数据包。中央设备是摩托罗拉 Moto G(第 2 代),运行 Android 5.0.2.
通过检查他的 btsnoop_hci.log 文件,我已经能够识别多个连接参数,例如连接间隔(在我的例子中是 7.5 毫秒)。我的问题是是否可以通过检查 Wireshark 中的协商数据包来确定在单个连接间隔内可以交换多少个数据包。
在规范中,没有关于连接事件中最大数据包数的协商。连接事件最多只能持续 (ConnectionInterval - 150µs)(参见 6.B.4.5.1)。
任何一侧的 PHY 中都有限制(如果有的话)。大多数 HCI 固件将每个连接事件每个方向限制为 4-5 个数据包。
由主控侧的控制器决定连接事件应该打开多长时间(只要有更多来自任何一侧的数据包)。奴隶对此无话可说
对于中央主机,在创建连接以及更新连接参数时,有两个 HCI 参数 Minimum_CE_Length 和 Maximum_CE_Length。这些是信息参数,指示应将其连接事件保持打开状态多长时间。如果这些设置为高数字,控制器将尽可能长时间打开连接事件。
遗憾的是,Android 将这些参数都设置为 0,这意味着大多数控制器会将连接事件限制为仅 3 或 4 个数据包。