0 позиций в запросе!   Отправить?
Подписка на новости
Задать вопрос

    Имя *

    E-Mail *

    Компания *

    Телефон *

    Вопрос *

    Нажимая на кнопку, вы даете согласие на обработку своих персональных данных

    Заказать образцы

      Имя *

      E-Mail *

      Телефон *

      Сайт

      Компания *

      Описание проекта *

      Образцы предоставляются под проект

      Нажимая на кнопку, вы даете согласие на
      обработку своих персональных данных и
      обратную связь со специалистами PT Electronics

      Подписка на новости

      Назад

      SPIRIT1 – дух, способный объединить микроконтроллеры STMicroelectronics в беспроводную сеть

      21 Авг 2017

      Автор статьи

      Михаил Чигарев

      Написать письмо специалисту

      wireless@ptelectronics.ru

      Задать вопрос
      Заказать образцы

        Имя *

        E-Mail *

        Компания *

        Телефон *

        Вопрос *

        Нажимая на кнопку, вы даете согласие на обработку своих персональных данных

          Имя *

          E-Mail *

          Телефон *

          Сайт

          Компания *

          Почтовый адрес

          Изделие

          Описание

          Время разработки

          Количество изделий в год

          Наименования и количество образцов *

          Нажимая на кнопку, вы даете согласие на обработку своих персональных данных

            Полезные ссылки

          (Опубликовано в журнале «Вестник Электроники», №1 2014)
          Скачать статью в формате PDF (3 МБ)


          Не так давно STMicroelectronics анонсировала выпуск своего первого субгигагерцового беспроводного трансивера SPIRIT1, основной особенностью которого является редкое сочетание сверхнизкого энергопотребления и высокой чувствительности. Это преимущество позволяет увеличить время работы устройств на основе SPIRIT1 от батареи на 30% по сравнению с аналогичными решениями конкурентов без сокращения дальности связи.

          За последние несколько лет в России существенно расширился спектр приложений, в которых требуется использование радиоканала малой мощности диапазона частот 433/868 МГц. Помимо традиционных применений, таких как системы АСКУЭ, устройства охранно-пожарной сигнализации, автосигнализации, появились новые, причем едва ли не более перспективные с точки зрения повсеместного внедрения радиоканала отрасли. Прежде всего стоит отметить такие направления, как светодиодное освещение (дистанционное управление/мониторинг, беспроводные датчики движения), системы мониторинга транспорта, активные радиометки дальнего радиуса действия и, наконец, системы типа «умный дом». Впрочем, тема «умного дома» муссируется далеко не первый и даже не второй год, но, как говорится, «вода камень точит», и рано или поздно и в этом направлении произойдет прорыв.

          Сложившаяся ситуация так или иначе приводит к высокой конкуренции как среди производителей конечных устройств, так и среди производителей микросхем для реализации беспроводного канала. Поэтому новинку от STMicroelectonics предстоит рассматривать, прежде всего, с точки зрения конкурентных преимуществ над исторически хорошо известными решениями других производителей. Для начала определимся с четырьмя основными критериями, которые учитывает разработчик при выборе беспроводного решения (ну или, по крайней мере, должен учитывать):

          • аппаратные возможности (качество связи, энергопотребление);
          • программное обеспечение (примеры, библиотеки, готовые беспроводные протоколы);
          • отладочные средства;
          • экономическая выгода всего решения (с учетом компонентов обвязки).

          Как правило, преимущество получает тот, кто обеспечивает лучшее сочетание всех четырех параметров. То есть, по сути, производитель должен предложить разработчику при минимальной стоимости решения максимально возможные характеристики, а также обеспечить максимально быстрый выход на рынок (минимальное время на разработку и тестирование). Если с ценой и характеристиками все понятно, то минимизировать время на разработку – это исключительно вопрос поддержки продукта, а именно: наличие опорных дизайнов, библиотек и исходных кодов для популярных микроконтроллеров. Что касается готового программного обеспечения, то здесь STMicroelectronics вне конкуренции: ведь одним из поддерживаемых контроллеров является STM32 – самый популярный 32-битный ARM Cortex-M микроконтроллер в России!

           

          Аппаратные возможности приемопередатчика SPIRIT1

          Как уже отмечалось ранее, SPIRIT1 – это высокопроизводительный приемопередатчик, обладающий при этом сверхнизким энергопотреблением. Под высокой производительностью, помимо характеристик приемного тракта, подразумевается и мощная аппаратная поддержка пакетной обработки принимаемых и передаваемых данных, которая позволяет существенно разгрузить хост-контроллер, и даже более того, в ряде случаев исключить внешний микроконтроллер из процесса приема и передачи данных. Но обо всем по порядку.

          На рисунке 1 представлена внутренняя структурная схема приемопередатчика, а на рисунке 2 – типовая структурная схема радиомодема на базе SPIRIT1. СВЧ-часть трансивера состоит из раздельных трактов приема и передачи. Приемник имеет: дифференциальный вход, предварительный каскад усиления на МШУ (малошумящих усилителях), квадратурный преобразователь на промежуточную частоту, блок усиления и фильтрации ПЧ и, наконец, аналого-цифро-вой преобразователь на каждую квадратуру.

          fig1_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          Также к аналоговой части можно отнести систему тактирования (ГУН, синтезатор частот, встроенный RC-генератор, делители частоты), подсистему управления питанием, усилитель мощности, аналоговый датчик температуры. К цифровой части относятся: блоки модулятора и демодулятора, блок пакетной обработки, раздельные буферы TX/RX FIFO, конфигурируемые выводы общего назначения GPIO, интерфейс с хост-контроллером SPI, а также сопроцессор шифрования AES128.

          fig2_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          Приемопередатчик обеспечивает работу в диапазонах частот 169/315/433/868/915/920 МГц. Впрочем, для России в настоящее время актуальными, разрешенными к использованию без лицензирования являются только диапазоны вблизи 433 МГц и 868 МГц. Поддерживаемые типы модуляции: 2FSK, GFSK, MSK, GMSK, OOK, ASK. Скорость передачи данных задается в диапазоне от 1 до 500 кбит/c. Выходная мощность передатчика может быть задана от –36 дБм до +16 дБм с шагом в 0,5 дБ – этого более чем достаточно, особенно с учетом того, что, согласно действующему законодательству, выходная мощность ограничивается 10 мВт (10 дБм) для диапазона 433 МГц и 25 мВт (14 дБм) для 868 МГц. Максимальная выходная мощность в +16 дБм (40 мВт) гарантирует некоторый запас, который позволяет компенсировать потери мощности, например при использовании выносной антенны с длинным кабелем или антенны с не самым высоким коэффициентом усиления.

          Здесь логично было бы перейти к рассмотрению характеристик приемной части и начать с самого важного параметра – чувствительности. Однако SPIRIT1 имеет одну важную особенность, из-за которой придется отвлечься на подсистему управления питанием и характеристики энергопотребления.

          SPIRIT1 обладает самым низким энергопотреблением среди устройств аналогичного класса (под аналогичным прежде всего подразумеваются: «мультидиапазонность», чувствительность, избирательность/узкополосность). Так, в режиме приема потребление тока составляет всего 9 мА, в режиме передачи – 21 мА при выходной мощности 11 дБм и частоте 868 МГц. Естественно, что потребление тока в режиме передачи также можно снизить до 9 мА, пожертвовав уровнем выходной мощности. Более подробно с энергопотреблением в различных состояниях можно ознакомиться по таблицам 1 и 2. Также в таблице 2 приведены значения времен перехода из различных состояний в режимы приема и передачи. Собственно, эти таблицы являются отправной точкой для расчета профиля энергопотребления устройства и выбора источника питания.

          tab1_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47tab2_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          Каким же образом достигается столь низкое энергопотребление? Ответ прост – в качестве первичного преобразователя питания внутри трансивера используется импульсный DC/DC-преобразователь, высокий КПД которого и обеспечивает итоговый результат. Для работы данного источника питания требуется установить компактный дроссель типоразмера 0402 и несколько компонентов, обеспечивающих фильтрацию выходного напряжения. Программируемая рабочая частота DC/DC-преобразователя (2–10 МГц) лежит далеко за пределами промежуточной частоты приемника (рекомендуемая частота 480 кГц).

          Теперь можно вернуться к вопросу чувствительности приемника. Безусловно, наличие импульсного источника питания оказывает влияние на характеристики приемника, причем не в лучшую сторону. Тем не менее SPIRIT1 имеет лучшую чувствительность по сравнению с решениями конкурентов даже при работающем импульсном преобразователе. Так, при частоте 433 МГц, модуляции 2FSK, частоте девиации 1 кГц, скорости 1,2 кбит/c и фильтре ПЧ 6 кГц чувствительность приемника, измеренная с учетом 1% PER (packet error rate, или процент потерянных пакетов, 1 пакет=20 байт), составляет –117 дБм! При этом в SPIRIT1 заложена возможность работы без использования встроенного импульсного источника питания, что позволяет при тех же настройках приемника получить чувствительность –120 дБм (правда, при этом придется пожертвовать энергопотреблением, потребление тока составит до 17 мА, что, впрочем, тоже сопоставимо с конкурентами, не имеющими импульсного источника питания на кристалле).

          При сравнении чувствительности приемопередатчиков различных производителей следует учитывать один важный момент, а именно то, при каком условии измеряется эта чувствительность: 1% BER (bit error rate, или процент потерянных битов) или 1% PER (packet error rate, или процент потерянных пакетов). Безусловно, более информативным является 1% PER, ведь в большинстве случаев реальное устройство будет использовать именно пакетную передачу данных. Однако 1% BER позволяет производителю показать в документации значительно лучшее значение чувствительности. На практике разница между чувствительностью, измеренной при 1% BER и 1% PER, достигает порядка 3 дБ, иначе говоря, –117 дБм в документации SPIRIT1 соответствует –120 дБм, если бы измерения проводились по 1% BER.

          Еще одним фактором, позволяющим повысить чувствительность примерно на 1 дБ, является избыточное кодирование (FEC – forward error correction), однако большинство производителей (равно как и STMicroelectronics) приводит значения чувствительности с отключенным блоком FEC. Следует учитывать, что использование блока FEC приводит к уменьшению реальной скорости передачи данных кратно алгоритму кодирования (каждый входной бит кодируется двумя выходными).

          Подводя итог рассмотрению аналоговой части трансивера, перейдем к такому важному параметру приемника, как избирательность. Большинство производителей радиочастотных трансиверов повышают характеристики избирательности своих приемников от поколения к поколению. Связано это прежде все с тем, что, во-первых, с каждым годом в целом растет число устройств субгигагерцового диапазона (причем рост наблюдается экспоненциальный). Во-вторых, даже вблизи пока не освоенного и не зашумленного диапазона 868 МГц появляются масштабные источники помех, такие, например, как сети LTE.

          Обеспечение высокой избирательности – это задача встроенных в трансивер полосовых фильтров, причем каждый производитель старается обеспечить лучшие характеристики именно за счет встроенных аналоговых и цифровых фильтров, так как это дает потребителю неоспоримое преимущество – нет необходимости использовать дорогостоящие внешние ПАВ-фильтры. Не стал исключением и SPIRIT1 – высокую избирательность, в первую очередь по соседнему и альтернативному каналам приема, обеспечивает программируемый в диапазоне 1–600 кГц фильтр ПЧ. Несмотря на то, что полосу ПЧ можно сузить до 1 кГц, рекомендуемой минимальной полосой пропускания является 6 кГц (исходя из запаса по частоте девиации для FSK-модуляции и минимальной скорости передачи данных). В целом для получения максимальной чувствительности и избирательности приемника (как результат, максимальной дальности радиосвязи) следует задаться следующими параметрами: модуляция 2-FSK c девиацией около 1 кГц, скорость передачи данных 1,2 кбит/с, фильтр ПЧ 6 кГц. С фильтром ПЧ 6 кГц оптимальным шагом частоты между соседними каналами является 12,5 кГц.

          При описанных параметрах SPIRIT1 обеспечивает значение избирательности по соседнему каналу (следующий канал за каналом приема, т. е. на отстройке в 12,5 кГц), равное 49 дБ, избирательность по альтернативному каналу (следующий, 2-й канал, на отстройке от основного канала приема 25 кГц) – 52 дБ.

          Что касается избирательности по зеркальному каналу и подавлению помехи на отстройке более 1 МГц (что как раз актуально при работе в присутствии сетей LTE), то здесь большое влияние вносит СВЧ-часть приемника. Типовое значение избирательности по зеркальному каналу составляет 47 дБ. Также приемник способен принимать сигнал мощностью всего на 3 дБ выше предела чувствительности в присутствии помехи мощностью –42 дБм на отстройке 2 МГц от несущей частоты и –40 дБм на отстройке 10 МГц.

          Описание цифровой части логично начать с системы тактирования. SPIRIT1 поддерживает работу с кварцевыми резонаторами с частотами: 24, 25, 26 МГц или 50, 51, 52 МГц. По умолчанию подразумевается использование резонатора с частотой 50–52 МГц, т. к. SPIRIT1 имеет встроенный делитель частоты для тактирования цифровой части трансивера и этот делитель по умолчанию установлен на 2. Поэтому для использования кварца 24–26 МГц потребуется поменять значение регистра PD_CLKDIV, отвечающего за этот делитель. Этот регистр находится по адресу 0xB4, и для работы с кварцем 50–52 МГц его значение равно 0x21, а для 24–26 МГц – 0x29.

          SPIRIT1 имеет встроенный низкочастотный 34,7-кГц RC-генератор с низким энергопотреблением, который используется для реализации беспроводных протоколов с периодическим просыпанием (LDC «Low Duty Cycle» режим) и обеспечения прослушивания эфира перед началом передачи с исключением коллизий (CSMA/CA – классический listen-before-talk алгоритм). Иначе говоря, задействовав RC-генератор и поддерживаемые им алгоритмы, можно добиться еще меньшего энергопотребления системы. На практике использование LDC-режима работы трансивера позволяет снизить потребление тока в режиме приема до 1–3 мА.

          В режиме LDC трансивер работает только от RC-генератора, а все неиспользуемые блоки находятся в отключенном состоянии. Для периодического просыпания и синхронизации используется выделенный для этой цели «Wake-up» таймер. Для корректной синхронизации трансиверов в сети период просыпания таймера может быть автоматически перезаписан в момент детектирования успешного приема синхрослова (более наглядно суть этого алгоритма можно понять из рисунка 3).

          fig3_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          Помимо использования режима периодического просыпания, снизить энергопотребление можно, сократив время нахождения в режиме приема. А именно: не принимать весь пакет данных, если есть вероятность неуспешного приема. Для оценки этой вероятности можно использовать несколько «индикаторов» с программируемым пороговым уровнем, таких, как: CS (carriersenselevel), SQI (syncqualityindicator), PQI (preamblequalityindicator). CS, SQI и PQI могут быть использованы как в комбинации «И», так и «ИЛИ».

          Логика работы данных «индикаторов»:

          • CS (1 бит) – прием прекращается, если уровень принятого сигнала (RSSI) не превышает заданного порога в отведенный тайм-аут.
          • SQI (7 бит) – прием прекращается, если индикатор качества синхронизации не превышает заданного порога в отведенный тайм-аут.
          • PQI (8 бит) – прием прекращается, если индикатор качества преамбулы не превышает заданного порога в отведенный тайм-аут.

          Более наглядно логика работы трансивера с запрограммированным периодом просыпания и заданными порогами CS, SQI и PQI показана на рисунке 4.

          fig4_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          Помимо вышеперечисленных «индикаторов», пользователю доступен 4-битный регистр LQI (link quality indicator), позволяющий оценить соотношение сигнал/шум демодулированного сигнала.

          В основу механизма пакетной обработки заложены три типа аппаратно поддерживаемых пакетов: STack, WM-Bus и Basic (рис. 5). Basic – соответственно своему названию, обеспечивает самые базовые функции пакетной обработки, но при этом дает максимальную свободу действий разработчику с точки зрения реализации собственных алгоритмов. WMBus – реализует аппаратную поддержку пакетов протокола Wireless M-Bus. Наиболее полно реализующим все аппаратные возможности трансивера является формат пакета STack. По сути (и это видно из названия), это аппаратная поддержка довольно продвинутого стека, которая практически полностью разгружает ресурсы внешнего микроконтроллера.

          fig5_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          На примере STack можно описать основные возможности аппаратной пакетной обработки SPIRIT1. Прежде всего, поле «Length» обеспечивает поддержку пакетов переменной длины (если используется пакет фиксированной длины, это поле не используется). Это поле содержит в себе информацию о суммарной длине полей: «Destination Address», «SourceAddress», «Controlи Payload».

          Поле «Destination Address» может быть использовано для автоматического распознавания пакетов по двум сценариям. Первый – при принятии пакета алгоритм пакетной обработки сравнивает адрес в поле «Destination Address» со своим собственным адресом в регистре «TX_SOURCE_ADDR». Этот сценарий подразумевает только одного получателя посылки. В случае второго сценария принятый адрес сравнивается с записанным в регистрах BROADCAST или MULTICAST широковещательным адресом (этот сценарий подразумевает широковещательную передачу, то есть нескольких получателей пакета).

          «Source Address» заполняется значением регистра «TX_SOURCE_ADDR». В режиме автоматической фильтрации это поле сравнивается принимающей стороной со значением регистров RX_SOURCE_ADDR или RX_SOURCE_MASK.

          «Sequence number» – 2-битное поле, содержащее порядковый номер передаваемого пакета. Значение этого регистра увеличивается с каждым новым передаваемым пакетом.

          «NO_ACK» – выставление этого бита в 1 означает, что пакет не должен быть автоматически распознан. Если «NO_ACK»=0, то в случае успешного приема подобного пакета принимающая сторона переходит в режим передачи и посылает специальный ACK-пакет. В свою очередь, сторона, передавшая исходный пакет, переходит в режим приема и ждет ACK-пакет. Если этот пакет не принят за отведенный тайм-аут, исходный пакет считается утерянным. Кроме того, приемник может заполнять ACK-пакет «полезной нагрузкой», а именно содержанием 96-байтного буфера TX_FIFO. Если передающая сторона не получила подтверждения приема, попытка отправки пакета может быть автоматически повторена. Без участия внешнего микроконтроллера доступно до 15 попыток повторной передачи пакета.

          «Payload» – «полезная нагрузка», или поле передаваемых данных. Длина этого поля может варьироваться от 0 до 65535 байт.

          «CRC» – поле контрольной суммы. Если после приема пакета контрольная сумма не совпадает, пакет отклоняется.

          Помимо пакетного структурирования, передаваемые данные могут быть подвергнуты встроенным алгоритмам защиты от ошибок: избыточное кодирование (FEC) и обеление (исключение повторяющихся подряд «нулей» и «единиц»). Также на борту присутствует сопроцессор шифрования AES128. Этот сопроцессор не участвует непосредственно в процессе автоматической пакетной обработки – его использование подразумевает запись и чтение входных и выходных данных, а также запись ключа шифрования. По сути, это некий помощник, позволяющий разгрузить хост-контроллер.

          В SPIRIT1 заложена возможность полностью обойти механизм пакетной обработки (например, если пользователь имеет свои собственные алгоритмы, уже реализованные на каком-либо микроконтроллере). Причем существует 2 способа ввода/вывода данных: с использованием раздельных 96-байтных буферов TX/RX FIFO и с использованием последовательного вывода данных через один из выводов GPIO. Кстати, о GPIO: всего в микросхеме доступны 4 вывода GPIO, которые можно запрограммировать на самый различный функционал. Например, на различные прерывания (переполнение буфера FIFO, успешное детектирование синхрослова/преамбулы, успешный прием пакета, низкий уровень заряда батареи, достижение максимального количества ретрансляций). Кроме этого, на вывод GPIO можно вывести сигнал для тактирования микроконтроллера (нет необходимости использовать отдельный высокочастотный резонатор для MCU). Частота тактового сигнала задается делителем от 1 до 1/192 из частоты резонатора 24–26 МГц или 50–52 МГц. Также через GPIO можно вывести сигнал со встроенного RC-генератора (с отдельным делителем) или, наоборот, затактировать сам SPIRIT1 от внешнего низкочастотного генератора.

          Интересным вариантом использования выводов GPIO является управление внешним антенным переключателем, в частности, для реализации алгоритма «Automatic antenna diversity». Данный алгоритм подразумевает переключение между двумя антеннами (например, между активной и пассивной) во время приема преамбулы пакета, при нахождении сигнала выше заданного порога RSSI переключатель остается на соответствующей антенне (рис. 6).

          fig6_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          Основным интерфейсом обмена данными между микроконтроллером и трансивером является SPI. Главный функционал SPI – запись и чтение регистров и содержимого буферов FIFO, а также передача около 17 команд. Дополнительно SPIRIT1 оснащен отдельным выводом для перевода трансивера в режим «Shutdown», что очень удобно с точки зрения оптимизации энергопотребления. На рисунке 2 была представлена структурная схема радио-модуля на основе SPIRIT1. Принципиальную же схему включения трансивера можно увидеть на рисунке 7. Наиболее сложная часть схемы – это, безусловно, схема согласования приемной и передающей частей с антенной. Рекомендуемая схема включения универсальна для всех диапазонов частот, за исключением, конечно же, номиналов компонентов. На рисунке 8 представлена рекомендуемая трассировка печатной платы, которая реализована в предлагаемых STMicroelectronics отладочных модулях.

          fig7_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          fig8_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          Для получения высоких характеристик приемника, разумеется, требуется качественная трассировка и довольно громоздкая цепочка согласования. Не стоит забывать и о соответствии международным стандартам, накладывающим ограничения на уровень внеполосных излучений, что отражается на количестве компонентов для реализации фильтра. Однако для диапазона частот 868 МГц STMicroelectronics предлагает согласующий трансформатор (balun) и фильтр в одном корпусе. BALFSPI-01D3 – это чип собственного производства STMicroelectronics, который, с одной стороны, решает проблемы со сложностями трассировки СВЧ-части, и с другой стороны, позволяет существенно сэкономить место на плате (размер микросхемы всего 2,0×1,4 мм). Наглядно преимущества использования BALF-SPI-01D3 продемонстрированы на рисунках 9 и 10.

          fig9_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47fig10_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

           

          Программное обеспечение и отладочные средства

          Несмотря на то, что SPIRIT1 имеет достаточно мощный вычислительный аппарат, обеспечивающий различные режимы работы и пакетную обработку, все же, как и любому другому трансиверу, ему требуется хост-контроллер. STMicroelectronics предлагает целый набор программного обеспечения, поддерживающий две основные линейки микроконтроллеров – STM8L и STM32L. По сути, данный пакет ПО позволяет использовать SPIRIT1 с любыми микроконтроллерами STMicroelectronics на ядрах STM8 и ARM Cortex-M.

          Самый простой способ найти требуемый файл с набором ПО на www.st.com – это набрать в строке поиска запрос «STSW-CONNECT009». Вам потребуется скачать установочный файл объемом порядка 60 Мбайт и произвести установку ПО на компьютер. По умолчанию установщик создает папку «SPIRIT1 DK_1.0.7» по адресу «C:\ProgramFiles (x86)\STMicroelectronics», а также 2 папки в меню «Пуск- >Программы- >STMicroelectronics» – это «SPIRIT1 DK_1.0.7» и «Wireless MBus Application».

          В состав пакета ПО входит:

          • Библиотека SPIRIT1 для STM32Lи STM8L:

          – низкоуровневые драйверы SPIRIT1, API для управления функциями SPIRIT1;

          – радиочасть, прерывания, GPIO, калибровка и пр.;

          – API для управления основными функциями (периферией) отладочных плат;

          – готовые примеры-проекты работы с аппаратными возможностями SPIRIT1: Basic, Stack, LDC-режим и пр.

          • Библиотека стека WirelessM-Busдля STM32L:

          – бинарные файлы библиотеки для физического и сетевого уровня WM-Bus;

          – примеры-проекты использования библиотеки в исходных кодах (для работы на частоте 868 МГц в качестве счетчика или концентратора).

          • Библиотека виртуального COM-порта для отладочной платы SPIRIT1.
          • Стандартная библиотека периферии для микроконтроллеров STM32L и STM8L.
          • USB-FS библиотека для STM32L.
          • Приложение для ПК (GUI) для управления всеми функциями SPIRIT1 на отладочной плате (рис. 13):

          – конфигурирование радиочасти трансивера;

          – базовые тесты (передача немодулированного сигнала и сигнала, модулированного ПСП);

          – тестирование пакетной передачи данных;

          – тестирование блока шифрования AES;

          – прямой доступ ко всем регистрам (запись/чтение);

          – экспорт/импорт радиоконфигурации;

          – автоматическое обновление прошивки отладочного комплекта.

          • Приложение для ПК (GUI) для тестирования стека WirelessM-Bus(рис. 16):

          – работа в качестве концентратора и снифера;

          – интуитивно понятный графический интерфейс для мониторинга сети WirelessM-Bus, конфигурирование конечных устройств.

          Структура библиотеки SPIRIT1 для STM32L показана на рисунке 11. Аналогичная библиотека предлагается и для микроконтроллера STM8L. Собственно, основа этой библиотеки – это стандартная библиотека STM32L, драйвер SPI и набор API-функций для управления всем функционалом SPIRIT1. На базе набора API-функций STMicroelectronicsпредлагает готовые проекты для среды IAREmbeddedWorkbench с примерами их использования.

          fig11_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          fig12_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          Следует отметить, что в комплекте с библиотекой идет, во-первых, отлично структурированный файл справки «SPIRIT1-Library.chm», который поможет быстро сориентироваться в предлагаемых исходных кодах (рис. 13). Кстати, аналогичный файл справки предлагается и для стека WirelessM-Bus – «Wireless_MBUS_Library.chm». Во-вторых, и это, пожалуй, самое главное, STMicroelectronics предлагает подробное описание API в многостраничном документе под названием «SpiritLowlevelAPIUserManual», который в версии ПО 1.0.7 можно найти по адресу «C:\ProgramFiles (x86)\STMicroelectronics\SPIRIT1 DK_1.0.7\Documents\SPIRIT1\Firmware_Library\SPIRIT1-Library_UM_v3.0.1.pdf».

          fig13_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          В целом исходные коды, поставляемые в комплекте, снабжены качественными комментариями, что позволяет достаточно быстро разобраться в структуре библиотеки и понять, как изменить те или иные параметры и осуществить передачу необходимого пакета данных. Например, на том же рисунке 11 можно обратить внимание на открытый файл «SDK_Configuration_Common.h», в котором можно изменить конфигурацию радиочасти трансивера: несущую частоту, частоту девиации, тип модуляции, скорость передачи данных, выходную мощность и т. п.

          Что касается ресурсов, занимаемых библиотеками, то для стандартной библиотеки SPIRIT1 (с учетом всех драйверов, включая USB) потребуется 20 кбайт Flash и 28 байт RAM. Как правило, в реальном приложении полный набор предлагаемых драйверов не потребуется, и в этом случае объем памяти, занимаемый программой, может составить всего 4 кбайт. Для библиотеки WirelessM-Bus потребуется 9,1 кбайт FLASH и 2138 байт RAM. Следует отметить, что библиотека WM-BUS в своей основе использует стандартную библиотеку SPIRIT1. То есть все низкоуровневые процессы берет на себя именно основная стандартная библиотека. Поэтому, например, общий максимальный объем Flashпамяти, который потребуется от микроконтроллера, следует понимать как 20 кбайт + 9,1 кбайт.

          tab3_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          SPIRIT1 в связке с микроконтроллером STM32 или STM8 является наиболее оптимальным решением для построения сети WirelessM-Bus. Помимо наличия аппаратного формирователя пакета WM-Bus, блока AES128 и манчестерского кодирования внутри самого трансивера, это обусловлено и программным набором, предоставляемым STMicroelectronics. Пакет программного обеспечения поддерживает режимы WirelessM-BusS, T, R (для поддиапазона 868 МГц) и режим N для поддиапазона 169 МГц (за исключением N2g, для которого требуется 4GFSK-модуляция). То есть, по сути, комплект SPIRIT1 + STM32/STM8 + ПО поддерживает работу WirelessM-Busво всех разрешенных в России режимах и при этом обладает привлекательной ценой. Описание режимов работы WirelessM-Bus приведено в таблице 3. «Минимальный набор» для реализации модуля WM-Bus может состоять из:

          • трансивера SPIRIT1;
          • симметрирующего трансформатора BALF-SPI-01D3;
          • микроконтроллера STM8L0xx (с 32 кб Flash);
          • кварцевого резонатора 24–26, 50–52 МГц;
          • пассивной обвязки (фильтрующие конденсаторы, дроссель для DC/DC-преобразователя).

          tab4_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          Сеть WirelessM-Bus интересна, прежде всего, как средство объединения различных типов приборов учета (счетчики электроэнергии, воды, газа, тепла) в единое информационное пространство, так как спецификация WM-Bus поддерживает огромное число подобных устройств, причем сам прибор учета может иметь как стационарное, так и батарейное питание. Концентратором может быть стационарное устройство (например, один концентратор на подъезд многоквартирного дома) или же это может быть мобильный терминал для считывания показаний со всех приборов учета, установленных в квартире потребителя. Учитывая некоторые ограничения (накладываемые как спецификацией WM-Bus, так и ГКРЧ), первый метод опроса счетчиков («общеподъездный») наиболее целесообразно реализовывать с использованием режима R2-mode с использованием несущей частоты в разрешенном диапазоне (868,7–869,2 МГц) и максимальной разрешенной мощности 25 мВт.

          fig14_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

          Для быстрого старта работы с отладочным комплектом или же проверки характеристики собственного радиомодуля предлагается GUI для операционной системы Windows (рисунок 14). Эта программа позволяет протестировать весь функционал, заложенный в SPIRIT1, а также подобрать оптимальные настройки регистров. При отсутствии необходимого контрольно-измерительного оборудования SPIRIT1 DK GUI может быть полезна с точки зрения сравнения характеристик предлагаемого модуля из отладочного комплекта с собственным радиоустройством.

          Для тестирования сети Wireless M-Bus предлагается специальная программа GUI «WM-Bus Application» (рис. 17), основное предназначение которой – это конфигурация устройства, работающего в роли концентратора, добавление в сеть приборов учета и прием от них пакетов данных.

          Бюджетный вариант для исследования возможностей SPIRIT1 – это USB-донгл, на котором установлен микроконтроллер STM32L151, SPIRIT1, компактная керамическая антенна и разъем для подключения внешней антенны (рис. 16). Так же, как и в случае с «большим» набором, донглы выпускаются на 433 МГц и 868 МГц и называются STEVAL-IDS001V3 и STEVAL-IDS001V4 соответственно.

          fig16_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47fig17_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47fig18_besprovodnoi_transiver_spirit1_stmicroelectronics_ve47

           

          Заключение

          Разумеется, в рамках одной обзорной статьи сложно охватить все аспекты, связанные с особенностями разработки устройств на базе SPIRIT1. Основную идею можно сформулировать следующим образом: STMicroelectronics предлагает продукт, позволяющий достаточно легко и быстро добавить беспроводной функционал вашему устройству. Особенно если сердцем вашей разработки является микроконтроллер STM32 или STM8.

          Причем использование микроконтроллеров ST принесет и очевидную экономическую выгоду: для работы со SPIRIT1 не требуется больших вычислительных ресурсов, поэтому в сочетании с трансивером могут быть применены даже самые младшие и дешевые модели микроконтроллеров. Например, STM8S003 – микроконтроллер, который можно купить в России всего за 10 рублей, или STM32F030F4, который при больших объемах может стоить порядка 15 рублей.

          Помимо SPIRIT1, ST предлагает облегченную версию (передатчик) – STS1TX для устройств, особенно критичных по цене и не требующих двустороннюю связь или связь с подтверждением приема. STS1TX имеет pin-2-pin и программную совместимость со SPIRIT1.