Bluetooth LE: стек, роли, реклама и соединение
Как устроен Bluetooth Low Energy с точки зрения разработчика устройства: физический уровень и каналы, реклама и сканирование, роли GAP, сервисы и характеристики GATT, параметры соединения и от чего зависит реальная скорость. Все числа — из спецификации Bluetooth Core 6.0 и даташитов микросхем ESP32.
Обновлено Редакция GAW
Bluetooth Low Energy (BLE, Bluetooth LE) — часть спецификации Bluetooth для устройств, которые большую часть времени спят и выходят в эфир короткими пакетами: датчики, метки, браслеты, пульты, устройства, настраиваемые со смартфона. BLE работает в полосе 2,4 ГГц, как Wi-Fi, но с узкими каналами по 2 МГц, мощностью передатчика обычно в единицы милливатт и протоколом, в котором устройство может неделями говорить только «я здесь» и не держать соединение. Ниже — что нужно знать о стеке, чтобы осознанно выбрать параметры рекламы и соединения, а не довериться значениям по умолчанию из примера.
Коротко
- Полоса
- 2400–2483,5 МГц, 40 каналов по 2 МГц
- Реклама
- каналы 37, 38, 39: 2402, 2426, 2480 МГц
- PHY
- 1M (обязателен), 2M, Coded 500 и 125 кбит/с
- Мощность
- от −20 до +20 дБм по спецификации
- ATT_MTU
- 23 байта по умолчанию — 20 байт в уведомлении
- Интервал соединения
- 7,5 мс – 4 с с шагом 1,25 мс
Стек: контроллер, HCI и хост
Спецификация делит систему на две части (Core 6.0, Vol 1, Part A, разд. 1). Контроллер — всё, что ниже интерфейса HCI: физический уровень (радио) и канальный уровень (Link Layer), который отвечает за рекламу, сканирование, соединения, подтверждения и шифрование пакетов. Хост — всё, что выше HCI. Между ними — HCI (Host Controller Interface): набор команд и событий, по которому хост управляет контроллером. В отдельном модуле-«радио» HCI идёт по UART или USB, в однокристальной системе вроде ESP32-C3 обе части работают на одном чипе.
| Уровень | Что делает | Где в спецификации |
|---|---|---|
| PHY | GFSK, каналы, мощность, чувствительность | Vol 6, Part A |
| Link Layer | реклама, сканирование, соединение, повторы, длина пакета | Vol 6, Part B |
| HCI | команды и события между хостом и контроллером | Vol 4, Part E |
| L2CAP | каналы поверх соединения, заголовок 4 байта | Vol 3, Part A |
| ATT | атрибуты: чтение, запись, уведомления | Vol 3, Part F |
| GATT | сервисы и характеристики поверх ATT | Vol 3, Part G |
| SMP | сопряжение и ключи шифрования | Vol 3, Part H |
| GAP | роли, режимы обнаружения и соединения | Vol 3, Part C |
Приложение на микроконтроллере почти всегда работает с GAP и GATT через API стека (в ESP-IDF это NimBLE или Bluedroid): объявляет сервисы, запускает рекламу, обрабатывает запись в характеристику. Но скорость, задержку и потребление определяют параметры нижних уровней — их и разберём.
Физический уровень: PHY и каналы
BLE использует гауссовскую частотную манипуляцию GFSK с BT = 0,5 и индексом модуляции 0,45–0,55 (Vol 6, Part A, разд. 3.1). На ней построены три PHY для передачи данных (разд. 1):
| PHY | Скорость | Обязателен | Появился |
|---|---|---|---|
| LE 1M | 1 Мбит/с | да | Bluetooth 4.0 |
| LE 2M | 2 Мбит/с | нет | Bluetooth 5.0 |
| LE Coded, S=2 | 500 кбит/с | нет | Bluetooth 5.0 |
| LE Coded, S=8 | 125 кбит/с | нет | Bluetooth 5.0 |
Версии — по истории изменений спецификации (Vol 1, Part C, разд. 6.1: LE появился в 4.0; разд. 9.1: в 5.0 добавлены PHY 2 Мсимв/с, LE Long Range и расширенная реклама). Coded PHY передаёт тот же поток символов 1 Мсимв/с, но с избыточным кодированием: на каждый бит данных приходится 2 или 8 символов. Это и есть «дальний» режим BLE: спецификация требует от приёмника чувствительности не хуже −70 дБм на некодированных PHY, −75 дБм на S=2 и −82 дБм на S=8 (Vol 6, Part A, табл. 4.2; при доле ошибочных бит 0,1 % для пакетов до 37 байт данных). Реальные чипы заметно лучше этих минимумов — см. таблицу ниже.
Полоса BLE — 2400–2483,5 МГц, в ней 40 каналов через 2 МГц с центрами от 2402 до 2480 МГц (Vol 6, Part A, разд. 2). Три из них — первичные рекламные каналы с индексами 37, 38 и 39 на 2402, 2426 и 2480 МГц; остальные 37 — каналы общего назначения с индексами 0–36: на них идут соединения и вторичная (расширенная) реклама (Vol 6, Part B, разд. 1.4, табл. 1.3). Соединение перескакивает по каналам общего назначения от события к событию, а плохие каналы можно исключить картой каналов — так BLE уживается с Wi-Fi в той же полосе.
Мощность передатчика на максимальной настройке по спецификации — от 0,01 до 100 мВт, то есть от −20 до +20 дБм; по ней устройство относят к классу 1 (больше +10 дБм), 1,5, 2 или 3 (не больше 0 дБм) (Vol 6, Part A, разд. 3, табл. 3.1). Разрешённая мощность в конкретной стране задаётся не спецификацией, а местными нормами — для России их устанавливает решение ГКРЧ.
Реклама и сканирование
Пока соединения нет, устройство рекламирует себя: в каждом рекламном событии отправляет один и тот же пакет по очереди на каналах 37, 38 и 39 (Vol 6, Part B, разд. 4.4.2). Сканер слушает эти каналы окнами и, приняв пакет, может запросить дополнительные данные или установить соединение.
Начала соседних событий разделены временем TadvEvent = advInterval + advDelay. Интервал рекламы advInterval кратен 0,625 мс и лежит в пределах от 20 мс до 10 485,76 с, а advDelay — случайная добавка от 0 до 10 мс, которую канальный уровень выбирает заново для каждого события (разд. 4.4.2.2.1). Случайная задержка нужна, чтобы два устройства с одинаковым интервалом не сталкивались в эфире постоянно.
Устаревшие (legacy) рекламные пакеты бывают четырёх типов (разд. 2.3.1):
| PDU | Подключаемый | Отвечает на сканирование | Применение |
|---|---|---|---|
| ADV_IND | да | да | обычная реклама устройства, к которому подключаются |
| ADV_DIRECT_IND | да, только к одному адресу | нет | быстрое переподключение к известному центральному |
| ADV_SCAN_IND | нет | да | маячок с данными в ответе на сканирование |
| ADV_NONCONN_IND | нет | нет | маячок, датчик-вещатель |
В пакете ADV_IND — адрес рекламирующего AdvA (6 байт) и данные AdvData от 0 до 31 байта (рис. 2.6). Ещё до 31 байта можно положить в ответ на запрос сканирования. Расширенная реклама (Bluetooth 5.0) отправляет на рекламных каналах только короткий указатель ADV_EXT_IND, а сами данные — на канале общего назначения, и данных хоста может быть до 1650 байт, которые контроллер передаёт цепочкой пакетов AUX_CHAIN_IND (разд. 2.3.4.9). Принимать расширенную рекламу умеют не все сканеры.
Какой интервал ставить, спецификация рекомендует в GAP (Vol 3, Part C, разд. 9.3.11, табл. A.1) для LE 1M:
| Ситуация | Рекомендованный интервал |
|---|---|
| Подключаемая реклама по действию пользователя (нажал кнопку — ищем устройство) | 30–60 мс в течение не меньше 30 с |
| Неподключаемая реклама по действию пользователя | 100–150 мс |
| Фоновая реклама | 1–1,2 с |
Короткий интервал — быстрое обнаружение и большее потребление, длинный — экономия батареи и задержка обнаружения до нескольких секунд.
Роли GAP и GATT
GAP определяет четыре роли устройства в LE (Vol 3, Part C, разд. 2.2.2):
- Broadcaster — только рекламирует, соединений не принимает (маячок, датчик-вещатель);
- Observer — только слушает рекламу (шлюз, собирающий данные маячков);
- Peripheral — принимает соединение (датчик, браслет, устройство под управлением смартфона);
- Central — устанавливает соединение (смартфон, шлюз, пульт).
Роли GATT от них не зависят. Сервер GATT хранит атрибуты, клиент их читает и пишет. Обычно периферия — сервер, а смартфон — клиент, но бывает и наоборот. Данные сервера организованы иерархически: профиль состоит из сервисов, сервис — из характеристик, характеристика — из значения и необязательных дескрипторов (Vol 3, Part G, разд. 2.6.1). Каждый элемент — атрибут с 16-битным номером (handle), типом (UUID) и правами доступа. Клиент может прочитать или записать значение, а сервер — без запроса отправить уведомление (без подтверждения) или индикацию (с подтверждением), если клиент включил их в дескрипторе конфигурации характеристики.
Значение атрибута — не длиннее 512 байт, но за одну операцию передаётся не больше, чем позволяет ATT_MTU (Vol 3, Part F, разд. 3.2.9). В LE ATT_MTU по умолчанию — 23 байта (Part G, разд. 5.2.1, табл. 5.1), и в уведомление помещается ATT_MTU − 3 = 20 байт данных: 1 байт кода операции и 2 байта номера атрибута. Больший MTU стороны согласуют процедурой обмена MTU сразу после соединения. Наибольший ATT_MTU, который имеет смысл согласовывать, — 517 байт: 512 байт наибольшего значения атрибута плюс 5 байт заголовка ATT_PREPARE_WRITE_REQ — код операции, номер атрибута и смещение (наш расчёт по Vol 3, Part F). Именно 517 — предел MTU в стеке Bluedroid ESP-IDF (ESP_GATT_MAX_MTU_SIZE), по умолчанию там те же 23 байта.
Соединение: интервал, задержка, тайм-аут
После соединения обмен идёт событиями соединения: центральное устройство в начале каждого события отправляет пакет, периферия отвечает, и так, пока у сторон есть данные или пока не кончится событие. Между событиями радио молчит. Три параметра определяют ритм (Vol 6, Part B, разд. 4.5.1 и 4.5.2):
| Параметр | Диапазон | Смысл |
|---|---|---|
| connInterval | 7,5 мс – 4,0 с, шаг 1,25 мс | период событий соединения |
| connPeripheralLatency | от 0; без подрейтинга latency + 1 ≤ 500 | сколько событий подряд периферия может пропустить, если ей нечего передать |
| connSupervisionTimeout | 100 мс – 32 с, шаг 10 мс | через сколько без принятых пакетов соединение считается потерянным |
Тайм-аут должен быть больше (1 + latency) × connInterval × 2 (без подрейтинга соединения). Например, при интервале 100 мс и задержке 4 периферия просыпается раз в 500 мс, если ей нечего сказать, а тайм-аут должен быть больше 1 с.
Значения выбирает центральное устройство, периферия может только попросить другие (процедура запроса параметров соединения). Смартфоны и их стеки нередко ограничивают допустимые интервалы — проверяйте, какие параметры реально установились, по событию стека.
Пакет канального уровня и длина данных
Пакет на некодированном PHY состоит из преамбулы (1 байт на LE 1M, 2 байта на LE 2M), адреса доступа (4 байта), PDU с 16-битным заголовком и CRC (3 байта) (Vol 6, Part B, разд. 2.1). Данные в пакете соединения — не длиннее 251 байта (разд. 2.4). Но по умолчанию контроллеры начинают с 27 байт, и большую длину согласуют процедурой обновления длины данных; её поддержка появилась в версии 4.2 (Vol 1, Part C, разд. 8.1; Vol 6, Part B, разд. 4.5.10). Между пакетами — межкадровый интервал T_IFS, по умолчанию 150 мкс (разд. 4.1.1).
27 байт по умолчанию согласованы с MTU по умолчанию: 4 байта заголовка L2CAP (длина и номер канала, Vol 3, Part A, разд. 3.1) + 3 байта заголовка ATT + 20 байт данных = 27 байт. Поэтому без согласования MTU и длины данных каждое уведомление несёт 20 байт.
Пример: сколько на самом деле передаёт BLE
Оценим верхний предел скорости в одну сторону уведомлениями, если событие соединения заполнено пакетами целиком: периферия передаёт пакет, центральное отвечает пустым, между ними два интервала по 150 мкс. Шифрование (4 байта MIC в каждом пакете) не учитываем. Всё ниже — наш расчёт по форматам пакета из спецификации.
LE 1M, параметры по умолчанию. Пакет с 27 байтами данных: 1 + 4 + 2 + 27 + 3 = 37 байт = 296 бит → 296 мкс. Пустой ответ: 1 + 4 + 2 + 3 = 10 байт → 80 мкс. Цикл: 296 + 150 + 80 + 150 = 676 мкс на 20 байт полезных данных — около 29,6 кБ/с, или 237 кбит/с.
LE 2M, длина данных 251 байт, ATT_MTU 247. Пакет: 2 + 4 + 2 + 251 + 3 = 262 байта → 1048 мкс при 2 Мбит/с. Пустой ответ: 11 байт → 44 мкс. Цикл: 1048 + 150 + 44 + 150 = 1392 мкс на 244 байта данных — около 175 кБ/с, или 1,4 Мбит/с.
Разница в шесть раз — только от согласования PHY, длины пакета и MTU. На практике получается меньше: контроллер обслуживает в событии ограниченное число пакетов, между событиями есть паузы, мешают Wi-Fi и повторы, а смартфон может не согласиться на 2M или длинные пакеты. Но порядок величин верный: «BLE медленный» чаще всего означает, что остались 20 байт на пакет.
Потребление рекламы. Маячок с ADV_NONCONN_IND и 31 байтом данных: PDU = 2 + 6 + 31 = 39 байт, пакет 1 + 4 + 39 + 3 = 47 байт → 376 мкс на LE 1M; три канала — 1,13 мс эфира на событие. При интервале 1 с передатчик включён 0,11 % времени. У ESP32-H2 пиковый ток передачи при 0 дБм — 36 мА (даташит, табл. 5-6), значит, средний ток собственно передачи ≈ 36 мА × 0,00113 ≈ 41 мкА (наш расчёт). Реальный средний ток выше: к нему добавляются пробуждение процессора, включение и перестройка радио между каналами и ток сна — их меряют на конкретной плате.
Чипы: что пишут даташиты
| Чип | Bluetooth | PHY | Мощность | Чувствительность 1M / 2M / 125k / 500k, дБм |
|---|---|---|---|---|
| ESP32 | 4.2 BR/EDR + LE | 1M | — | — |
| ESP32-C3 | 5, mesh | 1M, 2M, Coded | −24…+20 дБм | −97 / −93 / −105 / −100 |
| ESP32-S3 | 5, mesh | 1M, 2M, Coded | −24…+20 дБм | −97,5 / −93,5 / −104,5 / −101 |
| ESP32-C6 | 5.3 (сертифицирован) | 1M, 2M, Coded | −15…+20 дБм | −98,5 / −95,5 / −106 / −102 |
| ESP32-H2 | 5.3 (сертифицирован) | 1M, 2M, Coded | −24…+20 дБм | −99 / −96 / −106,5 / −102,5 |
По даташитам Espressif (ESP32 v5.3, ESP32-C3 v2.4, ESP32-S3 v2.2, ESP32-C6 v1.5, ESP32-H2 v1.3), типовые значения при 3,3 В и 25 °C. Espressif указывает чувствительность при доле потерянных пакетов 30,8 %: это та же норма BER 0,1 %, пересчитанная на тестовый пакет. Наш расчёт: пакет с 37 байтами данных на LE 1M — 1 + 4 + 2 + 37 + 3 = 47 байт; без преамбулы проверяется 46 байт = 368 бит, и 1 − 0,999368 ≈ 0,308. Сравнивая чипы разных производителей, проверяйте, при какой доле ошибок указана чувствительность, — подробнее в статье «Беспроводные технологии».
ESP32 первого поколения соответствует Bluetooth 4.2, поэтому 2M, Coded PHY и расширенной рекламы у него нет — они появились в 5.0. Для нового устройства на BLE выбирают чипы с Bluetooth 5: у ESP32-C3 и ESP32-S3 рядом есть Wi-Fi, у ESP32-C6 — Wi-Fi 6 и IEEE 802.15.4, ESP32-H2 — без Wi-Fi, с BLE и 802.15.4.
Безопасность: сопряжение
Сопряжение выполняет протокол SMP (Vol 3, Part H, разд. 2.3). Устройства обмениваются возможностями ввода-вывода (есть ли дисплей, клавиатура, кнопки «да/нет») и по ним выбирают метод: Just Works без участия пользователя, ввод шестизначного ключа, сравнение чисел на двух экранах или внеполосный обмен (например, через NFC). Защиту от атаки «человек посередине» дают все методы, кроме Just Works.
Важно различать два поколения. В старом LE legacy pairing ни один метод не защищает от пассивного прослушивания самого сопряжения: временный ключ предсказуем или легко подбирается. В LE Secure Connections (добавлено в 4.2, Vol 1, Part C, разд. 8.1) стороны вычисляют долговременный ключ через обмен по Диффи — Хеллману на эллиптических кривых, и пассивный наблюдатель его не получит. Если обе стороны поддерживают Secure Connections, используется он (Part H, разд. 3.5.1). В новом устройстве отключайте legacy pairing, если это позволяет совместимость.
Частые ошибки
- 20 байт на пакет навсегда. Не согласован MTU и длина данных — скорость в разы ниже возможной. Запрашивайте больший MTU после соединения и проверяйте, что установилось.
- Реклама каждые 20 мс круглые сутки. Быстрая реклама нужна на десятки секунд после нажатия кнопки, дальше — фоновая с интервалом около секунды.
- Тайм-аут меньше допустимого. При большой задержке периферии и коротком тайм-ауте соединение рвётся; держите тайм-аут больше (1 + latency) × connInterval × 2 с запасом.
- Надежда на Coded PHY со смартфоном. Дальний режим должен поддерживать и чип телефона; проверяйте до того, как закладывать дальность в требования.
- Расширенная реклама для всех. Старые сканеры её не видят; если устройство должно находиться любым телефоном, оставьте и устаревшую рекламу.
- Антенна «как получилось». Чувствительность −97 дБм не спасёт, если антенна зажата металлом или батареей: см. антенны и разводку ВЧ-части платы, а запас по дальности — в бюджете радиолинии.
Частые вопросы
Сколько данных помещается в рекламный пакет BLE?
В устаревшем (legacy) рекламном пакете ADV_IND или ADV_NONCONN_IND поле данных — от 0 до 31 байта, ещё 6 байт занимает адрес устройства. Ещё 31 байт можно отдать в ответе на сканирование. Расширенная реклама из Bluetooth 5 переносит данные на каналы общего назначения и позволяет хосту передать до 1650 байт, которые контроллер режет на фрагменты; но её должны поддерживать обе стороны.
Почему через BLE приходит только 20 байт за раз?
Потому что по умолчанию ATT_MTU в LE равен 23 байтам, а в уведомление помещается ATT_MTU − 3 = 20 байт полезных данных. Чтобы передавать больше, стороны после соединения договариваются о большем MTU (обмен MTU), а контроллеры — о большей длине пакета канального уровня (до 251 байта). Если одна сторона этого не поддерживает, остаются 20 байт.
Какой интервал соединения выбрать?
Спецификация разрешает от 7,5 мс до 4 с с шагом 1,25 мс. Короткий интервал даёт низкую задержку и высокую скорость, но устройство чаще просыпается. Для датчика, который раз в несколько секунд отдаёт пару байт, интервал в сотни миллисекунд с задержкой периферии экономит батарею. Окончательное значение выбирает центральное устройство — смартфон может не принять запрошенное.
Чем LE Coded PHY лучше обычного?
Чувствительностью ценой скорости. В спецификации предел чувствительности для LE 1M — −70 дБм, для Coded S=8 — −82 дБм; у ESP32-H2 в даташите −99 дБм на 1 Мбит/с и −106,5 дБм на 125 кбит/с. Наш расчёт по формуле потерь в свободном пространстве: 7,5 дБ выигрыша — это примерно в 2,4 раза большая дальность. Но скорость падает в 8 раз, а пакет дольше занимает эфир и батарею. Coded PHY поддерживают не все смартфоны и не все чипы: у ESP32 первого поколения (Bluetooth 4.2) его нет.
Безопасно ли сопряжение Just Works?
Оно шифрует соединение, но не защищает от активной атаки «человек посередине», потому что пользователь ничего не сверяет. Защиту от неё дают методы с вводом ключа, сравнением чисел или внеполосным обменом. Кроме того, по спецификации старое сопряжение LE legacy pairing не защищает от пассивного прослушивания самого сопряжения; LE Secure Connections (с версии 4.2) вычисляет ключ через обмен по Диффи — Хеллману на эллиптических кривых.
Источники
- Bluetooth SIG. Bluetooth Core Specification, version 6.0 (HTML) — Vol 1, Part A, разд. 1: система — хост и контроллер, граница — HCI; Vol 1, Part C, разд. 6.1: Bluetooth Low Energy добавлен в 4.0; разд. 8.1 и 9.1: в 4.2 добавлены LE Data Packet Length Extension и LE Secure Connections, в 5.0 — PHY 2 Мсимв/с, LE Long Range и LE Advertising Extensions; Vol 6, Part A, разд. 1: PHY LE 1M (1 Мбит/с, обязателен), LE Coded (125 или 500 кбит/с, необязателен), LE 2M (2 Мбит/с); разд. 2: 2400–2483,5 МГц, 40 каналов через 2 МГц от 2402 до 2480 МГц; разд. 3, табл. 3.1: мощность от −20 до +20 дБм, классы 1, 1,5, 2, 3; разд. 3.1: GFSK, BT = 0,5, индекс модуляции 0,45–0,55; разд. 4.1, табл. 4.1 и 4.2: чувствительность при BER 0,1 % (до 37 байт данных) — не хуже −70 дБм для некодированных PHY, −75 дБм для S=2 и −82 дБм для S=8; Vol 6, Part B, разд. 1.4 и табл. 1.3: рекламные каналы 37, 38, 39 на 2402, 2426 и 2480 МГц, каналы общего назначения 0–36; разд. 2.1: преамбула 1 байт на LE 1M и 2 байта на LE 2M, адрес доступа 4 байта, CRC 3 байта; разд. 2.3: заголовок рекламного PDU 16 бит; разд. 2.3.1 и рис. 2.6: ADV_IND, ADV_DIRECT_IND, ADV_NONCONN_IND, ADV_SCAN_IND — устаревшие рекламные PDU, AdvA 6 байт, AdvData 0–31 байт; разд. 2.3.4.9: данные расширенной рекламы до 1650 байт, фрагменты в AUX_CHAIN_IND; разд. 2.4: данные PDU не длиннее 251 байта; разд. 4.1.1: межкадровый интервал T_IFS по умолчанию 150 мкс; разд. 4.4.2.2.1: advInterval кратен 0,625 мс, от 20 мс до 10 485,759375 с, advDelay случайный от 0 до 10 мс; разд. 4.5.1: connInterval кратен 1,25 мс от 7,5 мс до 4,0 с, задержка периферии; разд. 4.5.2: тайм-аут соединения кратен 10 мс, от 100 мс до 32 с и больше (1 + latency) × connInterval × 2 (при connSubrateFactor = 1); разд. 4.5.10, табл. 4.9: длина данных 27–251 байт, время пакета 328–17 040 мкс
- Bluetooth SIG. Bluetooth Core Specification 6.0, Vol 3 — Host — Part A, разд. 3.1: базовый заголовок L2CAP — длина 2 байта и идентификатор канала 2 байта; Part C, разд. 2.2.2: четыре роли GAP для LE — Broadcaster, Observer, Peripheral, Central; разд. 9.3.11 и табл. A.1: рекомендованные интервалы рекламы на LE 1M — 30–60 мс для подключаемой рекламы по действию пользователя, 100–150 мс для неподключаемой, 1–1,2 с для фоновой, не меньше 30 с быстрой рекламы; Part F, разд. 3.2.9: значение атрибута не длиннее 512 байт, в уведомление помещается ATT_MTU − 3 байта; Part G, разд. 2.6.1: профиль → сервисы → характеристики (значение и дескрипторы); разд. 5.2.1, табл. 5.1: ATT_MTU по умолчанию для LE — 23 байта, канал L2CAP CID 0x0004; Part H, разд. 2.3: методы сопряжения, LE legacy pairing не защищает от пассивного прослушивания во время сопряжения, LE Secure Connections — ключ LTK через обмен ECDH
- Espressif Systems. ESP32-C3 Series Datasheet, version 2.4 — разд. 1: Bluetooth 5, Bluetooth mesh, 125 кбит/с, 500 кбит/с, 1 и 2 Мбит/с, Advertising Extensions, несколько наборов рекламы; табл. 6-8–6-11: регулировка мощности от −24 до 20 дБм; табл. 6-12–6-15: чувствительность при PER 30,8 % — 1 Мбит/с −97, 2 Мбит/с −93, 125 кбит/с −105, 500 кбит/с −100 дБм
- Espressif Systems. ESP32-S3 Series Datasheet, version 2.2 — разд. 1: Bluetooth 5, Bluetooth Mesh, 125 кбит/с – 2 Мбит/с, LE Advertising Extensions; табл. 6-8: регулировка мощности от −24 до 20 дБм; табл. 6-12–6-15: чувствительность при PER 30,8 % — −97,5; −93,5; −104,5 и −101 дБм для 1 Мбит/с, 2 Мбит/с, 125 и 500 кбит/с
- Espressif Systems. ESP32-C6 Series Datasheet, version 1.5 — разд. 1: Bluetooth LE, сертификация Bluetooth 5.3, 125 кбит/с – 2 Мбит/с; табл. 6-7: мощность от −15 до 20 дБм; табл. 6-12–6-15: чувствительность при PER 30,8 % — −98,5; −95,5; −106 и −102 дБм
- Espressif Systems. ESP32-H2 Series Datasheet, version 1.3 — разд. 1: Bluetooth LE, сертификация Bluetooth 5.3, Coded PHY 125 и 500 кбит/с; табл. 5-6: пиковый ток передачи 140 мА при 20 дБм, 60 мА при 9 дБм, 36 мА при 0 дБм, приёма — 24 мА; табл. 6-1: 2402–2480 МГц, мощность от −24 до 20 дБм; табл. 6-6–6-9: чувствительность при PER 30,8 % — −99; −96; −106,5 и −102,5 дБм
- Espressif Systems. ESP32 Series Datasheet, version 5.3 — разд. 1: соответствует спецификациям Bluetooth v4.2 BR/EDR и Bluetooth LE, двухрежимный контроллер
- Espressif Systems. ESP-IDF, components/bt/host/bluedroid/api/include/api/esp_gatt_common_api.h (master, октябрь 2026) — ESP_GATT_DEF_BLE_MTU_SIZE = 23, ESP_GATT_MAX_MTU_SIZE = 517; esp_ble_gatt_set_local_mtu() задаёт локальный MTU до соединения
Нашли ошибку?
Смотрите также
- Радио и беспроводные модулиWi-Fi, BLE, Zigbee, LoRa, 433/868 МГц: выбор радио, бюджет линии, антенны
- Беспроводные технологииWi-Fi, BLE, 802.15.4, nRF24, 433/868 МГц, LoRa: таблица параметров по даташитам
- Бюджет радиолиниидБм, дБи, ЭИИМ, потери в свободном пространстве, Фриис, чувствительность, запас, примеры
- Антенны для радиомодулейλ/4 и земля, PCB IFA, чип и спираль, КСВ, П-цепь, зона без меди, КПД по замерам
- ESP32-C3: выводы и GPIO22 GPIO: функции, свободные и занятые выводы, флеш-память, strapping, USB, JTAG, токи
- ESP32-C6: выводы и GPIO30 или 22 GPIO: функции, свободные выводы, флеш-память, strapping, USB, JTAG, токи
- ESP32-H2: выводы и GPIO19 GPIO: функции, выводы LP, свободные выводы, strapping, USB, JTAG, токи
- ESP32-S3: выводы и GPIO45 GPIO: функции, свободные и занятые выводы, флеш и PSRAM, strapping, USB, JTAG, токи
- Чувствительность приёмникаНаименьший сигнал, который приёмник принимает с заданной ошибкой
- RSSIОценка мощности сигнала в канале приёмника, в дБм
- Преамбула пакетаНачальная последовательность 1010… для синхронизации приёмника
- FSK и GFSKЧастотная манипуляция: 0 и 1 — сдвиг на минус и плюс девиацию
- Калькулятор децибелдБм ↔ мВт ↔ В, дБВ, дБмкВ, дБ ↔ разы
- На какое расстояние работает Bluetooth Low Energy?Десятки метров в помещении, сотни метров и больше на открытом месте