1 / 58

Embedded Microcontroller Systems

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

virgenw
Download Presentation

Embedded Microcontroller Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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 • 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. I/O Device uC

  4. Performance Metrics • Latency • Hardware delays in uC subsystems • Software delays I/O Device uC

  5. Performance Metrics • 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 I/O Device uC

  6. Performance Metrics • 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. I/O Device uC I/O Device

  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. Input Device: busy done waiting busy done waiting busy CPU bound uC software: process data read data process data read data process data Synchronization – Gadfly ScenariosNo Buffering Input Device: busy done busy done uC software: I/O bound process data read data read data waiting for new input waiting

  11. Synchronization – Gadfly ScenariosBuffering Input Device: As long as buffer is large enough, both software and I/O can operate at their maximum rate busy done busy done done busy 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 process data read 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 • 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. Producer(uC or I/O) Consumer(uC or I/O) Put Get FIFO

  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. 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. EE/CS-152: Microprocessors and Microcontrollers

  18. 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 EE/CS-152: Microprocessors and Microcontrollers

  19. Slow I/O Interface Keypad – how slow can we go? 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) EE/CS-152: Microprocessors and Microcontrollers

  21. 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 EE/CS-152: Microprocessors and Microcontrollers

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

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

  24. 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. 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) EE/CS-152: Microprocessors and Microcontrollers

  26. Interfacing MotorsDigital 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 EE/CS-152: Microprocessors and Microcontrollers

  27. Interfacing MotorsDigital 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 EE/CS-152: Microprocessors and Microcontrollers

  28. Interfacing MotorsAnalog 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 EE/CS-152: Microprocessors and Microcontrollers

  29. 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 EE/CS-152: Microprocessors and Microcontrollers

  30. S1 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 N4 N2 S2 S3 N3 rotor electromagnets stator 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 1010 1.8 1.8  1.8  1.8  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 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 EE/CS-152: Microprocessors and Microcontrollers

  34. 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 EE/CS-152: Microprocessors and Microcontrollers

  35. LCD Interfacing • Serial driver interface MC145000 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 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 EE/CS-152: Microprocessors and Microcontrollers

  37. 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 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) Driving Forces V(t) Control commands U(t) Desired control variables X*(t) Physical Plant Actuators uC EE/CS-152: Microprocessors and Microcontrollers

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

  40. Open-loop Control Example • Traffic light controller Inverting driving buffers uC desired light pattern in software EE/CS-152: Microprocessors and Microcontrollers

  41. Closed-loop Control • Feedback from plant to controller Real control variables X(t) Driving Forces V(t) Control commands U(t) Desired control variables X*(t) Physical Plant Actuators uC Sensor 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. 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 Leave Turn on Turn off 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) Driving Forces V(t) Control commands U(t) Desired control variables X*t Physical Plant Actuators uC +1 or -1 Sensor EE/CS-152: Microprocessors and Microcontrollers

  45. 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. EE/CS-152: Microprocessors and Microcontrollers

  46. Closed-loop ControlPID 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. 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) EE/CS-152: Microprocessors and Microcontrollers

  48. 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) Actual Output x(t) Desired output x* + e(n) uC PID controller Physical Plant u(n) p(t) Actuator - x’(n) Sensor EE/CS-152: Microprocessors and Microcontrollers

  49. 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 Ki small I(t) I(n) I(n) t t n 1 2 3 4 5 n t is sampling period 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 EE/CS-152: Microprocessors and Microcontrollers

More Related