Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Как Linux общается с "интернетом вещей": Взгляд на стандарт IEEE 802.15.4

Оригинал: "How Linux Talks to the Internet of Things: A Look at IEEE 802.15.4 "
Автор: Nathan Willis
Дата публикации: 03 April 2012
Перевод: Н.Ромоданов
Дата перевода: июнь 2012 г.

Если вы в настоящее время следите за предсказаниями будущего, связанного с интернетом, вы, без сомнения, знакомы с понятием "интернет вещей" ("Internet Of Things"). Вполне реальна вероятность того, что это не еще одно умное слово, а центральное понятие: распространение устройств малой мощности, подключенных к интернету, в которых для общения с нашими компьютерами и серверами используются беспроводные сети. В конце концов, вам не нужен компьютер в нагревателе воды или в электрическом счетчике: нужен просто датчик, и способ дистанционного считывания данных. В этом пространстве основным игроком будет Linux, но большинство разработчиков до сих пор не знакомы с сетевыми стандартами, с помощью которых выполняется эта работа, например, с IEEE 802.15.4.

80 — что?

802.15.4 является спецификацией рабочей группы 802.15 института IEEE, в котором определены "персональные" сети ("personal area" networks) или сети WPAN. В этом стандарте определен физический слой и управление доступом к среде, что означает, что в нем описываются частоты и режимы обмена данными при подключении, а не протоколы, работающие поверх них. Это, по сути дела, "канальный уровень" стека интернет-протоколов, похожий на фреймы Ethernet нижнего уровня, более известные как Wi-Fi спецификации 802.11*.

Стандарт предназначен для работы на устройствах с низким напряжением питания, например, вам может потребоваться встроенное устройство, которое должно работать от батареи питания в течение нескольких месяцев или даже лет. Такая сеть WPAN предназначена для работы в радиусе примерно 10 метров от антенны, определены различные скорости передачи данных - от 20 кбит и до 250 кбит. В дополнение к тому, что стандарт работает с маломощными устройствами, он создавался таким образом, чтобы его было просто реализовывать в условиях производства (и, следовательно, чтобы устройства были бы очень дешевыми).

Один из вариантов это сделать — определить два класса узлов: полнофункциональные устройства, такие как ПК, и устройства с сокращенной функциональностью (reduced-function devices или устройства RFD), такие как устройства со встроенными датчиками. Устройства RFD могут напрямую общаться с полнофункциональными устройствами, так что устройство, находящееся в жарочном шкафу может взять на себя управление сетью, маршрутизацию сообщений, а также выполнение других вспомогательных действий. В таких узлах, координирующих работу сети, можно также определять расписание, синхронизирующее работу, что предотвратит коллизии устройства RFD благодаря выделению фиксированных предсказуемых слотов передачи пакетов данных. Координирующий узел наподобие маяка посылает регулярные сообщения, что позволяет устройствам RFD, когда им нужно передать данные, просто слушая маяк следить за временем.

Есть несколько частотных полос доступных для устройств 802.15.4, в том числе используемый во всем мире диапазон 2,4 ГГц, диапазон 868 МГц, используемый в Европе, и 902 МГц, используемый в Северной Америке. Также есть новые стандарты для Китая и Японии, согласованные с распределением частот, существующим в этих регионах. Если учесть маленький радиус действия и то, что большинство маломощных датчиков будут использоваться в качестве встроенных устройств, не следует предполагать, что в устройствах RFD будет использоваться переключение диапазонов, но для полнофункциональных устройств это потенциально возможно.

Чтобы можно было пользоваться всеми возможностями этого низкоуровневого взаимодействия, выше этого слоя должны присутствовать другие слои, которые будут управлять пакетами IP, соединениями TCP, важными функциями, такими как безопасность и аутентификация, которые, по существу, фактически реализуют прикладные протоколы.

Протоколы и программы

Но, в действительности, все немного сложнее, т. к. стандарт 802.15.4 больше известен как используемый с протоколами ZigBee. Оборудование ZigBee относительно недорогое (в самом деле, вы, возможно, видели его, т. к. оно предназначено для проектов Arduino и другой электроники DIY), но программное обеспечение представляет собой проприетарный стек протоколов, который несовместим с лицензией GPLv2 Linux. Также имеются и другие проприетарные решения, но более важно, что есть такие, которые используются для стандарта 802.15.4 и базируются на открытых стандартах.

Конечно, не все стеки протоколов пригодны для использования любителями. Например оба решения WirelessHART и ISA100.11a предназначены для автоматизации в промышленности. Но самым простым является вариант 6LoWPAN (сокращение IPv6 over Low-power Wireless Personal Area Networks — IPv6 для маломощных беспроводных персональных сетей) - официальный проект IETF, в рамках которого сеть IPv6 адаптирована для маломощных устройств. Когда вы будете его рассматривать, обнаружите на переднем плане его две естественные особенности — низкую стоимость и то, что из-за неравномерной области развертывания автономных интеллектуальных датчиков, в сущности, потребуются расширенные возможности адресации и упрощенные возможности маршрутизации, которые есть в IPv6.

Проект 6LoWPAN определен в документе RFC 4944. В нем подробно указывается, как пакеты стандарта IPv6 делятся на более короткие кадры, мспользуемые в 802.15.4, как полнофункциональный узел, координирующий сеть WPAN, может назначать адреса IP устройствам RFD и как маршрутизировать пакеты, идущие через ячеистую сеть маломощных узлов. При решении некоторых из этих вопросов возникают своебразные проблемы, с которыми не приходится сталкиваться в сетях IPv6 других типов - например, маломощное оборудование может прослушивать сетевой трафик с перерывами, что усложняет определение топологии сети.

Поэтому в результате появтились новые алгоритмы маршрутизации, например, 6LoWPAN AD-hoc routing protocol (LOAD). Есть также работы, касающиеся служб 6LoWPAN, а также оптимизации высокоуровневых протоколов IETF, например, TCP и UDP, и размеров кадров и скоростей передач, используемых в 802.15.4. Конечно, в простых электронных датчиках, возможно, не потребуется в полной мере пользоваться протоколом TCP / IP, но поддержка стандартной инфраструктуры сети интернет на встраиваемых устройствах открывает путь для других интересных возможностей, в основе которых лежит 802.15.4, таких как дистанционное управление, для чего собственно первоначально был предложен протокол TCP/IP.

Поддержка стандарта 802.15.4 была добавлена в основную ветку ядра Linux в версии 2.6.31, но поддержки 6LoWPAN не было до января 2012 года, т.е. до версии 3.2. Для тех, кто интересуется, код находится в директории net/ieee802154/ стандартного дерева исходных кодов.

Проект Linux ZigBee (название которого, по общему мнению, только вносит путаницу; рассматривающий те вопросы, которые не были реализованы в проекте ZigBee по вышеупомянутым причинам лицензирования) является эпицентром поддержки 802.15.4 и 6LoWPAN. В проекте сообщается, что, начиная с ядра 3.2, сейчас поддерживается базовая часть 6LoWPAN, но уже в ядре 3.3 добавлены важные усовершенствования, например, фрагментация. Также ведется целый ряд работ, связанный с реализацией базового слоя 802.15.4, в том числе работы с очередями сообщений и с сообщениями о состояниях.

Проект живет и здравствует. Есть даже инструментальные средства, работающие в пользовательском пространстве, позволяющие находить близлежащие устройства и подключаться к ним, выполнять базовую координациию сети, а также при использовании соотвествующих патчей следить за сетью 802.15.4 с использованием таких существующих инструментов, как tcpdump и Wireshark.

Что мы можем делать сегодня и на что способны устройства

Тем не менее, маловероятно, что ваш стандартный дистрибутив с его стандартными пакетами, предназначенный для настольного компьютера, будет скомпилирован с поддержкой 802.15.4, поэтому, если вы хотите поэкспериментировать с маломощными устройствами или с 6LoWPAN, то возможно, вам придется компилировать свои собственнные модули и драйверы устройств.

Список устройств, поддерживаемых проектом, короткий, но в нем есть серийно выпускаемые устройства и платы SPI.

Одним из чипов 802.15.4 из списка поддерживаемых в проекте Linux ZigBee является чип Atmel AT86RF231, который передает и принимает данные в диапазоне 2,4 ГГц, используемом во всем мире. Также этот чип используется в новом USB-устройстве, называемом Ben WPAN, которое производится фирмой Qi Hardware в рамках открытого проекта — теми же самыми людьми, которые сделали ультраминиатюрное устройство Ben Nanonote, о котором мы рассказывали в 2010 году. Также доступна версия USB-устройства, которое подключается непосредственно к устройству Nanonote.

У фирмы Qi Hardware имеется сеть Ben WPAN, работающая с модифицированной версией стека 802.15.4 (который, предположительно, когда-нибудь будет возвращен в основной поток разработок). Было продемонстрировано, что два устройства Nanonotes, использующие сеть WPAN, могут устанавливать сетевые соединениеяи и могут общаться друг с другом. Если смотреть дальше, то вариант, работающий с USB, безусловно, откроет двери для большего числа кодеров просто благодаря тому, что эта шина используется повсеместно.

Ситуация со встроенными устройствами не так проста. Как и следовало ожидать, большинство разработчиков коммерческих датчиков больше заинтересованы в создании ZigBee-сертифицированных продуктов, а не в поддержании среды с полностью открытым исходным кодом. Но есть мелкие производители, которые заинтересованы в производстве полезных устройств, не ограниченных сертификационным процессом, необходимым для ZigBee, и здесь нам становится видно движение в сторону открытых протоколов. Хорошо взглянуть на результаты фирмы Freaklabs, которая выпускает Arduino-совместимое оборудование.

Стандарт 802.15.4, конечно, пока не прошел "точку невозврата", что необходимо для массового внедрения - если это произойдет, мы, несомненно, увидим Linux-компании, инвестирующие, в основном, в драйвера устройств и сетевой код, используемый в реализации ядра. Но, пожалуй, лучшими новостями на этом фронте являются слухи о том, что ZigBee Alliance смещает свое внимание с текущего проприетарного решения на открытый стандарт, основанный на стеке IETF TCP/IP — и, по всей вероятности, на проект 6LoWPAN.

То, что ZigBee Alliance, возможно, сосредоточит свое внимание на открытых стандартах, интересно с точки зрения ведения бизнеса. Вы, конечно, можете найти в прошлом примеры того, как в закрытой модели использовался Linux и открытый исходный код (например, Bluetooth). Но для нас более важно то, что будет масса новых встроенных интеллектуальных устройств, экспериментируя с которыми можно обнаружить много интересного.