62
Илья Куракин, Intel

Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

Илья Куракин, Intel

Page 2: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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

Page 3: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

3

Встраиваемые устройства

Датчики

Контроллер

Исполнительные устройства

Page 4: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

4

Модель IoT решения

+ ИнтернетДатчики

Контроллер

Исполнительные устройства

Интернет Вещей

Page 5: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

5

Активно развивающиеся направления IoT

Smart House, Smart Factory, Smart City

Wearables

– Часы, браслеты, одежда...

Квадрокоптеры, беспилотники

Беспилотные автомобили

Привычные устройства: action-камеры, фотоаппараты

Page 6: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

6

Актуальность IoT

Причины:

Творческий потенциал

– Рамки определяет сам разработчик

– Идея + железо + код

Коммерческая выгода

Page 7: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

7

Примеры IoT проектов

Geiger Backpack with Intel Edison

- Счетчик Гейгера

- Определение местоположения

- Отправка результатов в облако

By Verona FabLab, Italy

Page 8: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

8

GPS Logger

GPS трекер

- Запись треков в формате GPX

- Отправка треков в картографические сервисы

Page 9: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

9

GPS Logger + OpenStreetMap

Page 10: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

10

Air Condition Control

Управление кондиционером

- Измерение температуры

- Включение кондиционера при превышении пороговых значений

- Задание параметров через web интерфейс

Page 11: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

11

Puzzle Alarm Clock

Интерактивный будильник

- Время задается перемещением магнитов

- Настройка мелодий через интернет

- Управление светом в помещении

by BrittLiv (Instructables)

Page 12: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

12

MeLion Growbox system

Инкубатор для растений

- Управление параметрами среды (влажность почвы, температура, освещение)

- Управление системой с помощью приложения на мобильном устройстве

by Matejic (Instructables)

Page 13: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

13

System on a Chip (SoC)

SoC

CPUи/или

MCUflash

ROMАЦПЦАП

Реализация стандартных интерфейсов:SPI, I2C, GPIO, UART, USB …

Таймеры и

счетчики

SoC – электронная схема, выполняющая функции целого устройства и размещенная на одной интегральной схеме

Каждый блок – IP Block (Intellectual Property)

Page 14: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

14

Возможные требования к SoC для IoT

Возможность запустить операционную систему с сетевым стеком (микроконтроллер → микропроцессор)

Аппаратная поддержка сетевых интерфейсов (Wi-Fi, Bluetooth, Ethernet)

Расширенные возможности ввода-вывода

Расширенный температурный диапазон

Page 15: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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 мм

Page 16: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

16

MCU + CPU Advantages

1. Расширение диапазона применимости платы: возможность работы с портами ввода/вывода и интерфейсами с real-time откликом

Система, обладающая real-time откликом – система, поддерживающая постоянное и своевременное взаимодействие с внешним миром

Linux по умолчанию не является системой, обладающей real-time откликом

Page 17: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

17

Real-time response

Пример: ультразвуковой датчик расстояния HC-SR04

Vcc — 5V

Gnd — Земля

Trig — сигнал к датчику

Echo — сигнал Echo от датчика

Page 18: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

18

Ультразвуковой датчик расстояния HC-SR04

Trig (CH1) — сигнал к датчику. Инициация замера расстояния: контроллер подает 10-тимикросекундный импульс датчику

Echo (CH2) — сигнал Echo от датчика к микроконтроллеру. Длительность импульса пропорциональна измеренной дистанции

Page 19: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

19

MCU + CPU Advantages

2. Энергоэффективность:

Основной процессор находится в состоянии сна, а микроконтроллер ожидает определенного события (например, превышения пороговых значений с сенсора)

Микроконтроллер при необходимости будит процессор

Page 20: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

20

Intel® Edison Compute Module

70-контактный разъем для подключения к платам расширения

Page 21: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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

Page 22: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

22

Expansion Board Concept

Edison Compute module – маленькая плата – работать с ней не удобно

Плата расширения = удобство в создании прототипа

Прототип → реальный продукт

Page 23: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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 В

Для всех остальных выходов требуется пайка

Page 24: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

24

Breakout Boards

Arduino Mini

Page 25: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

25

Другие платы расширения

SparkFun Block for Intel® Edison – Arduino

+ микроконтроллер ATmega328P

Page 26: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

26

Другие платы расширения

Xadow Wearable KIT

Page 27: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

27

Стандартные интерфейсы ввода-вывода

Интерфейс – это способ взаимодействия узлов вычислительного устройства

Интерфейсы – основа взаимодействия всех компьютерных систем

Стандартные интерфейсы – основаны на стандарте

Page 28: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

28

Стандартные интерфейсы ввода-вывода

GPIO

(General Purpose Input / Output)

UART

(Universal Asynchronous Receiver / Transmitter)

I2C (Inter Integrated Circuit)

SPI (Serial Peripheral Interface)

Analog In & PWM

Page 29: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

29

GPIO – General Purpose Input / Output

Физические уровни напряжения:

0V – Земля

5V или 3.3 V – напряжение питания

Логические уровни:

«0» – 0V

«1» – напряжение питания

У каждого пина свой номер

Page 30: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

30

GPIO – General Purpose Input / Output

Устройства:

Светодиод

Кнопка

Реле

Page 31: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

31

Аналоговые входы

Принимают аналоговые сигналы

Пример – датчик температуры

Напряжение, V

5

0

Время, сек

Page 32: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

32

Аналоговые входы на плате

Аналоговые входы (6 штук) → мультиплексор →АЦП (аналогово-цифровой преобразователь)

Page 33: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

33

АЦП (ADC – Analog to Digital Converter)

Некоторые характеристики:

Диапазон измеряемого сигнала

Разрядность АЦП – характеризует количество дискретных значений, которые преобразователь может выдать на выходе

o Например, двоичный 8-разрядный АЦП способен выдать 28 = 256 дискретных значений (0…255)

Разрешение =диапазон измеряемых значений

количество дискретных значений

Page 34: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

34

АЦП платы Edison Arduino

10-ти битный АЦП

1024 дискретных значения

Диапазон напряжений – 0 - 5 Вольт

Разрешение = (5 – 0) / 1024 = 4,8 мВ

Результат измерения

напряжения – целое число в диапазоне от 0 до 1023

Напряжение, V

5

0

Время, сек

Page 35: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

35

Аналоговые сигналы

Генерируются датчиками:

Температуры

Света

Уровня шума

Вибрации

Page 36: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

36

ШИМ (широтно-импульсная модуляция)PWM (Pulse-Width Modulation)

Характеристики:

Период T

Длительность импульса 𝜏

Коэффициент заполнения: 𝑑 =𝜏

𝑇

Генерируется аппаратно на частоте 4,6 Гц – 1 ГГц

Page 37: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

37

Управляющий сигнал

Сервопривод

ИК – передатчик (пульт управления)

Управление мощностью на нагрузке

Плавное изменение свечения светодиода

Плавное вращение вала электродвигателя

ШИМ – применение

Page 38: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

38

UART - Universal Asynchronous Receiver / Transmitter

UART – логическая схема, физический интерфейс вычислительного устройства

UART – последовательный интерфейс

COM – порт (RS-232) – разновидность UART

Асинхронность = нет канала синхронизации, у каждого свои часы

Стандартные скорости: …, 9600, 19200, 38400, 57600, 115200, … бод

Page 39: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

39

UART - Universal Asynchronous Receiver / Transmitter

Используются две однонаправленные линии:

RX – receiver

TX - transmitter

RX

EdisonTX

RX

SensorTX

Page 40: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

40

UART: принцип передачи данных

Данные передаются в бинарном виде (например, в ASCII)

Отсутствие передачи – на линии логическая единица

0 и 1 ~ логические 0 и 1

Минимальная посылка – кадр (frame):

[стартовый бит = 0] [8 бит информации] [стоповый бит = 1]

Сначала передаются младшие биты

H e l lo w o rl d

Page 41: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

41

UART

Обычно по UART происходит взаимодействие с модулями:

GPS

GSM / GPRS

Bluetooth

Page 42: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

42

Шина I2C (Inter Integrated Circuit)

Синхронный последовательный интерфейс

Использует две двунаправленные линии связи:

– SDA – Serial Data

– SCL – Serial Clock

Две роли подключенных устройств:

– ведущий (master) – генерирует такты

– ведомый (slave)

Каждое подключенное устройство имеет уникальный адрес

7-ми битная адресация: max 128 устройств на одной шине

Page 43: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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

Page 44: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

44

Шины I2C & SPI

Устройства:

LCD-дисплеи

Акселерометры

Гироскопы

SPI: АЦП платы расширения Arduino

Page 45: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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

Page 46: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

46

Библиотека MRAA

Низкоуровневая библиотека для упрощения работы с I / O

Можно использовать языки: C, C++, Java, JavaScript, Python

Классы для каждого интерфейса (GPIO, PWM, AIO, I2C, UART), содержащие все необходимые для работы методы

Соответствие номеров разъемов на плате и в коде

Page 47: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

47

Библиотека UPM

Высокоуровневая библиотека, обеспечивающая удобный интерфейс для работы с сенсорами и использующая MRAA

Можно использовать языки: C++, JavaScript, Python

Классы для большого количества сенсоров, исполняющих устройств, LCDдисплеев и т.д., содержащие все необходимые для работы методы

Page 48: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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

Page 49: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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

Page 50: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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

Page 51: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

51

Intel® Quark™ SE SoC

Page 52: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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

[email protected]

Page 53: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами
Page 54: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

54

Back up #1: Сетевой стек

Сетевой стек – набор протоколов передачи данных, используемых в компьютерных сетях

Протоколы работают в стеке – протокол, располагающийся на уровне выше, работает «поверх» нижнего

Уровни стека НазначениеПример: стек TCP/IP

прикладнойОбмен данными между сетевыми приложениями

HTTP, FTP, SSH, …

транспортныйКонтроль отправки/доставки

TCP, …

сетевой Межсетевая связь IP, …

канальныйФизическое устройство + метод кодирования пакетов

Ethernet, …

Page 55: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

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

Page 56: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

56

Back up #3. АЦП последовательного приближения

IN

Start

Finish

Устройство выборки-хранения (Sample/Hold, S/H)

Регистр последовательного приближения (SAR)

Компаратор

Цифро-Аналоговый Преобразователь

(ЦАП)

Синхронизация

OUT

Page 57: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

57

GPS Security

Охранная сигнализация для авто

- Определение местоположения

- Определения положения в пространстве

- Отправка SMS оповещений

Page 58: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

Back up # 4: I2C

Для начала обмена ведущий записывает в шину адрес устройства, к которому ему хочется обратиться (7 бит адреса)

+ передается бит направления передачи данных (1 бит)

Ведомый - доклад

Когда передача данных отсутствует - на линиях SDA и SCL «1»

Page 59: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

Cигнал подтверждения (ACK, acknowledge)

перевод линии данных ведомым из единицы (в этот момент ведущий отпустил ее) в ноль

Page 60: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

Процесс передачи

Если нет подтверждения:

Мастер формирует состояние STOP и завершает или повторяет передачу.

Если подтверждение есть

начинается запись или чтение, при этом каждый девятый бит – бит подтверждения.

Если мастер читает из ведомого, то подтверждения дает мастер, если мастер пишет в ведомого, то подтверждения дает ведомый

Page 61: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

Продолжение примера

Page 62: Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение диапазона применимости платы: возможность работы с портами

Процесс передачи целиком