LoRa: фактор расширения, полоса и время в эфире
LoRa обменивает скорость на чувствительность: каждый шаг фактора расширения SF вдвое удлиняет символ и даёт около 2,5 дБ запаса по сигнал/шум. Разбираем по даташиту SX1276 и заметкам Semtech AN1200.13 и AN1200.22, как SF, полоса и кодовая скорость задают скорость, чувствительность и длительность пакета, и считаем время в эфире с проверкой по таблицам Semtech.
Обновлено Редакция GAW
LoRa — модуляция Semtech с расширением спектра на основе линейно-частотно-модулированных импульсов (chirp spread spectrum, CSS): частота сигнала непрерывно меняется по всей полосе, ширина которой и есть полоса сигнала, а данные модулируют этот «чирп» (AN1200.22, разд. 4; AN1200.13, разд. 2.1). Модуляция обменивает скорость на чувствительность в постоянной полосе: приёмник выделяет сигнал на 5–20 дБ ниже уровня шума. LoRa — только физический уровень; сетевой протокол LoRaWAN со шлюзами и серверами работает поверх него и в этой статье не рассматривается.
Коротко
- SF
- 6–12; символ = 2^SF чипов
- Полоса
- 7,8–500 кГц, чаще 125 кГц
- Кодовая скорость
- 4/5–4/8
- SNR
- от −5 (SF6) до −20 дБ (SF12)
- SX1276
- до −148 дБм, до +20 дБм
- Пакет 20 байт, 125 кГц
- SF7 — 57 мс, SF12 — 1,32 с
Три параметра: SF, BW и CR
Полоса BW — ширина спектра сигнала LoRa, двусторонняя: 125 кГц — это весь канал, а не отклонение в одну сторону, как у FSK (SX1276, разд. 4.1.1.4). Чипы идут со скоростью, равной полосе: 125 кГц — 125 тысяч чипов в секунду (AN1200.13, разд. 2.4). SX1276 поддерживает полосы от 7,8 до 500 кГц; на 169 МГц нет 250 и 500 кГц.
Фактор расширения SF — сколько бит несёт символ: в символе 2SF чипов, поэтому длительность символа
При 125 кГц символ SF7 длится 1,024 мс, SF12 — 32,768 мс (наш расчёт). Каждый шаг SF вдвое удлиняет символ, но позволяет демодулятору работать при отношении сигнал/шум на 2,5 дБ хуже:
| SF | Чипов на символ | SNR демодулятора | Чувствительность, 125 кГц | Скорость при CR 4/5, 125 кГц |
|---|---|---|---|---|
| 6 | 64 | −5 дБ | −118 дБм | — |
| 7 | 128 | −7,5 дБ | −123 дБм | 5,47 кбит/с |
| 8 | 256 | −10 дБ | −126 дБм | 3,13 кбит/с |
| 9 | 512 | −12,5 дБ | −129 дБм | 1,76 кбит/с |
| 10 | 1024 | −15 дБ | −132 дБм | 977 бит/с |
| 11 | 2048 | −17,5 дБ | −133 дБм | 537 бит/с |
| 12 | 4096 | −20 дБ | −136 дБм | 293 бит/с |
SNR — табл. 13 даташита SX1276; чувствительность — табл. 10, диапазон 1 (862–1020 МГц), наибольшее усиление малошумящего усилителя, раздельные тракты приёма и передачи, PER 1 %; скорость — по формуле ниже (наш расчёт, для SF12 совпадает с таблицей номинальных скоростей даташита — 293 бит/с). SF6 — особый режим: только с неявным заголовком и особыми настройками регистров (разд. 4.1.1.2).
Кодовая скорость CR — доля избыточности помехоустойчивого кода: 4/5, 4/6, 4/7 или 4/8, накладные расходы от 1,25 до 2 раз (табл. 14). По AN1200.13 (разд. 3.1) главная польза кода — устойчивость к пакетам помех, а цена — более длинный пакет: при SF10 и 250 кГц время в эфире 123,9 мс при CR 4/5 и 148,5 мс при CR 4/8 (табл. 4).
Номинальная битовая скорость (AN1200.22, разд. 4), где CR — номер от 1 до 4:
Откуда чувствительность ниже шума
Чувствительность приёмника — сумма теплового шума, полосы, коэффициента шума и нужного демодулятору отношения сигнал/шум (AN1200.13, разд. 2.2; AN1200.22, разд. 4.2):
Проверка по числам Semtech (наш расчёт): при BW = 125 кГц и NF = 6 дБ (типовой коэффициент шума из AN1200.22) получаем −124,5 дБм для SF7 и −137 дБм для SF12; в даташите SX1276 — −123 и −136 дБм, в табл. 1 AN1200.22 — −123 и −137 дБм. Формула объясняет и роль полосы: вдвое более узкая полоса — минус 3 дБ шума; при SF12 даташит даёт −139 дБм на 62,5 кГц и −133 дБм на 250 кГц. Подробнее о том, как чувствительность превращается в дальность, — в статье «Бюджет радиолинии».
Ещё два свойства LoRa из AN1200.22: высокая избирательность — 90 дБ вне канала против обычных для FSK 50 дБ по соседнему и альтернативному каналу — и подавление помехи в своём канале лучше 20 дБ против −6 дБ у FSK (разд. 4.1.3), и устойчивость к импульсным помехам: помеха любой мощности длительностью до 30 % символа ухудшает чувствительность меньше чем на 6 дБ (разд. 5.5).
Структура пакета
Пакет LoRa состоит из трёх частей (SX1276, разд. 4.1.1.6):
- Преамбула — для синхронизации приёмника. Длина задаётся регистром от 6 до 65535 символов, к ней модем добавляет фиксированную часть — 4 символа по разд. 4.1.1.6, а в формуле времени в эфире (разд. 4.1.1.7) — 4,25 символа; по умолчанию преамбула — 12 символов. Длина преамбулы на приёмнике должна совпадать с передатчиком.
- Заголовок — в явном режиме содержит длину данных, кодовую скорость и признак CRC, передаётся с CR 4/8 и защищён своим CRC. В неявном режиме заголовка нет, и эти параметры заранее задают на обеих сторонах — так короче пакет.
- Данные — от 1 до 255 байт, с необязательным CRC на 16 бит.
Бит LowDataRateOptimize обязателен, когда символ длиннее 16 мс, то есть при 125 кГц — для SF11 и SF12; на обеих сторонах он должен быть одинаковым.
Время в эфире: формула
Формулы — из даташита SX1276 (разд. 4.1.1.7). Длительность преамбулы, где npreamble — значение регистра длины преамбулы:
Число символов заголовка и данных:
где PL — число байт данных, CRC = 1, если CRC включён, IH = 1 в неявном режиме заголовка и 0 в явном, DE = 1, если включён LowDataRateOptimize, CR — номер кодовой скорости от 1 (4/5) до 4 (4/8). Время в эфире — сумма:
Пример: проверка по таблице Semtech
AN1200.13 (табл. 2–3) приводит время в эфире при CR = 2 (4/6); длина данных — 10 байт — указана только в табл. 3, остальные условия пакета не перечислены. Наш расчёт для 10 байт по формуле совпадает с ней при npreamble = 8, явном заголовке и выключенном CRC. Для SF10, 250 кГц:
- Ts = 210/250 000 = 4,096 мс.
- Tpreamble = (8 + 4,25) · 4,096 = 50,18 мс.
- Числитель: 8 · 10 − 4 · 10 + 28 + 0 − 0 = 68; знаменатель: 4 · (10 − 0) = 40; = 2; npayload = 8 + 2 · (2 + 4) = 20 символов.
- Tpacket = 50,18 + 20 · 4,096 = 132,1 мс — как в таблице Semtech.
Так же сходятся остальные строки: SF8 — 39,2 мс, SF10 на 125 и 500 кГц — 264,2 и 66,0 мс, SF12 на 250 кГц — 528,4 мс, для SF12 мы взяли DE = 1 — по даташиту LowDataRateOptimize обязателен при символе длиннее 16 мс (здесь 16,384 мс); на результат в этой строке он не влияет.
Пример: SF7 против SF12
Условия (наши): 20 байт данных, 125 кГц, CR 4/5, npreamble = 8, явный заголовок, CRC включён.
| SF7 | SF12 | |
|---|---|---|
| Ts | 1,024 мс | 32,768 мс |
| DE | 0 | 1 (символ больше 16 мс) |
| Tpreamble | 12,5 мс | 401,4 мс |
| npayload | 8 + ⌈176 / 28⌉ · 5 = 43 | 8 + ⌈156 / 40⌉ · 5 = 28 |
| Tpacket | 56,6 мс | 1318,9 мс |
| Чувствительность (диапазон 1) | −123 дБм | −136 дБм |
SF12 выигрывает 13 дБ — в свободном пространстве это примерно в 4,5 раза большая дальность, — но держит передатчик включённым в 23 раза дольше (наш расчёт при условиях примера: 20 байт, 125 кГц, CR 4/5, преамбула 8, явный заголовок, CRC включён). При +13 дБм SX1276 в режиме LoRa потребляет в передаче 28 мА (табл. 10), то есть один пакет на SF12 расходует 28 мА · 1,32 с ≈ 37 мА·с ≈ 10,3 мкА·ч, а на SF7 — около 0,44 мкА·ч. Сколько это в сроке службы батареи, считает калькулятор времени работы от батареи.
Рабочий цикл и нормы
Чем дольше пакет, тем быстрее устройство упирается в ограничения на долю времени в эфире и на прослушивание канала перед передачей (LBT): Semtech упоминает такие ограничения как инструмент, которым нормы снижают число столкновений в нелицензируемых полосах (AN1200.22, разд. 5.4). Для Европы TI в даташите CC1101 называет стандарт EN 300 220, в России условия использования полос для устройств малого радиуса действия — решения ГКРЧ. Конкретные значения различаются по участкам полосы и меняются: проверьте актуальное решение ГКРЧ перед выбором частоты, мощности и SF.
Частые ошибки
- Разные настройки на сторонах. SF, полоса, частота, CR в неявном режиме, длина преамбулы и LowDataRateOptimize должны совпадать — иначе приёмник ничего не увидит.
- SF12 «на всякий случай». Максимальный SF умножает время в эфире и расход батареи; берите наименьший SF с запасом по бюджету.
- SX1278 на 868 МГц. Он работает только до 525 МГц; для 868 МГц нужен SX1276 или SX1279.
- Нет LowDataRateOptimize на SF11–SF12 при 125 кГц. Даташит требует его при символе длиннее 16 мс.
- Общий тракт приёма и передачи без учёта потерь. Чувствительность в таблице даташита дана для раздельных трактов; с общим трактом она хуже (AN1200.13, разд. 3.2).
Частые вопросы
Какой SF выбрать?
Наименьший, при котором связь устойчива с запасом. Каждый шаг SF вверх удваивает длительность символа и почти удваивает время в эфире, а чувствительность улучшает на 1–3 дБ (табл. 10 SX1276: −123 дБм на SF7 и −136 дБм на SF12 при 125 кГц). Пакет на SF12 занимает эфир в десятки раз дольше, чем на SF7, — это ток батареи и ограничения на долю времени в эфире. Поэтому SF подбирают по дальности для каждого узла.
Сколько данных передаёт LoRa?
По таблице SX1276 номинальная скорость при полосе 125 кГц и CR 4/5 — от 293 бит/с на SF12 до 5,5 кбит/с на SF7; при 500 кГц и SF7 — до 21,9 кбит/с (наш расчёт по той же формуле), а предел SX1276 в режиме LoRa — 37,5 кбит/с. Пакет — до 255 байт. LoRa подходит для показаний датчиков и команд, но не для звука и картинок.
Чем SX1276 отличается от SX1278?
Диапазоном частот. По табл. 1 даташита SX1276 работает от 137 до 1020 МГц, SX1278 — от 137 до 525 МГц, то есть подходит для 433 МГц, но не для 868 МГц. Набор SF (6–12), полоса (7,8–500 кГц) и чувствительность до −148 дБм у них одинаковы. У SX1277 SF только от 6 до 9.
Можно ли принять LoRa с одним SF на приёмнике, настроенном на другой?
Нет. SF нужно знать заранее на обеих сторонах: сигналы с разными SF ортогональны, и приёмник воспринимает чужой SF как шум (даташит SX1276, разд. 4.1.1.2; AN1200.22, разд. 4.1.7). Так же должны совпадать полоса, частота, длина преамбулы, режим заголовка и бит LowDataRateOptimize.
Источники
- Semtech. SX1276/77/78/79 Datasheet, Rev. 5 (August 2016) — архивная копия официального файла; табл. 1: SX1276 137–1020 МГц, SF 6–12, SX1277 — SF 6–9, SX1278 — 137–525 МГц; табл. 6: передача 120 мА при +20 дБм, 87 мА при +17 дБм, 29 мА при +13 дБм, сон 0,2 мкА; табл. 10: передача LoRa 28 мА при 13 дБм; табл. 7: диапазоны 1 (862–1020 МГц), 2 (410–525 МГц), 3 (137–175 МГц); табл. 10: условия — 3,3 В, 25 °C, BW 125 кГц, SF12, CR 4/6, PER 1 %, CRC включён, +13 дБм; приём 9,9–12,6 мА в диапазоне 1; чувствительность в диапазоне 1 при 125 кГц: SF7–SF12 — −123, −126, −129, −132, −133, −136 дБм; разд. 4.1.1.2, табл. 13: 2^SF чипов на символ, SNR демодулятора от −5 (SF6) до −20 дБ (SF12), SF6 — только неявный заголовок; табл. 14: CR 4/5–4/8, накладные расходы 1,25–2; разд. 4.1.1.4: полоса LoRa — двусторонняя; табл. 15 и примечание: 7,8–500 кГц, на 169 МГц нет 250 и 500 кГц; разд. 4.1.1.5: Rs = BW / 2^SF, табл. номинальных скоростей (SF12, 125 кГц, 4/5 — 293 бит/с); разд. 4.1.1.6: преамбула 6–65535 + 4 символа (в формуле разд. 4.1.1.7 — + 4,25), по умолчанию 12 символов, явный заголовок с CR 4/8 и своим CRC, неявный заголовок, CRC 16 бит; LowDataRateOptimize обязателен при длительности символа больше 16 мс; разд. 4.1.1.7: формулы времени в эфире
- Semtech. AN1200.13 SX1272/3/6/7/8: LoRa Modem Designer's Guide, Rev. 1 (July 2013) — архивная копия официального файла; разд. 2.2: составляющие чувствительности; табл. 1: типовой SNR — SF12 −20 дБ, SF10 −15 дБ, GMSK +9 дБ; разд. 2.4: скорость чипов равна полосе (125 кГц — 125 кчип/с); табл. 2: CR = 2, BW 250 кГц — SF12 528,4 мс и −134 дБм, SF10 132,1 мс и −129 дБм, SF8 39,2 мс и −124 дБм; табл. 3: SF10, CR = 2, 10 байт — 125 кГц 264,2 мс и −132 дБм, 250 кГц 132,1 мс, 500 кГц 66 мс и −126 дБм; табл. 4: CR 1, 2, 4 — 123,9, 132,1, 148,5 мс; разд. 3.2: раздельные тракты приёма и передачи дают лучшую чувствительность; разд. 4: структура пакета и время в эфире; разд. 5: оптимизация низкой скорости при 125 кГц и SF11, SF12
- Semtech. AN1200.22 LoRa Modulation Basics, Rev. 2 (May 2015) — архивная копия официального файла; разд. 1 и 4: CSS, ортогональные SF 7–12, Rb = SF · BW / 2^SF и с кодовой скоростью; разд. 4.1.3: у LoRa избирательность вне канала 90 дБ и подавление в канале лучше 20 дБ, у FSK обычно 50 дБ по соседнему и альтернативному каналу и −6 дБ в канале; разд. 4.2: шумовой порог −174 + 10·lg B, NF 6 дБ; разд. 5.4: ограничения по рабочему циклу и LBT устанавливаются нормами; разд. 5.5: импульсные помехи до 30 % длительности символа — потеря чувствительности меньше 6 дБ; разд. 6.2, табл. 1: SF12 — 293 бит/с и −137 дБм, SF7 — 5468 бит/с и −123 дБм
- Texas Instruments. CC1101 Low-Power Sub-1 GHz RF Transceiver (SWRS061I, 2013) — с. 2: микросхема рассчитана на системы, которые должны соответствовать EN 300 220 (Европа) и FCC CFR Part 15 (США); разд. 28.1: основные нормы для 315, 433, 868 и 915 МГц — EN 300 220 и FCC CFR47 Part 15, соответствие зависит от всего изделия
Нашли ошибку?
Смотрите также
- Радио и беспроводные модулиWi-Fi, BLE, Zigbee, LoRa, 433/868 МГц: выбор радио, бюджет линии, антенны
- Бюджет радиолиниидБм, дБи, ЭИИМ, потери в свободном пространстве, Фриис, чувствительность, запас, примеры
- Беспроводные технологииWi-Fi, BLE, 802.15.4, nRF24, 433/868 МГц, LoRa: таблица параметров по даташитам
- Радиомодули 433 и 868 МГцOOK, ASK, FSK; супергетеродин и сверхрегенератор; CC1101, SX1276/SX1278; выбор модуля
- Антенны для радиомодулейλ/4 и земля, PCB IFA, чип и спираль, КСВ, П-цепь, зона без меди, КПД по замерам
- STM32WLCortex-M4 до 48 МГц с радио LoRa 150–960 МГц: WLE5, WLE4, WL55, WL54 — радио, ядра, загрузка и распиновки
- Чувствительность приёмникаНаименьший сигнал, который приёмник принимает с заданной ошибкой
- CRCЦиклический избыточный код для обнаружения ошибок
- Калькулятор децибелдБм ↔ мВт ↔ В, дБВ, дБмкВ, дБ ↔ разы
- Время работы от батареимА·ч, средний ток, сон МК, Вт·ч
- Chirp spread spectrum (CSS)Расширение спектра ЛЧМ-импульсами: основа LoRa, приём ниже шумового порога
- Прямая коррекция ошибок (FEC)Избыточное кодирование, по которому приёмник исправляет ошибки без повтора
- Фактор расширения SFЧисло чипов на символ LoRa: 2^SF, от SF6 до SF12
- Время в эфире (time on air)Длительность передачи одного пакета: преамбула, заголовок и данные
- RSSIОценка мощности сигнала в канале приёмника, в дБм
- SX1276, SX1278LoRa-трансиверы: версии, выводы, PA_BOOST и +20 дБм, токи, сброс, SPI, DIO