Фактор расширения (spreading factor, SF)
В настройках LoRa-модуля три главных параметра: полоса, кодовая скорость и фактор расширения SF. Именно SF решает, сколько метров пройдёт пакет и сколько миллисекунд он займёт эфир. Разбираем по даташиту SX1276, что он означает и почему каждый шаг вверх вдвое удлиняет символ.
Обновлено Редакция GAW
Фактор расширения (spreading factor, SF) — параметр модуляции LoRa, который задаёт, сколько чипов приходится на один символ: 2SF. В SX1276 доступны значения от 6 до 12, то есть от 64 до 4096 чипов на символ (табл. 13). Скорость чипов равна полосе сигнала BW, поэтому длительность символа (AN1200.22, разд. 4):
Каждый символ несёт SF бит, поэтому номинальная скорость без учёта кода — Rb = SF · BW/2SF. Сам сигнал — ЛЧМ-импульсы во всю полосу; SF определяет, насколько медленно частота пробегает эту полосу.
Что даёт и чего стоит каждый шаг SF
| SF | Чипов на символ | SNR демодулятора | Чувствительность, 125 кГц | Символ, 125 кГц |
|---|---|---|---|---|
| 7 | 128 | −7,5 дБ | −123 дБм | 1,024 мс |
| 8 | 256 | −10 дБ | −126 дБм | 2,048 мс |
| 9 | 512 | −12,5 дБ | −129 дБм | 4,096 мс |
| 10 | 1024 | −15 дБ | −132 дБм | 8,192 мс |
| 11 | 2048 | −17,5 дБ | −133 дБм | 16,384 мс |
| 12 | 4096 | −20 дБ | −136 дБм | 32,768 мс |
SNR — табл. 13, чувствительность — табл. 10 даташита SX1276 (диапазон 1, наибольшее усиление LNA, раздельные тракты); длительность символа — наш расчёт по формуле выше. Отрицательный SNR означает, что приёмник выделяет сигнал ниже уровня шума — отсюда выигрыш в чувствительности приёмника.
Цена — время. Символ удваивается с каждым шагом, и пакет растёт почти так же: по AN1200.13 (табл. 2) при 250 кГц пакет на SF8 занимает 39,2 мс, на SF10 — 132,1 мс, на SF12 — 528,4 мс. Как это считается, разобрано в термине «Время в эфире».
Ортогональность и ограничения
SF должен быть заранее известен обеим сторонам: сигналы с разным SF ортогональны, и приёмник воспринимает «чужой» SF как шум (SX1276, разд. 4.1.1.2). Semtech использует это для ёмкости сети: в одном канале одновременно могут работать передатчики с разными SF (AN1200.22, разд. 4.1.7).
Два практических ограничения из даташита SX1276:
- SF6 работает только в неявном режиме заголовка и с особыми значениями регистров обнаружения (разд. 4.1.1.2);
- LowDataRateOptimize обязателен, когда символ длиннее 16 мс (разд. 4.1.1.6) — при 125 кГц это SF11 и SF12, бит должен совпадать на обеих сторонах.
Кроме SF, скорость и устойчивость задают полоса и кодовая скорость — их связь и примеры расчёта собраны в статье о LoRa, а выбор SF под дальность — в бюджете радиолинии.
Частые вопросы
Какой SF выбрать?
Наименьший, при котором связь устойчива с запасом. Каждый шаг вверх даёт около 2,5 дБ по требуемому SNR (табл. 13 SX1276), но вдвое удлиняет символ и почти вдвое — пакет. SF12 «на всякий случай» расходует батарею и долю времени в эфире; правильнее посчитать бюджет линии и проверить связь на месте.
Почему модули с разным SF не слышат друг друга?
Потому что SF должен быть одинаковым на передатчике и приёмнике, а сигналы разных SF ортогональны: для приёмника, настроенного на SF9, пакет на SF10 выглядит как шум (SX1276, разд. 4.1.1.2; AN1200.22, разд. 4.1.7). То же касается полосы и кодовой скорости в неявном режиме заголовка.
Что такое SF6 и почему его редко используют?
Это самый быстрый режим SX1276 — 64 чипа на символ. Он работает только с неявным заголовком и требует особых значений регистров RegLoRaDetectOptimize и RegDetectionThreshold (разд. 4.1.1.2), а чувствительность при 125 кГц у него −118 дБм против −123 дБм у SF7 (табл. 10). Поэтому большинство библиотек начинают с SF7.
Источники
- Semtech. SX1276/77/78/79 Datasheet, Rev. 5 (August 2016) — архивная копия официального файла; разд. 4.1.1.2, табл. 13 (с. 27): SF — отношение скорости чипов к скорости символов, SF 6–12 даёт 64–4096 чипов на символ, SNR демодулятора от −5 дБ (SF6) до −20 дБ (SF12), шаг 2,5 дБ; SF должен быть известен обеим сторонам, разные SF ортогональны; для SF6 — только неявный заголовок и особые настройки регистров; разд. 4.1.1.5 (с. 28): Rs = BW / 2^SF; разд. 4.1.1.4, табл. 15 (с. 28): номинальные скорости — SF12, 125 кГц, 4/5: 293 бит/с; разд. 4.1.1.6 (с. 31): LowDataRateOptimize обязателен при символе длиннее 16 мс; табл. 10 (с. 20): чувствительность при 125 кГц, диапазон 1 — SF6…SF12: −118, −123, −126, −129, −132, −133, −136 дБм
- Semtech. AN1200.22 LoRa Modulation Basics, Rev. 2 (May 2015) — архивная копия официального файла; разд. 4 (с. 9–10): Rb = SF · BW / 2^SF, Ts = 2^SF / BW, скорость чипов равна полосе; разд. 4.1.7 (с. 11–12): ортогональные SF позволяют нескольким сигналам одновременно занимать один канал, сигналы других SF приёмник видит как шум
- Semtech. AN1200.13 SX1272/3/6/7/8: LoRa Modem Designer's Guide, Rev. 1 (July 2013) — архивная копия официального файла; разд. 2.3, табл. 2 (с. 4): при CR = 2 и 250 кГц SF12 — 528,4 мс и −134 дБм, SF10 — 132,1 мс и −129 дБм, SF8 — 39,2 мс и −124 дБм
Нашли ошибку?
Смотрите также
- LoRaSF, BW, CR, чувствительность SX1276, структура пакета, формула времени в эфире, пример
- Chirp spread spectrum (CSS)Расширение спектра ЛЧМ-импульсами: основа LoRa, приём ниже шумового порога
- Чувствительность приёмникаНаименьший сигнал, который приёмник принимает с заданной ошибкой
- Прямая коррекция ошибок (FEC)Избыточное кодирование, по которому приёмник исправляет ошибки без повтора
- SX1276, SX1278LoRa-трансиверы: версии, выводы, PA_BOOST и +20 дБм, токи, сброс, SPI, DIO
- Бюджет радиолиниидБм, дБи, ЭИИМ, потери в свободном пространстве, Фриис, чувствительность, запас, примеры