Embedded System Design
Methodologies and Issues
- 1st Edition - September 14, 2023
- Authors: Lawrence J. Henschen, Julia C. Lee
- Language: English
- Paperback ISBN:9 7 8 - 0 - 4 4 3 - 1 8 4 7 0 - 3
- eBook ISBN:9 7 8 - 0 - 4 4 3 - 1 8 4 7 1 - 0
Embedded Systems Design: Methodologies and Issues presents methodologies for designing these systems and discusses major issues, both present and future, that designers must consid… Read more
Purchase options
Institutional subscription on ScienceDirect
Request a sales quoteEmbedded Systems Design: Methodologies and Issues presents methodologies for designing these systems and discusses major issues, both present and future, that designers must consider in bringing products with embedded processing to market. The book starts from the first step after product proposal (behavioral modeling) and goes through the steps for modeling internal operations. Specific areas of focus include methods for designing safe, reliable, and robust embedded systems. Sections cover selection of processors and related hardware as well as issues involved in designing related software. Finally, the book present issues that will occur in systems designed for the Internet of Things. This book is for junior/senior/MS students in computer science, computer engineering, and electrical engineering who intend to take jobs in industry designing and implementing embedded systems and Internet of Things applications.
- Focuses on the design of embedded systems, starting from product conception through high-level modeling and up to the selection of hardware, software, and network platforms
- Discusses the trade-offs of the various techniques presented so that engineers will be able to make the best choices for designs for future products
- Contains a section with three chapters on making designs that are reliable, robust, and safe
- Includes a discussion of the two main models for the structure of the Internet of Things, as well as the issues engineers will need to take into consideration in designing future IoT applications
- Uses the design of a bridge control system as a continuing example across most of the chapters in order to illustrate the differences and trade-offs of the various techniques
Junior, senior, and MS students in computer engineering, electrical engineering, and computer science
- Cover image
- Title page
- Table of Contents
- Copyright
- Preface
- Acknowledgements
- Chapter 1. Introduction to Internet of Things and embedded systems
- 1.1. Introduction
- 1.2. Introduction to Internet of Things (IoT)
- 1.3. The Internet of Things vs. embedded systems
- 1.4. Brief history of three underlying technologies
- 1.5. The embedded system development process
- 1.6. Summary
- Problems
- Part 1. Modeling the system under development
- Introduction
- Chapter 2. First stage modeling – modeling interaction between the system and the environment
- 2.1. Introduction
- 2.2. Actors, use cases, and scenarios
- 2.3. Universal access – scenarios involving actors with disabilities or limitations
- 2.4. UML and tools for use case development and analysis
- 2.5. Summary
- Problems
- Chapter 3. Finite-state machines
- 3.1. Introduction
- 3.2. Finite-state machines
- 3.3. Refining and correcting FSMs
- 3.4. Determinism versus non-determinism
- 3.5. Timed FSMs
- 3.6. Hierarchical FSMs
- 3.7. Issues with concurrency
- 3.8. Summary
- Problems
- Chapter 4. Modeling physically distributed embedded systems
- 4.1. Introduction
- 4.2. Messages
- 4.3. SDL – an example modeling language for distributed systems
- 4.4. Determinism revisited
- 4.5. Summary
- Problems
- Chapter 5. Petri Nets for modeling concurrency and shared resources
- 5.1. Introduction
- 5.2. Condition/event and place/transition Petri Nets
- 5.3. Reachability
- 5.4. The incidence matrix associated with a place/transition network and proving properties
- 5.5. Predicate/transition Petri Nets and colored Petri Nets
- 5.6. Petri Nets with time
- 5.7. Summary
- Problems
- Part 2. Building robust, safe, and correct systems
- Introduction
- Chapter 6. Designing systems that are safe and robust
- 6.1. Introduction
- 6.2. Definitions
- 6.3. Estimating and using failure rates
- 6.4. Principles for designing safe and robust systems
- 6.5. Summary
- Problems
- Chapter 7. Verification, validation, and evaluation
- 7.1. Introduction
- 7.2. Verification
- 7.3. Validation
- 7.4. Evaluation
- 7.5. Summary
- Problems
- Chapter 8. Testing
- 8.1. Introduction
- 8.2. Simulation/emulation
- 8.3. Discrete event simulation
- 8.4. Generating test cases
- 8.5. Summary
- Problems
- Part 3. Hardware
- Introduction
- Chapter 9. Introduction and overview
- 9.1. Introduction
- 9.2. Overview of the structure of an embedded system
- 9.3. Example structure of a modest-sized system
- Chapter 10. Processing elements
- 10.1. Introduction
- 10.2. Microcontroller vs. microprocessor
- 10.3. Features to consider when selecting a processing element
- 10.4. Sample processors
- 10.5. A special note about start-up times
- 10.6. Summary
- Problems
- Chapter 11. Memories
- 11.1. Introduction
- 11.2. Physical-level issues
- 11.3. Logical-level issues
- 11.4. Summary
- Problems
- Chapter 12. Field-programmable gate arrays
- 12.1. Introduction
- 12.3. Algorithms in hardware
- 12.4. Low-end FPGAs and CPLDs
- 12.5. Summary
- Problems
- Chapter 13. Devices, sensors, and actuators
- 13.1. Introduction
- 13.2. Digital inputs
- 13.3. Analog inputs
- 13.4. Digital outputs
- 13.5. Analog outputs
- 13.6. Interfacing large numbers of digital inputs and outputs
- 13.7. Common output devices
- 13.8. PWM for controlling motors, LEDs, etc.
- 13.9. Sampling periodic analog signals
- 13.10. Summary
- Problems
- Chapter 14. Energy
- 14.1. Introduction
- 14.2. Proximity to reliable energy sources
- 14.3. Batteries
- 14.4. Energy harvesting
- 14.5. Design strategies
- 14.6. Summary
- Problems
- Chapter 15. Hardware-software mapping
- 15.1. Introduction
- 15.2. Task graphs, task splitting, and task merging
- 15.3. Integer linear programming for finding acceptable solutions
- 15.4. Pareto optimality
- 15.5. Summary
- Problems
- Part 4. Software
- Introduction
- Chapter 16. Operating systems
- 16.1. Introduction
- 16.2. Operating system features and support
- 16.3. Buy or build
- 16.4. Real-time operating system issues
- 16.5. Classification of real-time applications
- 16.6. Summary
- Problems
- Chapter 17. Scheduling
- 17.1. Introduction
- 17.2. Definitions and notation
- 17.3. Independent periodic tasks with preemption
- 17.4. Dependent periodic tasks
- 17.5. Independent aperiodic tasks
- 17.6. Dependent aperiodic tasks
- 17.7. Scheduling for a fixed number of processors
- 17.8. Estimating execution times – worst-case execution time
- 17.9. Summary
- Problems
- Chapter 18. Semaphores
- 18.1. Introduction
- 18.2. Motivation
- 18.3. Semaphores
- 18.4. Issues with priority – priority inversion
- 18.5. Summary
- Problems
- Chapter 19. Optimization and other special considerations
- 19.1. Introduction
- 19.2. Fixed point arithmetic
- 19.3. Optimizations for loop processing
- 19.4. Summary
- Problems
- Part 5. Communications
- Introduction
- Chapter 20. Introduction to communications and messages
- 20.1. Introduction
- 20.2. Messages and message passing
- 20.3. Summary
- Problems
- Chapter 21. Networks
- 21.1. Introduction
- 21.2. Brief history of networking
- 21.3. Basic network concepts
- 21.4. Classification of networks
- 21.5. Network topologies
- 21.6. Physical considerations
- 21.7. Summary
- Problems
- Chapter 22. The Internet
- 22.1. Introduction
- 22.2. The Open Systems Interconnection model
- 22.3. Transport Control Protocol and Internet Protocol
- 22.4. The ethernet protocol
- 22.5. Summary
- Problems
- Chapter 23. Low-level communication protocols
- 23.1. Introduction
- 23.2. Common serial protocols for wired connections
- 23.3. Common low-power wireless protocols and technologies for computer networks
- 23.4. Contention and collisions
- 23.5. Summary
- Problems
- Chapter 24. Cloud vs. edge vs. local computing
- 24.1. The cloud
- 24.2. Issues for embedded system design
- 24.3. Summary
- Problems
- Part 6. The Internet of Things
- Introduction
- Chapter 25. Reference models for the Internet of Things
- 25.1. Introduction
- 25.2. The IoT World Forum model
- 25.3. The INTEL model
- 25.4. Summary
- Problems
- Chapter 26. IoT issues
- 26.1. Introduction
- 26.2. Things
- 26.3. Scale
- 26.4. Heterogeneity of things
- 26.5. Security, privacy, and trust
- 26.6. Connectivity
- 26.7. Issues regarding big data and data ownership
- 26.8. Summary
- Problems
- Index
- No. of pages: 528
- Language: English
- Edition: 1
- Published: September 14, 2023
- Imprint: Morgan Kaufmann
- Paperback ISBN: 9780443184703
- eBook ISBN: 9780443184710
LH
Lawrence J. Henschen
Lawrence J. Henschen is Professor Emeritus of Electrical and Computer Engineering at Northwestern University. Dr. Henschen received the B.A., M.A., and Ph.D. degrees in Mathematics from the University of Illinois at Urbana-Champaign in 1966, 1968, and 1971 respectively. In 1971 he joined the faculty of Northwestern University as Assistant Professor and was promoted to Associate and then to Full Professor in the Electrical Engineering and Computer Science Department. He served as Associate Dean of Students in The Graduate School from 2000 to 2009. Dr. Henschen's research spans topics from artificial intelligence to real-time embedded systems. He has graduated 71 PhD students. Eighteen of these have taken positions as professors. Four have risen to become department chairs, deans, or associate provosts. Three have started their own companies. Dr. Henschen has authored or co-authored over 130 scientific articles. He has taught courses at levels ranging from freshman to advanced graduate in topics including programming, artificial intelligence, intelligent databases, embedded systems, and the Internet of Things.
Affiliations and expertise
Department of Electrical and Computer Engineering, Northwestern University, Evanston, IL, USAJL
Julia C. Lee
Julia C. Lee received MS and PhD degrees in Computer Science in 1982 and 1992, respectively, from Northwestern University. Dr. Lee worked in the Computer Division of AT&T from 1982 to 1987. She worked for Computer Science Corporation (CSC) as a Senior Member of the Technical Staff (SMTS) from 1987 to 1990. She worked for the Decision and Information Science Division of Argonne National Laboratory as assistant computer scientist from 1991 to 1997. During this time, she did research in areas of AI, Deductive Database, and Text processing algorithms/tools. From 1997 to 2002, she worked as MTS for Lucent technology. From 2003 to 2009, she worked for the School of Continuing Studies at Northwestern University as instructor, teaching 8 different computer science courses for adult students. From 2009 to 2012, she worked as IT consultant for the Graduate School of Northwestern University. From 2012 to 2017, she worked for the McCormick School of Engineering and Applied Science as Senior Web Application/Software Developer; during this time, she also co-taught the “Embedded System” class in the Department of Electrical and Computer Engineering. After retiring from Northwestern University IT, she is continuing free-lance research related to IoT and embedded systems and publishing papers in conferences.
Affiliations and expertise
Department of Electrical and Computer Engineering, Northwestern University, Evanston, IL, USARead Embedded System Design on ScienceDirect