№8 / 2013 / статья 4

Spirit1 – дух, объединяющий микроконтроллеры ST в беспроводную сеть

Михаил Чигарев (STMicroelectronics)

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

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

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

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

 

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

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

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

 

Внутренняя структурная схема SPIRIT1

 

Рис. 1. Внутренняя структурная схема SPIRIT1

 

 

Структурная схема радиомодема на базе SPIRIT1

 

Рис. 2. Структурная схема радиомодема на базе SPIRIT1

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

Приемопередатчик обеспечивает работу в диапазонах частот 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 приведены значения времени перехода из различных состояний в режимы приема и передачи. Собственно, эти таблицы являются отправной точкой для расчета профиля энергопотребления устройства и выбора источника питания.

Таблица 1. Энергопотребление SPIRIT1  

Режим Ток потребления
RX 9 мА
TX 21 мА @ 11 дБм
Shutdown 2,5 нА
Standby 600 нА
Sleep 850 нА
Ready 400 мкА
Lock 4,4 мА

 

Таблица 2. Энергопотребление SPIRIT1  

Режим Digital LDO SPI Xtal RF Synth. Wake-up timer Переход в TX, мкс Переход в RX, мкс
Shutdown Выкл. Выкл. Выкл. Выкл. Выкл.
Standby Вкл. (сохранение данных FIFO и всех регистров) Вкл. Выкл. Выкл. Выкл. 125 125
Sleep Вкл. Выкл. Выкл. Вкл. 125 125
Ready Вкл. Вкл. Выкл. Не используется 50 50
Lock Вкл. Вкл. Вкл. Не используется
RX Вкл. Вкл. Вкл. Не используется 15
TX Вкл. Вкл. Вкл. Не используется 15

Каким же образом достигается столь низкое энергопотребление? Ответ прост — в качестве первичного преобразователя питания внутри трансивера используется импульсный 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), однако большинство производителей (равно как и STMicroelectonics) приводит значения чувствительности с отключенным блоком 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).

 

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

 

Рис. 3. Автоматическая корректировка периода просыпания

Помимо использования режима периодического просыпания снизить энергопотребление можно, сократив время нахождения в режиме приема. А именно — не принимать весь пакет данных, если есть вероятность неуспешного приема. Для оценки этой вероятности можно использовать несколько «индикаторов» с программируемым пороговым уровнем, таких как CS (carrier sense level), SQI (sync quality indicator), PQI (preamble quality indicator). CS, SQI и PQI могут быть использованы как в комбинации «И», так и «ИЛИ».

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

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

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

 

Примеры использования прерывания приема пакета

 

Рис. 4. Примеры использования прерывания приема пакета

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

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

 

Встроенные форматы пакетов

 

Рис. 5. Встроенные форматы пакетов

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

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

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

"Sequence number" — двухбитное поле, содержащее порядковый номер передаваемого пакета. Значение этого регистра увеличивается с каждым новым передаваемым пакетом.

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

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

"CRC" — поле контрольной суммы. Если после приема пакета контрольная сумма не совпадает — пакет отклоняется.

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

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

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

 

Алгоритм выбора антенны с максимальным уровнем RSSI

 

Рис. 6. Алгоритм выбора антенны с максимальным уровнем RSSI

 

Основным интерфейсом обмена данными между микроконтроллером и трансивером является SPI. Главный функционал SPI — запись и чтение регистров и содержимого буферов FIFO, а также передача примерно 17 команд. Дополнительно SPIRIT1 оснащен отдельным выводом для перевода трансивера в режим "Shutdown", что очень удобно с точки зрения управления режимом оптимизации энергопотребления.

На рисунке 2 была представлена структурная схема радиомодуля на основе SPIRIT1. Принципиальную же схему включения трансивера можно увидеть на рисунке 7. Наиболее сложная часть схемы — это, безусловно, схема согласования приемной и передающей частей с антенной. Рекомендуемая схема включения универсальна для всех диапазонов частот за исключением, конечно же, номиналов компонентов. На рисунке 8 представлена рекомендуемая трассировка печатной платы, которая реализована в предлагаемых компанией STMicroelectronics отладочных модулях.

 

Схема включения SPIRIT1

 

Рис. 7. Схема включения SPIRIT1

 

Рекомендуемая трассировка печатной платы

 

Рис. 8. Рекомендуемая трассировка печатной платы

 

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

 

Оптимизация согласующей цепочки для диапазона 868 МГц

 

Рис. 9. Оптимизация согласующей цепочки для диапазона 868 МГц

 

Оптимизация места на плате с помощью BALF-SPI-01D3  Оптимизация места на плате с помощью BALF-SPI-01D3

Рис. 10. Оптимизация места на плате с помощью BALF-SPI-01D3

 

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

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

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

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

  • Библиотека SPIRIT1 для STM32L и STM8L (рисунок11).

 

Структура библиотеки SPIRIT1

 

Рис. 11. Структура библиотеки SPIRIT1

    • низкоуровневые драйверы SPIRIT1, API для управления функциями SPIRIT1 (рисунок 12);
    • радио-часть, прерывания, GPIO, калибровка и пр.
    • API для управления основными функциями (периферией) отладочных плат;
    • готовые примеры-проекты работы с аппаратными возможностями SPIRIT1: Basic, Stack, LDC режим и пр.  

Файл справки по SPIRIT1 API

Рис. 12. Файл справки по SPIRIT1 API

  • Библиотека стека Wireless M-Bus для STM32L.
    • бинарные файлы библиотеки для физического и сетевого уровня WMBus;
    • примеры-проекты использования библиотеки в исходных кодах (для работы на частоте 868 МГц в качестве счетчика или концентратора);
  • Библиотека виртуального COM-порта для отладочной платы SPIRIT1.
  • Стандартная библиотека периферии для микроконтроллеров STM32L и STM8L.
  • USB-FS-библиотека для STM32L.
  • Приложение для ПК (GUI) для управления всеми функциями SPIRIT1 на отладочной плате (рисунок 13).

SPIRIT1 DK GUI

Рис. 13. SPIRIT1 DK GUI

    • конфигурирование радио части трансивера;
    • базовые тесты (передача немодулированного сигнала и сигнала модулированного ПСП);
    • тестирование пакетной передачи данных;
    • тестирование блока шифрования AES;
    • прямой доступ ко всем регистрам (запись/чтение);
    • экспорт/импорт радиоконфигурации;
    • автоматическое обновление прошивки отладочного комплекта;
  • Приложение для ПК (GUI) для тестирования стека Wireless M-Bus (рисунок 14).
    • работа в качестве концентратора и снифера;
    • интуитивно понятный графический интерфейс для мониторинга сети Wireless M-Bus, конфигурирование конечных устройств.

Отладочная платформа для стека Wireless M-Bus

Рис. 14. Отладочная платформа для стека Wireless M-Bus

 

Структура библиотеки SPIRIT1 для STM32L показана на рисунке 11. Аналогичная библиотека предлагается и для микроконтроллера STM8L. Собственно, основа этой библиотеки — это стандартная библиотека STM32L, драйвер SPI и набор API функций для управления всем функционалом SPIRIT1. На базе набора API функций STMicroelectronics предлагает готовые проекты для среды IAR Embedded Workbench с примерами их использования. Следует отметить, что в комплекте с библиотекой идет отлично структурированный файл справки "SPIRIT1-Library.chm", который поможет быстро сориентироваться в предлагаемых исходных кодах (рисунок 12). Аналогичный файл справки предлагается и для стека Wireless M-Bus — "Wireless_MBUS_Library.chm".

Что касается ресурсов, занимаемых библиотеками, то для стандартной библиотеки SPIRIT1 (с учетом всех драйверов, включая USB) потребуется 20 кбайт Flash и 28 байт RAM. Как правило, в реальном приложении полный набор предлагаемых драйверов не потребуется, и в этом случае объем памяти, занимаемый программой, может составить всего 4 кбайта. Для библиотеки Wireless M-Bus потребуется 9,1 кбайт Flash и 2138 байт RAM.

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

На данный момент существует два типа отладочных средств для платформы SPIRIT1. Наиболее функциональный набор состоит из двух материнских плат на микроконтроллере STM32L152, двух модулей с трансивером SPIRIT1 и SMA-разъемом (рисунок 15). Также в комплекте идут две антенны и необходимые кабели. Для России актуальны наборы с модулями SPIRIT1, СВЧ-тракты которых согласованны на 433 МГц и 868 МГЦ, это STEVAL-IKR002V3 и STEVAL-IKR002V4, соответственно.

 

Отладочный набор STEVAL-IKR002Vx

 

Рис. 15. Отладочный набор STEVAL-IKR002Vx

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

 

USB-донгл STEVAL-IDS001Vx

 

Рис. 16. USB-донгл STEVAL-IDS001Vx

 

Заключение

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

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

Помимо SPIRIT1, компания STMicroelectronics предлагает облегченную версию (передатчик) — STS1TX для устройств, особенно критичных по цене и не требующих двусторонней связи или связи с подтверждением приема. STS1TX имеет pin-2-pin и программную совместимость со SPIRIT1. Возможно, к моменту выхода этой статьи комапния STMicroelectronics уже представит и новинку 2013 года — приемопередатчик с еще более высокой чувствительностью и избирательностью, а также — поддержкой 4FSK/4GFSK-модуляции (что, в конечном итоге, приводит к увеличению скорости передачи данных до 1000 кбит/с).

Библиотека STM32/STM8 и стек Wireless M-Bus — не единственное программное обеспечение, доступное для SPIRIT1. Компания Thingsquare (http://www.thingsquare.com/) предлагает IP-стек на базе операционной системы Contiki для связки SPIRIT1+STM32L. Суть этого решения — IP-адресация беспроводных устройств малой мощности с самоорганизацией сети (Mesh-топология). Такой подход в будущем позволит управлять любым бытовым устройством или считывать данные с устройства учета энергоресурсов удаленно из любой точки планеты, где есть возможность доступа в интернет. В настоящее время проект развивается как со стороны Thingsquare, так и со стороны STMicroelectronics. Следите за обновлениями!

Получение технической информации, заказ образцов, поставка — e-mail: mcu.vesti@compel.ru

 

 

Наши информационные каналы

Теги: ,
Рубрики:

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее