525 415 embedded microprocessor systems
1 / 40

525.415 : Embedded Microprocessor Systems - PowerPoint PPT Presentation

  • Updated On :

525.415 : Embedded Microprocessor Systems. Douglas Wenstrand Joseph Haber. Semester Goals. System Design : Understand the concept of embedded systems Be familiar with microprocessor architectural features and peripherals and what types of applications they can enable

Related searches for 525.415 : Embedded Microprocessor Systems

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about '525.415 : Embedded Microprocessor Systems' - EllenMixel

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
525 415 embedded microprocessor systems l.jpg

525.415 : Embedded Microprocessor Systems

Douglas Wenstrand

Joseph Haber

Semester goals l.jpg
Semester Goals

  • System Design :

    • Understand the concept of embedded systems

    • Be familiar with microprocessor architectural features and peripherals and what types of applications they can enable

    • Select appropriate microprocessors and design microprocessor-based hardware systems to handle a particular function

  • Software Design

    • Be able to program (C, Assembly) and debug said system.

In short : Be able to provide end-to-end design solutions for a task which is

appropriate for a microprocessor system

Grading l.jpg

  • Lab Projects : 50%

    • Several assignments will be handed out throughout the semester (with defined due-dates). These assignments will involve implementation of a particular task on the evaluation kit and prototyping area. They may also include some written problems.

  • Mid-Term : 20%

    • Mid-term will focus on processor specific assembly language and architecture.

  • Final Project : 20%

    • Final project will be a project that combines what we have learned into one “larger” project.

  • Quizzes : 10%

    • We will assign quizzes based on the weeks reading. These will be very straight forward.

Schedule l.jpg

  • Week 1: Introduction to Embedded Programming; Introduction to the Rabbit Microcontroller

  • Week 2 : Introduction to Dynamic C; Rabbit Assembly

  • Week 3 : Timers

  • Week 4 : Serial I/O; Exam

  • Week 5 : Networking Communication (TCP/IP)

  • Week 6 : Interfacing to External Sensors; A/D & D/A

  • Week 7 : Preemptive and Cooperative Multitasking

  • Week 8 : Interfacing to External Memory; Power; EMI Issues

Other topics l.jpg
Other Topics

  • Memory Interfacing, different types of Memory

  • Hardware design of a microprocessor-based emebedded system

  • A/D and D/A conversion

  • Power Management

  • Common Embedded Communication Protocols

    • Serial ports

    • IrDA

    • Ethernet

  • Networked embedded systems

Administrative stuff l.jpg
Administrative Stuff

  • Class Webpage : apl.jhu.edu/~wenstds1

    • Notes and Assignments and other data

  • Textbook:

    • http://www.rabbitsemiconductor.com/products/EmbedSysR3K/index.shtml

  • Join the class Yahoo “group”

    • upclass@yahoogroups.com

    • We use this as a mailing list for sending information and answering questions.

    • Ask questions to the group and answer each other.

Introduction l.jpg


Embedded Micro Concepts and Examples

Dictionary definitions l.jpg
Dictionary Definitions

microprocessor - (Or "micro") A computer whose entire CPU is contained on one (or a small number of) integrated circuits.The important characteristics of a microprocessor are the widths of its internal and external address bus and data bus (and instruction), its clock rate and its instruction set. Processors are also often classified as either RISC or CISC.

microprocessor - (Or "micro") Any CPU that is contained on a single chip.

This little chip is the heart of a computer. Often referred to as just the "processor," the microprocessor does

all the computations like adding, subtracting, multiplying, and dividing. In PCs, the most popular

microprocessor used is the Intel Pentium chip, whereas Macintosh computers use the PowerPC chip

(developed by Motorola, IBM, and Apple).

4 8 16 32 dsp risc cisc l.jpg
4,8,16,32, DSP, RISC, CISC???

  • A processor is frequently categorized based on the width of its busses.

  • Clock Rate (i.e. at what rate does the processor execute instructions)

  • Complexity of Instruction Set

    • CISC : Complex Instruction Set Computer

    • RISC : Reduced Instruction Set Computer

Interesting facts l.jpg
Interesting Facts

  • Estimated that approximately 2% of all silicon sales are from processors…but 30% of the profits

  • Estimated that under 2% of 32-bit processors sold end up in traditional computers

  • How many of processors sold today are 32-bit (or 64 for that matter)?


Processor breakdown by sales l.jpg
Processor Breakdown by sales

Source : Embedded Systems Programming Magazine

Microprocessor invasion l.jpg
Microprocessor Invasion

Maytag “Fuzzy Logic” Washer

8051 Variant

Kodak Digital Camera

DSP/uP Combo Chip

Denon Home Theater In a Box

Analog Devices SHARC DSP

CONTOUR Spacecraft Instrumentation

RTX2010RH Rad-Hard Processor

(and others)

I-River MP3 Player / FM Tuner

Microprocessor systems in automobiles l.jpg
Microprocessor Systems in Automobiles

The first car to use a microprocessor was the 1978 Cadillac Seville.

The chip, a modified 6802, drove the car's "Trip Computer," a flashy dashboard

bauble that displayed mileage and other trivia. (source ESP : 8/03)

BMW 7-Series : 100 microprocessors on board

Volvo S40 : 50-60

Toyota Echo : 30-40

All Numbers Estimated

ESP (8/03)

Up s in automobiles l.jpg
uP’s in automobiles

  • Cruise Control

  • Intermittent Wipers

  • Control / Memory for power seats/mirrors

  • On Board Diagnostics and Readout

  • Navigation System

  • Engine Control (ECU)

  • (etc)

Embedded systems characteristics l.jpg
Embedded Systems Characteristics

  • Real-Time

    • Real, defined timing requirements for particular actions to be accomplished

  • Event Driven

    • Actions of the system are in response to events, not a predefined sequence.

  • Resource constrained

    • Memory Size, speed, power constrained

  • Special purpose

    • Device must only perform certain well defined tasks

Design approaches for digital systems l.jpg
Design Approaches for Digital Systems

  • Special Purpose Hardware

    • Custom IC

    • ASIC

  • General Purpose Processor

    • Pentium

    • PowerPC

    • Thousands of Others

  • FPGA (possibly with embedded general purpose microprocessor)

Design challenge optimizing design metrics l.jpg
Design challenge – optimizing design metrics

  • Obvious design goal:

    • Construct an implementation with desired functionality

  • Key design challenge:

    • Simultaneously optimize numerous design metrics

  • Design metric

    • A measurable feature of a system’s implementation

    • Optimizing design metrics is a key challenge

Design challenge optimizing design metrics18 l.jpg
Design challenge – optimizing design metrics

  • Common metrics

    • Unit cost: the monetary cost of manufacturing each copy of the system, excluding NRE cost

    • NRE cost (Non-Recurring Engineering cost): The one-time monetary cost of designing the system

    • Size: the physical space required by the system

    • Performance: the execution time or throughput of the system

    • Power: the amount of power consumed by the system

    • Flexibility: the ability to change the functionality of the system without incurring heavy NRE cost

Design challenge optimizing design metrics19 l.jpg
Design challenge – optimizing design metrics

  • Common metrics (continued)

    • Time-to-prototype: the time needed to build a working version of the system

    • Time-to-market: the time required to develop a system to the point that it can be released and sold to customers

    • Maintainability: the ability to modify the system after its initial release

    • Correctness, safety, many more

Design metric competition improving one may worsen others l.jpg

Expertise with both software and hardware is needed to optimize design metrics

Not just a hardware or software expert, as is common

A designer must be comfortable with various technologies in order to choose the best for a given application and constraints


Digital camera chip




CCD preprocessor

Pixel coprocessor




NRE cost

JPEG codec



DMA controller

Display ctrl

Memory controller

ISA bus interface


LCD ctrl

Design metric competition -- improving one may worsen others



Time to market a demanding design metric l.jpg

Time required to develop a product to the point it can be sold to customers

Market window

Period during which the product would have highest sales

Average time-to-market constraint is about 8 months

Delays can be costly

Revenues ($)

Time (months)

Time-to-market: a demanding design metric

Losses due to delayed market entry l.jpg

Simplified revenue model sold to customers

Product life = 2W, peak at W

Time of market entry defines a triangle, representing market penetration

Triangle area equals revenue


The difference between the on-time and delayed triangle areas

Peak revenue

Peak revenue from delayed entry

Revenues ($)


Market fall

Market rise





On-time Delayed

entry entry


Losses due to delayed market entry

Losses due to delayed market entry cont l.jpg

Area = 1/2 * base * height sold to customers

On-time = 1/2 * 2W * W

Delayed = 1/2 * (W-D+W)*(W-D)

Percentage revenue loss = (D(3W-D)/2W2)*100%

Try some examples

Peak revenue

Peak revenue from delayed entry

Revenues ($)


Market fall

Market rise





On-time Delayed

entry entry


Losses due to delayed market entry (cont.)

  • Lifetime 2W=52 wks, delay D=4 wks

  • (4*(3*26 –4)/2*26^2) = 22%

  • Lifetime 2W=52 wks, delay D=10 wks

  • (10*(3*26 –10)/2*26^2) = 50%

  • Delays are costly!

Nre and unit cost metrics l.jpg

Costs: sold to customers

Unit cost: the monetary cost of manufacturing each copy of the system, excluding NRE cost

NRE cost (Non-Recurring Engineering cost): The one-time monetary cost of designing the system

total cost = NRE cost + unit cost * # of units

per-product cost = total cost / # of units

= (NRE cost / # of units) + unit cost

Amortizing NRE cost over the units results in an additional $200 per unit

NRE and unit cost metrics

  • Example

    • NRE=$2000, unit=$100

    • For 10 units

      • total cost = $2000 + 10*$100 = $3000

      • per-product cost = $2000/10 + $100 = $300

Nre and unit cost metrics25 l.jpg

Compare technologies by costs -- best depends on quantity sold to customers

Technology A: NRE=$2,000, unit=$100

Technology B: NRE=$30,000, unit=$30

Technology C: NRE=$100,000, unit=$2

NRE and unit cost metrics

  • But, must also consider time-to-market

The performance design metric l.jpg
The performance design metric sold to customers

  • Widely-used measure of system, widely-abused

    • Clock frequency, instructions per second – not good measures

    • Digital camera example – a user cares about how fast it processes images, not clock speed or instructions per second

  • Latency (response time)

    • Time between task start and end

    • e.g., Camera’s A and B process images in 0.25 seconds

  • Throughput

    • Tasks per second, e.g. Camera A processes 4 images per second

    • Throughput can be more than latency seems to imply due to concurrency, e.g. Camera B may process 8 images per second (by capturing a new image while previous image is being stored).

  • Speedup of B over S = B’s performance / A’s performance

    • Throughput speedup = 8/4 = 2

Metric summary l.jpg
Metric Summary sold to customers

Special Purpose HW General Purpose HW

NRE/Dev Cost



Time to Market

Production Cost

Our class focuses on this approach

Old style embedded sw design flow l.jpg
Old Style Embedded SW Design Flow sold to customers

  • Develop Code which is to be run on Target processor

  • Since target is minimal (doesn’t have much memory, I/O…etc. Code development takes place on a separate machine. (a PC)

    • Cross Compiler / Assembler

    • Simulator

  • Code is then run in the target system and observed. Debugging is done based on performance, and any debug support programmed into the software.

  • Emulation debugging l.jpg
    Emulation / Debugging sold to customers

    One needs to be able to interactively see how code behaves in the real system. After initial code development is done, testing of the code commences on the actual target system (and usually target processor).

    • In-Circuit Emulator

    • Debugger Kernel / BIOS

    • Background Debug Mode

    • JTAG Emulation

    • Debugger

      • Interactively Run Code

        • Breakpoints

        • Single Step

        • Watch Variables

      • Observe how code interacts with rest of target system

    Development environment is frequently processor specific, less uniform that what you might expect with PC development tools, and more prone to bugs and errors. Since the users are engineers, these things are typically tolerated

    Differences between embedded traditional programming l.jpg
    Differences between Embedded & Traditional Programming sold to customers

    Micros designed for embedded market frequently include peripherals on-board

    • Tailored towards a target market

    • A/D Converters

    • Timers / Counters

    • Interrupt Controllers

    • General Purpose I/O pins

    • Pulse-Width Modulators

    • Serial Ports (Buffered / Unbuffered)

    • Bus / Protocol Interfaces (IrDA, Ethernet, USB, PCI)

    Microprocessor versus Microcontroller?

    Hyder and Perrin (the author’s of our book) claim that the difference is the existence of internal memory, thus making the Rabbit a microprocessor

    • Device drivers are often time consuming

      • peripherals (ex: A/D, Timer, Serial Ports, etc…) generally require lots of register twiddling

      • Frequently there are “App Notes” from manufacturer with simple setup code for those who just want to do the basics.

    Rabbit3000 processor l.jpg
    Rabbit3000 sold to customersProcessor

    • 8-bit data bus

    • 20-bit address bus

    • Static Core Design: DC – 54 MHz

    • “Glueless” memory interface

    • Clock spreader for EMI reduction

    • High frequency clock and 32678Hz clk

    • Built-in clock doubler

    • 4 levels of interrupt priority

    • Bootable over serial port

    • 56 I/O signals (shared with periphs)

    • Four PWM channels

    • Six UARTs

    • Auxillary I/O bus (minimize physical – i.e. capacitive – loading to memory)

    • Two input-capture channels

    • Two quadrature decoders

    • Built-in watchdog timers

    Rabbitcore 3000 module l.jpg
    RabbitCore 3000 Module sold to customers

    • Rabbit processors are sold as RabbitCore modules, which incorporate the basic functionality (i.e., memory, flash, oscillator, Ethernet MAC) on a single board

    • They will license the “IP” so that the core can be dropped onto a new PCB “as is”

    General purpose i o pins l.jpg
    General Purpose I/O Pins sold to customers

    Embedded uP

    Any piece of HW here that needs or

    Produces digital signals for the uP to


    Using GPIO pins to talk to devices with some sort of serial protocol is often called

    “Bit-Banging”. This is another use for general purpose I/O pins : to replace

    Hardware with software. (save $$$)

    Microprocessor i o port l.jpg
    Microprocessor I/O port sold to customers

    Registers :

    DDR (Data Direction Register) ‘1’ if port is an output, ‘0’ if input

    Output Data Register : if output, value in register is written to the port

    if ddr = ‘1’ then

    outport <= data;


    outport <= ‘Z’;

    end if;

    Handling gpio or parallel ports l.jpg
    Handling GPIO (or Parallel Ports) sold to customers

    Assuming that hardware is designed so that desired signals are hooked up to a known port “pin”.

    Find that pin based on its port name and bit.

    If the port is a general purpose I/O pin, there will be at least 2 registers that you need to deal with : the DDR (Data Direction Register) and the Data Register. Typically the DDR is setup such that on RESET, the direction defaults to “input”, so you must write to the bits which are to be outputs.

    Next, write the value you want in the bits that you want to the data register for that port.

    In some processors that may be : *PGDR = 0x1 // set portg to all 0, and bit 0 = 1

    // assumes that PGDR is defined to be the right address

    Dynamic C, Rabbit 3000 : WrPortI(PGDR,&PGDRShadow,0x1);

    Gpio cont l.jpg
    GPIO (cont) sold to customers

    To read the value of a port : you simply get the contents of the Data Register (typically). Temp = *PGDR; //(in some processors) now Temp contains the value of the port

    Dynamic C / R3000 : temp = RdPortI(PGDR);

    A.4 Rabbit 2000/3000 Internal registers

    Macros are defined for all of the Rabbit’s I/O registers. A listing of these register macros can be

    found in the Rabbit 2000 Microprocessor User’s Manual and the Rabbit 3000 MIcroprocessor

    User’s Manual.

    A.4.1 Shadow Registers

    Shadow registers exist for many of the I/O registers. They are character variables defined in the

    BIOS. The naming convention for shadow registers is to append the word Shadow to the name of

    the register. For example, the global control status register, GCSR, has a corresponding shadow

    register named GCSRShadow.

    The purpose of the shadow registers is to allow the program to reference the last value programmed

    to the actual register. This is needed because a number of the registers are write only.

    Rabbit general purpose i o l.jpg
    Rabbit General Purpose I/O sold to customers

    Drive control register open drain l.jpg
    Drive Control Register: Open Drain sold to customers


    Input Gate Output

    1 0 “H” (5V)

    0 1 0V

    Rabbit doesn’t have this inverter.

    Dynamic c quick intro compilation l.jpg
    Dynamic C Quick Intro: Compilation sold to customers

    • Dynamic C is NOT ANSI C

    • Dynamic C library files end with a “.LIB” extension, and are source files that can be opened with a text editor

    • Dynamic C builds code differently from the traditional edit/compile/link/download cycle

    • Each time code is run, Dynamic C does a complete build


    Compile Source


    Compile Libraries


    Link All Together

    (no errors)



    Dynamic c quick intro bios l.jpg
    Dynamic C Quick Intro: BIOS sold to customers

    • When Dynamic C compiles a user's program to a target board, the BIOS (Basic Input-Output System) is compiled first, as an integral part of the user's program. The BIOS is a separate program file that contains the code needed to interface with Dynamic C. Normally, it also contains a software interface to the user's particular hardware. Certain drivers in the Dynamic C libraries require BIOS routines to perform tasks that are hardware-dependent.

    • The BIOS also:

      • Takes care of microprocessor system initialization, such as the setup of memory.

      • Provides the communications services required by Dynamic C for downloading code and performing debugging services such as setting breakpoints or examining data variables.

      • Provides flash drivers.

      • A single, general-purpose BIOS is supplied with Dynamic C for the Rabbit 3000. This BIOS allows Dynamic C to boot up on any Rabbit-based system that follows the basic design rules needed to support Dynamic C. The BIOS requires both a flash memory and a 32 KB or larger RAM, or just a 128 KB RAM, for it to be possible to compile and run Dynamic C programs. If the user uses a flash memory from the list of flash memories that are already supported by the BIOS, the task will be simplified.

    Note: BIOS is an acronym for Basic Input/Output System