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

Для экстренного уведомления: беспроводной дисплей OLED + ZigBee

Олег Пушкарев (КОМПЭЛ)

Беспроводные модули XBee позволяют построить радиоканал без больших временных и инженерных затрат. Простота конфигурации, удобные интерфейсы и невысокая стоимость пришлись по душе разработчикам во всем мире. Популярность модулей XBee настолько велика, что для описания их возможностей была опубликована книга о беспроводных сетях «Building Wireless Sensor Networks». В статье приводится описание беспроводного дисплея, который может работать в сети со сложной топологией, принимая сообщения на расстояниях до трех километров. Он применяется в устройствах безопасности, например, когда возникает необходимость доставлять текстовые информационные сообщения на множество дисплеев, расположенных на территории объекта с площадью в десятки квадратных километров.

 

Техническое задание

Нам необходимо разработать беспроводное устройство отображения информации — беспроводной дисплей, который будет применяться, например, для экстренного уведомления персонала, находящегося на территории некоторого объекта с площадью в несколько квадратных километров. Использование радиомодулей XBee для организации радиоканала заметно упрощает нашу задачу, т.к. нам не придется тратить время на изучение сетевых протоколов и трассировку высокочастотных печатных плат. Предельная дальность связи радиомодулей составляет 3 км, однако мы не будем полагаться на эту цифру по той простой причине, что наш объект не представляет собой чистое поле — места размещения дисплеев не находятся в прямой видимости. Искать более мощные модули для того, чтобы «пробить» препятствия мы не будем по двум причинам. Во-первых, модули XBP24 уже имеют предельную выходную мощность, разрешенную законодательно [1] для радиопередающих устройств, работающих в безлицензионных диапазонах. Во-вторых, в реальном здании можно всегда найти такой закоулок, где сигнал от передающего устройства, расположенного в фиксированной точке, будет очень ослаблен. Использование сети с ретрансляторами (mesh-сеть) в такой ситуации существенно снижает требования к бюджету прямой радиолинии* между отправителем и приемником информации, хотя и требует введения избыточных узлов-роутеров. Разумеется, в качестве ретрансляторов могут выступать и сами беспроводные дисплеи, если они расположены достаточно часто и в нужных, с точки зрения ретрансляции сообщений, местах. Маршрутизация сообщений узлами ZigBee-сети выполняется в фоновом режиме и не требует никаких действий со стороны разработчика. Блок-схема нашей сети для информационной рассылки сообщений представлена на рисунке 1.

 

Блок-схема сети

 

Рис. 1. Блок-схема сети

 

Выбор компонентов

Мы будем создавать беспроводной дисплей на основе радиомодулей XBee 2,4 ГГц (рис. 2) с протоколом ZigBee-Pro, хотя для этих целей можно также использовать маломощные радиомодули XBee 868 МГц с протоколом DigiMesh.

XBee-модули 2,4 ГГц    XBee-модули 2,4 ГГц    XBee-модули 2,4 ГГц

Рис. 2. XBee-модули 2,4 ГГц

 

С центральным узлом все просто — здесь используется компьютер с подключенным через USB-интерфейс ХBee-модулем. В этом качестве может выступать готовый USB-адаптер (рис. 3), который позволяет подключить любой ПК или ноутбук к сети ZigBee. Например, XBee USB-адаптер XA-Z14-CE1P-W отличается повышенной мощностью и может работать в ZigBee-сети с Mesh-топологией на базе модулей XBee Series 2. Малогабаритный USB-адаптер XU-Z11 построен на маломощных модулях XBee и может работать совместно с модулями XBee ZB (Series2 и S2C). Все USB-адаптеры, как и обычные XBee-модули, могут выступать в роли координатора, роутера или конечного устройства [2].

 

Готовый USB-адаптер XBee

 

Рис. 3. Готовый USB-адаптер XBee

Нам нужно доставлять простые текстовые сообщения, поэтому мы выберем обычный стандартный символьный дисплей с организацией 2х16 (две строки по 16 символов). Т.к. дисплей будет использоваться в системе доставки сообщений о тревожных ситуациях, нам нужна модель с высокими показателями по эргономике. Качественный и контрастный текст с большими углами обзора сегодня можно обеспечить с помощью дисплеев TFT, ваккумно-флоуресцентных и OLED. TFT-дисплей явно избыточен для нашей задачи. К тому же он отличается относительно низким диапазоном рабочих температур и требует производительного микроконтроллера (МК) для обслуживания. Ваккумно-флоуресцентный дисплей имеет повышенное энергопотребление и высокую стоимость. Мы будем использовать OLED-дисплей, который для данной задачи является оптимальным выбором — высокая контрастность (2000:1), широкие углы обзора (160 градусов), индустриальный температурный диапазон и меньшая цена. Для облегчения считывания информации мы выбрали дисплей WinStar с увеличенным размером символов — WEH001602BGPP5N00001 (рис. 4). OLED-дисплеи совместимы по выводам и командам управления* со стандартными символьными ЖКИ, библиотеки для обслуживания которых сегодня доступны практически для любого микроконтроллера. Дополнительным достоинством выбранного OLED-дисплея является его способность работать от 3,3 В, несмотря на то, что рабочее напряжение питания определяется как 5 В. Не требуется для OLED и напряжение смещения, которое для обычного ЖКИ должно иметь отрицательную полярность при низковольтном питании.

 

OLED-дисплей WEH001602BGPP5N00001

 

Рис. 4. OLED-дисплей WEH001602BGPP5N00001

Дисплей нельзя подключить напрямую к радиомодулю XBee, если только не использовать программируемую версию со встроенным отдельным микроконтроллером. Для нашего беспроводного дисплея применен внешний микроконтроллер и самый обычный (непрограммируемый) XBee-модуль. Возможно, программируемый XBee [3] был бы здесь оптимальным выбором, однако обычный XBee позволил применить внешний МК со знакомой архитектурой и привычными средствами разработки.

Радиомодули XBee 2,4 ГГц доступны в двух исполнениях — c DIP-выводами и в SMD-версии. Несмотря на то, что SMD-версия является более совершенной (гибче в настройках, больше памяти, портов ввода-вывода и меньше потребление), для дисплея использован DIP-вариант исключительно благодаря удобству подключения на этапе разработки. В данном проекте DIP-вариант XBee может быть заменен на SMD-вариант без необходимости внесения каких-либо изменений в остальную часть схемы и программу для МК. Оба варианта XBee-модулей (DIP и SMD) могут объединяться в единую сеть и обмениваться информацией друг с другом.

В качестве управляющего микроконтроллера выбран 8-битный PIC16F88. В силу отсутствия каких-либо специальных требований для данного устройства подойдет микроконтроллер любого производителя, например, более дешевые STM8 или младшие модели MSP430.

 

Схемотехника беспроводного дисплея

Принципиальная схема беспроводного дисплея приведена на рис. 5. Она включает в себя три основных элемента: радиомодуль XBee, микроконтроллер PIC16F88 и дисплей WEH001602BGPP5N00001.

 

Схема беспроводного дисплея

 

Рис. 5. Схема беспроводного дисплея

 

Беспроводной дисплей работает по несложному алгоритму — каждое полученное сообщение выводится на OLED. Сообщения, которые должны выводиться на дисплей, поступают с выхода XBee-модуля в виде API-пакетов. Структура такого пакета несложна и включает в себя, помимо служебной информации, адрес отправителя и собственно текст. Для упрощения программной части было принято, что на дисплей всегда передается две строки по 16 символов, т.е. прямая адресация курсора не используется. Даже если нам нужно передать одну цифру «5» в первое знакоместо второй строки, мы будем отправлять данные для заполнения всех 32 знакомест, т.е. просто отправим на дисплей строку «5». В связи с высоким быстродействием OLED-дисплеев перезапись всех знакомест происходит без видимого мерцания. С другой стороны, 32 символа легко укладываются в один радиопакет даже при включении шифрования и других опций, уменьшающих размер полезной нагрузки. Пример API-пакета, который поступает из XBee-модуля в микроконтроллер, приведен на рисунке 6.

 

API-пакет с текстом

 

Рис. 6. API-пакет с текстом

В данном пакете мы передаем строку «OLED + XBee 2012Hello World! ***» (рис. 7). Подробнее о формировании и «разборе» API-пакетов можно прочитать в [4]. Отправлять информацию на дисплей может любой XBee-модуль, подключенный к единой сети. При этом неважно, работает он в режиме API или в так называемом «прозрачном» режиме, когда все символы, поступающие на вход UART XBee-модуля, в неизменном виде уходят по эфиру на конкретный узел в сети (по заранее установленному адресу). При отправке сообщения с XBee-модуля, работающего в «прозрачном» режиме, текст в модуль должен пересылаться одной строкой без пауз между символами, чтобы быть отправленным по эфиру в одном радиопакете, т.к. микроконтроллер на приемной стороне отбрасывает информационные данные, если их длина менее 32 символов. Таким образом, нельзя будет отправить текстовое сообщение, набираемое на клавиатуре буква за буквой. При необходимости этот алгоритм можно изменить, т.к. он определяется исключительно загруженной в наш микроконтроллер программой.

 

Макет беспроводного дисплея

 

Рис. 7. Макет беспроводного дисплея

Выделенное из API-пакета текстовое сообщение отправляется на дисплей, подключенный по классической схеме с четырехразрядной шиной данных. Можно также использовать последовательный интерфейс, т.к. OLED-дисплей может принимать данные и по SPI.

Питание устройства осуществляется от одного напряжения питания 3,0…3,6 В. В активном режиме устройство потребляет средний ток в районе 80 мА и подразумевает наличие сетевого источника питания.

 

Настройка XBee-модулей

Рассмотрим пошаговую настройку передающего USB XBee-адаптера и XBee-модуля беспроводного дисплея. Для работы в сети необходимо, чтобы один из модулей XBee выступал координатором. В нашем случае логично назначить на роль координатора XBee-модуль, подключенный к ПК. Все продаваемые со склада компании КОМПЭЛ модули по умолчанию запрограммированы роутерами. Перенастройка модулей в DIP- и SMD-вариантах несколько различается (рис. 8, позиции рисунка соответствуют пунктам плана перенастройки, представленного ниже).

Смена сетевой роли XBee-модуля (DIP)

Рис. 8. Смена сетевой роли XBee-модуля (DIP)

Перенастройка DIP-модуля (например, XBP24BZ7SIT-004):

1. Подключаем модуль к ПК, например, с помощью переходной платы, включающей мост UART-USB. Для наших целей подойдет переходная плата, входящая в состав любого отладочного комплекта для модулей XBee Series 1 или Series 2 (под DIP-вариант).

2. Запускаем программу XCTU и убеждаемся, что в закладке «PC Settings» значение скорости равно 9600 и нет галочки в чекбоксе «Enable API». Именно с такими настройками модули поставляются с завода-изготовителя.

3. При нажатии на кнопку «Test/Query» появляется окно с указанием типа модуля, версией прошивки (firmware) и серийным номером. Наличие в сообщении данной информации является подтверждением о нормальном обмене с модулем по UART-интерфейсу. Закрываем окно нажатием кнопки «ОК».

4. Переходим в закладку «Modem Configuration» и нажимаем кнопку «Read». Через несколько секунд мы видим список конфигурируемых параметров модуля и их значения. Зеленым цветом выделены значения по умолчанию (устанавливаемые при производстве).

5. В выпадающем списке «Function Set» мы видим значение ZIGBEE ROUTER AT. Необходимо выбрать значение ZIGBEE COORDINATOR AT (или ZIGBEE COORDINATOR API), далее нажать на кнопку «Write». Стартует процесс перепрошивки, который занимает около 20 секунд. В нижней части окна можно наблюдать индикатор прогресса.

6. После окончания перепрошивки вновь нажимаем кнопку «Read» и убеждаемся, что все параметры загруженной прошивки считываются нормально. В окне «Version» отображается номер текущей прошивки. Желательно при старте разработки всегда выбирать последнюю доступную версию firmware.

7. После загрузки прошивки «Координатор» модуль XBee создает новую сеть, т.е. самостоятельно выбирает наименее зашумленный частотный канал и назначает сетевые идентификаторы Operating PAN ID и Operating 16-bit PAN ID. Признаком успешного старта координатора является нулевое значение параметра AI. Теперь он готов подключать в сеть новые роутеры и спящие конечные устройства.

SMD-модуль, например, XB24CZ7PIS-004, построен на более мощном процессоре и содержит больший объем Flash-памяти. В одну прошивку здесь входят сразу все три возможные роли — координатор, роутер и конечное устройство. Поэтому в окне «Function Set» присутствует единственное значение «ZigBee». Выбор сетевой роли здесь осуществляется с помощью AT-команд, и перепрошивка не требуется. Для переключения из режима «Роутер» в режим «Координатор» достаточно установить в «1» значение параметра NetworkingCoordinator Enable и сохранить выбор, нажав кнопку «Write» (рис. 9).

 

Смена сетевой роли XB24CZ7PIS-004

 

Рис. 9. Смена сетевой роли XB24CZ7PIS-004

 

При условии загрузки последних версий firmware в единой ZigBee-сети могут общаться модули в DIP- и SMD-версиях, настроенные для работы в режиме как AT, так и API.

 

Настройка XBee-модуля для дисплея

Для дисплея нам нужен роутер, работающий в режиме API. Режим API более удобен при обмене данными с микроконтроллером. Для модулей в DIP-исполнении переход в режим API связан со сменой прошивки, поэтому нам нужно повторить пункты 1-7, только на шаге 5 в окне «Function Set» вместо ZIGBEE COORDINATOR AT необходимо выбрать функционал ZIGBEE ROUTER API. После загрузки нового функционала произойдет рестарт модуля, он самостоятельно найдет наш координатор и подключится к нему. Проконтролировать успешность подключения можно с помощью нескольких параметров: значение AI должно быть равно «0», значения «CH», «OP», «OI» должны совпадать на координаторе и роутере (и у всех прочих устройств, работающих в одной сети). Убедиться в успешности формирования сети из двух (или более) узлов можно следующим образом — в программе XCTU для API-роутера нажать: «Remote Configuration…», а затем в появившемся окне — «Open Com Port» и «Discover». В течение шести секунд в виде списка будут представлены все найденные узлы нашей сети. В качестве примера на рисунке 10 представлено отображение mesh-сети из 37 узлов.

 

Отображение сети в программе XCTU

 

Рис. 10. Отображение сети в программе XCTU

 

 

Дополнительные возможности

Наш беспроводной дисплей может работать и в качестве автономного устройства с питанием от батарей. Для этого необходимо перепрограммировать XBee-модуль в конечное устройство и включить спящий режим Sleep на микроконтроллере. Для вывода микроконтроллера из режима сна при поступлении сообщения используется линия CTS. После пробуждения MK принимает API-пакет с текстом и сохраняет его в энергонезависимой памяти, которой хватит на восемь сообщений. Далее микроконтроллер индицирует наличие принятого сообщения с помощью мигающего светодиода HL1. Питание дисплея при этом отключено ключом VT1 для экономии энергии батареи. Для просмотра сообщения микроконтроллер выводится из спящего режима оператором путем нажатия на кнопку «Mode». Далее производится инициализация дисплея, и выводится последний принятый текст. Учитывая то, что ток потребления в спящем режиме составляет единицы микроампер, беспроводной дисплей способен работать годами от литий-ионной батареи с емкостью в несколько ампер-часов, например ER14505-AX 3.6V (EEMB).

 

Литература

[1] Пушкарев О.И. «Выбор беспроводной технологии: советы начинающему разработчику». Журнал Встраиваемые системы №3’2010

[2] Пушкарев О.И. Построение ZigBee-сети на базе готовых устройств компании Digi, Журнал Беспроводные технологии №3’2011

[3] Пушкарев О.И. Программируемые модули XBee серии S2B. Беспроводные технологии №3’2010

[4] Product Manual: XBee / XBee-PRO ZB RF Modules Сайт: http://www.digi.com/.

———-

* Для оценки качества радиолинка применяется понятие энергетического потенциала радиолинии или бюджета радиолинии (Link Margin), который показывает, насколько сигнал на входе приемника превышает его предельную чувствительность. Бюджет радиолинии вычисляется по следующей формуле: Link Margin = TX power – RX sensivity + ANT gain – Path loss, где TX power – выходная мощность передатчика, дБм; RX sensivity – чувствительность приемника, дБм; ANT gain – совокупный коэффициент усиления приемной и передающей антенны; Path loss – затухание сигнала на радиотрассе.

 

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

 

 

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

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

О компании Winstar Display

Компания Winstar Display Co., Ltd, начала производить высококачественные индустриальные дисплеи с момента своего основания в 1998г. В компании открываются дополнительные производственные мощности, идет постоянное развитие бизнес-стратегии, создаются и внедряются новые технологии. При этом компания нацелена на поддержание высокого качества выпускаемой продукции, снижение затрат на производство, эффективное сервисное обслуживание заказчиков. Компания Winstar является инновационным лидером в своей ...читать далее