PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS
CONTENTS INTRODUCTION WHAT IS A TIME-TRIGGERED EMBEDDED SYSTEM? 1 1 INTRODUCTION 1 2 INFORMATION SYSTEMS 1 3 DESKTOP SYSTEMS 1 4 REAL-TIME SYSTEMS 1 5 EMBEDDED SYSTEMS 1 6 EVENT-TRIGGERED SYSTEMS 1 7 TIME-TRIGGERED SYSTEMS 1 8 CONCLUSIONS DESIGNING EMBEDDED SYSTEMS USING PATTERNS 2 1 INTRODUCTION 2 2 LIMITATIONS OF EXISTING SOFTWARE DESIGN TECHNIQUES 2 3 PATTERNS 2 4 PATTERNS FOR TIME-TRIGGERED SYSTEMS 2 5 CONCLUSIONS PART A HARDWARE FOUNDATIONS THE 8051 MICROCONTROLLER FAMILY S TA N D A R D S M A L L E X T E N D E D OSCILLATOR HARDWARE C R Y S TA L O S C I L L AT O R C E R A M I C R E S O N AT O R RESET HARDWARE R C R E S E T R O B U S T R E S E T MEMORY ISSUES O N- C H I P M E M O R Y O F F- C H I P D ATA M E M O R Y O F F- C H I P C O D E M E M O R Y DRIVING DC LOADS N A K E D L E D N A K E D L O A D I C B U F F E R B J T D R I V E R I C D R I V E R M O S F E T D R I V E R S S R D R I V E R (DC) DRIVING AC LOADS E M R D R I V E R S S R D R I V E R ( A C) PART B SOFTWARE FOUNDATIONS A RUDIMENTARY SOFTWARE ARCHITECTURE S U P E R L O O P P R O J E C T H E A D E R USING THE PORTS P O R T I/ O P O R T H E A D E R DELAYS H A R D WA R E D E L AY S O F T WA R E D E L AY WATCHDOGS H A R D WA R E WAT C H D O G PART C TIME-TRIGGERED ARCHITECTURES FOR SINGLE-PROCESSOR SYSTEMS AN INTRODUCTION TO SCHEDULERS INTRODUCTION THE DESKTOP OS ASSESSING THE SUPER LOOP ARCHITECTURE A BETTER SOLUTION EXAMPLE: FLASHING AN LED EXECUTING MULTIPLE TASKS AT DIFFERENT TIME INTERVALS WHAT IS A SCHEDULER? CO-OPERATIVE AND PRE-EMPTIVE SCHEDULING A CLOSER LOOK AT PRE-EMPTIVE SCHEDULERS 13 10 CONCLUSIONS CO-OPERATIVE SCHEDULERS C O- O P E R AT I V E S C H E D U L E R LEARNING TO THINK CO-OPERATIVELY L O O P T I M E O U T H A R D WA R E T I M E O U T TASK-ORIENTED DESIGN M U LT I- S TA G E TA S K M U LT I- S TAT E TA S K HYBRID SCHEDULERS H Y B R I D S C H E D U L E R PART D THE USER INTERFACE P C L I N K ( R S-232) SWITCH INTERFACES S W I T C H I N T E R FA C E ( S O F T WA R E) S W I T C H I N T E R FA C E ( H A R D WA R E) O N- O F F S W I T C H M U LT I- S TAT E S W I T C H KEYPAD INTERFACES K E Y PA D I N T E R FA C E MULTIPLEXED LED DISPLAYS M X L E D D I S P L AY CONTROLLING LCD PANELS L C D C H A R A C T E R PA N E L PART E USING SERIAL PERIPHERALS USING ‘I2C’ PERIPHERALS I 2C P E R I P H E R A L USING ‘SPI’ PERIPHERALS S P I P E R I P H E R A L PART F TIME-TRIGGERED ARCHITECTURES FOR MULTIPROCESSOR SYSTEMS AN INTRODUCTION TO SHARED-CLOCK SCHEDULERS 25 1 INTRODUCTION 25 2 ADDITIONAL CPU PERFORMANCE AND HARDWARE FACILITIES 25 3 THE BENEFITS OF MODULAR DESIGN 25 4 HOW DO WE LINK MORE THAN ONE PROCESSOR 25 5 WHY ADDITIONAL PROCESSORS MAY NOT ALWAYS IMPROVE RELIABILITY 25 6 CONCLUSIONS SHARED-CLOCK SCHEDULERS USING EXTERNAL INTERRUPTS S C I S C H E D U L E R ( T I C K) S C I S C H E D U L E R ( D ATA) SHARED-CLOCK SCHEDULERS USING THE UART S C U S C H E D U L E R ( L O C A L) S C U S C H E D U L E R ( R S-232) S C U S C H E D U L E R ( R S-485) SHARED-CLOCK SCHEDULERS USING CAN S C C S C H E D U L E R DESIGNING MULTIPROCESSOR APPLICATIONS D ATA U N I O N L O N G TA S K D O M I N O TA S K PART G MONITORING AND CONTROL COMPONENTS PULSE-RATE SENSING H A R D WA R E P U L S E C O U N T S O F T WA R E P U L S E C O U N T PULSE-RATE MODULATION H A R D WA R E P R M S O F T WA R E P R M USING ANALOGUE-TO-DIGITAL CONVERTERS (ADCS) O N E- S H O T A D C A D C P R E- A M P S E Q U E N T I A L A D C A- A F I LT E R C U R R E N T S E N S O R PULSE-WIDTH MODULATION H A R D WA R E P W M P W M S M O O T H E R 3- L E V E L P W M S O F T WA R E P W M USING DIGITAL-TO-ANALOG CONVERTERS (DACS) D A C O U T P U T D A C S M O O T H E R D A C D R I V E R TAKING CONTROL P I D C O N T R O L L E R PART H SPECIALIZED TIME-TRIGGERED ARCHITECTURES REDUCING THE SYSTEM OVERHEADS 255- T I C K S C H E D U L E R O N E- TA S K S C H E D U L E R O N E- Y E A R S C H E D U L E R INCREASING THE STABILITY OF THE SCHEDULING S TA B L E S C H E D U L E R CONCLUSIONS WHAT THIS BOOK HAS TRIED TO DO 38 1 INTRODUCTION 38 2 WHAT THIS BOOK HAS TRIED TO DO 38 3 CONCLUSIONS COLLECTED REFERENCES AND BIBLIOGRAPHY 39 1 COMPLETE LIST OF PUBLICATIONS 39 2 OTHER PATTERN COLLECTIONS 39 3 DESIGN TECHNIQUES FOR REAL-TIME/EMBEDDED SYSTEMS 39 4 DESIGN TECHNIQUES FOR HIGH-RELIABILITY SYSTEMS 39 5 THE 8051 MICROCONTROLLER 39 6 RELATED PUBLICATIONS BY THE AUTHOR