Professional Documents
Culture Documents
Chapter 12
introduction
What constitutes a controller will vary from
application to application.
It may be no more than an amplifier or a switch.
It may be a complex system that may include
computers and other types of processors such as
data acquisition and signal processors.
Most of the time, it is a microprocessors.
We shall therefore focus the discussion here on
microprocessors.
introduction
Focus on microprocessors as general purpose,
flexible and reconfigurable controllers and the
ways sensors and actuator relate to these.
Microprocessors are often called microcontrollers
What is a microprocessor? What is the different
between a microprocessor and a computer or a
microcomputer and how a distinguishing set of
features is arrived at are all difficult and subjective
issues. What is a microprocessor to one is a full
fledged computer to another
The microprocessor
A microprocessor is a stand alone, self contained
single chip microcomputer.
It must have as a minimum:
a central processing unit (CPU)
nonvolatile and program memory
input and output capabilities.
The microprocessor
Other important requirements:
The microprocessor
Two limits on the tasks microprocessors can
perform:
The limitations of the microprocessor itself
The imagination (or capabilities) of the
designer.
The architecture
There are about two dozen manufacturers of
microprocessors
All based on a few architectures.
We shall only briefly describe here one
architecture the Harvard architecture
used in many microprocessors
Simple and efficient
The choice in smaller microprocessor
Example: Microchip and Atmel microprocessors
The architecture
Main features:
Separate busses for program memory and operand
memory.
Pipelined architecture
Allows fetching data while another operation executes.
Each cycle consists of fetching the (n+1)th instruction
while executing the nth
Integer arithmetic
Limited instruction set
The architecture
Bus widths vary depending on manufacturer and
on the microprocessor size.
Example: Figure 12.1, bus architecture for a
PIC18F452 from Microchip.
The instruction is 16bit
Program address is 15bit wide.
Data is 8bits and
Operand address is 12 bits.
These vary from device to device.
Bus architecture
The architecture
Example, the smallest microprocessors
available (PIC10FXX) are 6 pin devices
Summarized in Table 12.1.
The architecture for this device is shown in
Figure 12.2.
Here the program address bus is only 9 bits
while the instruction buss is 12 bits.
PIC10FXX microprocessors
PIC10FXX microprocessors
The architecture
Example: one of the largest, is the
PIC18FXX20
Has an address bus 21 bits wide.
The processor and its variants are shown in
Table 12.2
Its architecture in Figure 12.3.
The architecture
Architecture supports:
Direct addressing for the first 8 bits of address space
Indirect addressing (variable pointer addressing) for
all memory space.
Includes a CPU with associated status bits and a set
of special functions registers.
I/O ports, other peripherals (such as comparators,
A/D converters, PWM modules, etc.)
Timers, status indications and much more,
The architecture
All modules available to the user.
User writable registers are also provided.
Microprocessors have been designed to respond to
specific needs: common to find modifications that
respond to these needs
Example: various processors from the same family
may have a different instruction sets
PIC10FXX has 33 instructions
PIC18FXX20 has 77 instructions
ATmega128 (from Atmel) has 133 instructions.
The architecture
Memory varies from 256 bytes to over 256
kbytes
Number of peripherals, ports, etc vary from
as few as 4 to over 100
Physical size: from 6 pin to 100 pins
Various chip configurations (DIP, surface
mount, dies etc.)
Addressing
8 bit microprocessors have word length of 8 bits.
Integer data from 0 to 255 may be represented
directly.
To address memory, usually a longer word is
needed.
Most microprocessor have a 12 bit (4k) 14 (16k)
or 16 bit (64k) memory address but longer address
words are also used.
Speed
Most microprocessor operate at clock
speeds between 1 and 40 MHz.
Since often the clock is internally divided,
the instruction cycle is slower than that
Typical values are up to about 10 MHz
cycle clock or 0.1 s per instruction
Instruction set
Microprocessors have a small instruction set
sometimes no more than 2-3 dozen simple
instructions.
Varies from a minimum of about 30 to a maximum of
about 150 instructions.
These are selected to cover the common requirements
of programming a device
Allows one to perform almost any task that can be
physically performed within the basic limitations of
the device.
Instruction set
Instructions include:
logical instructions (AND, OR, XOR, etc.)
move and branching instructions (allow one to move data from
and to registers and conditional and unconditional branching)
bit instructions (operations on single bits in an operand)
arithmetic instructions such as add and subtract,
subroutine calls
other instructions that have to do with the performance of the
microprocessor such as reset, sleep and others.
Registers
Used for
Execution of commands
Control over the functions of the microprocessor,
Addressing
Flagging
Status indication
Memory
Modern microprocessors, contain three
types of memory:
program memory, in which the program is
loaded,
data memory (RAM),
EEPROM memory
Note: EEPROM not available on some very
small microprocessors.
Memory
Program memory is usually the largest
From less than 256 bytes to over 256kBytes.
In most cases, flash memory which means that is
rewritable at will and is nonvolatile (program is
retained until rewritten or erased).
Data memory (RAM) is usually quite small and may
be a small fraction of the program memory
Does not retain data upon removal of power.
EEPROM is nonvolatile rewritable memory used
mostly to write data during execution
Power
Most microprocessor operate from 1.8V to 6V.
Some have a more limited range (2.7-5.5V).
Based on CMOS technology: This means that:
power consumption is very modest.
power consumption is frequency dependent.
Power
Other functionalities
Microprocessor must have certain modules (CPU,
memory and I/O)
They can have many more modules
Add functionality and flexibility
Many microprocessors include
Other functionalities
One or two comparators are provided on many
microprocessors.
Depending on the microprocessors 8 or 10 bit A/D
converters are provided, usually in multiple
channels (4 to 16).
PWM channels (up to 8) are common on some
processors.
Serial interfaces such as UART, SPI, two wire
interface (I2C), synchronous serial and USB ports
are available
Other functionalities
Many microprocessors provide multiple
interfaces, all under the users control.
Other functions such as analog amplifiers and
even transceivers are sometimes incorporated
within the chip.
The I/O used for these functions are either digital
I/O (for communication for example) or analog
I/O (for A/D for example)
Programs and
programmability
A microprocessor is only useful if it can be
programmed.
Programming languages and compilers have been
designed specifically for microprocessors.
The basic method of programming
microprocessors is through the Assembly
programming language
Can be, and very often is done through use of
higher level languages with C leading.
Programs and
programmability
These are specific compilers, adapted for a class of
microprocessors.
They are based on a standard C compiled (such as
ANSI C) and modified to produce executables that
can be loaded onto the microprocessor.
Most microprocessors can be programmed in
circuit allowing changes to be made, or the
processors to be programmed or reprogrammed
after the circuit has been built.
Programs and
programmability
Instruction sets for microprocessors are small and
based on the assembly language nomenclature.
Microprocessors have been designed for integer
operations.
Programming for control, especially sequential
control is simple and logical.
Floating point operations and, are either not practical
or difficult and tedious.
They also tend to require considerable time and
should only be attempted if absolutely necessary.
Programs and
programmability
There are both integer and floating point
libraries freely available.
Floating point operations are only practical
on the larger microprocessors because they
require much memory.
Examples of microprocessors
Interfacing Issues
Three basic modes:
1. Continuous dedicated monitoring of the
sensor by the microprocessor
2. Polling the sensor
3. Interrupt mode
Continuous mode
Microprocessor is dedicated for use with
the sensor
Its output is monitored by the
microprocessor continuously
The microprocessor reads the sensors
output at a given rate
Output is then used to act
Poling mode
Sensor operates as if the microprocessor
did not exist.
Its output is monitored by the
microprocessor
The microprocessor reads the sensors
output at a given rate or intervals poling
Output is then used to act
Interrupt mode
Microprocessor is in sleep mode
Outputs of the sensor are not being
processed
Upon a given event, microprocessor
wakes up through one of its interrupt
options
The sensor activates the interrupt
Notes:
Interrupts can be timed
Interrupts can be issued by sources other
than the sensor
The microprocessor may be involved in
other functions, separate from the sensor,
such as control of an actuator
Feedback from actuators may also be
used to perform interrupts
General Interfacing
Requirements
Microprocessor input interfacing
requirements
Microprocessor output
requirements
Errors introduced by
microprocessors
Input interfacing
requirements
Signal level
Impedance and matching
Response, frequency
Signal conditioning
Signal scaling
Isolation
Loading
Output interfacing
requirements
Signal levels
Power levels
Isolation
Impedance
P are high input impedance devices
~ 1 - 10 M
Input current - < 1 A.
F-V converter
Introduces conversion errors
Must be done externally
Faster microprocessors
Offset
Example
Thermistor: 500 at 20C
Varies from 100 to 900 for temp. between 0
and 100C
Offset
At 500C
V = (12/1500)*500 = 4 V
At 0C
V = (12/1400)*400 = 3.428 V
At 100C
V = (12/1900)*900 = 5.684 V
Offset
Some solutions
Remove 3.428V through an inverting amplifier
Reduce the source voltage from 12V to, say
6V. This will change the range from 1.714V to
2.842V
Increase the resistor from 1000W to, say,
1500 W. This will reduce the output and will
vary from 2.526V to 4.5V
Scaling
By amplification
Operational amplifiers
By attenuation
Operational amplifiers
Resistance dividers
Transformers (for ac)
Isolation
Two basic methods
Transformers
Optical isolation
Loading
Microprocessors load the sensor
Not an issue with low impedance sensors
Must be buffered for high impedance
sensors
Solution: voltage followers with FET input
stages
An error due to loading should be taken into
account
Output Interface
Most microprocessors:
1.8 to 6V
20 to 25 mA per output pin
Can power small loads directly (LEDs, small
relays)
Protection diodes on all outputs
Output Interface
Large loads:
Must add circuitry to boost current, power
MOSFETS are ideal for this purpose
Inductive loads: must add protection against
large spikes
Often necessary to isolate output
Very often necessary to translate voltages for
output
Output pins
MOSFETS:
Driven
Resolution
Digital systems have an inherent
resolution:
LSB - least significant bit
Any value smaller than the LSB cannot
be represented
This constitutes an error
LSB is inherent in any module as well as
in the CPU itself
Resolution of modules
A/D - n bits resolution, meaning:
a 10 bit A/D, digitizing a 5V input has a resolution
of:
5V/1024 = 4.88 mV
Resolution of modules
PWM (Pulse Width Modulator)
Given a clock frequency fosc, the PWM resolution
is:
log
PWMres
. =
osc
/ f
log
(2)
PWM
CPU errors
Most microprocessors are 8 bit
microprocessors
Integer arithmetics
Largest value represented: 256
Roundoff errors due to this representation
Special math subroutines have been
developed to minimize these errors
(otherwise they would be unacceptably
high)
Sampling errors
All inputs and outputs on a microprocessor
are sampled. That is:
Inputs are only read at intervals
Outputs are only updated at intervals
Intervals depend on the frequency of the clock, operation
to be executed and on the software that executes it
Sampling may not even be constant during operation
because of the need to perform different tasks at different
times
Errors are due to changes in input/output between
sampling to which the microprocessor is oblivious
Errors are not fixed - depend among other things on how
well the program is written