Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
Илья Куракин, Intel
2
Internet of Things x Resources = Unprecedented Opportunity
x =THINGS CREATIVITYRESOURCES
Sources: AMS Research, Gartner, IDC, McKinsey Global Institute, and various other industry analysts and commentators
Creative Developers Amazing Solutions50 Billion ?
Empower
Inspire
Teach
3
Встраиваемые устройства
Датчики
Контроллер
Исполнительные устройства
4
Модель IoT решения
+ ИнтернетДатчики
Контроллер
Исполнительные устройства
Интернет Вещей
5
Активно развивающиеся направления IoT
Smart House, Smart Factory, Smart City
Wearables
– Часы, браслеты, одежда...
Квадрокоптеры, беспилотники
Беспилотные автомобили
Привычные устройства: action-камеры, фотоаппараты
6
Актуальность IoT
Причины:
Творческий потенциал
– Рамки определяет сам разработчик
– Идея + железо + код
Коммерческая выгода
7
Примеры IoT проектов
Geiger Backpack with Intel Edison
- Счетчик Гейгера
- Определение местоположения
- Отправка результатов в облако
By Verona FabLab, Italy
8
GPS Logger
GPS трекер
- Запись треков в формате GPX
- Отправка треков в картографические сервисы
9
GPS Logger + OpenStreetMap
10
Air Condition Control
Управление кондиционером
- Измерение температуры
- Включение кондиционера при превышении пороговых значений
- Задание параметров через web интерфейс
11
Puzzle Alarm Clock
Интерактивный будильник
- Время задается перемещением магнитов
- Настройка мелодий через интернет
- Управление светом в помещении
by BrittLiv (Instructables)
12
MeLion Growbox system
Инкубатор для растений
- Управление параметрами среды (влажность почвы, температура, освещение)
- Управление системой с помощью приложения на мобильном устройстве
by Matejic (Instructables)
13
System on a Chip (SoC)
SoC
CPUи/или
MCUflash
ROMАЦПЦАП
Реализация стандартных интерфейсов:SPI, I2C, GPIO, UART, USB …
Таймеры и
счетчики
SoC – электронная схема, выполняющая функции целого устройства и размещенная на одной интегральной схеме
Каждый блок – IP Block (Intellectual Property)
14
Возможные требования к SoC для IoT
Возможность запустить операционную систему с сетевым стеком (микроконтроллер → микропроцессор)
Аппаратная поддержка сетевых интерфейсов (Wi-Fi, Bluetooth, Ethernet)
Расширенные возможности ввода-вывода
Расширенный температурный диапазон
15
Intel® Edison Compute Module
SoC с двухъядерным Intel® Atom (500 МГц) и Minute IA (100 МГц)
Полноценный компьютер, на который может быть установлен Linux
1 Gb RAM + 4 Gb Flash
Встроенная беспроводная функциональность: Wi-Fi и Bluetooth
Работает с уровнями напряжения 1.8V
Расширенные возможности I / O: 40 GPIO (GPIO, PWM, UART, I2C, SPI, USB)
35.5 x 25 мм
16
MCU + CPU Advantages
1. Расширение диапазона применимости платы: возможность работы с портами ввода/вывода и интерфейсами с real-time откликом
Система, обладающая real-time откликом – система, поддерживающая постоянное и своевременное взаимодействие с внешним миром
Linux по умолчанию не является системой, обладающей real-time откликом
17
Real-time response
Пример: ультразвуковой датчик расстояния HC-SR04
Vcc — 5V
Gnd — Земля
Trig — сигнал к датчику
Echo — сигнал Echo от датчика
18
Ультразвуковой датчик расстояния HC-SR04
Trig (CH1) — сигнал к датчику. Инициация замера расстояния: контроллер подает 10-тимикросекундный импульс датчику
Echo (CH2) — сигнал Echo от датчика к микроконтроллеру. Длительность импульса пропорциональна измеренной дистанции
19
MCU + CPU Advantages
2. Энергоэффективность:
Основной процессор находится в состоянии сна, а микроконтроллер ожидает определенного события (например, превышения пороговых значений с сенсора)
Микроконтроллер при необходимости будит процессор
20
Intel® Edison Compute Module
70-контактный разъем для подключения к платам расширения
21
Intel® Edison – Arduino Expansion Board
Плата расширения, физически совместимая с платами Arduino
Работает с уровнями напряжения 3.3V или 5V
Питание от USB-кабеля или от блока питания 7-15V
20 портов GPIO (4 PWM, 1 UART, I2C)
6 аналоговых входов
USB Client, USB Host
22
Expansion Board Concept
Edison Compute module – маленькая плата – работать с ней не удобно
Плата расширения = удобство в создании прототипа
Прототип → реальный продукт
23
Intel® Edison – Mini Breakout Board
Размеры: 61 мм x 29 мм x 12 мм
Работает с родными 1.8Vвычислительного модуля
2 x USB: USB client, USB for serial connection
Стандартный jack для питания, напряжение питания: 7-15 В
Для всех остальных выходов требуется пайка
24
Breakout Boards
Arduino Mini
25
Другие платы расширения
SparkFun Block for Intel® Edison – Arduino
+ микроконтроллер ATmega328P
26
Другие платы расширения
Xadow Wearable KIT
27
Стандартные интерфейсы ввода-вывода
Интерфейс – это способ взаимодействия узлов вычислительного устройства
Интерфейсы – основа взаимодействия всех компьютерных систем
Стандартные интерфейсы – основаны на стандарте
28
Стандартные интерфейсы ввода-вывода
GPIO
(General Purpose Input / Output)
UART
(Universal Asynchronous Receiver / Transmitter)
I2C (Inter Integrated Circuit)
SPI (Serial Peripheral Interface)
Analog In & PWM
29
GPIO – General Purpose Input / Output
Физические уровни напряжения:
0V – Земля
5V или 3.3 V – напряжение питания
Логические уровни:
«0» – 0V
«1» – напряжение питания
У каждого пина свой номер
30
GPIO – General Purpose Input / Output
Устройства:
Светодиод
Кнопка
Реле
…
31
Аналоговые входы
Принимают аналоговые сигналы
Пример – датчик температуры
Напряжение, V
5
0
Время, сек
32
Аналоговые входы на плате
Аналоговые входы (6 штук) → мультиплексор →АЦП (аналогово-цифровой преобразователь)
33
АЦП (ADC – Analog to Digital Converter)
Некоторые характеристики:
Диапазон измеряемого сигнала
Разрядность АЦП – характеризует количество дискретных значений, которые преобразователь может выдать на выходе
o Например, двоичный 8-разрядный АЦП способен выдать 28 = 256 дискретных значений (0…255)
Разрешение =диапазон измеряемых значений
количество дискретных значений
34
АЦП платы Edison Arduino
10-ти битный АЦП
1024 дискретных значения
Диапазон напряжений – 0 - 5 Вольт
Разрешение = (5 – 0) / 1024 = 4,8 мВ
Результат измерения
напряжения – целое число в диапазоне от 0 до 1023
Напряжение, V
5
0
Время, сек
35
Аналоговые сигналы
Генерируются датчиками:
Температуры
Света
Уровня шума
Вибрации
…
36
ШИМ (широтно-импульсная модуляция)PWM (Pulse-Width Modulation)
Характеристики:
Период T
Длительность импульса 𝜏
Коэффициент заполнения: 𝑑 =𝜏
𝑇
Генерируется аппаратно на частоте 4,6 Гц – 1 ГГц
37
Управляющий сигнал
Сервопривод
ИК – передатчик (пульт управления)
…
Управление мощностью на нагрузке
Плавное изменение свечения светодиода
Плавное вращение вала электродвигателя
…
ШИМ – применение
38
UART - Universal Asynchronous Receiver / Transmitter
UART – логическая схема, физический интерфейс вычислительного устройства
UART – последовательный интерфейс
COM – порт (RS-232) – разновидность UART
Асинхронность = нет канала синхронизации, у каждого свои часы
Стандартные скорости: …, 9600, 19200, 38400, 57600, 115200, … бод
39
UART - Universal Asynchronous Receiver / Transmitter
Используются две однонаправленные линии:
RX – receiver
TX - transmitter
RX
EdisonTX
RX
SensorTX
40
UART: принцип передачи данных
Данные передаются в бинарном виде (например, в ASCII)
Отсутствие передачи – на линии логическая единица
0 и 1 ~ логические 0 и 1
Минимальная посылка – кадр (frame):
[стартовый бит = 0] [8 бит информации] [стоповый бит = 1]
Сначала передаются младшие биты
H e l lo w o rl d
41
UART
Обычно по UART происходит взаимодействие с модулями:
GPS
GSM / GPRS
Bluetooth
…
42
Шина I2C (Inter Integrated Circuit)
Синхронный последовательный интерфейс
Использует две двунаправленные линии связи:
– SDA – Serial Data
– SCL – Serial Clock
Две роли подключенных устройств:
– ведущий (master) – генерирует такты
– ведомый (slave)
Каждое подключенное устройство имеет уникальный адрес
7-ми битная адресация: max 128 устройств на одной шине
43
Шина SPI (Serial Peripheral Interface)
Последовательный интерфейс
Две роли подключенных устройств:
– ведущий (master) – генерирует такты
– ведомый (slave)
Использует четыре линии связи:
– MOSI — Master Out Slave In
– MISO —Master In Slave Out
– SCLK —Serial Clock
– CS / SS —Chip Select / Slave Select
44
Шины I2C & SPI
Устройства:
LCD-дисплеи
Акселерометры
Гироскопы
…
SPI: АЦП платы расширения Arduino
45
Intel Galileo Gen 1 & 2
Board
Intel EdisonArduino
Development Board
Yocto based Linux OS image
API Bindings C/C++, JavaScript, Python
UPM (Sensor/Actuator library repository)MRAA
NodeJSSupport
C/C++ Tool Chain
IoT Cloud Agent
Ha
rd W
are
S/W
Im
ag
e o
n I
oT
pla
tfo
rm
Intel XDK IoT Edition
Eclipse IDE, MCU SDK
Intel System Studio
Cloud Analytics / MasheryID
E/
To
ols
(W
in, M
ac,
Lin
ux
)
Sensors / Actuators
Arduino IDE
Intel® IoT Developer Kit Components
46
Библиотека MRAA
Низкоуровневая библиотека для упрощения работы с I / O
Можно использовать языки: C, C++, Java, JavaScript, Python
Классы для каждого интерфейса (GPIO, PWM, AIO, I2C, UART), содержащие все необходимые для работы методы
Соответствие номеров разъемов на плате и в коде
47
Библиотека UPM
Высокоуровневая библиотека, обеспечивающая удобный интерфейс для работы с сенсорами и использующая MRAA
Можно использовать языки: C++, JavaScript, Python
Классы для большого количества сенсоров, исполняющих устройств, LCDдисплеев и т.д., содержащие все необходимые для работы методы
48
Intel® Galileo Gen 2
Quark 400 MHz
256 MB RAM
Ethernet порт
Физически совместима сArduino
USB 2.0 Host, USB 2.0 Client
20 x GPIO (UART, SPI, I2C)
6 x ADC
Minnow Board Max
Intel Atom
RAM: 1 GB or 2 GB
GPU: HD4000
Gigabit Ethernet
1 x USB 3.0 Host + 1 x USB 2.0
8 GPIO (2 PWM), I2C, SPI
50
Arduino 101 (Genuino 101)
Intel Curie SE SoC
Intel Quark
24 KB SRAM
14 GPIO (4 PWM) at 3.3V
6 analog inputs
Bluetooth LE
DSP (Digital Signal Processor)
6-axis accelerometer/gyro
51
Intel® Quark™ SE SoC
52
Q & ALinks:
libMRAA: github.com/intel-iot-devkit/mraa
libUPM: github.com/intel-iot-devkit/upm
Intel IoT: software.intel.com/iot
Instructables: instructables.com/id/intel
54
Back up #1: Сетевой стек
Сетевой стек – набор протоколов передачи данных, используемых в компьютерных сетях
Протоколы работают в стеке – протокол, располагающийся на уровне выше, работает «поверх» нижнего
Уровни стека НазначениеПример: стек TCP/IP
прикладнойОбмен данными между сетевыми приложениями
HTTP, FTP, SSH, …
транспортныйКонтроль отправки/доставки
TCP, …
сетевой Межсетевая связь IP, …
канальныйФизическое устройство + метод кодирования пакетов
Ethernet, …
55
In-order execution (MCU)
1. Считывание инструкции
2. Все операнды инструкции доступны ->инструкция выполняется нужным модулем, иначе процессор останавливается, ожидая готовности операндов
3. Модуль записывает результат обратно в регистровый файл
Подробнее: Э. Таненбаум, «Архитектура компьютера», 6 изд. Глава «Уровень микроархитектуры»
Out-of-order execution (CPU)
1. Считывание инструкции
2. Инструкция помещается в очередь и находится там, пока её операнды не станут доступны. Процессор не стоит на месте, он может выполнять те инструкции, чьи операнды уже готовы
3. Инструкция с доступными операндами выполняется в соответствующем модуле.Инструкция может покинуть очередь прежде, чем попавшая туда раньше
4. Результат помещается в очередь
5. Только после того, как все инструкции, которые были в очереди впереди данной, выполнятся, её результат помещается в регистровый файл
Back up #2: In-order & Out-of-order execution
56
Back up #3. АЦП последовательного приближения
IN
Start
Finish
Устройство выборки-хранения (Sample/Hold, S/H)
Регистр последовательного приближения (SAR)
Компаратор
Цифро-Аналоговый Преобразователь
(ЦАП)
Синхронизация
OUT
57
GPS Security
Охранная сигнализация для авто
- Определение местоположения
- Определения положения в пространстве
- Отправка SMS оповещений
Back up # 4: I2C
Для начала обмена ведущий записывает в шину адрес устройства, к которому ему хочется обратиться (7 бит адреса)
+ передается бит направления передачи данных (1 бит)
Ведомый - доклад
Когда передача данных отсутствует - на линиях SDA и SCL «1»
Cигнал подтверждения (ACK, acknowledge)
перевод линии данных ведомым из единицы (в этот момент ведущий отпустил ее) в ноль
Процесс передачи
Если нет подтверждения:
Мастер формирует состояние STOP и завершает или повторяет передачу.
Если подтверждение есть
начинается запись или чтение, при этом каждый девятый бит – бит подтверждения.
Если мастер читает из ведомого, то подтверждения дает мастер, если мастер пишет в ведомого, то подтверждения дает ведомый
Продолжение примера
Процесс передачи целиком