Беспроводные технологии на базе 32-битных контроллеров
Первое применение
Отметим, что сейчас широчайшее применение получают беспроводные технологии устройств со слабой обработкой данных. Как правило, это различные датчики, сигнализаторы, контроллеры освещения и др. Задача контроллера в этих применениях простая: получить сигнал чувствительного элемента датчика (оцифровать) и отправить полученные данные в приемник по радиоканалу. Вся обработка полученных данных ложится на приемник. Энергопотребление для приемного устройства, как правило, не является краеугольным камнем, поэтому приемник может содержать мощный контроллер, который выполнит всю необходимую обработку. Собственно говоря, неплохо иметь готовое решение «мощный контроллер + беспроводная сеть». Отметим для себя это первое применение мощных контроллеров со встроенной беспроводной связью.
Второе применение
Некоторые задачи могут потребовать быстрой реакции на оказываемое воздействие. Скорость реакции определяется несколькими факторами: во-первых, скорость выхода контроллера из энергосберегающего режима, а во-вторых, скорость обработки данных с последующей их передачей. С первой задачей классические 8-разрядные контроллеры на базе ядра 8051 прекрасно справляются. Обеспечить выполнение второй задачи классический 8-разрядный контроллер не всегда способен. Все зависит от сложности алгоритма обработки данных. В ситуации, когда требуется серьезный вычислительный процесс (например, преобразование Фурье) и быстрая реакция, разработчик будет вынужден придумывать алгоритмы работы системы, разгружающие слабые вычислительные возможности 8-битного контроллера. Как правило, такие алгоритмы в конечном итоге ухудшают потребительские свойства готового продукта. Использование 32-битных контроллеров с мощным ядром (например, ARM) стратегически решает задачу повышения скорости обработки данных. Задачи по быстрому выходу из энергосберегающего режима и ультранизкому потреблению в режиме «сна» легко решаются посредством современных технологий производства процессоров. Намного проще заставить ARM-контроллер меньше потреблять и быстро выходить из энергосберегающего режима, чем добиться высокой производительности от ядра 8051.
Проблемы, которых пока нет
Беспроводные технологии бурно развиваются, и понятно почему: это удобно, а массовое производство сводит цену такого решения практически до уровня классических проводных технологий. Среда, проводящая информацию, передаваемую беспроводным способом, одна — эфир. Возможности разделять каналы связи по частотам и ограничением передаваемой мощности сигнала пока достаточно для того, чтобы абоненты приемников/передатчиков не создавали друг другу помехи. Но что будет, если произойдет резкое увеличение числа абонентов? Методов (разделение эфира на полосы частот, снижение мощности передатчика, изощренные модуляции сигналов и т. д.) может оказаться недостаточно. В результате либо получится ограничение возможностей беспроводной связи, либо будет найдено иное решение. Очевидным выходом из такой ситуации может быть снижение транслируемой информации.
Но для этого требуется ее обработка и сжатие. Соответственно, поднимутся требования к способностям управляющих контроллеров беспроводных устройств. За примером далеко ходить не надо. Сотовая связь. Протоколы передачи данных постоянно обновляются не от хорошей жизни. Задача очевидная: увеличение емкости сети. Соответственно, меняются требования к передающим устройствам. Таким образом, задача надежной связи в конечном итоге решается мощностью контроллера.
Беспроводная ячеистая сеть
Запросы современного потребителя повышаются по мере роста технологических возможностей. Пользователь не желает привязывать гаджеты к определенному месту (зоне), более того, он хочет иметь устойчивую работу беспроводных устройств в нескольких местах одновременно, перемещать некоторые сетевые устройства, не теряя при этом связи; подключать новые устройства к беспроводной сети, включив тумблер питания (и только) в зоне действия сети. Примеров, где такая сеть могла бы применяться, множество. Например, «умный дом», где человек может управлять всем (освещением, отоплением, системами безопасности и т. д.) из любой точки. Или производственная линия с множеством подвижных частей, на которых установлены датчики. Это может быть система контроля перемещения транспортных средств, система автоматизации складов и т. д. Беспроводная сеть, в которой некоторые источники/приемники сигнала могут менять свою привязку к узлам сети, сегодня является наилучшим решением указанных задач. Устойчивость связи обеспечивается тем, что движущийся беспроводной источник/приемник сигнала автоматически выбирает наиболее устойчивый канал связи.. Соответственно, постоянно проводится диагностика сети, повышается достоверность доставки информации, появляется возможность трансляции данных по нескольким каналам.
Как организовать беспроводную ячеистую сеть?
На текущий момент существует стандартное решение данного вопроса. Во-первых, необходимо разделить все компоненты сети на стационарные (маршрутизаторы) и мобильные. Во-вторых, необходимо обеспечить надежную связь между соседними стационарными компонентами сети. Получившаяся сеть может иметь любую структуру. Добавим также, что стационарные узлы сети могут питаться либо от батарей, либо от осветительной сети (увы, пока по проводам). Предпочтение сейчас отдается последнему, так как маршрутизатор сети постоянно прослушивает эфир, соответственно, весьма сложно добиться низкого энергопотребления такого устройства при сохранении его остальных потребительских свойств. Как правило, для обеспечения надежной связи, например, в проекте «умный дом», достаточно 2-3 стационарных элементов беспроводной сети, поэтому в данном случае целесообразно питать данные узлы от осветительной сети.
Как мобильное устройство D1 будет передавать информацию в другое мобильное устройство D2 (рис. 1)? Упрощенно это будет выглядеть так. Устройство D1 задает вопрос по радиоканалу: «А кто знает, как найти D2?» Маршрутизаторы ретранслируют данный вопрос друг другу, при этом происходит запись маршрута, по которому проходил запрос, и уровня сигнала. Процесс продолжается до тех пор, пока устройство D2 не получит этот запрос. Очень вероятно, что устройство D2 получит запрос по нескольким маршрутам. Дальнейшая задача устройства D2 выбрать из них самый надежный. Критерий выбора — уровень сигнала, который так же будет получен устройством D2. Далее устройство D2 дает ответ устройству D1 и прописывает оптимальный маршрут доставки информации. Устройства D1 и D2 производят общение по заданному маршруту. Если предполагается, что устройства D1 и/или D2 могут перемещаться, то необходимо периодически корректировать путь доставки данных. Самая простая методика — заново задать вопрос: «А кто знает, как найти D2?»
Очевидно, что при большом количестве мобильных устройств такой способ позиционирования имеет негативные последствия. Если устройства постоянно производят свое позиционирование, то так или иначе они ставят помехи друг для друга, загружают сеть маршрутизаторов, соответственно, снижают скорость передачи сигнала, ухудшая при этом потребительские свойства беспроводной сети. Чтобы минимизировать данный эффект, инженеры придумали следующий выход. Во-первых, каждый маршрутизатор производит общение не со всеми остальными маршрутизаторами, а лишь с несколькими соседними, с которыми имеется устойчивая связь. Во-вторых, позиционирование мобильных устройств производится централизованно. Выглядит это так: один из маршрутизаторов, назовем его «главный», периодически задает вопрос: «Какие устройства присутствуют?» Получив множество ответов, главный маршрутизатор предписывает остальным оптимальные пути доставки информации до себя. Сеть приобретает древовидную структуру.
Собственно говоря, мы описали методы трансляции данных в беспроводных сетях, представленных в библиотеке EmberZnet. Отметим также, что существуют и другие методы организации ячеистой сети с похожими принципами. Главное отличие этих методов, пожалуй, заключается в названии фирмыизготовителя.
Семейство контроллеров STM32W
Фирма STMicroelectronics анонсировала новое семейство 32-битных контроллеров с беспроводной связью. Вся мощь, предоставляемая ядром ARM Cortex-M3, которое анонсировано и отработано на микроконтроллерах семейства STM32F, теперь усилена беспроводной связью. Контроллер с беспроводным доступом ARM Cortex-M3 — это шаг в будущее. 32-битные контроллеры теснят 16-битные. Компания ST ломает очередной барьер и предлагает замену 8-битных контроллеров на 32-битные. Анонс 32-битного контроллера с беспроводной связью — это, безусловно, шаг в этом направлении. Можно возражать, что 8-битный контроллер не может стоить дороже 32-битного, это главное условие существования 8-битных контроллеров. А мы тогда зададим вопрос: что стоит дороже, 4-битный контроллер (самый простой) или 8-битный полноценный контроллер? Как ни странно, 4-битный стоит дороже за счет эксклюзивности (да, уникальный контроллер, который ничего не может по современным меркам), или 8-битный стоит дешевле за счет массовости производства. Точно так же будет решена судьба 8-битных контроллеров в сравнении с 32-битными. Ожидается, что контроллеры семейства STM32W (с беспроводным интерфейсом) в России будут стоить не дороже $5, а цены на контроллеры семейства STM32F (без беспроводного интерфейса) начинаются от $2!!! Эти цены сопоставимы с ценами 8-разрядных контроллеров. Вот наглядный пример процесса развития технологий. Поэтому, начиная разработку устройства, сейчас лучше сразу брать 32-разрядный контроллер. В будущем он станет доступнее большинства 8-разрядных.
Так что же предлагает STMicroelectronics?
Стандартный контроллер семейства ST32W содержит в себе следующий набор устройств:
- Лидирующий по возможностям контроллер беспроводной связи IEEE 802.15.4 2,4 ГГц.
- Контроллер на базе ядра ARM Cortex-M3.
- Архитектуру низкого потребления (программное управление частотой, отключаемая периферия, отключаемое ядро). Потребляемый ток при работе радиоканала и полностью включенной периферии – 31 мА при трансляции и 27 мА при приеме данных по радиоканалу. В режиме глубокого сна, с сохранением работы портов ввода/вывода и сохранением данных в ОЗУ потребление составляет 400 нА.
- Развитую систему питания: имеются внутренние регуляторы напряжения 1,8 В, системы сброса и сигнализации по снижению уровня напряжения питания. Контроллер работает от одного источника питания в диапазоне 2,1–3,6 В.
- Стандартную периферию (АЦП, таймеры, интерфейсы, линии ввода/вывода).
- Набор стандартных библиотек и библиотек для беспроводной связи: EmberZnet PRO, ST ZigBee, RF4CE, IEEE 802.15.4 MAC.
Блок-схема контроллера семейства STM32W приведена на рис. 2.
Как видите, это похожий на представителей семейства STM32F контроллер с оптимизированным энергопотреблением. Снижение энергопотребления достигнуто несколькими классическими способами. Например, пониженная частота работы ядра. Как видно, ядро работает на частоте до 24МГц. На данный момент это значение является оптимальным для большинства задач по соотношению производительность /энергопотребление.
Присутствует также облегченный высокоскоростной контроллер шины данных, который работает на сниженной (относительно семейства STM32F) частоте. Несколько источников тактирования контроллера: высокоскоростные (внешний и внутренний) и низкоскоростные (внешний и внутренний) с системой переключения с одного на другой «на лету». Также к системам снижения потребления энергии можно отнести модуль автоматического выхода из режима «сна» (AWU): он дает еще один режим энергосбережения, отключаемое ядро и периферию.
Кроме радиочастотного модуля “IEEE 802.15.4 radio RF and baseband” инженеры компании STMicroelectronics добавили криптографический модуль. Он необходим для работы в режимах CCM, CCM*, CBC-MAC, CTR, которые описаны в стандарте IEEE 802.15.4-2003, а также в ZigBee Security Services Specification 1.0.
Для облегчения отладки приложений в контроллер включен модуль PTI (Packet Trace Interface). Благодаря этому модулю можно отслеживать любые физические трансляции (прием и передачу) данных без изменения режима работы контроллера.
В составе контроллера находится аппаратный генератор случайных чисел. Инженеры компании STMicroelectronics, таким образом, решили проблему кодирования информации для беспроводных приложений. Включение данного модуля положительно сказывается на потребляемой энергии, объеме кода готовой программы, потребительских свойствах выпускаемого приложения и т. д.
Отличия периферии, в сравнении с проводными контроллерами семейства STM32F, незначительны. Сокращено количество проводных интерфейсов: остались только SPI, USART и TWI, а в качестве АЦП взят популярный сигма-дельта АЦП.
С чего начать?
Компания STMicroelectronics до конца текущего года выпустит отладочные комплекты: STM32W108B-SK, включающий в себя демонстрационную плату, стартовый набор Primer-2, анализатор сети и компилятор от IAR, а также комплект STM32W108B-KEXT с 4 демонстрационными платами для организации ячеистой сети (mesh network).