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.
Key Features
- 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
- Companion Website
- Introduction
- Chapter 1. Embedded Systems, Microcontrollers, and ARM
- 1.1. Introducing Embedded Systems
- 1.2. Microprocessors and Microcontrollers
- 1.3. Development Processes for Embedded Systems
- 1.4. The World of ARM
- Chapter Review
- Quiz
- Part I. Essentials of Embedded Systems, Using the mbed
- Chapter 2. Introducing the mbed
- 2.1. Introducing the mbed
- 2.2. Getting Started With the mbed: A Tutorial
- 2.3. The Development Environment
- Chapter Review
- Quiz
- Chapter 3. Digital Input and Output
- 3.1. Starting to Program
- 3.2. Voltages as Logic Values
- 3.3. Digital Output on the mbed
- 3.4. Using Digital Inputs
- 3.5. Digital Input and Output With the Application Board
- 3.6. Interfacing Simple Optodevices
- 3.7. Switching Larger DC Loads
- 3.8. Mini Project: Letter Counter
- Chapter Review
- Quiz
- Chapter 4. Analog Output
- 4.1. Introducing Data Conversion
- 4.2. Analog Outputs on the mbed
- 4.3. Another Form of Analog Output: Pulse Width Modulation
- 4.4. Pulse Width Modulation on the mbed
- Chapter Review
- Quiz
- Chapter 5. Analog Input
- 5.1. Analog-to-Digital Conversion (ADC)
- 5.2. Combining Analog Input and Output
- 5.3. Processing Data From Analog Inputs
- 5.4. Some Simple Analog Sensors
- 5.5. Exploring Data Conversion Timing
- 5.6. Mini Projects
- Chapter Review
- Quiz
- Chapter 6. Further Programming Techniques
- 6.1. The Benefits of Considered Program Design and Structure
- 6.2. Functions
- 6.3. Program Design
- 6.4. Working With Functions on the mbed
- 6.5. Using Multiple Files in C/C++
- 6.6. Modular Program Example
- 6.7. Working With Bespoke Libraries
- Chapter Review
- Quiz
- References
- Chapter 7. Starting with Serial Communication
- 7.1. Introducing Synchronous Serial Communication
- 7.2. SPI
- 7.3. Intelligent Instrumentation
- 7.4. Evaluating SPI
- 7.5. The I2C Bus
- 7.6. Communicating With I2C-Enabled Sensors
- 7.7. Evaluating I2C
- 7.8. Asynchronous Serial Data Communication
- 7.9. USB
- 7.10. Mini Project: Multinode I2C Bus
- Chapter Review
- Quiz
- Chapter 8. Liquid Crystal Displays
- 8.1. Display Technologies
- 8.2. Using the PC1602F LCD
- 8.3. Using the mbed TextLCD Library
- 8.4. Displaying Analog Input Data on the LCD
- 8.5. Pixel Graphics—Implementing the NHD-C12832 Display
- 8.6. Color LCDs—Interfacing the uLCD-144-G2
- 8.7. Mini Project: Digital Spirit Level
- Chapter Review
- Quiz
- Chapter 9. Interrupts, Timers, and Tasks
- 9.1. Time and Tasks in Embedded Systems
- 9.2. Responding to External Events
- 9.3. Simple Interrupts on the mbed
- 9.4. Getting Deeper Into Interrupts
- 9.5. An Introduction to Timers
- 9.6. Using the mbed Timer
- 9.7. Using the mbed Timeout
- 9.8. Using the mbed Ticker
- 9.9. The Real-Time Clock
- 9.10. Switch Debouncing
- 9.11. Where Do We Go From Here? The Real-Time Operating System
- 9.12. Mini Projects
- Chapter Review
- Quiz
- Chapter 10. Memory and Data Management
- 10.1. A Memory Review
- 10.2. Introducing Pointers
- 10.3. Using Data Files With the mbed
- 10.4. Example mbed Data File Access
- 10.5. Using External SD Card Memory With the mbed
- 10.6. Using External USB Flash Memory With the mbed
- 10.7. Mini Project: Accelerometer Data Logging on Exceeding Threshold
- Chapter Review
- Quiz
- Chapter 2. Introducing the mbed
- Part II. Moving to Advanced and Specialist Applications
- Chapter 11. Wireless Communication – Bluetooth and Zigbee
- 11.1. Introducing Wireless Data Communication
- 11.2. Bluetooth
- 11.3. Zigbee
- 11.4. Mini Projects
- Chapter Review
- Quiz
- Chapter 12. Internet Communication and Control
- 12.1. Introduction to Internet Communication
- 12.2. The Ethernet Communication Protocol
- 12.3. Local Area Network Communications With the mbed
- 12.4. Using Remote Procedure Calls With the mbed
- 12.5. Using the mbed With Wide Area Networks
- 12.6. The Internet of Things
- Chapter Review
- Quiz
- Chapter 13. Working With Digital Audio
- 13.1. An Introduction to Digital Audio
- 13.2. USB MIDI on the mbed
- 13.3. Digital Audio Processing
- 13.4. Digital Audio Filtering Example
- 13.5. Delay/Echo Effect
- 13.6. Working With Wave Audio Files
- 13.7. High-Fidelity Digital Audio With the mbed
- 13.8. Summary on Digital Audio and Digital Signal Processing
- 13.9. Mini Project: Portable Music Player
- Chapter Review
- Quiz
- Chapter 14. Letting Go of the mbed Libraries
- 14.1. Introduction: How Much Do We Depend on the mbed API
- 14.2. Control Register Concepts
- 14.3. Digital Input/Output
- 14.4. Getting Deeper Into the Control Registers
- 14.5. Using the DAC
- 14.6. Using the ADC
- 14.7. A Conclusion on Using the Control Registers
- Chapter Review
- Quiz
- Chapter 15. Hardware Insights: Clocks, Resets, and Power Supply
- 15.1. Hardware Essentials
- 15.2. Clock Sources and Their Selection
- 15.3. Reset
- 15.4. Toward Low Power
- 15.5. Exploring mbed Power Consumption
- 15.6. Getting Serious About Low Power; the M0/M0+ Cores and the Zero Gecko
- Chapter Review
- Quiz
- Chapter 16. Developing Commercial Products With mbed
- 16.1. Embedded Systems Design Process
- 16.2. Using mbed-Enabled Platforms in Commercial Products
- 16.3. Implementing the mbed Architecture on a Bespoke Printed Circuit Board
- 16.4. Programming the LPC1768 Directly
- 16.5. Case Study: Irisense Temperature Logger With Touch Screen Display
- 16.6. Closing Remarks
- Chapter Review
- Quiz
- Chapter 11. Wireless Communication – Bluetooth and Zigbee
- Appendix A. Some Number Systems
- Appendix B. Some C Essentials
- Appendix C. mbed Technical Data
- Appendix D. Parts List
- Appendix E. Using a Host Terminal Emulator
- Index
- Yiu, The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors, 3rd Edition, Newnes, 2014, 864pp, 9780124080829, $64.95
- Yiu, The Definitive Guide to the ARM Cortex-M0, Newnes, 2011, 552pp, 9780123854773, $58.95
-
Martin, The Designer's Guide to the Cortex-M Processor Family, Newnes, 2013, 320pp, 9780080982960, $59.95
Students studying embedded systems using ARM technology, Professional embedded systems engineers, and software engineers developing embedded systems.