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
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.
In short : Be able to provide end-to-end design solutions for a task which is
appropriate for a microprocessor system
Embedded Micro Concepts and Examples
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).
Source : Embedded Systems Programming Magazine
Maytag “Fuzzy Logic” Washer
Kodak Digital Camera
DSP/uP Combo Chip
Denon Home Theater In a Box
Analog Devices SHARC DSP
CONTOUR Spacecraft Instrumentation
RTX2010RH Rad-Hard Processor
I-River MP3 Player / FM Tuner
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
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
ISA bus interface
LCD ctrlDesign metric competition -- improving one may worsen others
Time required to develop a product to the point it can be sold to customers
Period during which the product would have highest sales
Average time-to-market constraint is about 8 months
Delays can be costly
Time (months)Time-to-market: a demanding design metric
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 from delayed entry
TimeLosses due to delayed market entry
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 from delayed entry
TimeLosses due to delayed market entry (cont.)
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 unitNRE and unit cost metrics
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=$2NRE and unit cost metrics
Special Purpose HW General Purpose HW
Time to Market
Our class focuses on this approach
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).
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
Micros designed for embedded market frequently include peripherals on-board
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
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 $$$)
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’;
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);
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
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.
Input Gate Output
1 0 “H” (5V)
0 1 0V
Rabbit doesn’t have this inverter.
Link All Together
Note: BIOS is an acronym for Basic Input/Output System