CSE 466 Software for Embedded Systems. CSE 466 Software for Embedded Systems

Similar documents
IMC5-1EO. Embedded Operating Systems. Damien MASSON Last modification: November 12, 2013

CSE 466 Software for Embedded Systems. CSE 466 Software for Embedded Systems

COMP3221: Microprocessors and. Embedded Systems

Basic Components of Digital Computer

Embedded Systems and Kinetic Art. CS5968: Erik Brunvand School of Computing. FA3800: Paul Stout Department of Art and Art History.

Logistics. Embedded Systems. Kinetic Art. This Class. Embedded Systems and Kinetic Art. Kinetic Art

EECS 388 Embedded Systems Introduction. Gary J. Minden January 22, 2013

ECE 471 Embedded Systems Lecture 2

COMPLEX EMBEDDED SYSTEMS

Microprocessors/Microcontrollers

SYSTEM DESIGN SPECIFICATIONS ZIGBEE BASIC SYSTEM

Syllabus Instructors:

Microprocessor (COM 9323)

ELEC 5260/6260/6266 Embedded Computing Systems

MT2 Introduction Embedded Systems. MT2.1 Mechatronic systems

e-pg Pathshala Subject : Computer Science Paper: Embedded System Module: Microcontrollers and Embedded Processors Module No: CS/ES/2 Quadrant 1 e-text

Lecture 1. Course Overview and The 8051 Architecture

Goal: We want to build an autonomous vehicle (robot)

ME456: Mechatronics. Prof. Clark Radcliffe. Do you have the knack? Joonho Lee, TA. What s Mechatronics? Mechatronics

Chapter 1: Introduction. Oregon State University School of Electrical Engineering and Computer Science

!" # Today Class administration, overview of course web, and logistics What is an embedded system? What will we be doing in this class?

IN4343 Real-Time Systems

ESET 369 Embedded Systems Software, Fall 2017

ITT Technical Institute. ET2640 Microprocessors and Microcontrollers Onsite and Online Course SYLLABUS

Lecture (01) Introducing Embedded Systems and the Microcontrollers By: Dr. Ahmed ElShafee

CS-3410 Systems Programming Spring 2013

Lecture 14. Ali Karimpour Associate Professor Ferdowsi University of Mashhad

EE324: Microcontrollers and Interfacing. Office Hours: Mon, Wed, to 11.30am. Microcontrollers and Interfacing

Ali Karimpour Associate Professor Ferdowsi University of Mashhad

ESET 369 Embedded Systems Software, Spring 2018

Today. An Animated Introduction to Programming. Prerequisites. Computer programming

1. Embedded System Design Process

EMBEDDED SYSTEM BASICS AND APPLICATION

Lab Course Microcontroller Programming

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

ECE 2036 Lab 4 Setup and Test mbed I/O Hardware Check-Off Deadline: Thursday, March 17, Name:

Laboratory: Introduction to Mechatronics. Instructor TA: Edgar Martinez Soberanes Lab 1.

Computer Hardware Requirements for Real-Time Applications

E40M. An Introduction to Making: What is EE?

CONSUMER ELECTRONICS Microwave Ovens

Ali Karimpour Associate Professor Ferdowsi University of Mashhad

Embedded Systems Introduction

Chris Riesbeck, Fall Introduction to Computer Systems

Embedded Systems. Octav Chipara. Thursday, September 13, 12

Calendar Description

Real-time Support in Operating Systems

Lecture 1 Introduction To 3410

Embedded Computation

Lecture 19: Computers. Pay no attention to the man behind the curtain.

Final Exam Study Guide

ECE471: Embedded Systems Final Project. Due: Friday, 14 December 2018 (Last day of Classes)

Tajana Simunic Rosing Department of Computer Science and Engineering UCSD

Overview of Microcontroller and Embedded Systems

Locktronics PICmicro getting started guide

PSU 2008 Winter - PH-315 Experimental Physics

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

ECE 1161/2161 Embedded Computer System Design 2. Introduction. Wei Gao. Spring

Real-Time Systems: An Introduction

Digital Electronics 27. Digital System Design using PLDs

Introduction & Logistics

Valeria Martinovic, 330 Latimer. Concurrent enrollment in Chem 1A or a C- in Chem 1A. Tuesday April 28th - 7:00-9:00pm

Introduction to L.A.P. 1

AVR- M16 development board Users Manual

CSE 466 Exam 1 Winter, 2010

PIC Microcontroller and

Microprocessor Systems

Intel Research mote. Ralph Kling Intel Corporation Research Santa Clara, CA

Figure 1.1: Some embedded device. In this course we shall learn microcontroller and FPGA based embedded system.

Advance Robotics with Embedded System Design (ARESD)

INTERRUPTS in microprocessor systems

MTRX3700 Mechatronics

EE251: Thursday November 30

Anupam Gupta, Braydon Hall, Eugene Oh, Savanna Yee. Steve Jobs custom Apple I and other historic machines are on display at Seattle museum

Intel Galileo gen 2 Board

CS1110 Lab 1 (Jan 27-28, 2015)

Overview of Embedded Systems in Medical Applications

EECS 482 Introduction to Operating Systems

Microcontroller Not just a case of you say tomarto and I say tomayto

Introduction to the Personal Computer

CPSC 121: Models of Computation

VLSI Design Lab., Konkuk Univ. Yong Beom Cho LSI Design Lab

Mohammad Jafar Navabi Medtronic Microelectronics Center, Tempe, Arizona, USA

Course Syllabus of Microprocessor I (Fall 2006)

Lab Install Windows 8

Syllabus -- CIS Computer Maintenance / A+ Certification

Microprocessors And Microcontroller

COMPUTER BASICS LECTURER: ATHENA TOUMBOURI

ECE 156A - Syllabus. Description

A Control System Plant Simulator

Introduction to Computer Systems

MICROPROCESSORS A (17.383) Fall Lecture Outline

System Architecture Directions for Networked Sensors[1]

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

2011 Pearson Higher Education, Mazidi, Naimi, and Naimi Pearson Higher Education, 2011 Pearson Higher Education,

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

Computer Architecture. Fall Dongkun Shin, SKKU

EE251: Tuesday December 4

FYS Data acquisition & control. Introduction. Spring 2018 Lecture #1. Reading: RWI (Real World Instrumentation) Chapter 1.

Department of Electronics and Instrumentation Engineering Question Bank

Introduction What is Android?

Transcription:

CSE 466 Software for Embedded Systems Instructor: Gaetano Borriello CSE 572, Hours: by app t gaetano@cs.washington.edu Teaching Assistants: Brain French CSE 003, Hours TTh 2:30-5:30 bmf@cs.washington.edu Chris Grand bitabur@cs.washington.edu CSE 003, Hours TTh 2:30-5:30 CSE 466 - Winter 2006 Introduction 1 CSE 466 Software for Embedded Systems Class Meeting Times and Location: Lectures: EE1 037, MWF 12:30-1:20 Lab: CSE 003, T Section A, 2:30-5:20 Th Section B, 2:30-5:20 Exams Exam-I: Friday, 10 February, EE1 037, 12:30-1:20 Final demo: Friday, 10 March, CSE Atrium, 12:30-1:20 Exam-II: Thursday, 16 March, EE1 037, 8:30-10:20 (but only 1 hour) Evaluations Wednesday, 8 March, EE1 037, 12:30-1:20 CSE 466 - Winter 2006 Introduction 2 1

Embedded system from the web Definitions A device not independently programmable by the user. Specialized computing devices that are not deployed as general purpose computers. A specialized computer system which is dedicated to a specific task. An embedded system is preprogrammed to perform a narrow range of functions with minimal end user or operator intervention. What it is made of Embedded systems range in size from a single processing board to systems with operating systems. A combination of computer hardware and software, and perhaps additional mechanical or other parts, designed to perform a dedicated function. In some cases, embedded systems are part of a larger system or product, as is the case of an anti-lock braking system in a car. A specialized computer system that is part of a larger system or machine. Typically, an embedded system is housed on a single microprocessor board with the programs stored in ROM. Some embedded systems include an operating system, but many are so small and specialized that the entire logic can be implemented as a single program. Examples Virtually all appliances that have a digital interface -- watches, microwaves, VCRs, cars -- utilize embedded systems. A computer system dedicated to controlling some non-computing hardware, like a washing machine, a car engine or a missile. Examples of embedded systems are medical equipment and manufacturing equipment. While most consumers aren't aware that they exist, they are extremely common, ranging from industrial systems to VCRs and many net devices. CSE 466 - Winter 2006 Introduction 3 What is an embedded system? Different than a desktop system Fixed or semi-fixed functionality (not user programmable) Different human interfaces than screen, keyboard, mouse, audio Usually has sensors and actuators for interface to physical world May have stringent real-time requirements It may: Replace discrete logic circuits Replace analog circuits Provide feature implementation path Make maintenance easier Protect intellectual property Improve mechanical performance CSE 466 - Winter 2006 Introduction 4 2

What do these differences imply? Less emphasis on Graphical user interface Dynamic linking and loading Virtual memory, protection modes Disks and file systems Processes More emphasis on Real-time support, interrupts (very small OS, if we re lucky) Tasks (threads) Task communication primitives General-purpose input/output Analog-digital/digital-analog converters Timers Event capture Pulse-width modulation Built-in communication protocols CSE 466 - Winter 2006 Introduction 5 Examples of embedded systems CSE 466 - Winter 2006 Introduction 6 3

What is an embedded system? (cont d) Figures of merit for embedded systems Reliability it should never crash Safety controls things that move and can harm/kill a person Power consumption may run on limited power supply Cost engineering cost, manufacturing cost, schedule tradeoffs Product life cycle maintainability, upgradeability, serviceability Performance real-time requirements, power budget CSE 466 - Winter 2006 Introduction 7 Example: a temperature controller thermister AREF ADC0 PD0 INT0 PD6 TACH (pwm) SPEED (pwm) PWM signal Task: Tachometer (external interrupt) now = gettime(); period = then - now; //overflow? then = now; return; Task: FanPWM (periodic, hard constraint) count++; if (count == 0) PD6 = 1; if (count > Thi) PD6 = 0; return; Task: TempControl (periodic, soft constraint) if (Temp > setpoint) Thi++; if (Temp < setpoint) Thi--; if (period<min period>max) PD0 = 1; Task: Main Thi = 0; setup timer for 1ms interrupt; setup timer for 100ms interrupt; while (1) ; CSE 466 - Winter 2006 Introduction 8 4

Capacity Assume: 8 MHz processor @ one instruction/cycle Assume fan runs between 30Hz and 60Hz Assume 256ms period on speed control PWM, with 1ms resolution. What percent of the the available cycles are used for the temperature controller? [total instructions in one second] / (8MInstr/sec) How much RAM do you need? How much ROM? CSE 466 - Winter 2006 Introduction 9 Resource analysis of temp controller Task: Tachometer (external interrupt) now = gettime(); period = then - now; //overflow? then = now; return; Task: FanPWM (periodic, hard constraint) count++; if (count == 0) GP0 = 1; if (count > Thi) GP0 = 0; return; Task: TempControl (periodic, soft constraint) if (Temp > setpoint) Thi++; if (Temp < setpoint) Thi--; if (period<min period>max) GP4 = 1; Task: Main Thi = 0; setup timer for 1ms interrupt; setup timer for 100ms interrupt; while (1) ; Task ROM RAM Instructions/Sec Tach ~4 2 (period, then) 4 * 60 = 240 FanPWM ~8 1 (count) 8 * 1000 = 8000 TempControl ~10 1 (THI) 10 * 2 = 20 Total Instructions/Sec = 8260, at 8MIPS, that s only 0.1% utilization! Other resources? local variables, stack CSE 466 - Winter 2006 Introduction 10 5

What Are You Going to Learn? Hardware I/O, memory, busses, devices, control logic, interfacing hw to sw Software Lots of C and assembly, device drivers, low level OS issues Concurrency Software/Hardware interactions Where is the best place to put functionality hardware or software? What are the costs: performance memory requirements (RAM and/or ROM) integration of hardware and software courses Programming, logic design, architecture Algorithms, mathematics and common sense CSE 466 - Winter 2006 Introduction 11 What are you going to learn? (cont d) Understanding of basic microcontroller architecture Understanding of interfacing techniques Appreciation of power management methods Understanding of basic communication protocols Facility with a complete set of tools for design/debug Experience implementing some real systems CSE 466 - Winter 2006 Introduction 12 6

Class logistics see course web http://www.cs.washington.edu/466 expands to http://www.cs.washington.edu/education/courses/cse466/06wi/ Class structure Business matters Grading Syllabus What we ll be doing CSE 466 - Winter 2006 Introduction 13 Class structure Lecture (25) Closely linked to laboratory assignments Cover main concepts, introduced laboratory problems Lab (8) Implementation of two projects Lab reports due prior with 30 minutes of start of next lab section Exams (2) Based on lectures, labs, and reading assignments Final demo (1) During scheduled final time participation required Reading and source material (lots) Some assigned, most you ll find on your own CSE 466 - Winter 2006 Introduction 14 7

Business Matters Lecture slides will be on line after class (links in several places) Get the CoursePak for CSE466 ($33.50, Communications B-042) Bring a $200 personal check to the first lab to check out a kit Random lab partner assignments, changed mid-quarter Sign up for CSE466 mailing list CSE 466 - Winter 2006 Introduction 15 Grading Lab reports: Demonstration(s) required Brief answers to questions embedded in assignment Sometimes hand-in code Do with your partner Distribution: Labs: 40% Exams: 30% (10 Feb and 10 Mar both Fridays) Demo: 15% Class Participation: 15% CSE 466 - Winter 2006 Introduction 16 8

CSE466 Lab Projects Two multi-week projects Four lab assignments each Different lab partners First project Familiarize with microcontroller Learn how to interface devices to it Test and debug Basic communication between chips and between chip and PC Second project Wireless communication Embedded operating system Real-time issues Test and debug Coordinated behavior among many devices CSE 466 - Winter 2006 Introduction 17 CSE466 Lab Projects (cont d) Project 1 USB device Platform: ATmega16 AVR microcontroller Accelerometer and multi-color LED used to select a color Connects sensor and actuator to PC through USB port Color Selector Tilt accelerometer to move cursor on a color map Send selected color back to device Pulse-width modulation of multi-color LED to reproduce color Eventually would be wireless USB device to home PC to control room lighting CSE 466 - Winter 2006 Introduction 18 9

CSE466 Lab Projects (cont d) Project 2 Ad hoc wireless network ( flock ) Platform: UC Berkeley wireless sensor nodes (UCB motes ) Sound generation coordinated with neighbors and time of day Coordinated behavior between different nodes Flock-IV the deployment Install in Allen Center atrium for pleasing auditory display Focus on ease of installation and command/control Switch between bird songs, crickets, water sounds CSE 466 - Winter 2006 Introduction 19 10