РИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 6 июня, 13:00
Тезисы:
http://ritfest.ru/2017/abstracts/2648.html
1. Применение сетей стандарта 802.15.4(6lowpan) в интернете устройств и промышленном интернете устройств: делаем систему умного дома и систему диспетчеризации и управления уличным освещением.
2. Что такое сети на основе 6lowpan, чем они отличаются от обычных компьютерных сетей. Что внутри устройств: микроконтроллеры CC1310/CC2650 и Contiki OS.
3. Кейс 1: делаем устройства с питанием от батарей. Энергосбережение, contiki-mac, radio duty-cycle, время жизни маршрута.
4. Кейс 2: строим большую (100 устройств) и протяженную (2 км) сеть. Как не увязнуть в маршрутах, использование симулятора и сниффера для диагностики сети.
5. Кейс 3: делаем ОТА-обновление с использованием внешней памяти. Версии, передача больших образов в малых пакетах, механизм отказоустойчивого обновления, golden-image.
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)
Строим mesh-сети 6LOWPAN на основе Contiki OS: теория и практика / Владислав Зайцев (Unwired Devices)
1. Ячеистые сети 6LOWPAN
на основе Contiki OS и
CC1310/СС2650: теория и
практика
Зайцев Владислав(vvzvlad), Unwired Devices
vvzvlad@gmail.com
Telegram: t.me/ru6lowpan
2. Что такое умный дом?
• Радио-система, не требующая прокладки проводов и ремонта
• Беспроводные выключатели на батарейках
• Датчики движения, присутствия, температуры, влажности,
освещенности
• Возможность создавать сложную логику управления
• Удаленное управление
3. Что такое автоматизированная система
управления наружным освещением (АСУНО)?
• Регулировка яркости каждого фонаря
• Расписание и удаленное управление
• Обратная связь — температура, мощность, сообщение об отказах
• Централизованная диспетчеризация
4. • Устройства рядом
• Быстрая реакция
• Есть устройства на батарейках
• Немного устройств в сети
Умный дом VS АСУНО
Fight!
• Устройства далеко
• Работа по расписанию
• Питание всегда есть
• Много устройств
5. Что внутри сети 6LoWPAN
• Application layer: Unwired Devices Binary Protocol
• Transport layer: UDP
• Network layer: IPv6, RPL
• Data link/network layer: 6LoWPAN
(IPv6 over Low power Wireless Personal Area Networks), MAC
• Physical layer: IEEE 802.15.4 (868 МГц, 2400 МГц)
6. Чем сети 6lowpan отличаются от компьютерных
сетей?
• Скорость передачи мала (от 20 до 200 кбит/сек)
• MESH-сеть: много промежуточных устройств при передаче на
небольшие расстояния
• Устройства могут исчезать из сети: доставка (корректная работа
маршрута) не гарантируется
7. Передача данных в WiFi-сети
Роутер
Устройство
Устройство
Устройство
Устройство
Устройство
Устройство
Устройство
8. Передача данных в mesh-сети
Роутер
Устройство
Устройство
Устройство
Устройство
Устройство
Устройство
Устройство
Устройство
9. Перестройка маршрута при выпадении устройства из
сети
Роутер
Устройство
Устройство
Устройство
Устройство
Устройство
Устройство
Устройство
Устройство
10. Что внутри устройств 6lowpan
• Микроконтроллер и радио-передатчик (в нашем случае —
СС2650/СС1310)
• Contiki OS
• Сенсоры, датчики, актуаторы
• Неонка
11. Первая версия реле для "умного дома"
Микроконтроллер
Актуатор (реле)
Блок питания
13. Contiki OS
Главный разработчик: Adam Dunkels
Место разработки: Swedish Institute of Computer Science
Примечания: Характер твердый, нордический. Скрытна.
14. – Брет, какие специальности нам нужны больше всего?
Тринли пожал плечами.
– Очевидно. Программист-археолог.
Вернор Виндж, "Глубина в небе"
Программная археология — дисциплина, изучающая плохо
документированное или недокументированное ... программное
обеспечение, в целях его сопровождения.
Википедия
15.
16. Кейс 1: Устройство с питанием от батарей
Проблема №1: Устройства в режиме ожидания потребляют 0.1мА и
больше.
Подробнее: Для экономии энергии устройства по-умолчанию
используют RDC (Radio Duty-Cycle), который экономичнее
постоянно включенного приемника. Но этого недостаточно.
17. Radio Duty-Cycle
Алгоритм, позволяющий снизить затраты энергии на прием сообщений:
частично или полностью синхронизированная активация приемника и чужих
передатчиков.
18. Отключаем Radio Duty-Cycle
• На устройствах с внешним питанием приемник постоянно активен
• На батарейных устройствах приемник всегда выключен, пока что-
то не потребуется послать
Устройства,
от которых
требуется
быстрая
реакция
Устройства,
работающие от
батарей
20. Минутка кода
Отключаем сетевую и радио-часть:
NETSTACK_MAC.off(0);
Включаем обратно
NETSTACK_MAC.on();
Отправляем
сообщение
координатору
Включаем
сеть и
радио
Отправляем
Дожидаемся
подтверждения
Выключаем
сеть и радио
21. Кейс 1: Устройство с питанием от батарей
Проблема №2: До батарейных устройств через некоторое время
перестают доходить подтверждения.
Подробнее: Без ответов ACK спящего устройства другие устройства
считают, что оно выключено и исключают его адрес из таблицы
маршрутизации
22. Таблица маршрутизации
После построения сети каждое устройство знает для каждого
другого устройства адрес соседа, через которое ему можно
передать сообщение
23. Минутка кода
core->net->rpl->rpl-conf.h:223
#define RPL_DEFAULT_LIFETIME 30
core->net->rpl->rpl-conf.h:214
#define RPL_DEFAULT_LIFETIME_UNIT 30
30 интервалов по 30 секунд
=
15 минут
core->net->rpl->rpl-conf.h:214
#define RPL_DEFAULT_LIFETIME_UNIT 60*60
10 интервалов по 3600 секунд
=
10 часов
core->net->rpl->rpl-conf.h:223
#define RPL_DEFAULT_LIFETIME 10
25. Кейс 2: Большая и протяженная сеть
Проблема: В большой сети нельзя отправить сообщение некоторым
устройствам, хотя они могут отправлять сообщения координатору
Подробнее: Таблица маршрутизации не хранит больше 20 записей.
Координатор сети в ней присутствует всегда, а вот остальные
устройства — нет.
29. Кейс 3: OTA-обновление
Проблема: Часто невозможно физически добраться до контроллера,
чтобы обновить его. Удаленное обновление не должно иметь
возможность сделать из устройства кирпич
Решение: Используем получение нового образа прошивки через
сеть, считаем контрольные суммы и используем флаг успешной
загрузки для бутлоадера
31. OTA: фаза 1, загрузка образа
Основная программа получает, записывает и проверяет контрольную сумму
образа во внешней памяти
Программа
Бутлоадер
Стартовый адрес Внешняя память
Золотой образ
Новый образ
Флаги
Внешняя память
32. OTA: фаза 2, запись образа
Бутлоадер запускается, видит установленный флаг обновления и записывает
образ из внешней памяти в основную, сбрасывает флаги обновления и запуска
Программа
Бутлоадер
Стартовый адрес Внешняя память
Золотой образ
Новый образ
Флаги
Внешняя память
33. OTA: фаза 3, проверка запуска
Бутлоадер передает управление новой программе, программа запускается и
проверяет, работает ли она корректно. Если да, устанавливает флаг запуска
Программа
Бутлоадер
Стартовый адрес Внешняя память
Золотой образ
Новый образ
Флаги
Внешняя память
Внешний
ресурс
34. OTA: фаза 4, восстановление
Если запуск неуспешен, то флаг запуска не устанавливается, и управление
передается бутлоадеру
Программа
Бутлоадер
Стартовый адрес Внешняя память
Золотой образ
Новый образ
Флаги
Внешняя память
Внешний
ресурс
35. Ячеистые сети 6LOWPAN
на основе Contiki OS и
CC1310/СС2650: теория и
практика
Зайцев Владислав(vvzvlad)
vvzvlad@gmail.com (пишите даже глупые вопросы)
Telegram: t.me/ru6lowpan (мы не кусаемся)
Unwired Devices (мы делаем железки)
http://unwireddevices.com/