Intro to Microcontrollers - Md. Atiqur Rahman Ahad

canolaokahumpkaElectronics - Devices

Nov 2, 2013 (3 years and 10 months ago)

142 views

Microprocessor


Intro!

Md. Atiqur Rahman Ahad

Introduction to Microcontrollers

Parts of computer: CPU, memory, I/O


CPU: Control and data path


Memory: Stores instruction and data


Input/output: Interact with the outside of
computers

Why Study Microprocessor
Design?

Why Study Microprocessor Design?



°
(as reported in Microprocessor Report, Vol 13, No. 5)


Emotion Engine: 6.2 GFLOPS, 75 million polygons per second


Graphics Synthesizer: 2.4 Billion pixels per second


Claim:
Toy Story
realism brought to games!

Sony Playstation 2000

Why Study Microprocessor Design?


Wireless Sensor Networks Platform

Power Metering Application

Microcontrollers vs Microprocessors


A microprocessor is a
CPU on a single
chip.


If a microprocessor, its associated support
circuitry, memory and peripheral I/O
components are implemented
on a single
chip
, it is a
microcontroller
.

What is an Embedded System?


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. Contrast
with general
-
purpose computer.


Examples range from washing machines,
cellular phones to missiles and space shuttles.


Embedded Systems


Operations managed behind the scenes by a
microcontroller


Microcontroller (MCU)


An integrated electronic computing device that
includes three major components on a single
chip


Microprocessor (MPU)


Memory


I/O (Input/Output) ports


What is an Embedded System?


Electronic devices that incorporate a
computer (usually a microprocessor) within
their implementation.


A computer is used in such devices
primarily as a means to simplify the system
design and to provide flexibility.


Often the user of the device is not even
aware that a computer is present.

Killer

apps!


Communications


network routers, switches,
hubs.


Children’s toys



Fuel injection control, passenger environmental
controls, anti
-
lock braking systems,


Air bag controls,


GPS mapping.


Automotive Navigation systems, automatic landing
systems, flight attitude controls,


Engine controls, space exploration ……..

Where are the embedded devices?


Instrumentations: Data collection, oscilloscopes,
signal generators, signal analyzers, power supplies.


Industrial: Elevator controls, surveillance systems,
robots.


Home: Dishwashers, microwave ovens, VCRs,
televisions, stereos, fire/security alarm systems,
lawn sprinkler controls, thermostats, cameras, clock
radios, answering machines.


Printers, scanners, keyboards, displays,
modems,
hard disk drives, CD
-
ROM drives.

Embedded Rocks!


Embedded processors account for 100% of
worldwide microprocessor production!


Embedded:desktop = 100:1


Embedded Systems is a big, fast growing industry




$ 40 billions in 2000




$92.0 billion in 2008




$112.5 billion (estimated) by the end of 2013


Embedded hardware

was worth $89.8 billion in
2008 and is expected to reach $109.6 billion in
2013


Embedded software

generated $2.2 billion in
2008. This should increase to $2.9 billion in 2013


Microprocessors/Microcontrollers
are the

core
of embedded systems.

http://www.bccresearch.com/report/embedded
-
systems
-
technologies
-
markets
-
ift016c.html


Computer Technology


Dramatic Change


Processor


2X in speed every 1.5 years;

100X performance in last decade


Memory


DRAM capacity: 2X / 2 years;
64X size in last
decade


Cost per bit: improves about 25% per year


Disk


capacity: > 2X in size every 1.0 years


Cost per bit: improves about 100% per year


250X size in last decade

Computer Technology


Dramatic Change!


State
-
of
-
the
-
art PC (at least…)



Processor clock speed:

5000
Mega
Hertz


(5.0
Giga
Hertz)


Memory capacity:

4000
Mega
Bytes


(4.0
Giga
Bytes)


Disk capacity:

2000
Giga
Bytes


(2.0
Tera
Bytes)


New units!
Mega

=>
Giga
,
Giga

=>
Tera

(Kilo, Mega,
Giga
,
Tera
,
Peta
,
Exa
,
Zetta
,
Yotta = 10
24
)

Kilo, Mega, etc. are incorrect Terminologies!

Microprocessors

are everywhere

in our life.

Microcontroller Components


Memory


Each memory location has
a specific address


We must supply an address
to access the corresponding
location


R/W allows us to select
reading or writing


Various types of memory
for different functions and
speeds

Memory location 0

Memory location 1

Memory location n
-
1

Memory location n
-
2

address

data

r/w

Microcontroller Components


Memory


Read Only Memory
-

Memory that can only be read


Holds the program code for a microprocessor used in an embedded
system where the code is always the same and is executed every
time the system is switched on


Computer BIOS, boot
-
up information


Other types of Read Only Memory


Erasable Programmable Read Only Memory (EPROM)


Similar
to ROM but can be erased (exposure to ultraviolet light) and
reprogrammed


Electrically Erasable Programmable Read Only Memory
(EEPROM)


more common that EPROM because it can be erased
by the microprocessor


Flash Memory, Ferroelectric RAM (FRAM), Magnetic Random
Access Memory (MRAM)

Microcontroller Components


Memory


Random Access Memory


used to store dynamic data when processor
is running


Holds program code and data during execution


Can be accesses in any random order


unlike takes or disks


Some types of RAM


Static RAM (SRAM)


Uses transistors to store bits, fast SRAM is used
for cache


Dynamic RAM (DRAM)


Uses capacitors to store bits, must be
refreshed, smaller and cheaper than SRAM


Fast Page Mode (FPM), Extended Data Out (EDO)


Synchrounous DRAM (SDRAM)


introduced in 1997 and replaced most
DRAM in computers by 2000


Double Data Rate (DDR SDRAM)


uses both clock edges found today in
most computers


Direct Rambus DRAM (RDRAM)


somewhat of a flop

Microcontroller Components


CPU


Smart part


Processes instructions and data


All the parts of a microprocessor


Registers


fast memory used to
store operands and other
information


Condition register


positive/negative result


Exception register


overflow
condition


Loop count register


Load
-
store architecture

Register 0

Register 1

Register n
-
1

data

address

r/w

CPU

ALU

inst

Microcontroller Components


I/O


Connection to the outside world


Examples


Analog to Digital Converter


Temperature Sensor


Display


Communications Circuit

Microcontroller Components


BUS


Group of wires used to transport information


CPU to Memory


Address bus


Data bus


CPU to I/O


Port mapped I/O


used when address space is limited,
special instructions are needed for I/O


Memory mapped I/O


I/O looks like memory
locations, easier to use and common in Reduced
Instruction Set Computing (RISC)

MPU
-
Based Systems


System hardware


Discrete components


Microprocessor, Memory, and I/O


Components connected by buses


Address, Data, and Control


System software


A group of programs that monitors the
functions of the entire system

MPU
-
Based Time

and Temperature System

MCU
-
Based Systems


Includes microprocessor, memory, I/O
ports, and support devices (such as timers)
on a single semiconductor chip


Buses are generally not available to a
system designer


I/O ports are generally multiplexed and can
be programmed to perform different
functions

MCU
-
Based Time

and Temperature System

Read
--

Computer Architectures


Princeton versus Harvard Architecture


CISC versus RISC processors


Microprocessors and Microcontrollers

Processor Performance


CPU Time



= # Cycles
×

Cycle Time



= # Instructions
×

CPI
×

Cycle Time


CPI: Cycles per instruction

Embedded System Programming


Key factors in embedded programming


Speed


timing constraints, limited processing power


Code size


limited memory, power


Programming methods


Machine Code


bits


Low level language


assembly


High level language


C, C++, Java


Application level language


Visual Basic, Access


Levels of abstraction


factor out details to focus
on few concepts at a time

Embedded System Programming


Why use C in embedded programming?


Ease of management of large embedded projects


Provides an additional level above assembly
programming


Fairly efficient


Supports access to I/O


Why use assembly?


High speed, low code size


However, difficult to do a large project in assembly


From various sources