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

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 чипов, поэтому длительность символа

Ts=2SFBWT_s = \frac{2^{SF}}{BW}

При 125 кГц символ SF7 длится 1,024 мс, SF12 — 32,768 мс (наш расчёт). Каждый шаг SF вдвое удлиняет символ, но позволяет демодулятору работать при отношении сигнал/шум на 2,5 дБ хуже:

SFЧипов на символSNR демодулятораЧувствительность, 125 кГцСкорость при CR 4/5, 125 кГц
664−5 дБ−118 дБм—
7128−7,5 дБ−123 дБм5,47 кбит/с
8256−10 дБ−126 дБм3,13 кбит/с
9512−12,5 дБ−129 дБм1,76 кбит/с
101024−15 дБ−132 дБм977 бит/с
112048−17,5 дБ−133 дБм537 бит/с
124096−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:

Rb=SF⋅44+CR⋅BW2SFR_b = SF \cdot \frac{4}{4 + CR} \cdot \frac{BW}{2^{SF}}

Откуда чувствительность ниже шума

Чувствительность приёмника — сумма теплового шума, полосы, коэффициента шума и нужного демодулятору отношения сигнал/шум (AN1200.13, разд. 2.2; AN1200.22, разд. 4.2):

S=−174+10lg⁡BW+NF+SNRS = -174 + 10 \lg BW + NF + SNR

Проверка по числам 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 — значение регистра длины преамбулы:

Tpreamble=(npreamble+4,25)⋅TsT_\text{preamble} = (n_\text{preamble} + 4{,}25) \cdot T_s

Число символов заголовка и данных:

npayload=8+max⁡(⌈8PL−4SF+28+16CRC−20IH4(SF−2DE)⌉(CR+4), 0)n_\text{payload} = 8 + \max\left(\left\lceil \frac{8PL - 4SF + 28 + 16CRC - 20IH}{4(SF - 2DE)} \right\rceil (CR + 4),\ 0\right)

где PL — число байт данных, CRC = 1, если CRC включён, IH = 1 в неявном режиме заголовка и 0 в явном, DE = 1, если включён LowDataRateOptimize, CR — номер кодовой скорости от 1 (4/5) до 4 (4/8). Время в эфире — сумма:

Tpacket=Tpreamble+npayload⋅TsT_\text{packet} = T_\text{preamble} + n_\text{payload} \cdot T_s

Пример: проверка по таблице Semtech

AN1200.13 (табл. 2–3) приводит время в эфире при CR = 2 (4/6); длина данных — 10 байт — указана только в табл. 3, остальные условия пакета не перечислены. Наш расчёт для 10 байт по формуле совпадает с ней при npreamble = 8, явном заголовке и выключенном CRC. Для SF10, 250 кГц:

  1. Ts = 210/250 000 = 4,096 мс.
  2. Tpreamble = (8 + 4,25) · 4,096 = 50,18 мс.
  3. Числитель: 8 · 10 − 4 · 10 + 28 + 0 − 0 = 68; знаменатель: 4 · (10 − 0) = 40; ⌈68/40⌉\lceil 68 / 40 \rceil = 2; npayload = 8 + 2 · (2 + 4) = 20 символов.
  4. 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 включён.

SF7SF12
Ts1,024 мс32,768 мс
DE01 (символ больше 16 мс)
Tpreamble12,5 мс401,4 мс
npayload8 + ⌈176 / 28⌉ · 5 = 438 + ⌈156 / 40⌉ · 5 = 28
Tpacket56,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.

Источники

  1. 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: формулы времени в эфире
  2. 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
  3. 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 дБм
  4. 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, соответствие зависит от всего изделия

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