Download presentation
Presentation is loading. Please wait.
1
Embedded Microcontroller Systems
More interfacing and examples
2
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
3
Performance Metrics I/O Device uC Latency – time delay between when I/O device is ready for service and when uC responds. input device – time between when data is ready and when it is actually latched into uC output device – time between when device is ready for new data and when it is sent.
4
Performance Metrics Latency Hardware delays in uC subsystems
I/O Device uC Latency Hardware delays in uC subsystems Software delays
5
Performance Metrics I/O Device uC Throughput – maximum data flow (bytes per second) that can be processed from the I/O device. can be limited by uC or by I/O device can be reported as long term average or short term maximum
6
Performance Metrics I/O Device uC 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 low-priority request that is currently being processed. may want to implement equal priority so that no device monopolizes the uC.
7
Real time systems Hard real-time – guarantees a maximum latency.
Soft real-time – system supports priority.
8
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.
9
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: new input is ready - done waiting for input - busy software reads data, asks for another
10
Synchronization – Gadfly Scenarios No Buffering
Input Device: busy done busy done uC software: I/O bound waiting for new input read data process data read data waiting busy done Input Device: read data waiting uC software: process CPU bound
11
Synchronization – Gadfly Scenarios Buffering
Input Device: As long as buffer is large enough, both software and I/O can operate at their maximum rate busy done busy done busy done busy BUFFER process data read data process data read data process data uC software:
12
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 done uC software: process data read data process data read data waiting waiting fixed delay
13
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.
14
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!
15
Buffering – FIFO Queue Producer (uC or I/O) Consumer (uC or I/O) Put Get FIFO 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.
16
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.
17
EE/CS-152: Microprocessors and Microcontrollers
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
18
EE/CS-152: Microprocessors and Microcontrollers
DMA Burst mode DMA – a block transferred while the uC is halted used when uC and DMA rates are similar Cycle-stealing DMA – data is transferred during cycles when the uC is not using the bus. used when uC rate is faster than I/O DMA Controller I/O device uC addr Memory data Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
19
Keypad – how slow can we go?
Slow I/O Interface Keypad – how slow can we go? Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
20
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
21
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 Digital I/O Voltage levels - Voltage levels Current draw - Synchronization Sampling frequency - Throughput Noise Noise Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
22
EE/CS-152: Microprocessors and Microcontrollers
Input Examples Sensors light force sound position orientation proximity tactile temperature pressure humidity speed acceleration displacement User input keyboards joysticks mouse keypad switches touchpad dial slider Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
23
EE/CS-152: Microprocessors and Microcontrollers
Output Examples Actuators motors solenoids relays heaters lights piezoelectric materials (buzzers, linear actuator) speakers Displays LED displays LCD displays CRT displays indicator lights indicator gauges Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
24
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
25
DC Motor Current required by motor depends on how it is loaded.
Current is almost always more than the uC can provide. Need an interface circuit between uC and motor. Motor current (A) stalled loaded no load Applied voltage (volts) Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
26
Interfacing Motors Digital Outputs
Basic idea is to use a switch of some kind to isolate current in uC from motor current. Motor is an inductor though, so it stores current. Flyback diode used to route current away from switch when switch opens to avoid damage to switch. flyback diode External Voltage + switch open current switch closed current motor Control signal from uC Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
27
Interfacing Motors Digital Outputs
H-Bridge – circuit topology that allows bi-directional control of motor. Each switch controlled by an output of the uC. Switches implemented by relays, solid-state switches, or transistors Diodes omitted for simplicity. + external voltage - motor Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
28
Interfacing Motors Analog Output
8051 DAC can provide up to 15 mA of current, up to 3.3V voltage. Must provide both voltage and current amplification to drive a DC motor. Amplifiers Power MOSFETs Motor driver ICs Relays used in the upcoming control lab Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
29
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
30
EE/CS-152: Microprocessors and Microcontrollers
Basic Operation Simplified stepper motor 5 “teeth” 360 5 = 72 moves 72 per “step” Changing polarity of stator magnets causes step. Typical stepper motors have 200 steps per revolution, with 1.8 per step. - phase 2 + S5 N5 N1 + phase 1 - S4 S1 N4 N2 S3 S2 N3 rotor electromagnets stator Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
31
Stepper Motor Interface
+Vmotor VDD 4-phase stepper motor Inverting buffers 8051 A A’ B B’ port pins 1010 1001 0101 0110 1.8 1.8 Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
32
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
33
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
34
EE/CS-152: Microprocessors and Microcontrollers
LCD Interfacing Simple parallel interface – similar to LED: VDD 7-segment LCD Driver/Decoder Separate Front Planes 8051 a b c d e f g A B C D port pins Common Back Plane 60 Hz Oscillator Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
35
EE/CS-152: Microprocessors and Microcontrollers
LCD Interfacing Serial driver interface MC LCD Driver data in data out 48 bit shift register clock 48 bit latch register BP1 BP2 BP3 BP4 FP1 FP2 FP3 FP4 FP5 FP6 FP7 FP8 FP9 FP10 FP11 FP12 48 segment LCD display Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
36
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
37
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
38
Open-loop Control Systems
No feedback path from the plant Note that these are all a function of time Real control variables X(t) Control commands U(t) Driving Forces V(t) Desired control variables X*(t) Physical Plant Actuators uC Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
39
Open-loop Control Example
Stepper motor Real control variables X(t) Control commands U(t) Driving Forces V(t) Desired control variables X*(t) Physical Plant Actuators uC Inverting driving buffers desired shaft position specified in program uC stepper motor shaft position Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
40
Open-loop Control Example
Traffic light controller Inverting driving buffers uC desired light pattern in software Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
41
Closed-loop Control Feedback from plant to controller Physical
Real control variables X(t) Control commands U(t) Driving Forces V(t) Desired control variables X*(t) Physical Plant Actuators uC Sensor Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
42
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
43
Closed-loop Control Systems
Bang-bang control – temperature control example. Desired temperature, Tlow < T < Thigh “plant” Flowchart of control algorithm Heater estimate T’ uC T’ > Thigh T’ < Tlow T’ T’ Temperature sensor Turn off Leave Turn on Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
44
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. Real control variables X(t) Control commands U(t) Driving Forces V(t) Desired control variables X*t Physical Plant Actuators uC +1 or -1 Sensor Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
45
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 10x 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
46
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
47
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 Real control variables x(t) Desired output x* + e(n) uC PID controller Physical Plant u(n) p(t) Actuator - x’(n) Sensor error signal: e(n) = x*(n) - x’(n) Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
48
PID Controller u(t) = P(t) + I(t) + D(t) + uC Physical Plant - Sensor
Proportional – output is proportional to error input Continuous time: P(t) = Kp * E(t) Discrete time: P(n) = Kp * E(n) Actual Output x(t) Desired output x* + e(n) uC PID controller Physical Plant u(n) p(t) Actuator - x’(n) Sensor Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
49
PID Controller u(t) = P(t) + I(t) + D(t) Ki large Ki small
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 Ki small I(t) I(n) I(n) t t n n t is sampling period Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
50
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
51
PID Controller u(t) = P(t) + I(t) + D(t)
Derivative – output is proportional to derivative of error signal Continuous: D(t) = Kd* dE dt E(n) – E(n-1) t Discrete: D(n) = Kd * t is sampling period Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
52
PI Controller for Position Control
(we will not use the derivative term, which can cause instability) Desired position 1* (potentiometer) Actual position 2(t) uC PI controller DC Motor uf(n) Servo Amplifier p(t) 2(n) ub(n) potentiometer Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
53
PI Controller Hardware Setup
8051 Microcontroller setpoint potentiometer ADC0.0 Input voltage conversion interface -15 to +15V V multiplexor ADC0 ADC0.1 to SA1SOD Input 1 output potentiometer DAC0 Output voltage conversion interface -15 to +15V V DAC0 V to SA1SOD Input 2 DAC1 DAC1 V Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
54
EE/CS-152: Microprocessors and Microcontrollers
Circuit Schematics for Interface Circuits Input voltage conversion interface Output voltage conversion interface Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
55
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
56
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
57
Total DeadBand Measurements
input position output position 1 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
58
EE/CS-152: Microprocessors and Microcontrollers
Control your position! Prelab – software only Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.