В Bluetooth (BLE) сколько пакетов может отправлять периферийное устройство по запросу централизованного чтения? - PullRequest
0 голосов
/ 23 мая 2019

Я настраиваю устройство для рекламы в качестве сервера (периферийное устройство) и мобильный телефон в качестве клиента (центральное устройство). Моя проблема: когда мой центральный «считывает» с периферийного устройства, сколько пакетов может ответить периферийное устройство за один запрос?

Что я видел до сих пор, так это то, что периферийное устройство может ответить 20-байтовым пакетом, а затем указать еще один 20-байтовый пакет. Я не понимаю, как это может достичь заявленных скоростей передачи данных?

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Используя уведомления вместо запросов на чтение, вы получите лучшую пропускную способность.

Тогда меньший интервал соединения также обычно увеличивает пропускную способность.

Использование LE Data Length Extension и большого MTU будетувеличить его еще больше.

Последний шаг - переключиться с PHY 1 Мбит / с на PHY 2 Мбит / с, чтобы стать еще лучше.

0 голосов
/ 24 мая 2019

Из вашего вопроса я понимаю, что ваш фактический вопрос заключается в том, как достичь максимальной скорости передачи данных BLE, верно?

Посмотрите здесь: https://stackoverflow.com/search?q=BLE+throughput

Особенно здесь: Предел пропускной способности периферийного устройства BLE и здесь Как увеличить пропускную способность моего приложения BLE?

Как правило, ключ - это не количество пакетов. Сначала взгляните на размер MTU и интервал соединения. После этого, да, можно отправлять несколько пакетов за интервал соединения. (Ну, я должен угадать здесь 3 или 4 обычно, но не уверен)

Более того, в более новых стандартных версиях Bluetooth вы можете посмотреть, поддерживает ли ваше устройство расширение длины пакета.

Для дальнейшего чтения предлагаю https://punchthrough.com/pt-blog-post/maximizing-ble-throughput-on-ios-and-android/

и

https://punchthrough.com/pt-blog-post/maximizing-ble-throughput-part-3-data-length-extension-dle/

...