Илья Куракин, Intel · 16 MCU + CPU Advantages 1. Расширение...

Preview:

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

ilia.kurakin@intel.com

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 и завершает или повторяет передачу.

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

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

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

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

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

Recommended