DASH7

23 сентябрь, 2015 - 19:35Андрей Зубинский

В не слишком обширном списке «радиоканалов» (буду употреблять это умышленно сленговое название не только для того, чтобы сократить текст, но пока достаточно пояснения – под ним понимается весь технологический стек, от физического уровня до самого верха модели OSI) для IoT с большим радиусом действия DASH7 достойно занимает не последнее место, при этом технология почти никому не известна. А жаль. Очень интересная, даже уникальная разработка, и куда более доступная, чем, например, LoRa (сейчас представленная фактически одним производителем системообразующего компонента – микросхемы трансивера). Попробую восполнить пробел.

Для начала – пара слов о собственно прикладной области. «Дальнобойные радиоканалы» IoT предназначены для очевидного – в общем случае двухсторонней (но не исключена и только односторонняя) связи огромного числа оконечных устройств с чем-то промежуточным, что, уже имеющее «доступ в Internet», в сочетании со всей высокоуровневой архитектурой, формирует тот самый Internet of Things.

На первом, «мечтательном» этапе развития идеи IoT, преобладала мысль, что все цепочки такой сверхсистемы должны быть единым «пространством» стандартных интернет-протоколов. Эта мысль стала идеологической основой адаптации IPv6 для беспроводных сетей с ограниченным размером пакета данных, 6LoWPAN, и разных реализаций микро-TCP/IP стеков. В этом технологическом нюансе многие видели «суть IoT». Но были и другие мысли. Их носители вполне справедливо задавались вопросом – а что на практике даёт «сквозное протягивание» одних и тех протоколов через все уровни будущих систем, особенно если учесть, что адаптации этих протоколов или не соответствуют реальным возможностям, или настолько радикальны, что всё равно требуют чего-то промежуточного (шлюзов)? Кроме того, есть непростой вопрос с управлением адресным пространством, которое становится астрономическим. DASH7 как раз является представителем разработок, основанных на непринципиальности соблюдения правила «TCP/IP протокол – везде». Но при этом его разработчики всё равно позаимствовали некоторые очень удачные идеи из «до-IoT мира». Вот с этой заимствованной идеи и начнём, она – чуть ли не главное в DASH7.

В своё время была (и до сих пор живёт где-то в недрах Google) операционная система, доводившая одну ключевую идею Unix до совершенства минимализма. ОС Plan 9 освобождала программиста (и пользователя) сразу от груды лишних абстракций, представляя все нюансы, детали и устройства компьютерной сети единой файловой системой. То же самое в мире IoT делает DASH7. Пакеты, полезные нагрузки, адреса – всё это упрятано за абстракцией распределённой файловой системы с традиционными конструкциями «файл, доступный для чтения», «файл, доступный для записи», «исполняемый файл», и, наконец, «запрашиваемые файлы» (ужасный перевод термина queryable). Любой самый низкоуровневый узел DASH7-сети, тот самый встраиваемый во что угодно (в любую «вещь», thing) невидимый человеку вычислитель, является набором таких файлов. При этом DASH7 обеспечивает, условно говоря, «позиционную независимость» – файловой системе совершенно безразлично где в данный момент находится «вещь» (и спрятанный в неё вычислитель), что в терминах сети означает «к какому промежуточному пограничному устройству он подключен». Иными словами, файловая иерархия DASH7-сети не изменяется при перемещении «вещей» в реальном мире. В терминах DASH7 это дословно звучит так: «любые действия высокоуровневых приложений, все обмены данными отображены исключительно на манипуляции с файлами [Структурированными Элементами Данных, собственное название для «файлов» в DASH7] и их атрибутами [properties]»

Абстракция распределённой файловой системы DASH7 основана на чётко определённых критериях, которые в терминах системы принято называть аббревиатурой BLAST:

  • B – это Burst, в контектсте – «порывистый», требование соответствия системы случайному прерывистому характеру инициируемых событиями материального мира обменов данными (так что всякое потоковое – это не для DASH7, как и для большинства IoT-систем);
  • L – Light, «лёгковесность пакетов», которые не могут быть больше 256 байтов (включая полезную нагрузку, payload);
  • А -  Asynchronous, асинхронность, что означает –  DASH7 фундаментально не требует механизмов периодической синхронизации;
  • S – Stealth, весьма необычное свойство и критерий, подразумевающее полное отсутствие потребности в передаче традиционно необходимых периодических «пакетов для обнаружения» (discovery beacons), нет такого в DASH7, это «скрытная» система;
  • T – Transitive,  ориентированность на «непостоянство структуры», ещё один необычный для изучавших разные сети критерий, требующий максимального освобождения фиксированной в пространстве инфраструктуры сети от управления вычислителями и программами, встроенными в свободно перемещаемые «вещи», это поддерживается, в частности, за счёт «загрузочноориентированной» модели коммуникации (upload-centric или push communication model, об этом позже).

Даже из перечня критериев проектирования DASH7 становится понятно, что речь идёт о довольно нетривиальной разработке, очень непохожей на то, что стало совершенно нормальным и распространённым благодаря почти всему, надстроенному, например, над физическим и MAC уровнями 802.15.4 (ZigBee etc). Но есть одно приятное «но». В отличие от многих разработок всевозможных келейных альянсов, за DASH7 стоит реальный стандарт ISO (ISO/IEC 18000-7). Для многих разработчиков это не важно (например, работающих в потребительских секторах всевозможных smart home), но сбрасывать со счетов соответствие международным стандартам в промышленности (армии etc) не принято.

Из высокоуровневого осталось самое главное. Назначение и условия лицензирования. DASH7 создавался для сетей «активных дальнобойных» RFID, нужных в том числе и в большой логистике. Потому очень уважаем военными, например. Это нисколько не ограничивает область применения DASH7-устройств, но подчёркивает две важных особенности – DASH7, естественно, основан на фундаментальных для всех RFID требованиях минимального расхода энергии (и очень долгой работы от батареи) и очень низкой стоимости оконечных устройств (в RFID-терминах – тэгов). Более того. DASH7 изначально создавался для построения беспроводных сетей датчиков и актуаторов. Эта важная деталь, определяющая некоторую странность и необычность списка критериев, потому что чаще всего когда мы слышим аббревиатуру IoT, она подразумевает сугубо «сеть сенсоров» (т.е., такой интернет вещей, который способен в реальном мире только показывать весёлые картинки на мониторе, без воздействия на него).
Теперь можно перейти к конкретике.

Начнём с физического уровня. Он точно так же необычен.

Стремление добиться большой дальности действия на отрытой местности и в условиях помещений привело к стандартному, но необычно резкому для WSAN (беспроводные сети датчиков-актуаторов, Wireless Sensors Actuators Network) решению – выбору минимально доступной несущей частоты из небольшого перечня ISM-диапазонов. Разработчики DASH7 выбрали диапазон 433 MHz, в который до них всерьёз никто из создателей WSAN-сетей не заходил. Такое резкое понижение несущей частоты (в два с лишним раза по сравнению с самым традиционно низкочастотным, 868 MHz для Европы) имеет свои преимущества и недостатки. Начну с последних, благо, их очень немного, и главный из них – габариты антенны. Для 433 MHz классическая четвертьволновая антенна имеет длину 17 с лишним сантиметров. Если говорить об «интернете вещей» вообще, то далеко не в каждый «предмет» (thing) физического мира можно незаметно и красиво (предметы же не существуют сами по себе, они для людей) встроить такую немаленькую антенну. Кроме того, есть ещё государственные регуляторы, не оставляющие без внимания любой ISM-диапазон. Для излучающей в диапазоне 433 MHz есть специфические ограничения как Евросоюза, так и США. Европейцы ограничивают сочетание мощности и периода пребывания «в эфире», американцы – напряжённость электрического поля (измеряемую в вольтах на метр). Это тонкие нюансы, конечно, но об их существовании надо не забывать. Стандарт, лежащий в основе DASH7, разрешает реализацию физического уровня стека на втором субгигагерц  ISM-диапазоне (868 MHz для Европы, 928 MHz для США).

Итак, физический уровень DASH7 – это 433 MHz приёмопередатчик (или просто передатчик), использующий несложную гауссовскую или просто FSK модуляцию (частотную манипуляцию, означающую разные частоты для передачи единичного и нулевого битов, «гауссовская» означает такую предварительную обработку передаваемого цифрового потока, при которой с минимальными затратами на радиочастотные цепи достигается минимальный уровень, грубо говоря, паразитных излучений), разделяющий весь допустимый диапазон (433.060 – 434.785 MHz) на каналы с шагом 25 или 200 KHz. Есть ещё много деталей (да и эта информация в целом приведена с «большим запасом»), главное же – реализующих всё это микросхем-приёмопередатчиков и никак не связанных с DASH7 производителей более чем достаточно, причём все они были до DASH7, существует независимо от DASH7, доступны и дёшевы (не производители, конечно, а только микросхемы). Это очень важный нюанс, радикально отличающий DASH7 от, например, LoRa (безусловно замечательной разработки, но «намертво» привязанной к единственному производителю микросхемы радиотракта, ещё и защищённого патентами).

Такой выбор на практике означает почти ничем не заполненный диапазон (в нём очень мало излучающих устройств), приличную дальность связи (до нескольких километров на открытой местности и с соответствующими стандарту допустимыми мощностями передатчиков), хорошую «проникающую способность» сигналов через типовые препятствия (бетон, кирпич etc), пониженную чувствительность к перемещающимся объектам (например, просто к бродящим по торговому залу людям) etc.

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

Откланиваюсь