Перейти к содержанию

LE Coded PHY

Bluetooth 5 обещал вчетверо большую дальность. Достаётся она не мощностью, а избыточным кодированием: каждый бит передаётся несколькими символами, и приёмник вытаскивает сигнал из-под шума ценой скорости.

Обновлено Редакция GAW

LE Coded PHY (Bluetooth LE Long Range) — физический уровень Bluetooth LE с помехоустойчивым кодированием, появившийся в Bluetooth 5.0. Он передаёт данные со скоростью 500 кбит/с (кодирование S=2) или 125 кбит/с (S=8) вместо 1 Мбит/с у обязательного LE 1M и за счёт этого принимается при более слабом сигнале. LE Coded — необязательный PHY: поддерживать его должны обе стороны (Core 6.0, Vol 6, Part A, разд. 1).

Как кодируется

Символьная скорость в эфире та же, что у LE 1M, — 1 Мсимв/с; меняется кодирование (Vol 6, Part B, разд. 3.3):

  1. Свёрточный код — несистематический, нерекурсивный, скорость 1/2, кодовое ограничение K = 4, образующие полиномы G0 = 1 + x + x² + x³ и G1 = 1 + x² + x³. Каждый бит данных превращается в два.
  2. Отображение в символы. При S=2 каждый бит кода передаётся одним символом, при S=8 — четырьмя: 0 → 0011, 1 → 1100.

Итого 2 или 8 символов на бит данных: 1 Мсимв/с даёт 500 или 125 кбит/с. Начало пакета — адрес доступа, индикатор кодирования CI и хвост TERM1 — всегда кодируется S=8, а CI сообщает, каким кодированием идёт остальной пакет (разд. 2.2). Так приёмник надёжно ловит заголовок даже при слабом сигнале. Это частный случай прямой коррекции ошибок.

Сколько это даёт

Спецификация задаёт минимальную чувствительность при доле ошибочных бит 0,1 % (Vol 6, Part A, табл. 4.2):

PHYСкоростьЧувствительность, не хуже
LE 1M, LE 2M1 и 2 Мбит/с−70 дБм
LE Coded, S=2500 кбит/с−75 дБм
LE Coded, S=8125 кбит/с−82 дБм

12 дБ разницы между LE 1M и S=8 по формуле потерь в свободном пространстве — это примерно в 4 раза большая дальность (наш расчёт). Реальные чипы чувствительнее минимумов, а выигрыш у них скромнее: у ESP32-H2 −99 дБм на 1 Мбит/с и −106,5 дБм на 125 кбит/с при PER 30,8 % — 7,5 дБ, около 2,4 раза по дальности (даташит ESP32-H2).

Цена

Скорость падает в 2 или 8 раз, и пакет того же размера в 8 раз дольше занимает эфир — растёт время в эфире, потребление и вероятность столкновений. Поэтому LE Coded выбирают для редких коротких сообщений на большой дальности, а не для потоков данных. Как выбирать PHY, рекламу и параметры соединения — в статье «Bluetooth Low Energy».

Частые вопросы

Во сколько раз LE Coded увеличивает дальность?

Зависит от выигрыша в чувствительности. По спецификации минимум для LE 1M — −70 дБм, для S=8 — −82 дБм: 12 дБ, что в свободном пространстве даёт примерно вчетверо большую дальность (наш расчёт: 20·lg 4 ≈ 12 дБ). У реального ESP32-H2 разница меньше — −99 и −106,5 дБм, 7,5 дБ, то есть примерно в 2,4 раза.

Почему при S=8 скорость 125 кбит/с, а не 1 Мбит/с?

Символьная скорость в эфире та же — 1 Мсимв/с, но каждый бит данных сначала превращается свёрточным кодом со скоростью 1/2 в два бита, а затем каждый из них — в 4 символа. Итого 8 символов на бит: 1 Мсимв/с / 8 = 125 кбит/с. При S=2 символ на бит кода один, получается 2 символа на бит и 500 кбит/с.

Все ли устройства поддерживают LE Coded?

Нет, это необязательный PHY из Bluetooth 5.0. Обязателен только LE 1M. Например, ESP32 первого поколения с Bluetooth 4.2 его не поддерживает, а ESP32-C3, C6, S3 и H2 — поддерживают. Обе стороны соединения должны уметь Coded PHY, иначе работает LE 1M.

Источники

  1. Bluetooth SIG. Bluetooth Core Specification, version 6.0 (HTML), Vol 6 Part A — Physical Layer — разд. 1: PHY LE 1M (обязателен), LE Coded — 125 или 500 кбит/с, необязателен, LE 2M; разд. 4.1, табл. 4.2: чувствительность при BER 0,1 % — не хуже −70 дБм для некодированных PHY, −75 дБм для S=2 и −82 дБм для S=8; помехоустойчивость измеряют при полезном сигнале −67, −72 и −79 дБм соответственно; точность скорости 125 и 500 кбит/с ±1 ppm
  2. Bluetooth SIG. Bluetooth Core Specification 6.0, Vol 6 Part B — Link Layer — разд. 3.3: кодирование только для LE Coded — сначала свёрточный код, затем отображение в символы; разд. 3.3.1: несистематический нерекурсивный код со скоростью 1/2 и кодовым ограничением K = 4, G0 = 1 + x + x² + x³, G1 = 1 + x² + x³, хвост из трёх нулей; разд. 3.3.2, табл. 3.1: при S=2 бит кода — 1 символ, при S=8 — 4 символа (0 → 0011, 1 → 1100); разд. 2.2: блок FEC 1 — адрес доступа, индикатор кодирования CI и TERM1 — всегда S=8, CI выбирает кодирование блока FEC 2
  3. Espressif Systems. ESP32-H2 Series Datasheet (version 1.3) — Coded PHY 125 и 500 кбит/с; табл. 6-6–6-9: чувствительность при PER 30,8 % — −99 дБм на 1 Мбит/с, −96 дБм на 2 Мбит/с, −106,5 дБм на 125 кбит/с

Нашли ошибку?