O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Fast and Effective Embedded Systems Design

Book Description

Fast and Effective Embedded Systems Design is a fast-moving introduction to embedded system design, applying the innovative ARM mbed and its web-based development environment. Each chapter introduces a major topic in embedded systems, and proceeds as a series of practical experiments, adopting a "learning through doing" strategy. Minimal background knowledge is needed. C/C++ programming is applied, with a step-by-step approach which allows the novice to get coding quickly. Once the basics are covered, the book progresses to some "hot" embedded issues – intelligent instrumentation, networked systems, closed loop control, and digital signal processing.

Written by two experts in the field, this book reflects on the experimental results, develops and matches theory to practice, evaluates the strengths and weaknesses of the technology or technique introduced, and considers applications and the wider context. Numerous exercises and end of chapter questions are included.

  • A hands-on introduction to the field of embedded systems, with a focus on fast prototyping
  • Key embedded system concepts covered through simple and effective experimentation
  • Amazing breadth of coverage, from simple digital i/o, to advanced networking and control
  • Applies the most accessible tools available in the embedded world
  • Supported by mbed and book web sites, containing FAQs and all code examples
  • Deep insights into ARM technology, and aspects of microcontroller architecture
  • Instructor support available, including power point slides, and solutions to questions and exercises

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Please visit the Companion
  5. Copyright
  6. Introduction
  7. Acknowledgments
  8. PART I: Essentials of Embedded Systems, using the mbed
    1. Chapter 1. Embedded Systems, Microcontrollers and ARM
      1. 1.1 Introducing Embedded Systems
      2. 1.2 Microprocessors and Microcontrollers
      3. 1.3 Development Processes in Embedded Systems
      4. 1.4 The World of ARM
      5. Chapter Review
      6. Quiz
      7. REFERENCES
    2. Chapter 2. Introducing the mbed
      1. 2.1 Introducing the mbed
      2. 2.2 Getting Started with the mbed: A Tutorial
      3. 2.3 The Development Environment
      4. Chapter Review
      5. Quiz
      6. REFERENCES
    3. Chapter 3. Digital Input and Output
      1. 3.1 Starting to Program
      2. 3.2 Voltages as Logic Values
      3. 3.3 Digital Output on the mbed
      4. 3.4 Using Digital Inputs
      5. 3.5 Interfacing Simple Opto Devices
      6. 3.6 Switching Larger DC Loads
      7. 3.7 Mini-Project: Letter Counter
      8. Chapter Review
      9. Quiz
      10. REFERENCES
    4. Chapter 4. Analog Output
      1. 4.1 Introducing Data Conversion
      2. 4.2 Analog Outputs on the mbed
      3. 4.3 Another Form of Analog Output: Pulse Width Modulation
      4. 4.4 Pulse Width Modulation on the mbed
      5. Chapter Review
      6. Quiz
      7. REFERENCE
    5. Chapter 5. Analog Input
      1. 5.1 Analog-to-Digital Conversion
      2. 5.2 Combining Analog Input and Output
      3. 5.3 Processing Data from Analog Inputs
      4. 5.4 Some Simple Analog Sensors
      5. 5.5 Exploring Data Conversion Timing
      6. 5.6 Mini-Project: Two-Dimensional Light Tracking
      7. Chapter Review
      8. Quiz
      9. REFERENCES
    6. Chapter 6. Further Programming Techniques
      1. 6.1 The Benefits of Considered Program Design and Structure
      2. 6.2 Functions
      3. 6.3 Program Design
      4. 6.4 Working with Functions on the mbed
      5. 6.5 Using Multiple Files in C/C++
      6. 6.6 Modular Program Example
      7. Chapter Review
      8. Quiz
    7. Chapter 7. Starting with Serial Communication
      1. 7.1 Introducing Synchronous Serial Communication
      2. 7.2 Serial Peripheral Interface
      3. 7.3 Intelligent Instrumentation and a SPI Accelerometer
      4. 7.4 Evaluating SPI
      5. 7.5 The Inter-Integrated Circuit Bus
      6. 7.6 Communicating with an I2C Temperature Sensor
      7. 7.7 Using the SRF08 Ultrasonic Range Finder
      8. 7.8 Evaluating I2C
      9. 7.9 Asynchronous Serial Data Communication
      10. 7.10 Mini-Project: Multi-Node I2C Bus
      11. Chapter Review
      12. Quiz
      13. REFERENCES
    8. Chapter 8. Liquid Crystal Displays
      1. 8.1 Display Technologies
      2. 8.2 Using the PC1602F LCD
      3. 8.3 Using the mbed TextLCD Library
      4. 8.4 Displaying Analog Input Data on the LCD
      5. 8.5 More Advanced LCDs
      6. 8.6 Mini-Project: Digital Spirit Level
      7. Chapter Review
      8. Quiz
      9. REFERENCES
    9. Chapter 9. Interrupts, Timers and Tasks
      1. 9.1 Time and Tasks in Embedded Systems
      2. 9.2 Responding to Event-Triggered Events
      3. 9.3 Simple Interrupts on the mbed
      4. 9.4 Getting Deeper into Interrupts
      5. 9.5 An Introduction to Timers
      6. 9.6 Using the mbed Timer
      7. 9.7 Using the mbed Timeout
      8. 9.8 Using the mbed Ticker
      9. 9.9 The Real Time Clock
      10. 9.10 Switch Debouncing
      11. 9.11 Mini-Projects
      12. Chapter Review
      13. Quiz
    10. Chapter 10. Memory and Data Management
      1. 10.1 A Memory Review
      2. 10.2 Using Data Files with the mbed
      3. 10.3 Example mbed Data File Access
      4. 10.4 Using External Memory with the mbed
      5. 10.5 Introducing Pointers
      6. 10.6 Mini-Project: Accelerometer Data Logging on Exceeding Threshold
      7. Chapter Review
      8. Quiz
      9. REFERENCES
  9. PART II: Moving to Advanced and Specialist Applications
    1. Chapter 11. An Introduction to Digital Signal Processing
      1. 11.1 What is a Digital Signal Processor?
      2. 11.2 Digital Filtering Example
      3. 11.3 An mbed DSP Example
      4. 11.4 Delay/Echo Effect
      5. 11.5 Working with Wave Audio Files
      6. 11.6 Summary on DSP
      7. 11.7 Mini-Project: Stereo Wave Player
      8. Chapter Review
      9. Quiz
      10. REFERENCES
    2. Chapter 12. Advanced Serial Communications
      1. 12.1 Introducing Advanced Serial Communication Protocols
      2. 12.2 Bluetooth Serial Communication
      3. 12.3 Introducing USB
      4. 12.4 Introducing Ethernet
      5. 12.5 Local Network and Internet Communications with the mbed
      6. Chapter Review
      7. Quiz
      8. REFERENCES
    3. Chapter 13. An Introduction to Control Systems
      1. 13.1 Control Systems
      2. 13.2 Closed Loop Digital Compass Example
      3. 13.3 Communicating Control Data over the Controller Area Network
      4. Chapter Review
      5. Quiz
      6. REFERENCES
    4. Chapter 14. Letting Go of the mbed Libraries
      1. 14.1 Introduction
      2. 14.2 Control Register Concepts
      3. 14.3 Digital Input/Output
      4. 14.4 Getting Deeper into the Control Registers
      5. 14.5 Using the DAC
      6. 14.6 Using the ADC
      7. 14.7 A Conclusion on using the Control Registers
      8. Chapter Review
      9. Quiz
      10. REFERENCE
    5. Chapter 15. Extension Projects
      1. 15.1 Where do We Go from Here?
      2. 15.2 Pololu Robot for mbed
      3. 15.3 Advanced Audio Projects
      4. 15.4 The Internet of Things
      5. 15.5 Introducing the mbed LPC11U24
      6. 15.6 From mbed to Manufacture
      7. 15.7 Closing Thoughts
      8. REFERENCES
  10. APPENDIX A: Some Number Systems
  11. APPENDIX B: Some C Essentials
  12. APPENDIX C: mbed Technical Data
  13. APPENDIX D: Parts List
  14. APPENDIX E: The Tera Term Terminal Emulator
  15. Index