Iot Platforms

Iot Platforms

物聯網平台 ‣Chi-Sheng Shih Outline ‣ IoT Platforms ‣ Core of IoT Platforms ‣ Micro-Controller based Platforms ‣ Micro-Processor based Platforms ‣ Execution Model !2 IoT Platforms !3 Core of platforms - Microprocessor ‣ Microprocessor ‣ is an IC which has only CPU inside. ‣ does not have RAM, ROM, and other peripheral on the chip. ‣ A system designer needs to add peripherals externally to make them functional. ‣ Examples: Intel i3, i5, i7 processors, ARM700/710/720, ARM810, ARM920T, ARM940T, and Cortex-M0 processors. !4 Core of platforms - Micro-controller ‣ Microcontroller ‣ has a processing unit, in addition with a fixed amount of RAM, ROM, and other peripherals all embedded on a single chip. ‣ is designed to perform specific tasks where the relationship between input and output are well defined. ‣ The amount of resources required for the applications are defined and can be packed together in a single chip. ‣ Examples: ‣ Micro-controllers for keyboard, mouse, washing machines, digicam, etc. ‣ Micro-controllers based on ‣ Cortex-M0: Cypress PSoC4, Infineon XMC 1000, STMicroelectronics STM32F0, NXP LPC 1100 ‣ ARM7: ATmel AT91SAM7, NXP LPC2100/LPC2200, ‣ ARM9: ATmel AT91SAM9, NXP LPC 2900 !5 Core of the Platforms - SoC ‣ System-on-Chip (SoC) ‣ is a total solution for specific applications, ‣ has processing units (including CPU, GPU, FPGA or DSP), application specific peripherals (including modem, GPS, etc) ‣ There is no clear line between SoC and MCU. ‣ MCUs are often used for applications required limited computation power to reduce energy consumption. Controller for CNC machines are examples. ‣ SoC are often used for applications required full computers to accomplish. SmartPhones are examples. !6 Micro-Controller Based Platform !7 Arduino-based Platform TinyDuino PanStamps Arduino Uno RFduino XinoRF Arduino Yun !8 Arduino ‣ Arduino Uno: ‣ MCU: ATmega328P ‣ Arduino Mega: ‣ MCU: ATmega2560 ‣ Flash: 32KB ‣ Flash: 256KB ‣ SRAM: 2KB ‣ SRAM: 8KB ‣ EEPROM: 1KB ‣ EEPROM: 4KB ‣ Clock: 16Mhz ‣ Clock: 16Mhz ‣ Digital I/O: 14 ‣ Digital I/O: 54 ‣ Analog: 6 ‣ Analog: 16 !9 Arduino Family LiLyPad !10 Performance and Power Consumption ‣ The device achieves a throughput of 1 MIPS per MHz. ‣ ATmega 328 can operate at up to 20Mhz. ‣ Can we make it to run for six month on battery? ‣ Arduino Uno uses 45mA@5V and can run for less than one day on 9V battery (1,200mAh). ‣ To run for 6 months, the board can only drain 0.05mA@5V. On Arduino Pro Mini: ‣ Unmodified: 9.9mA@Active, 3.14mA@Sleep ‣ No Power LED: 16.9mA@Active, 0.0232mA@Sleep ‣ No Power LED, No power regulator: 12.7mA, 0.0058mA@Sleep http://www.home-automation-community.com/arduino-low-power-how-to-run-atmega328p-for-a-year-on-coin-cell-battery/ !11 Curie ‣ Announced on CSE 2015 to be used for wearable devices. ‣ Using Quark SE core ‣ Pentium x86 ISA compatible without x87 floating point unit ‣ 32-bit Processor with 32-bit Data Bus. ‣ 32 MHz clock frequency ‣ 384 KB of on-die flash. ‣ 80 KB of on-die SRAM ‣ Sensors: 6-axis accelerometer, ‣ Communication: BLE (Bluetooth low energy) ‣ Peripheral: USB, UART, I2C, SPA, GPIO, RTC, ADC !12 !13 MediaTek LinkIt One ‣ ARM Cortex-M4 with floating point architecture ‣ Comprehensive peripheral interface support, with a common Hardware Abstraction Layer API ‣ FreeRTOS with additional middleware components supporting !14 Head to head !15 General Purpose Processor Based Platform !16 BeagleBone Black ‣ BeagleBone Black is a low-cost, community- supported development platform for developers and hobbyists. ‣ Boot Linux in under 10 seconds and get started on development in less than 5 minutes with just a single USB cable. ‣ Processor: AM335x 1GHz ARM® Cortex-A8 ‣ 512MB DDR3 RAM ‣ 4GB 8-bit eMMC on-board flash storage ‣ 3D graphics accelerator ‣ NEON floating-point accelerator ‣ 2x PRU 32-bit micro-controllers !17 Raspberry Pi 3 ‣ Hardware Spec: ‣ A 1.2GHz 64-bit quad-core ARMv8 CPU ‣ 802.11n Wireless LAN ‣ Bluetooth 4.1 ‣ Bluetooth Low Energy (BLE) ‣ 1GB RAM ‣ 4 USB ports ‣ 40 GPIO pins ‣ Full HDMI port ‣ Ethernet port ‣ Combined 3.5mm audio jack and composite video ‣ Camera interface (CSI) ‣ Display interface (DSI) ‣ Micro SD card slot (now push-pull rather than push-push) ‣ VideoCore IV 3D graphics core !18 RASPBERRY PI ZERO ‣ Hardware Specification ‣ BCM2835, 1Ghz, Single-core CPU ‣ By Broadcomm ‣ Using ARM1176 (ARMv6) ‣ 512MB RAM ‣ Mini HDMI and USB On-The-Go ports ‣ Micro USB power ‣ HAT-compatible 40-pin header ‣ Composite video and reset headers !19 Intel Galileo ‣ Galileo (released in 2013) ‣ Arduino-certified development boards based on Intel X86 architecture ‣ Gen1: Intel Quark X1000 32-bit 400Mhz SoC ‣ Gen2: Intel Quark X1000 32-bit 400Mhz SoC + Ethernet PoE+12-bit PWM+USB UART adapter ‣ Single Core, single thread, Pentium instruction set ‣ Industry standard I/O interface: ACPI, PCI express, Micro SD, USB 2.0 !20 Edison ‣ Release in 2014 ‣ Hardware Specification: ‣ Intel Atom Tangier: 2 x Atom core at 500Mhz ‣ 1 x Intel Quark at 100Mhz (for RTOS) ‣ 1GB RAM ‣ 4GB Flash ‣ Onboard WiFi ‣ Bluetooth 4.0 ‣ USB ‣ Software: ‣ Yocto Linux supporting Arduino IDE, Eclipse (C, C++, Python), Intel XDK, and Wolfram. !21 Execution Model !22 Execution Model ‣ On general purpose computers, ‣ We assume that computers mostly connect to power sources or have time to shut down the computers. ‣ Data and binary code are loaded into memory to speed up the performance. ‣ On embedded systems and MCU-based systems, ‣ many of them are NOT connected to power sources and can be shut down or reboot without notice at any time. ‣ Only data are loaded to memory; binary code and state information are stored on flash or storage. ‣ Access latency on DRAM and SSD differs for 100x to 1000x. ‣ The difference greatly prolong the execution time and enlarge power consumption. !23 Example ‣ The SHIMMER wearable sensor platform: ‣ TI MSP430 mciroconbroller ‣ 802.15.4 by Chipcon CC2420 ‣ Storage: MicroSD 2GB ‣ Battery: 250mAh rechargeable batter ‣ Triaxial MEMS accelerometer ‣ Gyroscope, ECG, EMG, and other sensors ‣ On such platforms, ‣ Microcontroller is not the major energy consumer. ‣ Sensor such as gyroscope and radio are. ‣ What if your code run 10x or 100x slower? Konrad Lorincz et al. “Mercury: a wearable sensor network platform for high-fidelity motion analysis”. In: Sensys ’09 Proceedings of the 7th ACM Conference on Embedded Net- worked Sensor Systems (Nov. 2009), pp. 183–196. !24 Lifetime for Wearable Devices ‣ With the node continuously sampling and logging accelerometer and gyroscope data, maintaining time sync, but performing no data transfers to the base station, the achievable lifetime with a 250 mAh battery is 12.5 h. ‣ Adding activity filter on CPU can reduce the amount of transmission and prolong the lifetime up to 17h for 50% activity, to 89h (4x) when downloading features only. !25 Sensor node VMs - Motivation ‣ Target device class: • MSP430, Cortex M0, AVR • Up to a few hundred KB of flash • Up to 10s KB RAM ‣ Advantages of running a VM: • Using higher level languages instead of C reduces development cost. • IoT applications are expected to consist of many different hardware platforms. Platform independence reduces deployment cost. • VMs can offer a safe execution environment. !26 Sensor node VMs - Related Works ‣ Application specific • Maté: first sensor node VM • VM*: Java based framework to build VMs tailored to specific applications ‣ General purpose • Java: NanoVM, TakaTuka, Darjeeling, SwissQM, leJOS • Python: pyMite, Micropython • LISP: SensorScheme • Others: DVM, TinyVM ‣ They differ in their system requirements and the features they do provide. Sensor node JVMs all sacrifice some features, most commonly reflection, and support for floating point operations. !27 Sensor node VM performance ‣ Not many VMs publish detailed performance figures. ‣ For the ones that do, the exact performance depends on the code being executed, ‣ but the general picture is clear: all are 1 to 2 orders of magnitude slower than native code. Performance vs VM Source Platform Instruction set native C Delft University of Darjeeling ATmega128 JVM 30x-113x slower Technology Mica2 (AVR) TakaTuka University of Freiburg JVM 230x slower JCreate (MSP) TinyVM Yonsei University, Seoul ATmega128 nesC 14x-72x slower DVM UCLA ATmega 128L SOS 108x slower N. Brouwers et al, “Darjeeling, a feature-rich VM for the resource poor,” Sensys '09 SensorScheme University of Twente F. Aslam et al, "Introducing TakaTuka:MSP430 a Java virtualmachine for motes", Sensys '08 LISP 4x-105x slower K. Hong et al, “TinyVM: an energy-efficient execution infrastructure for sensor networks,” Technical Report CS-TR-9003 Department of Computer Science Yonsei University, Seoul, Korea R. Balani et al, “Multi-level Software Reconfiguration for Sensor Networks,” EMSOFT ’06 L. Evers, “Concise and Flexible Programming of Wireless Sensor Networks”, Phd thesis, University of Twente, 2010 !28 Does the slowdown matter? ‣ At 10-230x slowdown: • The energy consumption of running application code 94600 increases accordingly. (one of the main reasons to use tiny devices is their power consumption) • Time critical tasks such as periodic sensing and data 71800 processing may not finish in time. ‣ For the example on the right, the 1292000 ‘compute features’ and ‘activity filter’ become a large/the largest Lorenz et al., “Mercury: a wearable sensor network platform for component when multiplied by 10 to high-fidelity motion analysis”, Sensys '09 100. Doing the FFT on the node will most likely be impossible. !29 Improving performance by compiling

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    63 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us