Embedded Microcontroller Systems More interfacing and examples Overview

Embedded Microcontroller Systems More interfacing and examples

Overview • • Performance metrics Synchronization methods I/O Devices and hardware interface issues Microcontroller in control systems Control block diagrams Actuators, plant, sensors Open loop, closed loop control Proportional and integral controllers

Performance Metrics u. C I/O Device • Latency – time delay between when I/O device is ready for service and when u. C responds. – input device – time between when data is ready and when it is actually latched into u. C – output device – time between when device is ready for new data and when it is sent.

Performance Metrics u. C I/O Device • Latency – Hardware delays in u. C subsystems – Software delays

Performance Metrics u. C I/O Device • Throughput – maximum data flow (bytes per second) that can be processed from the I/O device. – can be limited by u. C or by I/O device – can be reported as long term average or short term maximum

Performance Metrics u. C I/O Device • Priority – determines the order of service when more than two or more devices request at the same time. – determines if a high-priority device can suspend a lowpriority request that is currently being processed. – may want to implement equal priority so that no device monopolizes the u. C.

Real time systems • Hard real-time – guarantees a maximum latency. • Soft real-time – system supports priority.

Synchronization Methods • I/O devices can be in one of 3 “states” – idle – disabled or inactive, no I/O occurs – busy – working on generating an input (input I/O) or accepting an output (output I/O) – done – ready for a new transaction. • Busy to done transitions cause status flags to become true.

Synchronization – Gadfly Loop • Polling loop • Gadfly loop • Busy-waiting loop – software checks status flag in a loop that does not exit until the status flag is set. new data, gadfly loop completes INPUT DEVICE: waiting for input - busy new input is ready - done software reads data, asks for another

Synchronization – Gadfly Scenarios No Buffering Input Device: busy done u. C software: waiting for new input read process data waiting read data I/O bound Input Device: busy done waiting busy u. C software: process data CPU bound read process data

Synchronization – Gadfly Scenarios Buffering Input Device: busy done busy BUFFER process data u. C software: read process data As long as buffer is large enough, both software and I/O can operate at their maximum rate

Synchronization – Blind Cycle • Software waits a fixed amount of time and assumes I/O will complete within the delay. • No status flag from I/O device. • Used for I/O that has predictable delays. Input Device: busy done busy u. C software: process waiting read process data done waiting read data fixed delay

Synchronization - Interrupts • Interrupts – hardware causes software to execute ISR. • Global data structures used to communicate data between main program and ISR. • Timer interrupts used to execute specific functions at regular intervals.

Synchronization - Interrupts • Use interrupts when: – Arrival times of input is variable. – There are other things to do in main program. – I/O is important (alarm, hardware failure) but infrequent. • Buffering can also be used with interrupts to allow for better throughput. • Must not forget that interrupts slow the main program loop!

Buffering – FIFO Queue Producer (u. C or I/O) Put FIFO Get Consumer (u. C or I/O) • Data is received (Get) in the same order that it was transmitted (Put) • As long as FIFO is not full or empty, both producer and consumer operate at their own rate. • Need a way for producer and consumer to know if FIFO is full or empty.

Synchronization – Periodic Polling • Periodic polling – uses a clock/timer interrupt to periodically check the I/O status. – Used in cases where interrupts are desirable (there is much to do in the main program) but the I/O device does not support interrupts. – Keypad is an example – will investigate in the next exercise.

Synchronization - DMA • Direct Memory Access – I/O transfers data directly to/from memory. – Requires a DMA controller between memory and I/O device. – Used when bandwidth and latency are important parameters. – Data transfer only – no processing of data. Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

DMA • Burst mode DMA – a block transferred while the u. C is halted – used when u. C and DMA rates are similar • Cycle-stealing DMA – data is transferred during cycles when the u. C is not using the bus. – used when u. C rate is faster than I/O DMA Controller u. C addr Memory data Prof. Cherrice Traver I/O device EE/CS-152: Microprocessors and Microcontrollers

Slow I/O Interface Keypad – how slow can we go? Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

I/O Devices and hardware interface issues • Overview: • Categories of I/O • Input and Output examples • Output actuator examples • DC Motor (analog and digital control) • Stepper Motor • Output display example • LCD display (parallel and serial) Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

I/O Categories • Input devices – Sensors, User-input • Output devices – Actuators, Displays • Complex I/O devices (printers, faxes, coprocessors, etc) Analog I/O – – Voltage levels Current draw Sampling frequency Noise Prof. Cherrice Traver Digital I/O - Voltage levels - Synchronization - Throughput - Noise EE/CS-152: Microprocessors and Microcontrollers

Input Examples • Sensors – – – – light force sound position orientation proximity tactile temperature pressure humidity speed acceleration displacement Prof. Cherrice Traver • User input – – – – keyboards joysticks mouse keypad switches touchpad dial slider EE/CS-152: Microprocessors and Microcontrollers

Output Examples • Actuators – – – motors solenoids relays heaters lights piezoelectric materials (buzzers, linear actuator) – speakers Prof. Cherrice Traver • Displays – – – LED displays LCD displays CRT displays indicator lights indicator gauges EE/CS-152: Microprocessors and Microcontrollers

Example – DC Motor • Important in LOTS of applications – cameras, drives, elevators, trains, robots… • Many types, but all work similarly: – Apply voltage across + and – leads, electrical energy is converted to mechanical energy. – For some range of voltage, the torque of the motor shaft is proportional to value of voltage. Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Prof. Cherrice Traver d lle sta • Current required by motor depends on how it is loaded. • Current is almost always more than the u. C can provide. • Need an interface circuit between u. C and motor. Motor current (A) DC Motor loaded no load Applied voltage (volts) EE/CS-152: Microprocessors and Microcontrollers

Interfacing Motors Digital Outputs sed clo t tch swi curren • Basic idea is to use a flyback diode switch of some kind to isolate current in u. C External Voltage from motor current. + switch open current • Motor is an inductor though, so it stores current. motor • Flyback diode used to route current away from Control signal from switch when switch u. C opens to avoid damage to switch. Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Interfacing Motors Digital Outputs H-Bridge – circuit topology that allows bidirectional control of motor. + external voltage - • Each switch controlled by an output of the u. C. motor • Switches implemented by relays, solid-state switches, or transistors • Diodes omitted for simplicity. Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Interfacing Motors Analog Output • 8051 DAC can provide up to 15 m. A of current, up to 3. 3 V voltage. • Must provide both voltage and current amplification to drive a DC motor. used in the upcoming control lab – Amplifiers – Power MOSFETs – Motor driver ICs – Relays Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Stepper Motors • Inherent digital interface • Can easily control both position and velocity • Used in disk drives, printers, etc. • Small, fixed rotation per change in control signals Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Basic Operation • Simplified stepper motor S 5 S 4 N 5 + phase 1 - N 4 N 1 S 1 N 2 Changing polarity of stator magnets causes step. S 2 N 3 S 3 phase 2 + rotor electromagnets Prof. Cherrice Traver 5 “teeth” 360 5 = 72 moves 72 per “step” stator Typical stepper motors have 200 steps per revolution, with 1. 8 per step. EE/CS-152: Microprocessors and Microcontrollers

Stepper Motor Interface +Vmotor VDD 8051 port pins 4 -phase stepper motor Inverting buffers A A’ B B’ 1010 1001 0110 1010 Prof. Cherrice Traver 1. 8 EE/CS-152: Microprocessors and Microcontrollers

Output Display Example: LCD Display • LCD – Liquid Crystal Display – Lower power than LED display – More flexible in size and shape – Slower response time Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

LCD Operation • AC voltage required – DC voltage damages LCD • Control changes reflectivity of the liquid crystal material. • Actual light energy supplied by room light or back light. front plane CMOS back plane control 60 Hz Oscillator liquid crystal material Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

LCD Interfacing • Simple parallel interface – similar to LED: VDD 7 -segment LCD Driver/Decoder 8051 port pins A B C D Separate Front Planes a b c d e f g Common Back Plane 60 Hz Oscillator Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

LCD Interfacing • Serial driver interface MC 145000 LCD Driver 48 bit shift register data in clock data out 48 bit latch register BP 1 BP 2 BP 3 BP 4 FP 1 FP 2 FP 3 FP 4 FP 5 FP 6 FP 7 FP 8 FP 9 FP 10 FP 11 FP 12 48 segment LCD display Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Using Microcontrollers for Control • Overview – Open-loop control systems – Simple closed-loop control systems – Closed-loop position control – PID controllers Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Some Terminology • Control variables – properties we want to control (position, velocity, temperature, etc) • Control commands – output to actuators • Driving forces – the actuator forces that cause the control variables to change (heat, force, etc) • Physical plant – the thing being controlled Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Open-loop Control Systems • No feedback path from the plant • Note that these are all a function of time Desired control variables X*(t) Prof. Cherrice Traver Control commands U(t) u. C Actuators Driving Forces V(t) Physical Real control variables X(t) Plant EE/CS-152: Microprocessors and Microcontrollers

Open-loop Control Example • Stepper motor Desired control variables X*(t) desired shaft position specified in program Prof. Cherrice Traver Control commands U(t) u. C Actuators Driving Forces V(t) Physical Real control variables X(t) Plant Inverting driving buffers u. C stepper motor shaft position EE/CS-152: Microprocessors and Microcontrollers

Open-loop Control Example • Traffic light controller Inverting driving buffers u. C desired light pattern in software Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Closed-loop Control • Feedback from plant to controller Desired control variables X*(t) Control commands U(t) u. C Actuators Driving Forces V(t) Physical Real control variables X(t) Plant Sensor Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Closed-loop Control “Bang-bang control” • Bang-bang – control output can only turn something ON or OFF. No variable control. • Requires a “deadband” or “hysteresis” which defines a range of acceptable values for output otherwise the control system components can wear out from too many switching cycles. (Relays, for example, have a limited lifetime). • Works well with physical plant with a slow response time. Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Closed-loop Control Systems • Bang-bang control – temperature control example. Desired temperature, Tlow < Thigh Flowchart of control algorithm “plant” Heater estimate T’ u. C T’ > Thigh Turn off T’ Leave Prof. Cherrice Traver T’ < Tlow T’ Temperature sensor Turn on EE/CS-152: Microprocessors and Microcontrollers

Closed-loop Position Control • Incremental control – adds or subtracts a small constant from the output control command, U(t), in response to X(t) sensed. Desired control variables X*t Control commands U(t) u. C Actuators +1 or -1 Driving Forces V(t) Physical Real control variables X(t) Plant Sensor Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Incremental Control • Rate of sampling is very important – If sampling rate is too fast, actuators are saturated and a bang-bang system results. – If sampling rate is too slow, then controller will not keep up with plant. • Rule of thumb for rate: control execution rate is 10 x the step response of the plant. • Must check for underflow and overflow after increment or decrement. Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Closed-loop Control PID Controller • Faster and more accurate than previous systems. • Based on linear control theory. • Three components – sometimes fewer are used. – Proportional – output is linearly related to error signal. – Integral – output is related to integral of the error signal. – Derivative – output is related to derivative of the error. Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

PID Controller • To understand, must transform parts of control diagram into discrete time domain. • Very important to have periodic sampling and processing. • In the figure below, n is the sample number Desired output x* + e(n) u. C PID controller - u(n) Actuator p(t) Physical Plant Real control variables x(t) x’(n) Sensor error signal: e(n) = x*(n) - x’(n) Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

PID Controller u(t) = P(t) + I(t) + D(t) Proportional – output is proportional to error input Continuous time: P(t) = Kp * E(t) Discrete time: P(n) = Kp * E(n) Desired output x* + e(n) u. C PID controller - u(n) Actuator p(t) Physical Plant Actual Output x(t) x’(n) Sensor Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

PID Controller u(t) = P(t) + I(t) + D(t) Integral – output is proportional to integral of error signal Continuous time: I(t) = Ki E(t) dt Discrete time: I(n) = Ki E(n) t = Ki t E(n) I(n) e(t) Ki large n t I(t) I(n) Ki small t t Prof. Cherrice Traver n t is sampling period 1 2 3 4 5 EE/CS-152: Microprocessors and Microcontrollers n

Equation for Integral Component Discrete time: I(n) = Ki t E(n) integral += errorsig; //integral = integral + errorsig //integral is sum of errorsignals //integral includes: M_MEAS samples of error //multiplied by GAIN_PRECISION . . . output = Kp*errorsig / M_MEAS/GAIN_PRECISION + Ki * integral / M_MEAS / SAMPLERATE /GAIN_PRECISION = 1/ t Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

PID Controller u(t) = P(t) + I(t) + D(t) Derivative – output is proportional to derivative of error signal d. E Continuous: D(t) = Kd* dt Discrete: D(n) = Kd * E(n) – E(n-1) t t is sampling period Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

PI Controller for Position Control (we will not use the derivative term, which can cause instability) Desired position 1* (potentiometer) u. C 2(n) uf(n) PI controller ub(n) Servo p(t) Amplifier DC Motor Actual position 2(t) potentiometer Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

PI Controller Hardware Setup 8051 Microcontroller output potentiometer -15 to +15 V Input voltage conversion interface ADC 0. 0 0 - 2. 45 V ADC 0. 1 0 - 2. 45 V multiplexor setpoint potentiometer -15 to +15 V ADC 0 DAC 1 Prof. Cherrice Traver DAC 0 0 - 2. 45 V DAC 1 to SA 1 SOD Input 1 Output voltage conversion to SA 1 SOD Input 2 interface 0 - 2. 45 V EE/CS-152: Microprocessors and Microcontrollers

Circuit Schematics for Interface Circuits Input voltage conversion interface Prof. Cherrice Traver Output voltage conversion interface EE/CS-152: Microprocessors and Microcontrollers

PI Control Algorithm • Controller must execute the following tasks: – Sample inputs – Compute error value – Compute integral value – Compute output signal from error value, integral value and preset Kp and Ki. – Send computed output signals to amplifier Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Controller Performance Metrics • Stability – a requirement • Response time – how fast the output responds to the input. • Steady state error – how much the output differs from the input after it has settled. • For position controller – DEADBAND is a measure of the steady state error. Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Total Dead. Band Measurements input position 1 output position 2 DB ( 1) = 1 - 2 repeat for a negative angle, - 1 DB (- 1) = 2 - 1 TDB( 1) = |DB( 1)| + | DB(- 1)| Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Control your position! Prelab – software only Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
- Slides: 58