Presentation is loading. Please wait.

Presentation is loading. Please wait.

Embedded Microcontroller Systems

Similar presentations


Presentation on theme: "Embedded Microcontroller Systems"— Presentation transcript:

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


Download ppt "Embedded Microcontroller Systems"

Similar presentations


Ads by Google