Пропускная способность BLE Печать
Добавил(а) microsin   

В этой статье (перевод документации [1]) рассматривается достижимая пропускная способность соединения Bluetooth Low Energy (BLE) для процедур протокола GATT, используемых для отправки и приема данных в указанных конфигурациях SoftDevice.

Описанные здесь значения пропускной способности основаны на измерениях, которые проводились при отсутствии радиопомех. Максимальная пропускная способность достижима только если приложение успевает обрабатывать трафик, т. е. без задержки считывает пакеты данных по мере их приема, и предоставляет новые данные по мере передачи пакетов. Длительность события соединения (connection event length) должна быть установлена в такое значение, чтобы все событие соединение могло быть заполнено пакетами. SoftDevice может передавать столько пакетов, сколько может поместиться в событие соединения, как указано длиной события (event length) для соединения. Например в случае простого обмена, когда данные передаются только в одном направлении, имеется больше доступного времени для отправки пакетов. Следовательно, в событиях соединения могут быть дополнительные пары пакетов TX-RX. Кроме того, можно увеличить доступное время для соединения путем расширения событий соединения за предел резервированного времени. Для дополнительной информации см. [2].

Примечание: расшифровку незнакомых терминов и аббревиатур см. в Словарике [5].

Максимальное значение пропускной способности представляет собой максимальный объем данных, который можно передать между двумя приложениями за определенное время. Это максимальное значение зависит от механизма, используемого для передачи данных. Когда приложение использует механизм оповещения об изменении значения таблицы атрибутов (ATT Handle Value Notification) или команду записи атрибута (ATT Write Command), транзакции происходят только в одном направлении. Когда приложение использует запрос записи атрибута (ATT Write Request), предполагается, что пир ответит пакетом ATT Write Response в следующем интервале соединения. В этом случае пропускная способность ограничивается только одним пакетом на каждый второй интервал соединения. Объем данных в каждом пакете это величина MTU в байтах минус длина заголовка (ATT header) в байтах. Таким образом, пропускную способность можно выразить формулой:

Пропуская_способность (байт/сек) = количество_пакетов_в_секунду * (ATT_MTU - 3)

Все значения пропускной способности применимы к передаче пакетов через зашифрованное соединение, при использовании максимальных размеров полезной нагрузки. Максимальный размер полезной нагрузки слоя соединения (Link Layer, LL) составляет 27 байт, если не указано нечто иное.

В следующей таблице показаны максимальные значения пропускной способности для connection interval 7.5 мс и одного соединения устройства Peripheral или Central.

Таблица 1. Пропускная способность для одного соединения.

Протокол
ATT MTU
Event Lenght
Метод
MAX пропускная способность
LE 1M PHY LE 2M PHY
Клиент GATT (Central) 23 7.5 мс Прием оповещения (Receive Notification) 192.0 kbps 256.0 kbps
Отправка команды Write
Отправка запроса записи (Send Write request) 10.6 kbps 10.6 kbps
Одновременные Receive Notification и отправка команды Write 128.0 kbps (в каждом напр.) 213.3 kbps (в каждом напр.)
Сервер GATT (Peripheral) 23 7.5 мс Отправка оповещения (Send Notification) 192.0 kbps 256.0 kbps
Прием команды Write
Прием запроса записи (Send Write request) 10.6 kbps 10.6 kbps
Одновременные Send Notification и прием команды Write 128.0 kbps (в каждом напр.) 213.3 kbps (в каждом напр.)
158 7.5 мс Отправка оповещения (Send Notification) 248.0 kbps 330.6 kbps
Прием команды Write
Прием запроса записи (Send Write request) 82.6 kbps 82.6 kbps
Одновременные Send Notification и прием команды Write 165.3 kbps (в каждом напр.) 275.5 kbps (в каждом напр.)
Клиент GATT (Central) 23 3.75 мс Прием оповещения (Receive Notification) 64.0 kbps 106.6 kbps
Отправка команды Write
Отправка запроса записи (Send Write request) 10.6 kbps 10.6 kbps
Одновременные Receive Notification и отправка команды Write 64.0 kbps (в каждом напр.) 85.3 kbps (в каждом напр.)
Сервер GATT (Peripheral) 23 3.75 мс Отправка оповещения (Send Notification) 64.0 kbps 106.6 kbps
Прием команды Write
Прием запроса записи (Send Write request) 10.6 kbps 10.6 kbps
Одновременные Send Notification и прием команды Write 64.0 kbps (в каждом напр.) 85.3 kbps (в каждом напр.)
Клиент GATT (Central) 23 2.5 мс Прием оповещения (Receive Notification) 42.6 kbps 64.0 kbps
Отправка команды Write
Отправка запроса записи (Send Write request) 10.6 kbps 10.6 kbps
Одновременные Receive Notification и отправка команды Write 21.3 kbps (в каждом напр.) 42.6 kbps (в каждом напр.)
Сервер GATT (Peripheral) 23 2.5 мс Отправка оповещения (Send Notification) 42.6 kbps 64.0 kbps
Прием команды Write
Прием запроса записи (Send Write request) 10.6 kbps 10.6 kbps
Одновременные Send Notification и прием команды Write 21.3 kbps (в каждом напр.) 42.6 kbps (в каждом напр.)

Примечание: в столбце ATT MTU показан максимальный размер пакета атрибутов (Maximum Transmission Unit), обычно 23 байта), Event Length длительность события.

В следующей таблице показаны максимальные значения пропускной способности для одного соединения устройства Peripheral или Central. Здесь длительность события (event length) равна интервалу соединения (connection interval).

Таблица 2. Пропускная способность для одного соединения с 247 байтами ATT MTU.

Протокол
ATT MTU
LL payload(1) Интервал соединения
Метод
MAX пропускная способность
LE 1M PHY LE 2M PHY
Сервер GATT (Peripheral) 247 251 50 мс Отправка оповещения (Send Notification) 702.8 kbps 1327.5 kbps
Прием команды Write
Одновременные Send Notification и прием команды Write 390.4 kbps (в каждом напр.) 780.8 kbps (в каждом напр.)
Сервер GATT (Peripheral) 247 251 400 мс Отправка оповещения (Send Notification) 771.1 kbps 1376.2 kbps
Прием команды Write 760.9 kbps
Одновременные Send Notification и прием команды Write 424.6 kbps (в каждом напр.) 800.4 kbps (в каждом напр.)
RAW LL data N/A 251 400 мс N/A 803 kbps 1447.2 kbps

Примечание (1): подразумевается, что peer-устройство принимает и увеличивает размеры полезной нагрузки Attribute Protocol (ATT) и LL.

Интервал соединения 20 мс и длительность события 2.5 мс допускают до 8 соединений. В этом случае максимальная пропускная способность на соединение, с использованием 23 байта ATT MTU, показана в таблице 3.

Таблица 3. Пропускная способность для обмена через несколько соединений (до 8 соединений максимум).

Протокол
Event Lenght
Метод
MAX пропускная способность
LE 1M PHY
Клиент GATT (Central) 2.5 мс Прием оповещения (Receive Notification) 16.0 kbps
Отправка команды Write
Отправка запроса записи (Send Write request) 4.0 kbps
Одновременные Receive Notification и отправка команды Write 8.0 kbps (в каждом напр.)
Сервер GATT (Peripheral) 2.5 мс Отправка оповещения (Send Notification) 16.0 kbps
Прием команды Write
Прием запроса записи (Send Write request) 4.0 kbps
Одновременные Send Notification и прием команды Write 8.0 kbps (в каждом напр.)

Для соединений с увеличенной длиной события необходимо использовать увеличенный интервал для каждого соединения, чтобы обеспечить отсутствие наложения друг на друга событий соединения. Информацию о том, как можно конфигурировать соединения, см. в документации [3].

Полоса пропускания может уменьшиться, если линк периферийного устройства не синхронизирован с линками устройства Central. Если линк периферийного устройства работает, пропускная способность может уменьшиться наполовину для двух линков Central и линка периферийного устройства.

[Ссылки]

1. S132 Bluetooth Low Energy data throughput site:infocenter.nordicsemi.com.
2. S132 Connection timing with Connection Event Length Extension site:infocenter.nordicsemi.com.
3. S132 Scheduling site:infocenter.nordicsemi.com.
4. S132 SoftDevice Specification site:infocenter.nordicsemi.com.
5. nRFxx: аббревиатуры и термины.
6Bluetooth 5: как добиться максимума пропускной способности BLE.