System Energy Efficiency Lab seelab.ucsd.edu

Similar documents
Tajana Simunic Rosing Department of Computer Science and Engineering UCSD

Tajana Simunic Rosing Department of Computer Science and Engineering UCSD

An overview of mobile and embedded platforms

Low-Cost Microcontrollers

Android Overview. Most of the material in this section comes from

Introduction to Android Android Smartphone Programming. Outline University of Freiburg. What is Android? Background University of Freiburg.

Embedded HW/SW Co-Development

EMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG

Microcontroller Basics

Lesson 2 Prototyping Embedded Software on Arduino on Arduino boards. Chapter-9 L02: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

Embedded Elixir. Elixir Taiwan Meetup July 25, 2016 Jake Morrison

IoE Workshop. Marc Khayat, CCIE #41288, Leonard Janer Technical Managers. June 16

ArduCAM CC3200 UNO board

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

ANDROID SYLLABUS. Advanced Android

Android App Development

Hands-On Workshop: ARM mbed : From Rapid Prototyping to Production

TEVATRON TECHNOLOGIES PVT. LTD Embedded! Robotics! IoT! VLSI Design! Projects! Technical Consultancy! Education! STEM! Software!

ELC4438: Embedded System Design Embedded Processor

Ali Karimpour Associate Professor Ferdowsi University of Mashhad

PG Certificate. Embedded, Internet Of Things & Android

BANGLADESH UNIVERSITY OF ENGINEERING & TECHNOLOGY (BUET) DHAKA TECHNICAL SPECIFICATION FOR SUPPLY AND INSTALLATION OF LABORATORY EQUIPMENTS (PKG1).

1. Project title: Home Monitoring System. Student: Alexandru Irasoc. Mail address: Student: Constantin Grijincu

Ali Karimpour Associate Professor Ferdowsi University of Mashhad

Overview of Microcontroller and Embedded Systems

Electronics Single Board Computers

Reduce SW Development Time with DAVE 3. March, 2012

Intel Galileo gen 2 Board

Major Components of the Internet of Things Systems

Simplify System Complexity

Diploma in Embedded Systems

IJREAT International Journal of Research in Engineering & Advanced Technology, Volume 1, Issue 5, Oct-Nov, 2013 ISSN:

Interesting Items Volume 16. Dave Jaffe 04/23/2011

Embedded Operating Systems. Unit I and Unit II

.org. IoT Development Platform

PXA270 EPIC Computer with Power Over Ethernet & Six Serial Protocols SBC4670

Unlocking the Potential of Your Microcontroller

SMART HOME SYSTEMS. Group 10. Daniel Moody CpE Thien Luu EE Joel LeGros EE Vu Ha EE

Introduction To Android

Chapter 1 Hello, Android

Getting to know the Arduino IDE

Android Software Development Kit (Part I)

Network Embedded Systems Sensor Networks Fall Hardware. Marcus Chang,

w w w. b a s e t r a i n i n g i n s t i t u t e. c o

Lesson 5 Arduino Prototype Development Platforms. Chapter-8 L05: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

ARDUINO BOARD LINE UP

Adafruit Feather nrf52840 Express

Embedded Systems Design (630414) Lecture 1 Introduction to Embedded Systems Prof. Kasim M. Al-Aubidy Computer Eng. Dept.

Automation Engineers AB Pvt Ltd, NOIDA Job-Oriented Course on Embedded Microcontrollers & Related Software Stack

Introduction to Embedded Systems

Contiki a Lightweight and Flexible Operating System for Tiny Networked Sensors

Java Embedded on ARM

EDJE PROJECT. The Software Foundation for IoT Devices. IS2T S.A All rights reserved.

3 Software Stacks for IoT Solutions. Ian Skerrett Eclipse

Microprocessor Systems

Husarion CORE2. Husarion CORE2 is a development board for Internet-connected automation & robotic devices.

The industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite.

Introduction to L.A.P. 1

PGT302 Embedded Software Technology. PGT302 Embedded Software Technology

Computer Hardware Requirements for Real-Time Applications

Advanced Embedded Systems

Bluetooth Smart Development with Blue Gecko Modules. Mikko Savolainen October 2015

Overview The Microcontroller The Flex Board Expansion boards Multibus board Demo board How to: Compile demo Flash & Run Demos

Android App Development

Enabling IoT OSs for Intel Quark MCU Platforms: the fast way. OpenIoT Summit Europe Andre Guedes

AT-501 Cortex-A5 System On Module Product Brief

Four Components of a Computer System

ECE 471 Embedded Systems Lecture 2

Embedded Technology for Remote Data Logging, Monitoring and Controlling Using GSM/GPRS

HEXIWEAR COMPLETE IOT DEVELOPMENT SOLUTION

ID 730L: Getting Started with Multimedia Programming on Linux on SH7724

NFC Framework and NT3H1201 Device Driver v1.1

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Developer s overview of the Android platform

Simplify System Complexity

Chapter 4. Enhancing ARM7 architecture by embedding RTOS

Embedded Linux With Raspberry Pi IOT

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi

Introduction to Android

OBSTACLE AVOIDANCE ROBOT

EE 354 Fall 2015 Lecture 1 Architecture and Introduction

Running a Linux-Capable Open Source Soft SoC on the Avalanche Board with MicroSemi PolarFire FPGA

Comparison of different microcontroller development boards for power electronics applications

Ten (or so) Small Computers

An Incubator Project in the Apache Software Foundation. 13 July 2016

Bluegiga Bluetooth Smart Software v.1.3 5/28/2014 1

Use of ISP1880 Accelero-Magnetometer, Temperature and Barometer Sensor

Developing on DragonBoard

Software Driven Verification at SoC Level. Perspec System Verifier Overview

Embest SOC8200 Single Board Computer

An open-source, multi-parameter, full fledged human body vital sign monitoring HAT for Raspberry Pi as well as standalone use.

Towards a Zero-Configuration Wireless Sensor Network Architecture for Smart Buildings

COMPLEX EMBEDDED SYSTEMS

FIFTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLOGY-MARCH 2014 EMBEDDED SYSTEMS (Common for CT,CM) [Time: 3 hours] (Maximum marks : 100)

Lesson 5: Software for embedding in System- Part 2

Capacitive Touch Based User Interfaces and Hardware-based Solutions

Lesson 7 Programming Embedded Galileo, Raspberry Pi, BeagleBone and mbed Platforms

Hands-On Workshop: ARM mbed

High-Performance 32-bit

Raspberry Pi - I/O Interfaces

Transcription:

Motivation Embedded systems operate in, interact with, and react to an analog, real-time world Interfacing with this world is not easy or monolithic Sensors: provide measurements of the outside world Actuators: provide an output, or a means to modify the physical world Platforms: everything in between the framework that allows a system to analyze sensors, process their data, and drive actuators 2

Platforms Infrastructure between sensors and actuators Especially important to embedded systems Increased emphasis on embedded software structure and functionality Why? 3

Embedded Platform Requirements Operate within hardware/resource constraints Real-time requirements Safety/Reliability Upgradability Limited manual interfacing I/O interface 4

Microcontrollers Low-power, low-capacity System-on- Chip (SoC) Processor core Memory (Flash ROM + RAM) General-purpose I/O (GPIO) Intended for sequential control rather than general computation Interrupts for I/O handling, preemption Programmable interval timer Tools to implement MoCs Flash the controller to upgrade Software-driven GPIO + Conversion 5

Microcontrollers Development Workflow Software development Tools for formal models, MoCs or just plain C! Libraries: I/O ADC, DAC Basic memory management Interrupts, timing, and constraints Compile for MCU Flash the device load the binary Execute! 6

Microcontrollers: Arduino Atmel AVR MC (ARM on the higher-end models) I 2 C individually addressable serial bus for communicating with custom modules shields GPIO Microcontroller pins exposed with established interface for direct connection Merge traditional MCU with a well-established library system and IDE Simplify addressing & control Program in C or C++ setup() initialization loop() main loop bootloader 7

General-Purpose Embedded Processing - ARM Designed around embedded use RISC for reduced size, power, cost Specialized DSP instructions for I/O Multiple CPU modes allow for interrupts, RTOS task scheduling and device monitoring Conditional execution for nearly every CPU instruction SIMD extensions for streaming data use 8

Direct ARM Deployment ARM SDT ARM Software Development Toolkit (SDT) Development tools for both CL and Windows, incl.: C, C++, Thumb compilers, assemblers & linkers Project management software Utilities & debuggers ARMulator ARM core emulator Workflow very similar to that of MCUs, but more tools and libraries to work with: Code optimization Object-oriented programming Memory management ARM big.little GPGPU processing Discussion: What is the ease of deployment compared to MCUs? 9

Indirect ARM Deployment - OS OS takes care of system management threads, memory & caching, I/O handling Dozens of popular ARM operating systems Linux (including RTLinux) VxWorks (RTOS) TinyOS (unofficial) ios Android Windows RT and more! 10

Android OS-based ARM Deployment

Kernel Layer At heart, Android is based on Linux (Version 2.6 and higher) Provides OS services: Memory Management Process/thread handling Network stack Drivers system, hardware devices, sensors, power management Abstracts hardware away from software stack Provides interface to Android Libraries Kernel-level development is performed here Code is written in C, and entire OS is either compiled from source, or cross-compiled for the device and installed as a module Identical to Linux kernel development

Android OS Layer System Libraries abstracts kernel interface for Application Framework APIs Kernel-level interfaces are abstracted and extended with developer libraries Common Libraries: SystemC: C library, optimized for embedded Media: playback and decoding of common formats Surface Manager: display subsystem, composes multiple implementations of 2D, 3D graphics LibWebCore: web browser engine SGL, 3DLib: 2D, 3D graphics, respectively SQLite: compact DB engine within Android, used for app data storage Library development is performed here Code is written in C/C++, and OS is either compiled from source Platform designers introduce special libs, hooks to custom sensors, etc.

Android Runtime Sits alongside system libraries unique to Android and Java-based operating systems Libraries for compilation, core Java libraries Dalvik Virtual Machine Android-specific JVM Interface b/w compiled Java apps and underlying Linux kernel Enables full-fledged Java features (threading, memory management)

Application Framework The heart of the Android front-end Sits on top of JVM and system libraries, provides functionality for both user (Angry Birds, etc.) and core applications (Phone, Browser, etc.) Contains system resources and interfaces needed for applications, extensible with new, custom libraries Enables reusability of reliable modules the power of Android Views for display, Content Providers for data access, Resource Manager for system resources, Notification and Activity Managers Application development is performed on top of this Code is written in Java, using libraries found in the App Framework

Android Application Development Individual applications are composed of Application Components Activities: each UI screen + interaction elements (applications can have multiple activities) Services: background, long-running processes, with no UI components Content Providers: application data storage interface, for file system, SQLite, etc. Broadcast Receivers: non-ui listener for system events and broadcast messages

Android Manifest file AndroidManifest.xml Ties the application together, declaring components and their associated attributes Declares overall application specifications

Activities Declare needed libraries in an activity manifest Auto-generated libraries for maintaining activity life cycle (resumed, paused, stopped) Maintain saved states for paused and stopped, and recover when resumed.

Services Bound to other components via manifest, which can start/stop a service Handle background work, data retrieval from sensors and other sources Store data in local or persistent storage, or pass directly to bound component via broadcast receivers

Content Providers Provides access to storage, either local (file system, SQLite DB) or remote (HTTP, FTP, etc.) Content component is identified with URI Register needed content with components via manifests and application permissions Built-in Examples: Contacts, Calendar Use the same content provider among applications for sharing Built-in providers: SQLite database (with ACID provision and queryability) File system (create, modify, delete) Message passing

Intents Android component messaging system Starts/stops activities, services, broadcast receivers Message body determines target, action, and (optionally) any data

ARM Deployment Raspberry Pi Low-tier ARM SoC (700 MHz) Flash-based persistent storage Onboard 256/512MB RAM GPIO for peripheral connectivity I 2 C open-pin bus Linux USB-connected Ethernet + USB ports HDMI Out Development: Python, primary C, C++, Ruby, supported 22

Sensors Goal: create a mapping of the physical world Basic Types: Analog: generate a voltage or current difference that must be measured and processed e.g. ambient light Digital: sensors directly generate a digital value e.g. GPS 23

Sensor Issues Multi-property sensitivity (e.g. temperature) Processing overhead Drift Noise Power Accuracy Latency 24

Smartphone Built-in Sensors Proximity sensor GPS, A-GPS Ambient light Gyroscope Environment air temperature, pressure, humidity Capacitive/resistive touch Camera RFID/NFC 25

Onboard MEMS Accelerometer Microelectromechanical device Motion triggers displacement of mass, creates a change in capacitance Sensor measures the change in capacitance Multiple sensors in different orientations determine different axes 26

External Sensor Examples Electrochemical Active electrode exposed to gas (or liquid), reference electrode insulated Change in current between the two is proportional to fractional volume translates to concentration Biosensor Receptor (ligand) binds to target molecules, causing electrical or chemical change MOS Sensor Clean air causes adsorption of donor electrons, preventing current flow Presence of other gases reduces surface density of oxygen, increasing current flow 27

Sensor-Facing Platforms Quantization: digital representation of an analog value Quantization error Data format Resolution A/D conversion overhead Sampling: convert analog f(t) into time-series sequence Discretization Sampling interval Nyquist rate/aliasing Power/accuracy tradeoff Noise 28

29

MCU Development Workflow IDE C file Microcontroller Flash memory Compiler/Assembler Hex file Loader Binary file Program Execution CPU, I/O, etc. 30