2introductionWhat 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.
3introductionFocus 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
4The 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.
5The 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.
6The microprocessorTwo limits on the tasks microprocessors can perform:The limitations of the microprocessor itselfThe imagination (or capabilities) of the designer.
7The 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.
8The 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
9The 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
10The 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.
12The 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.
18The 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,
19The 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.
20The 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.)
21Addressing 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.
22SpeedMost 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
23Instruction 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.
24Instruction 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
25Input 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
26Input 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.
27Input 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.
28Clock 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).
29Clock 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.
30Clock and timers Registers Used for Execution of commands Control over the functions of the microprocessor,AddressingFlaggingStatus indication
31Memory 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.
32Memory 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
33Power 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
34Power 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.
35Other 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.
36Other 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
37Other 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)
38Programs 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.
39Programs 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.
40Programs 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.
41Programs 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.
42Examples 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.
43Interfacing Issues Three basic modes: 1. Continuous dedicated monitoring of the sensor by the microprocessor2. Polling the sensor3. Interrupt mode
44Continuous 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
45Poling 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
46Interrupt 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
47Notes: 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
49Input interfacing requirements Signal levelImpedance and matchingResponse, frequencySignal conditioningSignal scalingIsolationLoading
50Output interfacing requirements Signal levelsPower levelsIsolation
51Input 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
52Impedance 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
53Response 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
54Response 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
55Response 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
56Input 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
57Offset Example Thermistor: 500 at 20ºC Varies from 100 to 900 for temp. between 0 and 100ºC
58Offset 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
59Offset 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
60Offset - other solutions For ac signalsRectificationOnly appropriate if signal is unipolarBi-polar signals produce negative signalsCannot be used with microprocessors
61Offset - 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
62Scaling By amplification By attenuation Amplifiers are preferrable Operational amplifiersBy attenuationResistance dividersTransformers (for ac)Amplifiers are preferrableDividers introduce errorsTransformers are noisy and big
64Loading 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
65Output 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
66Output 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
68Output pins connection of loads Sourcing currentSinking currentThe two are somewhat different:
69Errors 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
70Resolution 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
71Resolution 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
72Resolution of modules PWM (Pulse Width Modulator) Given a clock frequency fosc, the PWM resolution is:
73CPU 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)
74Sampling 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