В этой статье (перевод документации [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. Bluetooth: аббревиатуры и термины. 6. Bluetooth 5: как добиться максимума пропускной способности BLE. |