Популярное описание что необходимо для получения максимального потока в BLE:
Источник <
https://www.novelbits.io/bluetooth-5-speed-maximum-throughput/>
Оптимизация для максимальной пропускной способности данных
Основываясь на факторах, которые мы рассмотрели, мы можем отметить следующее при оптимизации для высокой пропускной способности данных:
Всегда включайте DLE.
Очевидно, что если вы используете Bluetooth v4.1 или более ранней версии, это недопустимый вариант. В целом, однако, убедитесь, что вы включили DLE, чтобы максимизировать эффективность передачи данных от пакета к приложению.
Используйте LE 2M PHY
Если вы знаете, что устройства на обоих концах поддерживают Bluetooth 5, то использование LE 2M PHY - один из лучших способов максимизировать пропускную способность данных вашего приложения. Использование LE 2M PHY также поможет снизить энергопотребление, так что вы попадете в двух зайцев одним выстрелом!
Используйте уведомления и записи без ответов.
Их использование поможет удалить все ненужные передаваемые пакеты (по сравнению с индикациями и обычными записями, которые требуют, чтобы принимающая сторона подтверждала каждый полученный пакет).
Выберите значение ATT MTU не менее 247 байтов.
Это позволит минимизировать любые накладные расходы в байтах пакета.
Выберите интервал соединения, который учитывает максимальное количество пакетов на интервал соединения.
Но помните, что интервал соединения влияет на энергопотребление. Чем короче интервал, тем больше энергии будет потреблять ваше устройство из-за увеличения времени включения радио. Вы также должны убедиться, что вы не выбрали слишком большой интервал, в противном случае это поставит под угрозу взаимодействие с пользователем (более высокий интервал подключения приводит к более высокой задержке). И последнее, что необходимо учитывать, - это любые ограничения устройств в вашей системе с точки зрения максимального количества пакетов на поддерживаемый интервал подключения.
-------
Случай 6 (PHY: 2 Мбит / с, ATT MTU = 247 байт, DLE: включен, интервал соединения: 400 миллисекунд)
Пропускная способность данных, сообщаемая прошивкой:
Время: прошло 6,11 секунды.
Пропускная способность:
1371,82 Кбит / с.
Отправлено 1048712 байт полезной нагрузки ATT.
Расчетная пропускная способность данных:
Время передачи пакета данных = размер пакета данных / скорость необработанных данных = 2 + 4 + 2 + 4 + 247 + 3 байта / 2 Мбит / с = 262 * 8 бит / 2 Мбит / с = 1048 микросекунд
Data_Packet_Time = время передачи пустого пакета + IFS + время передачи фактического пакета данных + IFS = 44 + 150 + 1048 + 150 микросекунд = 1392 микросекунды
Максимальное количество пакетов данных на интервал подключения = [интервал подключения / Data_Packet_Time] = [400 миллисекунд / 1392 микросекунды] = [287,36] = 287 пакетов
Общее количество данных, переданных за интервал подключения = 287 * 244 байта = 287 * 244 * 8 бит = 560224 бит
Пропускная способность = Общее количество данных, переданных за интервал подключения / интервал подключения = 560224 бит / 400 миллисекунд =
1400,56 Кбит / с