Book sale: Save up to 25% on print and eBooks. No promo code needed.
Book sale: Save up to 25% on print and eBooks.
Embedded System Design
Methodologies and Issues
1st Edition - September 14, 2023
Authors: Lawrence J. Henschen, Julia C. Lee
Paperback ISBN:9780443184703
9 7 8 - 0 - 4 4 3 - 1 8 4 7 0 - 3
eBook ISBN:9780443184710
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… Read more
Purchase Options
LIMITED OFFER
Save 50% on book bundles
Immediately download your ebook while waiting for your print delivery. No promo code is needed.
Embedded 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 / Navstem estimates the size of the US academic market for embedded systems design at 12,400 students annually, Engineers and product designers who have been working in industry and who graduated before embedded systems courses developed or went to colleges and universities that had not introduced such courses yet
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
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, USA
JL
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, USA