Время в эфире (time on air)
От длительности пакета зависят сразу три вещи: сколько заряда батареи уйдёт на передачу, сколько пакетов в час разрешают нормы и как часто пакеты разных узлов будут сталкиваться. Для LoRa эту длительность считают по формуле из даташита SX1276 — разбираем её по слагаемым и проверяем по таблице Semtech.
Обновлено Редакция GAW
Время в эфире (time on air, ToA) — длительность передачи одного пакета от первого символа преамбулы до последнего бита данных и контрольной суммы. Для узкополосных модемов это просто число бит, делённое на скорость. Для LoRa счёт идёт в символах, а длительность символа зависит от фактора расширения SF и полосы BW: Ts = 2SF/BW (SX1276, разд. 4.1.1.5).
Формула SX1276
Пакет состоит из преамбулы и блока «заголовок + данные». Длительность преамбулы (разд. 4.1.1.7):
где npreamble — значение регистров длины преамбулы. Число символов заголовка и данных:
| Обозначение | Смысл (SX1276, разд. 4.1.1.7) |
|---|---|
| PL | число байт данных, 1–255 |
| SF | фактор расширения, 6–12 |
| CRC | 1, если CRC данных включён |
| IH | 1 в неявном режиме (без заголовка), 0 с заголовком |
| DE | 1, если включён LowDataRateOptimize |
| CR | номер кодовой скорости: 1 — 4/5, 4 — 4/8 |
Заголовок в явном режиме передаётся с кодом 4/8 и своим CRC, поэтому первые 8 символов есть всегда; кодовая скорость влияет только на остальную часть.
Проверка по таблице Semtech
AN1200.13 (табл. 3) даёт для SF10, CR = 2 (4/6) и 10 байт данных при 250 кГц время 132,1 мс. Наш расчёт при преамбуле 8, явном заголовке и выключенном CRC:
- Ts = 210/250 000 = 4,096 мс; Tpreamble = 12,25 · 4,096 = 50,18 мс.
- Числитель: 80 − 40 + 28 = 68; знаменатель: 4 · 10 = 40; = 2; npayload = 8 + 2 · 6 = 20.
- Tpacket = 50,18 + 20 · 4,096 = 132,1 мс — совпадает с таблицей.
При 125 и 500 кГц та же формула даёт 264,2 и 66,0 мс — тоже как в табл. 3.
Зачем знать время в эфире
- Батарея. Заряд пакета — ток передачи на время в эфире; при +13 дБм SX1276 в режиме LoRa берёт 28 мА (табл. 10).
- Нормы. Во многих полосах ограничена доля времени, которую передатчик может занимать эфир, — по сути коэффициент заполнения для передатчика; конкретные пределы задают национальные правила.
- Коллизии. Чем длиннее пакет, тем выше вероятность, что он пересечётся с пакетом соседнего узла.
Укоротить пакет помогают меньший SF, более широкая полоса, неявный заголовок и короткая преамбула — если приёмник её успевает поймать.
Частые вопросы
Сколько длится пакет LoRa из 20 байт?
Зависит от SF и полосы. По формуле SX1276 при 125 кГц, CR 4/5, преамбуле 8, явном заголовке и включённом CRC пакет на SF7 занимает около 57 мс, а на SF12 (с LowDataRateOptimize) — около 1,32 с (наш расчёт). Разница больше чем в 20 раз — поэтому SF подбирают по дальности, а не ставят максимальным.
Почему в формуле преамбулы 4,25, а не 4?
К программируемой длине преамбулы модем добавляет фиксированную служебную часть. Даташит SX1276 называет полную длину «6 + 4 … 65535 + 4» символов (разд. 4.1.1.6), а в формуле времени в эфире стоит n + 4,25 (разд. 4.1.1.7). Для расчёта берите формулу — она сходится с таблицами Semtech.
Как время в эфире связано с батареей?
Почти линейно: заряд одного пакета — ток передачи, умноженный на время в эфире. При +13 дБм SX1276 в режиме LoRa потребляет 28 мА (табл. 10), так что пакет длиной 1,32 с расходует около 37 мА·с, а пакет 57 мс — около 1,6 мА·с (наш расчёт). Срок службы с учётом сна считает калькулятор времени работы от батареи.
Источники
- Semtech. SX1276/77/78/79 Datasheet, Rev. 5 (August 2016) — архивная копия официального файла; разд. 4.1.1.7 (с. 31): Ts = 1 / Rs, Tpreamble = (npreamble + 4,25) · Ts, npayload = 8 + max(ceil((8PL − 4SF + 28 + 16CRC − 20IH) / (4(SF − 2DE))) · (CR + 4), 0), Tpayload = npayload · Ts, Tpacket = Tpreamble + Tpayload; PL 1–255 байт, SF 6–12, IH = 1 без заголовка, DE = 1 при LowDataRateOptimize, CR от 1 (4/5) до 4 (4/8); разд. 4.1.1.5 (с. 28): Rs = BW / 2^SF; разд. 4.1.1.6 (с. 29–31): преамбула, явный и неявный заголовок, CRC 16 бит, LowDataRateOptimize обязателен при символе длиннее 16 мс; табл. 10 (с. 19): ток передачи LoRa 28 мА при +13 дБм
- Semtech. AN1200.13 SX1272/3/6/7/8: LoRa Modem Designer's Guide, Rev. 1 (July 2013) — архивная копия официального файла; разд. 2.4, табл. 3 (с. 5): SF10, CR = 2, пакет 10 байт — 125 кГц 264,2 мс, 250 кГц 132,1 мс, 500 кГц 66 мс; табл. 2 (с. 4): 250 кГц, SF12 528,4 мс, SF8 39,2 мс; разд. 4 (с. 7): формулы длительности символа, преамбулы и числа символов заголовка и данных
Нашли ошибку?
Смотрите также
- LoRaSF, BW, CR, чувствительность SX1276, структура пакета, формула времени в эфире, пример
- Фактор расширения SFЧисло чипов на символ LoRa: 2^SF, от SF6 до SF12
- Прямая коррекция ошибок (FEC)Избыточное кодирование, по которому приёмник исправляет ошибки без повтора
- Коэффициент заполненияD = τ / T и скважность S = 1 / D
- Время работы от батареимА·ч, средний ток, сон МК, Вт·ч
- SX1276, SX1278LoRa-трансиверы: версии, выводы, PA_BOOST и +20 дБм, токи, сброс, SPI, DIO