Чипсеты SX127x с радиоканалом LoRa:
применение в системах связи
С каждым днем LoRa все увереннее завоевывает рынок в сфере удаленного управления и телеметрии, являясь ключевой темой всех без исключения конференций и презентаций, посвященных Интернету вещей (IoT). В то же время, несмотря на популярность LoRa, многие разработчики не до конца понимают суть технических решений, позволяющих достичь заявленных показателей, а значит, не в полной мере могут использовать открывающиеся возможности в своих проектах. В данной статье мы попытались, с одной стороны, обобщить разрозненную информацию и сделать фундаментальные выводы по сути, а с другой заглянуть внутрь и научиться управлять радиоканалом LoRa на уровне регистров чипсета. Представленные данные базируются на тщательном изучении технической документации, анализе исходных кодов существующих открытых проектов, а также на собственных разработках и тестах. Надеемся, что эта информация будет полезной для инженеров, желающих максимально использовать возможности предлагаемых LoRa-чипсетов в своих изделиях.
Сегодня компания Semtech предлагает сравнительно недорогие LoRa-чипсеты, использующиеся в клиентских модулях и реализующие уровень L0 (модуляция, демодуляция, синхронизация, M-последовательности и методы коррекции ошибок) по принципу черного ящика, предоставляя пользователю лишь интерфейс управления с определенным набором специальных регистров. Наиболее популярной является линейка SX1272/76/78/79, имеющая сходную архитектуру и различающаяся лишь поддерживаемыми частотными диапазонами. Данные чипсеты соответствуют стандарту ETSI EN 300 220.
Практически все клиентские LoRa-модули различных производителей содержат чипсет от Semtech и микроконтроллер с управляющей программой, определяющий функционал модуля и его коммерческие эксплуатационные характеристики (пользовательский интерфейс, ограничения по частоте, мощности, времени непрерывной передачи (TimeinAir) и т. д.). Существуют также изделия, содержащие только чипсет с необходимой обвязкой и SPI для работы с пользовательской программой, предоставляющие разработчику максимальную гибкость в управлении.
Semtech опубликовала документацию с подробным описанием управляющих регистров и рекомендациями по работе с чипсетом. Открытым сообществом разработчиков представлено значительное количество проектов под различные платформы, позволяющих максимально использовать ресурсы чипсета.
Чипсет SX127x выполнен в корпусе QFN28 и в качестве минимальной обвязки требует кварцевый резонатор 32 МГц, цепи согласования антенны и питания. Интерфейс управления выполнен в виде четырехпроводного SPI, работающего в режиме CPOL/CPHA = 0/0. Номинальное напряжение питания составляет 3,3 В, потребляемый ток – от 0,2 мкА в режиме сна, около 10 мА в режиме постоянного приема и может достигать 150 мА при максимальной мощности 20 дБм (100 мВт) в тестовом режиме с хорошо согласованной антенной. Блок-схема чипсета приведена на рис. 1.
Рабочая полоса, кГц |
Битовая скорость, бит/c |
Бюджет канала, дБ |
7,8 |
18 |
168 |
10,4 |
24 |
166 |
62,5 |
146 |
159 |
125 |
293 |
156 |
250 |
586 |
153 |
500 |
1172 |
150 |
Чипсет может функционировать как в режиме LoRa (FSK+DSSS), так и в режиме FSK (для обратной совместимости со старыми технологиями связи). Скорость передачи данных в режиме FSK определяет рабочую полосу от 7,8 до 500 кГц (табл. 1). В режиме LoRa могут использоваться семь уровней расширения спектра (Spread factors, SF) от 6 до 12, что соответственно уменьшает реальную скорость передачи данных в 64-4096 раз (табл. 2).
Коэффициент расширения спектра |
SNR LoRa-демодулятора, дБ |
Снижение пропускной способности, раз |
6 |
–5 |
64 |
7 |
–7,5 |
128 |
8 |
–10 |
256 |
9 |
–12,5 |
512 |
10 |
–15 |
1024 |
11 |
–17,5 |
2048 |
12 |
–20 |
4096 |
Примечательно, что для различных факторов расширения используются ортогональные М-последовательности, что позволяет в используемом радиочастотном канале одновременно передавать семь пакетов с различными SF. Таким образом, возможная скорость передачи сырых данных в режиме LoRa составляет 1837 500 бод. Данные передаются в виде пакетов, содержащих преамбулу (минимум четыре байта) и необязательный заголовок с контрольной суммой, а также периодические синхровставки, что еще больше снижает полезную скорость радиообмена (рис. 2). Предусмотрена возможность встроенной коррекции ошибок с избыточностью от 4/5 до 1/2.
Таким образом, заявленные рекордные -148 дБм чувствительности достигаются при работе в полосе 7,8 кГц c фактором расширения 12, что обеспечивает минимальную скорость передачи данных и, соответственно, требует большего времени передачи пакета. Важно понимать, что теоретически минимальная энергия, необходимая для передачи бита данных (Eb/No), величина, определяемая пределом Шеннона и не зависящая от типа модуляции. Поэтому сэкономить расход батареи удастся лишь путем уменьшения объема передаваемых данных, но никак не применением технологии расширения спектра. За подшумовую чувствительность и, соответственно, высокий бюджет канала необходимо платить низкой скоростью передачи данных и временем в эфире. Поэтому технология LoRa оптимально подходит для систем с крайне малым объемом передаваемых данных, например для периодического сбора информации от датчиков или для дистанционного управления простым объектом, и абсолютно не подходит для передачи объемных файлов и потоков максимальный размер полезной нагрузки LoRa-пакета составляет всего 256 байт.
Предусмотрено два режима пакетирования: с явным и неявным заголовками (explicit & implicit header modes). В явном режиме заголовок содержит размер поля данных, контрольную сумму и степень коррекции ошибок. В неявном режиме заголовок не передается (это уменьшает время в эфире), поэтому указанные параметры должны быть предварительно согласованы передающей и приемной сторонами.
Важной особенностью технологии LoRa является высокая помехоустойчивость — для подавления радиоканала необходим или очень мощный широкополосный сигнал, или специализированные системы радиоподавления, использующие псевдошумовые последовательности, аналогичные LoRa (на сегодня таких устройств в массовом производстве не замечено). Необходимо также отметить, что LoRa — это радиоканал, в отличие от GSM, нечувствительный к радиоподавлению на стороне передатчика, т. к. не требует регистрации и синхронизации с сетью. Это важно, например, в системах охраны в том случае, если злоумышленник применяет радиоподавление на самом объекте, а не у диспетчерского пункта.
Рассмотрим интерфейс управления чипсетом SX127x, выполняющим функцию SPI Slave. Сначала микроконтроллер передает базовый адрес регистра чипсета (семь бит) и устанавливает восьмой бит в Ç1È для последующей записи или в Ç0È для чтения. При выполнении операции записи следующие переданные байты будут записаны в последовательные регистры, а при выполнении операции чтения считаны. Набор регистров для режимов FSK и LoRa различен, поэтому для использования LoRa необходимо путем двукратной записи в регистр RegOpMode сначала установить режим Sleep (так как только из него можно переключить вид модуляции), а затем выбрать режим LoRa, одновременно вернув чипсет в режим Standby для дальнейшей настройки.
Основные рабочие режимы чипсета:
- Sleep — минимальное потребление;
- Standby — готовность к работе;
- Continuous Receiving — режим постоянного приема пакетов в канале с заданными параметрами;
- Single Receiving — режим приема пакета в течение определенного временного окна с последующим автоматическим возвращением в режим Standby;
- Channel Activity Detection (CAD) — режим, позволяющий в течение короткого времени сканировать канал на предмет обнаружения преамбулы.
Два последних режима являются энергосберегающими прием квитанции выполняется кратковременно, непосредственно после передачи очередного пакета данных. По истечении заданного времени приема пакет считается потерянным и выполняется повторная передача. Кроме того, процедура CAD, запускаемая перед очередной отправкой данных, может способствовать устранению коллизий, характерных для радиоканала общего использования.
Процедуры отправки пакета, закрытия окна приема, завершения операции CAD и приема пакета вызывают изменения состояний цифровых выходов, инициируя аппаратные прерывания управляющего микроконтроллера. Альтернативой аппаратным прерываниям может служить периодическое чтение регистра RegIrqFlags для анализа флагов прерываний.
В режиме Standby путем записи в соответствующие регистры пользователь может изменить параметры радиотракта с учетом требований к задаче: частоту, ширину рабочей полосы, фактор расширения спектра, необходимость передачи и проверки контрольной суммы, степень коррекции ошибок, а также множество других параметров тонкой настройки.
Например, значение частоты может быть выбрано в диапазонах 137-175, 410-525 и 862-1020 МГц с шагом 61 Гц, при этом для работы в верхнем частотном диапазоне должен быть установлен бит HF в регистре RegOpMode и использованы другие физические выводы радиовхода и радиовыхода чипсета. В пределах соседних каналов частота перестраивается очень быстро, что может быть использовано для обхода ограничения времени нахождения в эфире путем смены частоты по заранее согласованному (с принимающей стороной) алгоритму в процессе передачи длинного пакета (данный параметр регламентирован в США): при необходимости смены частоты чипсет вызывает прерывание, микроконтроллер задает новое значение, и передача пакета продолжается.
Чтение регистров RegRssiValue, RegPktRssiValue и RegPktSnrValue дает разработчику представление о текущем значении уровня сигнала (RSSI), а также об уровне сигнала и соотношении сигнал/шум (SNR) в момент приема последнего пакета. Следует отметить, что в системах с расширением спектра SNR может принимать отрицательные значения (прием под шумами).
Отдельно следует упомянуть о настройке выходной мощности с помощью регистра OutputPower. Согласно региональным законодательствам, разрешенная мощность данного класса устройств в большинстве стран составляет не более 14-15 дБм. Для тестирования предусмотрена возможность установки выходной мощности более 20 дБм, для этого используется отдельный вывод радиовыхода (PA_BOOST), активировать который можно в этом же регистре установкой бита PaSelect. Существует также возможность снятия ограничения на ток передатчика, по умолчанию установленного в регистре RegOcp на уровне 100 мА. Такие манипуляции с чипсетом допустимы лишь в лабораторных условиях, так как подобные эксперименты в общем эфире нарушают установленные стандарты для маломощных устройств и могут повлечь за собой соответствующие штрафные санкции со стороны контролирующих органов.
* * *
Обобщая вышесказанное, можно обозначить типовой сценарий использования LoRa низкое энергопотребление и сравнительно высокая дальность связи наилучшим образом подходят для построения сетей типа звезда с центральным концентратором-шлюзом, работающим в режиме непрерывного приема, и клиентскими устройствами, периодически отправляющими короткие пакеты данных и получающими квитанцию о доставке. Сетевой протокол LoRaWAN, разработанный специально для LoRa-радиоканала, предоставляет клиентским устройствам сервисы аутентификации, шифрования, маршрутизации и планирования сеансов.