Embedded System Design Stephen A. Edwards Columbia University - - PowerPoint PPT Presentation

embedded system design
SMART_READER_LITE
LIVE PREVIEW

Embedded System Design Stephen A. Edwards Columbia University - - PowerPoint PPT Presentation

Embedded System Design Stephen A. Edwards Columbia University Spring 2011 Spot the Computer Embedded Systems: Ubiquitous Computers iPhone Laser Keyboard Nikon D300 Video Watch GPS Playstation 3 PC Keyboard SD Card Is Your Current


slide-1
SLIDE 1

Embedded System Design

Stephen A. Edwards

Columbia University

Spring 2011

slide-2
SLIDE 2

Spot the Computer

slide-3
SLIDE 3

Embedded Systems: Ubiquitous Computers

iPhone Laser Keyboard Nikon D300 Video Watch GPS Playstation 3 PC Keyboard SD Card

slide-4
SLIDE 4

Is Your Current Embedded Project...

Real-time Networked Ruggedized Battery-powered Wireless 0% 15% 30% 45% 60% 75%

Source: 2009 Embedded Market Study

slide-5
SLIDE 5

Is Your Current Embedded Project...

Real-time Networked Ruggedized Battery-powered Wireless 0% 15% 30% 45% 60% 75%

Source: 2009 Embedded Market Study

slide-6
SLIDE 6

Digital Camera Block Diagram

slide-7
SLIDE 7

Design An Optimal Device that Meets Constraints On

Price Functionality Performance Size Power Time-to-market Maintainability Safety

slide-8
SLIDE 8

Embedded System Technologies

Integrated Circuits Processing elements Design tools

slide-9
SLIDE 9

IC Technology

1947: First transistor (Shockley, Bell Labs) 1958: First integrated circuit (Kilby, TI) 1971: First microprocessor (4004: Intel) Today: eight wire layers, 45 nm features

slide-10
SLIDE 10

Moore’s Law: Transistors per chip

1970 1980 1990 2000 2010 1k 10k 100k 1M 10M 100M 1G 10G ≈ 1.5×/year

“The complexity for minimum component costs has increased at a rate of roughly a factor of two per year. Certainly over the short term this rate can be expected to continue, if not to increase.” — Gordon Moore, 1965 Source: Intel/Wikipedia

slide-11
SLIDE 11

$1000 Buys You This Many CPS

Electromechanical Relays Tubes Transistors Integrated Circuits 1900 1920 1940 1960 1980 2000 10−4 10−2 100 102 104 106 108

Source: Ray Kurzweil, The Age of Spiritual Machines

slide-12
SLIDE 12

1918 Sears Roebuck Catalog

About $100 in today’s dollars.

From Donald Norman, The Invisible Computer, 1998.

slide-13
SLIDE 13

What Percentage of Time Do You Spend...

Developing Specifications Conceptual Design Detailed Design Simulation Testing/Debugging Prototyping Sending to production Documentation/meetings 0% 5% 10% 15% 20% 25%

Source: 2009 Embedded Market Study

slide-14
SLIDE 14

What Percentage of Time Do You Spend...

Developing Specifications Conceptual Design Detailed Design Simulation Testing/Debugging Prototyping Sending to production Documentation/meetings 0% 5% 10% 15% 20% 25%

Source: 2009 Embedded Market Study

slide-15
SLIDE 15

If You Could Improve One Thing...

Debugging Tools Schedule Programming Tools Engineering Team Interfaces Microprocessor Other hardware Operating System IDE 0% 5% 10% 15% 20% 25% 30%

Source: 2009 Embedded Market Study

slide-16
SLIDE 16

If You Could Improve One Thing...

Debugging Tools Schedule Programming Tools Engineering Team Interfaces Microprocessor Other hardware Operating System IDE 0% 5% 10% 15% 20% 25% 30%

Source: 2009 Embedded Market Study

slide-17
SLIDE 17

If Your System Has More Than One Processor, Does It Use...

Multiple different chips Multiple identical chips Single chip, identical cores Single chip, different cores 0% 15% 30% 45% 60%

Source: 2009 Embedded Market Study

slide-18
SLIDE 18

If Your System Has More Than One Processor, Does It Use...

Multiple different chips Multiple identical chips Single chip, identical cores Single chip, different cores 0% 15% 30% 45% 60%

Source: 2009 Embedded Market Study

slide-19
SLIDE 19

Does Your Current Project Contain FPGAs?

slide-20
SLIDE 20

Does Your Current Project Contain FPGAs?

45% Yes 55% No

Source: 2009 Embedded Market Study

slide-21
SLIDE 21

Why Won’t Your Next Project Use FPGAs?

Don’t need them Too expensive Too power-hungry Hard to use Too slow Too small Unreliable Don’t Know 0% 15% 30% 45% 60% 75%

Source: 2009 Embedded Market Study

slide-22
SLIDE 22

Why Won’t Your Next Project Use FPGAs?

Don’t need them Too expensive Too power-hungry Hard to use Too slow Too small Unreliable Don’t Know 0% 15% 30% 45% 60% 75%

Source: 2009 Embedded Market Study

slide-23
SLIDE 23

Your Nemesis: The Altera DE2

slide-24
SLIDE 24

DE2 Peripherals

slide-25
SLIDE 25

Class Structure

Three Introductory Labs: 2 weeks each

  • 1. Access, modify, and display memory in VHDL
  • 2. An Ethernet chat client (software only)
  • 3. Either

an FM audio synthesizer; or a video bouncing ball.

The project: Design-your-own

slide-26
SLIDE 26

Custom Project Ideas

Broadly: C + VHDL + peripheral(s) Video game (e.g., Pac-Man)

Digital Video Project - Stephen Edwards Block Diagram TDA8708 Video ADC TDA8708 Video ADC Luminance/ Composite In Chrominance In SAA9051 Digital MultiStandard Decoder 8 8 SAA9057A Line-Locked Clock Generator 7 4 MUX 7 ’374s ’374s SAA7192 Digital Colorspace Converter 8 8 8 Bt101 Video DAC Red Analog Out Green Analog Out Blue Analog Out DSP 56001 Digital Signal Processor Data Address VRAM 256K X 24 X 2 24 4 LUMM UVM MUX LUMO UVO LUML UVL LUMH UVH 12 12 Control Block I2C Bus RS-232 PORT

Video effects processor Digital photo frame Very fancy digital clock

slide-27
SLIDE 27

More Ideas

Digital tone control Real-time audio spectrum analyzer Internet radio Speech Synthesizer

slide-28
SLIDE 28

Projects from 2004

MIDI synthesizer Line-following robot with video vision SAE student vehicle telemetry system Stereo video vision system Internet video camera Pac-man-like video game

slide-29
SLIDE 29

Projects from 2005

Scrabble Timer Scorched Earth SAE Auto Shifter Internet Radio Broadcaster 3D Maze Game VoIP Telephone JPEG decoder Rally-X video game

slide-30
SLIDE 30

Projects from 2006

Video-guided Lego Robot 360◦ camera de-warper Videogame with accelerated line-drawing Voice recorder JPEG decoder

slide-31
SLIDE 31

Projects from 2007

Pac-Edwards Button Hero Videogame Digital Picture Frame: SD card with JPEG to VGA Networked game of Clue Conway’s Game of Life (60 gps)

slide-32
SLIDE 32

Projects from 2008

Real-time ray tracer Video-camera-controlled pool game Real-time video decryption WiiMote-controlled maze game

slide-33
SLIDE 33

Projects from 2009

Lightsaber video overlay Networked Video Phone Sound-controlled videogame Visual object tracker

slide-34
SLIDE 34

The Three Main Challenges of Embedded Systems

Coping with Real-world Sensor Data Algorithm Design Implementation Details

slide-35
SLIDE 35

What Does this Circuit Do When You Press the Switch?

GND 100K Vcc Vout

slide-36
SLIDE 36

What Does this Circuit Do When You Press the Switch?

GND 100K Vcc Vout

slide-37
SLIDE 37

Inside a Pushbutton Switch

A – View of moveable contact mounted on back side of actuator Thermoplastic Actuator Button Thermoplastic Case and Cover Stainless Steel Spring Terminals Mounting Posts Shorting Bar

Source: Cheery CS series data sheet

slide-38
SLIDE 38

Raw Data from a CCD (zoomed in)

slide-39
SLIDE 39

Corrected Image (zoomed in)

slide-40
SLIDE 40

Correcting Data from CCDs

Raw − Dark Frame Flat Field − Bias =

Color

− →

Temp.

− →

Exposure

− →

slide-41
SLIDE 41

Correcting Data from CCDs

Raw − Dark Frame Flat Field − Bias =

Color

− →

Temp.

− →

Exposure

− →

slide-42
SLIDE 42

Where Does This Noise Come From?

Digital camera sensors are remarkably sensitive. My high-end Nikon D300 has a 23.6 mm × 15.8 mm 12.3 megapixel CMOS sensor whose pixels are 5.5 µm

  • n a side. When each pixel is sampled with the 12-bit

A/D converter, the sensor efficiency is ISO: LO 200 400 800 1600 3200 G 7.1 5.5 2.7 1.3 0.65 0.33 B 5.8 4.6 2.3 1.1 0.55 0.27 R 4.7 4.5 2.2 1.1 0.54 0.26 The units: electrons per ADU (digital unit).

Emil Martinec, A comparison of the Nikon D300 and Canon 40D sensors, 2007.

slide-43
SLIDE 43

Development Plan

  • 1. Obtain some representative raw sensor data
  • 2. Develop an algorithmic prototype using your favorite language

(e.g., Java, C, Matlab)

  • 3. Plan how to implement it
  • 4. Implement while constantly testing