2 introductionWhat 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.
3 introductionFocus on microprocessors as general purpose, flexible and reconfigurable controllers and the ways sensors and actuator relate to these.Microprocessors are often called microcontrollersWhat 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
4 The microprocessorA microprocessor is a stand alone, self contained single chip microcomputer.It must have as a minimum:a central processing unit (CPU)nonvolatile and program memoryinput and output capabilities.A structure that has these can be programmed in some convenient programming languagecan interact with the outside world through the input/output ports.
5 The microprocessor Other important requirements: must be relatively simplereasonably smallnecessarily limited in most of its features – memory, processing power and speed, addressing range and, of course in number of I/O devices it can interact with.The designer must have access to all features of the microprocessor – bus, memory, registers, all I/O ports,In short, Microprocessors are components with flexible features that the engineer can configure and program to perform task or a series of tasks.
6 The microprocessorTwo limits on the tasks microprocessors can perform:The limitations of the microprocessor itselfThe imagination (or capabilities) of the designer.
7 The 8 bit microprocessor We will narrow down to 8 bit microprocessorsthese are the most common in sensor/actuator systemsthey are simple and representative of all microprocessor16 and 32 bit microprocessors existThere are a number of architectures being used.We will emphasize the Harvard architecture because of its simplicity, flexibility and popularity.
8 The architectureThere are about two dozen manufacturers of microprocessorsAll based on a few architectures.We shall only briefly describe here one architecture – the Harvard architectureused in many microprocessorsSimple and efficientThe choice in smaller microprocessorExample: Microchip and Atmel microprocessors
9 The architecture Main features: Separate busses for program memory and operand memory.Pipelined architectureAllows fetching data while another operation executes.Each cycle consists of fetching the (n+1)th instruction while executing the nthInteger arithmeticLimited instruction set
10 The architectureBus widths vary depending on manufacturer and on the microprocessor size.Example: Figure 12.1, bus architecture for a PIC18F452 from Microchip.The instruction is 16bitProgram address is 15bit wide.Data is 8bits andOperand address is 12 bits.These vary from device to device.
12 The architectureExample, the smallest microprocessors available (PIC10FXX) are 6 pin devicesSummarized 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.
18 The architecture Architecture supports: Direct addressing for the first 8 bits of address spaceIndirect 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,
19 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 needsExample: various processors from the same family may have a different instruction setsPIC10FXX has 33 instructionsPIC18FXX20 has 77 instructionsATmega128 (from Atmel) has 133 instructions.
20 The architecture Memory varies from 256 bytes to over 256 kbytes Number of peripherals, ports, etc vary from as few as 4 to over 100Physical size: from 6 pin to 100 pinsVarious chip configurations (DIP, surface mount, dies etc.)
21 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.
22 SpeedMost microprocessor operate at clock speeds between 1 and 40 MHz.Since often the clock is internally divided, the instruction cycle is slower than thatTypical values are up to about 10 MHz cycle clock or 0.1 s per instruction
23 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 deviceAllows one to perform almost any task that can be physically performed within the basic limitations of the device.
24 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 callsother instructions that have to do with the performance of the microprocessor such as reset, sleep and others.Some are bit oriented, some are byte (register) oriented, some are literal and control operations
25 Input and outputInput and output is defined by the availability of pins on the package.Usually limited to less than about 100 pins (6, 8, 14, 18, 20, 28, 32, 40, 44, 64 and 100 pins are common).Two pins are used to power to the deviceFor example, an 18 pin device can have no more than 14 I/O pins.Of these, some may be used for other purposes such as oscillators or communication
26 Input and outputAll microprocessor will have a number of pins available as I/O.Example, a 6 pin microprocessor may have as many as 4 I/O, a 64 pin processor can have in excess of 48 I/O pins.I/O pins are grouped into ports, each addressable as an 8 bit word (each group has up to 8 I/O pins).Different ports may have different properties and may be able to perform different functions.
27 Input and outputI/O pins are tri-state enabling an I/O pin to serve as input, output or to be disconnected.Most I/O are digital but some may be configured as analog as well.I/O pins can supply or sink considerable current – usually in the range of mA.This is not sufficient to drive many actuators but it can drive low power devices directly or indirectly through switches and amplifiers.
28 Clock and timersMicroprocessor must have a timing mechanism that defines the instruction cycle.This is done by an oscillatorOscillators may be internal or external.Usually and RC oscillator is used for internal oscillationA crystal is the most common way of setting the frequency externally (this requires either dedicated pins or the use of two I/O pins).
29 Clock and timersThe oscillator frequency is usually divided internally to define the basic cycle time.Microprocessors have internal timersunder the control of the userused for various functions requiring counting/timingAt least one counter is availablelarger microprocessors can have 4 or more timerssome are 8 bit timers and some 16 bit timers.a watchdog timer is available for the purpose of resetting the processor should it be “stuck” in an inoperative mode.
30 Clock and timers Registers Used for Execution of commands Control over the functions of the microprocessor,AddressingFlaggingStatus indication
31 Memory Modern microprocessors, contain three types of memory: program memory, in which the program is loaded,data memory (RAM),EEPROM memoryNote: EEPROM not available on some very small microprocessors.
32 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 memoryDoes not retain data upon removal of power.EEPROM is nonvolatile rewritable memory used mostly to write data during execution
33 Power Most microprocessor operate from 1.8V to 6V. Some have a more limited range ( V).Based on CMOS technology: This means that:power consumption is very modest.power consumption is frequency dependent.The higher the frequency the higher the power consumed
34 Power Power is also dependent on What the processor does Which modules are functioning at any given time.The user has considerable control over power consumption through:Choice of frequencyMode of operationSpecial functions such as interrupt wakeup and sleep.
35 Other functionalities Microprocessor must have certain modules (CPU, memory and I/O)They can have many more modulesAdd functionality and flexibilityMany microprocessors includecomparators (for digitization purposes),A/D converters,Capture and Compare (CCP) modules,PWM generatorsCommunication interfaces.
36 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
37 Other functionalities Many microprocessors provide multiple interfaces, all under the user’s 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)
38 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 languageCan be, and very often is done through use of higher level languages with C leading.
39 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.
40 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.
41 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.
42 Examples of microprocessors PIC10FXXX (low level, 6 pin),PIC16F62X (midrange, 18 pin),PIC18FXX20 (high level, 64 or 80 pin),Atmega128 (high level, 64 pin).A comparison of these typical processors will reveal most of the properties and capabilities of microprocessors.
43 Interfacing Issues Three basic modes: 1. Continuous dedicated monitoring of the sensor by the microprocessor2. Polling the sensor3. Interrupt mode
44 Continuous mode Microprocessor is dedicated for use with the sensor Its output is monitored by the microprocessor continuouslyThe microprocessor reads the sensor’s output at a given rateOutput is then used to act
45 Poling mode Sensor operates as if the microprocessor did not exist. Its output is monitored by the microprocessorThe microprocessor reads the sensor’s output at a given rate or intervals - polingOutput is then used to act
46 Interrupt mode Microprocessor is in sleep mode Outputs of the sensor are not being processedUpon a given event, microprocessor wakes up through one of its interrupt optionsThe sensor activates the interrupt
47 Notes: Interrupts can be timed Interrupts can be issued by sources other than the sensorThe microprocessor may be involved in other functions, separate from the sensor, such as control of an actuatorFeedback from actuators may also be used to perform interrupts
48 General Interfacing Requirements Microprocessor input interfacing requirementsMicroprocessor output requirementsErrors introduced by microprocessors
49 Input interfacing requirements Signal levelImpedance and matchingResponse, frequencySignal conditioningSignal scalingIsolationLoading
50 Output interfacing requirements Signal levelsPower levelsIsolation
51 Input signal levels Basic level: zero to Vdd No dual polarity signals Must scale signals if necessaryNo dual polarity signalsMust translate/scale as necessaryDirect reading or A/DCan read voltages onlyAC or DCLimitations in frequency
52 Impedance P are high input impedance devices Input current - < 1 A.Ideal for direct connection of low impedance sensors (magnetic, thermistors, thermoelectric, etc.)High impedance sensors (capacitive, pyroelectric, etc.) must be bufferedVoltage followersFET amplifiers
53 Response and frequency Most sensors are slow devicesCan be interfaced directlyNo concern for response and frequency rangeSome sensors are part of oscillatorsFrequencies may be quite highNeed to worry about proper sampling by the microprocessor
54 Response and frequency Example: 10 mHz P, cycle time of 0.4 s. (most processor divide the clock frequency by a factor - 4 in this case)Any operation such as reading an input required n cycles, say n=5Effective frequency: 0.5 MHzSampling cannot be done at rates higher than 250 kHzAny sensor producing a signal above this frequency will be read erroneously
55 Response and frequency Some solutions:Divide the sensor’s frequencyReduces sensitivityMust be done externally to the PF-V converterIntroduces conversion errorsMust be done externallyFrequency counter at inputUse output of the counter as input to mP.ExpensiveFaster microprocessors
56 Input signal conditioning OffsetPrimarily for dc levelsCan be offset up or downUsually done to remove the dc levelSometimes needed to remove negative polarity.AC signals may sometimes be coupled through capacitors to eliminate dc levels
57 Offset Example Thermistor: 500 at 20ºC Varies from 100 to 900 for temp. between 0 and 100ºC
58 Offset At 500ºC At 0ºC At 100ºC V varies between 3.428V and 5.684V 5.684V is above the 5V operating voltage of the microprocessor
59 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.842VIncrease the resistor from 1000W to, say, 1500 W. This will reduce the output and will vary from 2.526V to 4.5V
60 Offset - other solutions For ac signalsRectificationOnly appropriate if signal is unipolarBi-polar signals produce negative signalsCannot be used with microprocessors
61 Offset - other solutions Bridge connectionBattery must be floatingOutput: 0V at 0ºC to 2.3V at 100ºC.Offset of arbitrary value can be addedDone by decreasing the value of lower-left resistor1V offset with 285.7 resistor
62 Scaling By amplification By attenuation Amplifiers are preferrable Operational amplifiersBy attenuationResistance dividersTransformers (for ac)Amplifiers are preferrableDividers introduce errorsTransformers are noisy and big
64 Loading Microprocessors load the sensor Not an issue with low impedance sensorsMust be buffered for high impedance sensorsSolution: voltage followers with FET input stagesAn error due to loading should be taken into account
65 Output Interface Most microprocessors: 1.8 to 6V 20 to 25 mA per output pinCan power small loads directly (LEDs, small relays)Protection diodes on all outputs
66 Output Interface Large loads: Must add circuitry to boost current, powerMOSFETS are ideal for this purposeInductive loads: must add protection against large spikesOften necessary to isolate outputVery often necessary to translate voltages for output
68 Output pins connection of loads Sourcing currentSinking currentThe two are somewhat different:
69 Errors and resolution Errors introduced by the microprocessor: Due to resolution of A/D, D/ASampling errorsThese come in addition to any errors in the sensor/actuator
70 Resolution Digital systems have an inherent resolution: LSB - least significant bitAny value smaller than the LSB cannot be representedThis constitutes an errorLSB is inherent in any module as well as in the CPU itself
71 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 mVThe A/D can resolve down to 4.88 mVCan represent data in increments of 4.88 mV(a 14 bit A/D resolves down to 0.3 mV)For a 1V span on a sensor, this is approximately 0.5% error
72 Resolution of modules PWM (Pulse Width Modulator) Given a clock frequency fosc, the PWM resolution is:
73 CPU errors Most microprocessors are 8 bit microprocessors Integer arithmeticsLargest value represented: 256Roundoff errors due to this representationSpecial math subroutines have been developed to minimize these errors (otherwise they would be unacceptably high)
74 Sampling errorsAll inputs and outputs on a microprocessor are sampled. That is:Inputs are only read at intervalsOutputs are only updated at intervalsIntervals depend on the frequency of the clock, operation to be executed and on the software that executes itSampling may not even be constant during operation because of the need to perform different tasks at different timesErrors are due to changes in input/output between sampling to which the microprocessor is obliviousErrors are not fixed - depend among other things on how well the program is written