Limited Offer
Fast and Effective Embedded Systems Design
From bits and bytes to IoT, with the Arm Mbed
- 3rd Edition - April 16, 2024
- Authors: Tim Wilmshurst, Rob Toulson, Tom Spink
- Language: English
- Paperback ISBN:9 7 8 - 0 - 3 2 3 - 9 5 1 9 7 - 5
- eBook ISBN:9 7 8 - 0 - 3 2 3 - 9 5 1 9 8 - 2
Fast and Effective Embedded Systems Design, Third Edition is a fast-moving introduction to embedded systems design, applying the innovative Arm mbed “ecosystem,” inc… Read more
Purchase options
Institutional subscription on ScienceDirect
Request a sales quoteFast and Effective Embedded Systems Design, Third Edition is a fast-moving introduction to embedded systems design, applying the innovative Arm mbed “ecosystem,” including both hardware components and its web-based development environment. Minimal background knowledge is needed to start. Each chapter introduces a major topic in embedded systems and proceeds as a series of practical experiments. A "learning through doing" strategy is adopted, with the underlying theory being introduced alongside. 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 topics – intelligent instrumentation, Bluetooth LE, Zigbee, real-time programming, and the Internet of Things.
In this new edition all code is refreshed to match the new mbed operating system, and much new code is introduced. The principles of real-time operating systems are explained, and the capabilities of the mbed RTOS are clearly demonstrated. This third edition will readily form the basis of introductory and intermediate university or college courses in embedded systems.
· Provides a hands-on introduction to the field of embedded systems, covering key concepts through simple and effective experimentation
· Features a wide range of coverage, from simple digital input/output to advanced networking and intelligent instrumentation
· Includes a new chapter on the Real-Time Operating System, with numerous examples
· Introduces two new chapters on the Internet of Things, with a major example project linking sensors through to the cloud
· Presents in-depth exploration of internal microcontroller features, leading to an understanding of configuration options and power supply optimization
Undergraduate students studying embedded systems using ARM technology/ Navstem estimated total annual US enrollment for embedded systems design courses in 2020 at 11,900 students, up 1% from the prior year. The market is quite segmented into more general embedded systems texts like our own Computers as Components by Marilyn Wolf and texts focusing on design using a specific technology, such as Toulson and Wilmshurst. Professional embedded systems engineers, and software engineers developing embedded systems.
- Cover image
- Title page
- Table of Contents
- Copyright
- Introduction
- Acknowledgments
- Part 1. Essentials of Embedded Systems, and Developing with Mbed
- Chapter 1. Embedded Systems, Microcontrollers, and Arm
- 1.1. Introducing Embedded Systems
- 1.2. Microprocessors and Microcontrollers
- 1.3. Code Development in Embedded Systems
- 1.4. The World of Arm
- Chapter Review
- Quiz
- Chapter 2. Introducing the World of Mbed
- 2.1. Introducing the Mbed Environment
- 2.2. Where Mbed Began—The Mbed LPC1768
- 2.3. Nucleo and the F401RE Development Board
- 2.4. The STM32 Discovery Kit IoT Node
- 2.5. The Framework for Mbed Code Development
- 2.6. The Studio Development Environments, and a First Program
- 2.7. The Mbed Application Board
- Chapter Review
- Quiz
- Chapter 3. Digital Input and Output
- 3.1. Starting to Program
- 3.2. Voltages as Logic Values
- 3.3. Digital Output
- 3.4. Using Digital Inputs
- 3.5. Digital Input and Output with the Application Board
- 3.6. Interfacing Simple Opto Devices
- 3.7. Switching Larger DC Loads
- 3.8. Mini-project: Letter Counter
- Chapter Review
- Quiz
- Chapter 4. Analog Output and Pulse Width Modulation
- 4.1. Introducing Data Conversion
- 4.2. Analog Outputs on the Mbed LPC1768
- 4.3. Another Way of Replicating Analog Output: Pulse Width Modulation
- 4.4. Pulse Width Modulation in the Mbed Environment
- Chapter Review
- Quiz
- Chapter 5. Analog Input
- 5.1. Analog-to-Digital Conversion
- 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. Introducing the Debugger
- 5.7. Mini-Projects
- Chapter Review
- Quiz
- Chapter 6. Interrupts and Timers
- 6.1. Thinking about Time
- 6.2. Responding to External Events
- 6.3. Interrupts with the Mbed Operating System
- 6.4. Getting Deeper into Interrupts
- 6.5. An Introduction to Timers
- 6.6. Using the Mbed Timer
- 6.7. Using the Mbed Timeout
- 6.8. Using the Mbed Ticker
- 6.9. The RTC
- 6.10. Switch Debouncing
- Chapter Review
- Quiz
- Chapter 7. Starting with Serial Communication
- 7.0. A Word on Inclusive Language
- 7.1. Introducing Synchronous Serial Communication
- 7.2. Serial Peripheral Interface
- 7.3. Intelligent Instrumentation and an SPI Accelerometer
- 7.4. Evaluating SPI
- 7.5. The Inter-integrated Circuit (I2C) Bus
- 7.6. Communicating with I2C-Enabled Sensors
- 7.7. Evaluating I2C
- 7.8. Asynchronous Serial Data Communication
- 7.9. USB
- 7.10. Using Serial on the ST IoT Discovery Board
- 7.11. Mini-projects
- 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 and the uLCD-144-G2
- 8.7. Mini-projects
- Chapter 9. Programming in Real Time
- 9.1. Multitasking and Real Time
- 9.2. Scheduling
- 9.3. The Mbed RTOS
- 9.4. Writing Multi-threaded Programs
- 9.5. The Mutex
- 9.6. The Semaphore
- 9.7. Using Interrupts with the RTOS
- 9.8. Queues and Memory Pools
- 9.9. The “Bare Metal” Profile
- Chapter Review
- Quiz
- Chapter 10. Memory and Data Management
- 10.1. A Memory Review
- 10.2. Some Programming Techniques for Data and File Management
- 10.3. The Mbed LPC1768 Local File System
- 10.4. Using External SD Card Memory
- 10.5. Mini Project: Accelerometer Data Logging on Exceeding Threshold
- Chapter Review
- Quiz
- Part 2. Wireless and the Internet of Things
- Chapter 11. Wireless Communication
- 11.1. Introducing Wireless Data Communication
- 11.1.3. A Word on Protocols
- 11.2. Bluetooth Low Energy
- 11.3. Zigbee
- 11.4. LoRa and LoRaWAN
- 11.5. Mini Projects
- Chapter Review
- Quiz
- Chapter 12. Towards the Internet of Things
- 12.1. What is the Internet of Things?
- 12.2. Core Components in the IoT
- 12.3. Case Studies
- 12.4. Building a Full-stack IoT System: An Activity Tracker
- 12.5. Summary
- 12.6. Mini Projects
- Chapter Review
- Quiz
- Chapter 13. Further Aspects of the IoT
- 13.1. Ethernet
- 13.2. Wi-Fi
- 13.3. Getting Data from A to B
- 13.4. Data Exchange
- 13.5. Challenges and Risks in Building IoT Systems
- 13.6. Powering the IoT “Things”
- Chapter Review
- Quiz
- Part 3. Deeper Details
- Chapter 14. Working Directly with the Control Registers
- 14.1. Introduction: Given the Mbed OS, Why Learn about Control Registers?
- 14.2. Control Register Concepts
- 14.3. Digital I/O
- 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. Some Hardware Insights: Clocks, Resets, and Power Supply
- 15.1. Hardware Essentials—Power Supply
- 15.2. Clock Sources and Their Selection
- 15.3. Reset
- 15.4. Toward Low Power
- 15.5. Exploring Mbed LPC1768 Power Consumption
- 15.6. Reviewing the Nucleo F401RE Clock and Power Features
- 15.7. Getting Serious about Low Power: The M0/M0+ Cores and the Zero Gecko
- Chapter Review
- Quiz
- Appendix A. Some Number Systems
- Appendix B. Some C Essentials, with a Little C++
- Appendix C. Mbed LPC1768 Technical Data
- Appendix D. Parts List
- Appendix E. Using a Host Terminal Emulator
- Index
- No. of pages: 560
- Language: English
- Edition: 3
- Published: April 16, 2024
- Imprint: Newnes
- Paperback ISBN: 9780323951975
- eBook ISBN: 9780323951982
TW
Tim Wilmshurst
Tim Wilmshurst has designed numerous embedded and electronic systems, including systems in climatic monitoring, earthquake research, wind tunnels, and autonomous vehicles. He is the author of several textbooks on embedded system design. In his teaching, Tim advocates “learning through doing” and problem-based learning. He has been Head of Electrical Engineering at Botswana Polytechnic, Senior Design Engineer at Cambridge University, and Head of Electronics at Derby University. He is now a freelance technical author and educator.
RT
Rob Toulson
Rob Toulson is a Visiting Professor at the University of Westminster, as well as founder and director of RT Sixty, a company that develops innovative applications for the audiovisual and music industries. His expertise covers a broad range of fields, including mobile application development, digital signal processing, embedded systems, musical acoustics, music production, and interactive sound design.
TS
Tom Spink
Tom Spink is a lecturer in computer science at the University of St Andrews. Throughout his research, he has pioneered the use of hardware virtualization support for dynamic binary translation, and he is currently investigating how Internet of Things systems can be efficiently simulated at scale. He is broadly interested in the area of computer systems, and more specifically compilers, runtimes, virtualization, and operating systems.