Беспроводные сенсорные сети

Часть 2

Максим Сергиевский

Беспроводные сенсорные сети состоят из миниатюрных вычислительных устройств — мотов, снабженных сенсорами (температуры, давления, освещенности, уровня вибрации, местоположения и т.п.) и приемопередатчиками сигналов, работающими в радиодиапазоне. Поскольку размер мота должен быть небольшим, его питание осуществляется от маломощной батареи. Моты используются только для сбора и первичной обработки сенсорных данных, которые они пересылают по цепочке друг другу, а в конечном счете специальному устройству — шлюзу, имеющему соединение с корпоративной сетью. Основная обработка сенсорных данных осуществляется пользовательскими приложениями корпоративной сети.

За время, прошедшее с момента последней публикации, посвященной сенсорным сетям (КомпьютерПресс № 8’2007), в идеологии их построения и принципах функционирования серьезных изменений не произошло. Но зато, что чрезвычайно важно, современный технологический уровень позволяет уже сейчас перейти к использованию сенсорных сетей для решения широкого спектра задач. Последние технологические инновации относятся в первую очередь к программному обеспечению, а также к аппаратной части (увеличение области действия приемопередатчиков сигналов, продление срока службы батарей при уменьшении их размеров, появление новых сенсорных датчиков, дальнейшая миниатюризация устройств). Разработанные программные средства позволяют не только автоматически развертывать сенсорные сети, но и перепрограммировать их, удаленно управлять режимами функционирования, сбором и визуализацией данных.

Стандартами в области программного обеспечения беспроводных сенсорных сетей остаются стек протоколов ZigBee, базирующийся на технологии IEEE 802.15.4, и операционная система реального времени TinyOS. Эта ОС функционирует на микропроцессорах с разрядной сеткой от 8 до 32 бит и оперативной памятью 2 Кбайт и выше. В составе TinyOS имеется набор функций API, позволяющий организовать предварительную обработку данных непосредственно на моте. Большинство компаний-разработчиков выпускает и оборудование (моты, сенсоры, шлюзы), и программное обеспечение, соответствующие данным стандартам. Пожалуй, наибольшего успеха добились несколько компаний, среди которых глубиной и законченностью своих разработок выделяются Crossbow (www.crossbow.com) и Sentilla (www.sentilla.com).

Компания Sentilla сейчас осуществляет переход на новое поколение сенсорных устройств и будет использовать для их программирования не диалект языка С, как раньше, а Java (это определяется в основном потребностями американского рынка). В отличие от Sentilla, компания Crossbow не отказывается от выбранного пути и, поддерживая преемственность разработок, выпускает новые, более эффективные аппаратные средства и программное обеспечение, ориентируясь на языки С и С#. По нашему мнению, именно предлагаемая ею технология построения сенсорных сетей является наиболее подготовленной для практического применения. К тому же она полностью удовлетворяет стандартам ZigBee. Рассмотрим ключевые элементы этой технологии.

Сначала несколько слов по поводу поддерживаемых сетевых топологий. Основной является ячеистая топология (пример сети с ячеистой топологией приведен на рис. 1), где все моты обладают функциями маршрутизации. Возможности самовосстановления сетей ячеистой топологии в случае выхода из строя некоторых мотов позволяют достаточно быстро формировать сеть с новой конфигурацией. Вся информация, собираемая сетью, передается на шлюз, который по сути является таким же мотом, как и все остальные, но с расширенной функциональностью. Отличий шлюза от обычного мота три: шлюз связан с корпоративной сетью (например, с сервером) с помощью проводной или беспроводной связи; он не имеет в своем составе сенсоров; шлюз выполняет ряд координирующих функций, связанных с организацией работы беспроводной сети. В простейшем случае шлюз имеет соответствующий интерфейс (USB-порт, последовательный порт или Ethernet-порт) и подключается к компьютеру, выполняющему функции сервера беспроводной сети.

 

Рис. 1

Добавим, что компания Crossbow поддерживает еще две топологии: кластерную и топологию типа «звезда», о которых шла речь в первой части статьи. Однако наиболее гибкой и востребованной является именно ячеистая топология.

Основные принципы, которых придерживается фирма Crossbow и которые реализованы в предлагаемой ею технологии построения сенсорных сетей, следующие:

  • минимальный расход энергии на прием и передачу радиосигналов, что позволяет использовать компактные батареи;
  • легкость самоорганизации и самовосстановления сенсорной сети;
  • масштабируемость, обеспечивающая развертывание сетей с очень большим количеством узлов;
  • быстрая реакция на изменение среды, то есть способность к постоянному оперативному изменению конфигурации сети;
  • двунаправленная передача данных между шлюзом и мотами, с одной стороны, и между разными мотами — с другой;
  • надежность при передаче данных (данные должны быть обязательно переданы и не искажены);
  • очень маленький формфактор сенсорных модулей, что позволяет встраивать их или присоединять к различным устройствам.

Беспроводная сеть вместе со средствами контроля и управления ее работой может быть разделена на три уровня (рис. 2). В соответствии с терминологией Crossbow они носят следующие названия: уровень мотов, серверный уровень и клиентский уровень. Каждому уровню соответствуют свои аппаратные и программные средства. Аппаратные средства первого уровня — это собственно моты и шлюз. На втором, серверном уровне находится компьютер, выполняющий функции сервера беспроводной сети. Именно ему шлюз передает данные сенсоров, которые сохраняются в базе данных сервера. Вычислительная нагрузка на него невелика, поэтому в качестве него может использоваться не полнофункциональный сервер, а обычный ПК. И наконец, на клиентском уровне находится терминал (ПК или ноутбук), оснащенный программными средствами визуализации и анализа функционирования сенсорной сети, который подключен к серверу (по локальной сети или по Интернету).

 

Рис. 2

Разработанное Crossbow программное обеспечение, необходимое для работы системы в такой конфигурации, называется MoteWorks. Его также можно разделить на три основные части, соответствующие уровням организации сенсорной сети:

  • Xmesh — уровень мотов;
  • XServe — серверный уровень;
  • MoteView — клиентский уровень.

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

  • уровень мотов. На каждом моте, входящем в состав сенсорной сети, устанавливается специальное программное обеспечение XMesh, работающее под управлением операционной системы реального времени TinyOS. Это ПО предназначено для автоматического формирования сенсорной сети и организации передачи сенсорных данных шлюзу. По сути дела XMesh — это стек протоколов, поддерживающий ячеистую (или кластерную) архитектуру сети, то есть передачу данных по произвольной цепочке от одного узла сенсорной сети другому, а в конечном счете — шлюзу. Такой способ коммуникации расширяет общий диапазон передачи радиосигналов и уменьшает требуемую для передачи сообщений энергомощность. Существуют три режима работы XMesh, ориентированные на батареи разной мощности: HP — высокой мощности, LP — низкой мощности и ELP — расширенной низкой мощности;
  • серверный уровень. Программное средство XServe служит для организации взаимодействия между сенсорной сетью и приложениями, использующими ее данные, то есть можно сказать, что это ПО класса middleware. XServe обеспечивает сервисы маршрутизации данных от и к сенсорной сети вместе с сервисами более высокого уровня по анализу, преобразованию и обработке данных в интересах приложений. В сервисах более высокого уровня применяются управляемые пользователями конфигурационные файлы, базирующиеся на XML и загружаемые plug-in-модули. Для хранения данных XServe использует реляционную СУБД PostgreSQL, а для журналирования — файлы формата CSV. Важно, что работа с PostgreSQL поддерживается многими языками программирования, в том числе C, C++, Java, Perl и PHP. Для передачи данных от сенсорной сети в обычную IP-сеть XServe применяет стандартный протокол TCP/IP.
  • Средство XServe предоставляет несколько вариантов взаимодействия внешних приложений с XServe и сенсорной сетью. Пользователи могут взаимодействовать с XServe либо с помощью терминальных приложений, получая при этом непосредственный доступ к элементам сети, либо через мощный, базирующийся на XML командный интерфейс, служащий для удаленного вызова процедур;
  • клиентский уровень. Средство MoteView позволяет отображать информацию, генерируемую сенсорной сетью, в удобной для разработчиков и пользователей форме. В MoteView используется Windows-подобный интерфейс, а также графические схемы и текстовый формат для представления данных (рис. 3). С помощью MoteView могут анализироваться данные, хранящиеся в базе данных и лог-файлах XServe и относящиеся к работе сети за определенный период времени. Также МoteView может генерировать сообщения электронной почты на PDA или на мобильный телефон в случае возникновения каких-то событий, например реконфигурации сенсорной сети или достижения считываемым с сенсора показателем порогового значения. Средство MoteView дает возможность оптимизировать структуру сети и изменять ее конфигурацию, физически не меняя позиций мотов. В составе MoteView есть средства удаленного конфигурирования каждого мота. Например, можно изменять периодичность считывания сенсорных данных, не прибегая к программированию. В MoteView входит встроенная библиотека, поддерживающая работу со всеми сенсорами, выпускаемыми компанией Crossbow. Допускается расширение этой библиотеки, то есть включение в нее новых сенсорных плат (необязательно Crossbow) с помощью операции прототипирования.

 

Рис. 3

Отметим, что программное обеспечение серверного (XServe) и клиентского (MoteView) уровней может быть размещено на одном ПК, выполняющем в данном случае функции локального хоста.

Для управления режимами работы мотов, входящих в состав сенсорной сети, в частности для перепрограммирования мотов, понадобится специальное программное обеспечение. Оно включает среду программирования Programmers Notepad, кросс-компилятор С-подобного языка nesC, утилиту XOtap для радиопередачи программного кода через шлюз (базовую станцию) мотам и ряд других компонентов. Интегрированная среда программирования Programmers Notepad для nesC содержит редактор, кросс-компилятор для TinyOS и средства работы с файлами. Это вполне современная оболочка с Windows-интерфейсом (рис. 4). Среда Programmers Notepad может быть инсталлирована на любом персональном компьютере, оснащенном операционной системой Windows XP или 2000. Чаще всего она устанавливается на том же компьютере, что и XServe.

 

Рис. 4

Для осуществления разного рода управляющих операций, в том числе связывающих уровень мотов и серверный уровень, используется UNIX-подобная оболочка Cygwin, оперирующая командной строкой. Возможности Cygwin во многом дублируются средствами Programmers Notepad, но все же они шире, чем у последних. В частности, Cygwin содержит средства для работы с информацией, хранящейся в базе данных PostgreSQL.

Cygwin — это по сути среда эмуляции Linux на Windows, включающая эмулятор и набор функций Linux API. Cygwin представляет собой средство класса Open Source, которое (без эмулятора) может быть использовано и в среде Linux.

Утилита XOtap (Over The Air Programming) служит для организации удаленного перепрограммирования мотов сенсорной сети. Настройка частоты радиосигнала может осуществляться вручную, а может проходить автоматически. Работу XOtap отличает высокая надежность: обеспечивается обратная связь, подтверждающая, во-первых, завершение операции передачи данных, а во-вторых, результат операции, свидетельствующий об успехе или неудаче инсталляции кода. Утилита XOtap всегда устанавливается на сервере вместе с XServe. В схеме, реализующей процесс изменения программного кода мотов «по воздуху», естественно, присутствует шлюз (рис. 5).

 

Рис. 5

Для упрощения работы пользователей с XOtap используется специальная среда с Windows-интерфейсом, создаваемая программной оболочкой MoteConfig. Главное достоинство применения MoteConfig заключается в том, что программирование мотов можно осуществлять без установки среды TinyOS. Работая с MoteConfig, можно запрашивать состояние каждого мота, перепрограммировать его с помощью XOtap и в случае необходимости перезагружать ПО мота.

Более подробное описание аппаратных и программных средств работы с сенсорными сетями, предлагаемыми компанией Crossbow, можно найти на ее сайте. Все упомянутые в этой статье программные средства относятся к классу Open Source и являются свободно распространяемыми. Для знакомства и детального изучения их можно скачать с сайта www.crossbow.com.

 

В начало В начало

КомпьютерПресс 4'2008

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует