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