Skip to main content

2021 | Buch

Embedded Systems – A Hardware-Software Co-Design Approach

Unleash the Power of Arduino!

insite
SUCHEN

Über dieses Buch

This textbook introduces the concept of embedded systems with exercises using Arduino Uno. It is intended for advanced undergraduate and graduate students in computer science, computer engineering, and electrical engineering programs. It contains a balanced discussion on both hardware and software related to embedded systems, with a focus on co-design aspects. Embedded systems have applications in Internet-of-Things (IoT), wearables, self-driving cars, smart devices, cyberphysical systems, drones, and robotics. The hardware chapter discusses various microcontrollers (including popular microcontroller hardware examples), sensors, amplifiers, filters, actuators, wired and wireless communication topologies, schematic and PCB designs, and much more. The software chapter describes OS-less programming, bitmath, polling, interrupt, timer, sleep modes, direct memory access, shared memory, mutex, and smart algorithms, with lots of C-code examples for Arduino Uno. Other topics discussed are prototyping, testing, verification, reliability, optimization, and regulations. Appropriate for courses on embedded systems, microcontrollers, and instrumentation, this textbook teaches budding embedded system programmers practical skills with fun projects to prepare them for industry products.

Introduces embedded systems for wearables, Internet-of-Things (IoT), robotics, and other smart devices;Offers a balanced focus on both hardware and software co-design of embedded systems;Includes exercises, tutorials, and assignments.

Inhaltsverzeichnis

Frontmatter
Chapter 1. Introduction
Abstract
Embedded systems contain electronic computing elements (such as microcontrollers) with embedded computing program (such as firmware) and able to interact at least one element of surrounding. This chapter introduces the concept, provides basic block diagrams of such systems, and outlines history of these systems and future trends. Some key design metrics and challenges are also listed.
Bashir I. Morshed
Chapter 2. System Modeling
Abstract
This chapter introduces modeling needs for embedded systems in consideration to specifications and requirements. A modeling approach, Universal Modeling Language (UML), is discussed in further details along with its building blocks such as class, object, diagram, and relationships. Application of StartChart in embedded systems is also presented with various examples. Several examples of UML diagrams for embedded systems are also presented. Finally, design partitioning concept within hardware and software is presented, and Kopetz embedded system design principles are outlined.
Bashir I. Morshed
Chapter 3. Hardware Design
Abstract
Microcontrollers have evolved quickly in the last few decades. Newer generation microcontrollers are “computer-on-a-chip” that contains microprocessor, memory, and other peripherals, such as ADC, DAC, PWM, UART, etc. This chapter discusses analog front-end design for embedded systems with discussion on sensor selection, biasing, amplification, filtering, and ADC. The chapter also guidelines to design printed circuit board (PCB) using a freeware, KiCad. Special emphasis is given to embedded system specific hardware such as interrupt, timer, direct memory access, and low-power wireless communication.
Bashir I. Morshed
Chapter 4. Software Design
Abstract
This chapter discusses the software development process of embedded systems. Specific focus is given to OS-less approach on Arduino Uno with C programming. Bitmath is introduced which is essential for direct port access. In the context of Arduino Uno with its microcontroller ATmega328, many examples and references are included for ease of understanding of these concepts. Examples include usage of interrupt, timer, and direct memory access (Arduino Due). Finally, artificial intelligence is also introduced. For OS-based approach, key concepts are discussed including multithreading, multitasking, scheduling, and points out some shared memory issues and software performance measures.
Bashir I. Morshed
Chapter 5. Prototyping and Verification of ES
Abstract
This chapter outlines various testing and verification approaches for embedded systems. Prototyping phases are discussed including simulation, developmental board, and custom PCB approach. Testing approaches outlined along with a brief discussion on design for testability. Various types of verification methods are listed including functional, timing, and formal verification. Debugging approaches are also discussed along with definition of validation and evaluation.
Bashir I. Morshed
Chapter 6. Reliability of ES
Abstract
In this chapter, concepts related to embedded system reliability are introduced. Distinction among failure, error, and fault is clarified. Related fault analysis techniques such as FTA, FMEA, and fault injection are discussed. Some aspects of fault testing and dependability are outlined. Finally, the concept of redundancy is introduced to improve reliability of embedded systems.
Bashir I. Morshed
Chapter 7. Optimization of ES
Abstract
This chapter outlines optimization approaches for embedded systems. As this is multi-objective optimization problem, Pareto analysis is introduced. Scope of optimization is also discussed that includes power optimization, code level optimization, and task level optimization.
Bashir I. Morshed
Chapter 8. Impacts of ES
Abstract
In this chapter, impacts of embedded systems on society, economy, human, and environment are discussed. Open questions are raised regarding privacy and security concerns, ethical issues, and economical concerns.
Bashir I. Morshed
Backmatter
Metadaten
Titel
Embedded Systems – A Hardware-Software Co-Design Approach
verfasst von
Dr. Bashir I Morshed
Copyright-Jahr
2021
Electronic ISBN
978-3-030-66808-2
Print ISBN
978-3-030-66807-5
DOI
https://doi.org/10.1007/978-3-030-66808-2

Neuer Inhalt