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, 2nd Edition

Book Description

Fast and Effective Embedded Systems Design is a fast-moving introduction to embedded systems 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 to start. C/C++ programming is applied, with a step-by-step approach which allows you to get coding quickly. Once the basics are covered, the book progresses to some "hot" embedded issues – intelligent instrumentation, wireless and networked systems, digital audio and digital signal processing. In this new edition all examples and peripheral devices are updated to use the most recent libraries and peripheral devices, with increased technical depth, and introduction of the "mbed enabled" concept.

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 and techniques introduced, and considers applications in a wider context.

New Chapters on:

  • Bluetooth and ZigBee communication
  • Internet communication and control, setting the scene for the ‘Internet of Things’
  • Digital Audio, with high-fidelity applications and use of the I2S bus
  • Power supply, and very low power applications
  • The development process of moving from prototyping to small-scale or mass manufacture, with a commercial case study.
  • Updates all examples and peripheral devices to use the most recent libraries and peripheral products
  • Includes examples with touch screen displays and includes high definition audio input/output with the I2S interface
  • Covers the development process of moving from prototyping to small-scale or mass manufacture with commercial case studies
  • Covers hot embedded issues such as intelligent instrumentation, networked systems, closed loop control, and digital signal processing

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Companion Website
  5. Copyright
  6. Introduction
  7. Chapter 1. Embedded Systems, Microcontrollers, and ARM
    1. 1.1. Introducing Embedded Systems
    2. 1.2. Microprocessors and Microcontrollers
    3. 1.3. Development Processes for Embedded Systems
    4. 1.4. The World of ARM
    5. Chapter Review
    6. Quiz
  8. Part I. Essentials of Embedded Systems, Using the mbed
    1. 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
    2. 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. Digital Input and Output With the Application Board
      6. 3.6. Interfacing Simple Optodevices
      7. 3.7. Switching Larger DC Loads
      8. 3.8. Mini Project: Letter Counter
      9. Chapter Review
      10. Quiz
    3. 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
    4. Chapter 5. Analog Input
      1. 5.1. Analog-to-Digital Conversion (ADC)
      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 Projects
      7. Chapter Review
      8. Quiz
    5. 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. 6.7. Working With Bespoke Libraries
      8. Chapter Review
      9. Quiz
      10. References
    6. Chapter 7. Starting with Serial Communication
      1. 7.1. Introducing Synchronous Serial Communication
      2. 7.2. SPI
      3. 7.3. Intelligent Instrumentation
      4. 7.4. Evaluating SPI
      5. 7.5. The I2C Bus
      6. 7.6. Communicating With I2C-Enabled Sensors
      7. 7.7. Evaluating I2C
      8. 7.8. Asynchronous Serial Data Communication
      9. 7.9. USB
      10. 7.10. Mini Project: Multinode I2C Bus
      11. Chapter Review
      12. Quiz
    7. 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. Pixel Graphics—Implementing the NHD-C12832 Display
      6. 8.6. Color LCDs—Interfacing the uLCD-144-G2
      7. 8.7. Mini Project: Digital Spirit Level
      8. Chapter Review
      9. Quiz
    8. Chapter 9. Interrupts, Timers, and Tasks
      1. 9.1. Time and Tasks in Embedded Systems
      2. 9.2. Responding to External 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. Where Do We Go From Here? The Real-Time Operating System
      12. 9.12. Mini Projects
      13. Chapter Review
      14. Quiz
    9. Chapter 10. Memory and Data Management
      1. 10.1. A Memory Review
      2. 10.2. Introducing Pointers
      3. 10.3. Using Data Files With the mbed
      4. 10.4. Example mbed Data File Access
      5. 10.5. Using External SD Card Memory With the mbed
      6. 10.6. Using External USB Flash Memory With the mbed
      7. 10.7. Mini Project: Accelerometer Data Logging on Exceeding Threshold
      8. Chapter Review
      9. Quiz
  9. Part II. Moving to Advanced and Specialist Applications
    1. Chapter 11. Wireless Communication – Bluetooth and Zigbee
      1. 11.1. Introducing Wireless Data Communication
      2. 11.2. Bluetooth
      3. 11.3. Zigbee
      4. 11.4. Mini Projects
      5. Chapter Review
      6. Quiz
    2. Chapter 12. Internet Communication and Control
      1. 12.1. Introduction to Internet Communication
      2. 12.2. The Ethernet Communication Protocol
      3. 12.3. Local Area Network Communications With the mbed
      4. 12.4. Using Remote Procedure Calls With the mbed
      5. 12.5. Using the mbed With Wide Area Networks
      6. 12.6. The Internet of Things
      7. Chapter Review
      8. Quiz
    3. Chapter 13. Working With Digital Audio
      1. 13.1. An Introduction to Digital Audio
      2. 13.2. USB MIDI on the mbed
      3. 13.3. Digital Audio Processing
      4. 13.4. Digital Audio Filtering Example
      5. 13.5. Delay/Echo Effect
      6. 13.6. Working With Wave Audio Files
      7. 13.7. High-Fidelity Digital Audio With the mbed
      8. 13.8. Summary on Digital Audio and Digital Signal Processing
      9. 13.9. Mini Project: Portable Music Player
      10. Chapter Review
      11. Quiz
    4. Chapter 14. Letting Go of the mbed Libraries
      1. 14.1. Introduction: How Much Do We Depend on the mbed API
      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
    5. Chapter 15. Hardware Insights: Clocks, Resets, and Power Supply
      1. 15.1. Hardware Essentials
      2. 15.2. Clock Sources and Their Selection
      3. 15.3. Reset
      4. 15.4. Toward Low Power
      5. 15.5. Exploring mbed Power Consumption
      6. 15.6. Getting Serious About Low Power; the M0/M0+ Cores and the Zero Gecko
      7. Chapter Review
      8. Quiz
    6. Chapter 16. Developing Commercial Products With mbed
      1. 16.1. Embedded Systems Design Process
      2. 16.2. Using mbed-Enabled Platforms in Commercial Products
      3. 16.3. Implementing the mbed Architecture on a Bespoke Printed Circuit Board
      4. 16.4. Programming the LPC1768 Directly
      5. 16.5. Case Study: Irisense Temperature Logger With Touch Screen Display
      6. 16.6. Closing Remarks
      7. Chapter Review
      8. Quiz
  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. Using a Host Terminal Emulator
  15. Index