Zum Hauptinhalt springen
Nicht aus der Schweiz? Besuchen Sie lehmanns.de

Embedded Systems (eBook)

A Contemporary Design Tool

(Autor)

eBook Download: EPUB
2019 | 2. Auflage
John Wiley & Sons (Verlag)
978-1-119-45755-8 (ISBN)

Lese- und Medienproben

Embedded Systems - James K. Peckol
Systemvoraussetzungen
111,99 inkl. MwSt
(CHF 109,40)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Embedded Systems: A Contemporary Design Tool, Second Edition

Embedded systems are one of the foundational elements of today's evolving and growing computer technology. From operating our cars, managing our smart phones, cleaning our homes, or cooking our meals, the special computers we call embedded systems are quietly and unobtrusively making our lives easier, safer, and more connected. While working in increasingly challenging environments, embedded systems give us the ability to put increasing amounts of capability into ever-smaller and more powerful devices.

Embedded Systems: A Contemporary Design Tool, Second Edition introduces you to the theoretical hardware and software foundations of these systems and expands into the areas of signal integrity, system security, low power, and hardware-software co-design. The text builds upon earlier material to show you how to apply reliable, robust solutions to a wide range of applications operating in today's often challenging environments.

Taking the users problem and needs as your starting point, you will explore each of the key theoretical and practical issues to consider when designing an application in todays world. Author James Peckol walks you through the formal hardware and software development process covering:

  • Breaking the problem down into major functional blocks;
  • Planning the digital and software architecture of the system;
  • Utilizing the hardware and software co-design process;
  • Designing the physical world interface to external analog and digital signals;
  • Addressing security issues as an integral part of the design process;
  • Managing signal integrity problems and reducing power demands in contemporary systems;
  • Debugging and testing throughout the design and development cycle;
  • Improving performance.

Stressing the importance of security, safety, and reliability in the design and development of embedded systems and providing a balanced treatment of both the hardware and the software aspects, Embedded Systems: A Contemporary Design Tool, Second Edition gives you the tools for creating embedded designs that solve contemporary real-world challenges.

Visit the book's website at: http://bcs.wiley.com/he-bcs/Books?action=index&bcsId=11853&itemId=1119457505

JAMES K. PECKOL, PHD is a Principal Lecturer in the Department of Electrical Engineering at the University of Washington - Seattle, USA, where he has been named Teacher of the Year three times and Outstanding Faculty twice. He is also the founder of Oxford Consulting, Ltd., a product design and development consulting firm, is a member of Who's Who in the World, and has been presented with the Marquis Who's Who Lifetime Achievement Award.

JAMES K. PECKOL, PHD is a Principal Lecturer in the Department of Electrical Engineering at the University of Washington - Seattle, USA, where he has been named Teacher of the Year three times and Outstanding Faculty twice. He is also the founder of Oxford Consulting, Ltd., a product design and development consulting firm, is a member of Who's Who in the World, and has been presented with the Marquis Who's Who Lifetime Achievement Award.

About the Author xxxiii

Foreword xxxv

Preface xlix

Acknowledgment lix

About the Companion Website lxi

Part 1 Hardware and Software Infrastructure

1 The Hardware Side - Part 1: An Introduction 1

2 The Hardware Side - Part 2: Combinational Logic - A Practical View 55

3 The Hardware Side - Part 3: Storage Elements and Finite-State Machines - A Practical View 111

4 Memories and the Memory Subsystem 165

5 An Introduction to Software Modeling 215

6 The Software Side - Part 1: The C Program 243

7 The Software Side - Part 2: Pointers and Functions 279

Part 2 Developing the Foundation

8 Safety, Security, Reliability, and Robust Design 331

9 Embedded Systems Design and Development - Hardware- Software Co-Design 403

10 Hardware Test and Debug 507

Part 3 Doing the Work

11 Real-Time Kernels and Operating Systems 541

12 Tasks and Task Management 573

13 Deadlocks 625

14 Performance Analysis and Optimization 645

Part 4 Developing the Foundation

15 Working Outside of the Processor I: A Model of Interprocess Communication 715

16 Working Outside of the Processor I: Refining the Model of Interprocess Communication 733

17 Working Outside of the Processor II: Interfacing to Local Devices 789

18 Working Outside of the Processor III: Interfacing to Remote Devices 837

19 Programmable Logic Devices 869

20 Practical Considerations Signal Behavior in the Real World - Part 1 - Noise and Crosstalk 893

21 Practical Considerations Signal Behavior in the Real World - Part 2 - High-Speed Signaling 909

A Verilog Overview: The Verilog Hardware Description Language 949

Further Reading 981

Index 991

Foreword


Things to Look for…


  • The definition of an embedded system.
  • The need for embedded applications.
  • Some of the vocabulary of the field.
  • Philosophy for the development of embedded applications.
  • The major hardware and software components in an embedded system.
  • The design and development process of an embedded system.
  • Some of the basic architectures and how they evolved.

Introducing Embedded Systems


This foreword begins with some personal philosophy about the development of embedded systems. It also gives an overview of what an embedded system is and how such things are structured. It concludes with a high‐level view of the development process for an embedded system.

Philosophy


The approach and views on solving engineering problems in general taken in this work are my views and my approach; yours will probably be different, particularly as you learn and develop your skills and as the technology changes. This stuff is fun and challenging. At the same time, it is also important to recognize that not everyone feels the same way. If you have a different view, put this book down as quickly as you can, go out, and explore other vistas; go to the top of that next hill and then over it, until you find the things that are exciting and challenging for you.

As we begin, let's hop on a time machine and pop back, say 10 000 years or so to the shores of some beautiful lake somewhere. In the distance, we see some people walking along, picking up stones or rocks, or perhaps some sticks. Imagine what they might be thinking. Look, one person sees something. It's a small roundish flattish sort of rock – “ah ha,” he says, “I'll bet I can make this rock skip five or even ten times over that lake if I throw it just right. In fact, I can make it skip more times than you.” Another picks up a larger one – a round one too but more like a basketball. This could make a great chair (they probably didn't really say chair since the word hadn't been thought of yet). Yet another sees a long, stout stick – perfect for helping his mom walk since she's getting older. In each case, they saw the object from the outside. That's what first drew their interest – size, shape, color, and possible uses. Later, it was curiosity that drove them to learn more, to understand, to find out what was inside of something or what made it work. It's the drive to throw the rock further, make it skip more times, or make it shinier than the next guy that pushes us to constantly improve our designs.

Perhaps sometime during your early years someone told you that necessity was the mother of invention. Perhaps it was even your mother. Unfortunately, they lied. Necessity is not the mother of invention: laziness is. That's right, laziness. Our ancestors digging in the garden with sharpened sticks didn't say “I think I need a shovel.” They more likely said, “This is hard work and I'm sick of it. Why do I have to do all the work? I'd rather be relaxing under that tree over there. I think I'll invent a shovel so I can get this job done quicker. If I could invent gasoline, I'd invent a tractor and a plow and get this done even faster.”

We see here the two main themes that will be interwoven through each of the chapters ahead. With each new design, our first look should be from the outside. What are we designing? How will people use it – what is its behavior? What effect will it have on its operating environment – what are the outputs? What will be the effect of its operating environment – what are its inputs? How well do we have to do the job – what are the constraints? We want to look at the high‐level details first and then go on to the lower. We can borrow the idea of the public interface (an outside view) to our system from our colleagues working on object‐centered designs.

As technology advances, we are able to do more and more. Today, we can put over a thousand very powerful computers in the space that a single vacuum tube occupied several years ago. Keeping track of the behavior of a single vacuum tube offers minimal challenge. Orchestrating the information flow and managing the computation schedules of over one thousand high‐performance microprocessor cores is a much more interesting problem.

To address such problems, we must have tools – tools to help us attack the complexity of the designs we are undertaking today; tools to help us get the job done more quickly and more efficiently. Hey, sitting under that tree is not too bad of an idea. Philosophy is fun, but now it's time to get to work. Unfortunately, today we don't have any tools that will automatically get this knowledge into our head. Yet, where do we go in the next 20–50 years? What tools will we have then? Let your imagination go free – that's now your job as tomorrow's engineers and scientists.

Embedded Systems


We'll open by exploring embedded systems. Remember, as we start, embedded systems are not a stand‐alone field. We use the tools, techniques, and knowledge from just about every discipline in electrical engineering and computing science.

What Is an Embedded System?


Embedded systems are a combination of hardware and software parts, as well as other components that we bring together into products such as a cell phone, a music player, a network router, or an aircraft guidance system. They are a system within another system as we see in Figure 1.

Figure 1 A Simple Embedded System.

VLSI – Very Large‐Scale Integrated Circuits

Embedded systems techniques allow us to make products that are smaller, faster, more secure, reliable, and cheaper. They allow us to bring features and capabilities to everyday things that could only be dreamed about just a few years ago. VLSIVery Large‐Scale Integrated Circuits – are the key components in enabling all of this to happen. Yesterday, we talked about individual transistors or tens of transistors. Today, with VLSI we think in terms of millions of transistors collected into a single integrated circuit. Without VLSI, embedded systems would not be feasible, and without embedded systems VLSI would serve little purpose.

When we develop an application program, such as a word processing software or the latest video game, we want people to see it, to like it, and to buy it. If that does not happen, we have failed. In contrast, we intend our embedded designs to do their job securely, reliably, quietly, efficiently, and out of sight inside some larger system, such as the fuel control system in our car. We become aware that they are there only when they don't work.

Embedded systems present a variety of challenges as we bring the hardware, the software, and vagaries of the world outside of the microprocessor together. Seeing our design sending a rover across the plains, conducting experiments on Mars or photographing some planet in a distant galaxy, saving lives as a part of the latest heart monitoring system, or working as the core of the newest entertainment system – these are all the reasons we are in this business.

A few years ago when microprocessors and Programmable Read Only Memories (PROMs) first appeared as new tools, developing applications – firmware as it became known – was rather undemanding. Armed with a teletype, a simple assembler, and a host minicomputer, we were ready to go. “Sophisticated” applications of several hundred lines of code transformed rather complex, discrete, logic designs into simple, yet powerful, state‐of‐the‐art systems. Today, we are designing embedded applications comprising thousands of lines of code, multiple microprocessors, VLSI components, and array logics that may be distributed around an office or around the world. The complexity of today's problems has increased manyfold. To successfully attack such problems, we must develop and learn new tools to replace those we've grown comfortable with.

Unlike the desktop PC, an embedded computer must interact with a wide variety of analog and digital devices. The skilled embedded developer must know and understand the operation of sensors and transducers, analog‐to‐digital conversion (and vice versa), networks and their many protocols, motors, and other processors, as well as the more traditional peripherals. As we make our systems smaller and smaller, dozens of early physicists are lurking. Our old friends Maxwell, Faraday, Gauss, and Lenz are there to quickly point out when we've violated one of their laws. Solving problems arising from signal coupling, noise, electromagnetic interference, or propagation delays is challenging indeed – but necessary.

Building an Embedded System


system bus

Address, Data, Control

As we begin to study embedded applications, we will find that, in addition to a wide variety of other hardware components, we embed three basic kinds of computing engines into our systems: microprocessors, microcomputers, and microcontrollers. The microcomputer and other hardware elements are connected via the system bus, which provides an interconnecting path for electrical signals to flow. The system bus is actually subdivided into three busses, segregated by the information they carry:...

Erscheint lt. Verlag 15.4.2019
Sprache englisch
Themenwelt Mathematik / Informatik Informatik Theorie / Studium
Informatik Weitere Themen Hardware
Technik Elektrotechnik / Energietechnik
Schlagworte Application Design • BIST • bitwise operators • Cache • Caching • Capacitors • chip organization • circuit model • Clock Distribution • combinational circuits • Computer Engineering • Computer Science • Computertechnik • Computer Technology • conductors • C Program • CPU • datapath • data transfer • digital architecture • digital signal processor • Digital Signals • dividers • dram design • dynamic modeling • Electrical & Electronics Engineering • Electrical Engineering • Elektrotechnik u. Elektronik • Embedded Design • Embedded Systems • execution flow • Finite-State Machines • Hardware Design • Hardware Development • hardware infrastructure • hardware-software co-design • Inductance • Inductors • Informatik • Information interchange • interaction diagrams • i/o • life-cycle models • logic gate • logic levels • <p>activity diagram • memory interface • memory subsystem • Microcomputer • Microcontroller • microprocessor • MOCS • OSI • PAL • parasitic components • PLA • PLS • pointer variables • power demands • Processor • Programmierung / C u. C++ • Programming / C & C++ • propagation delay • RAM • real-time kernels • Registers • resistors • Rom • RTOS • Sequence Diagrams • Sequential Circuits • Signal integrity • signal levels • Signal Quality • software architecture • Software Design • software development • Software infrastructure • Software Modeling • SRAM design • state chart diagrams • state machines • structural faults • stuck-at faults • subsystems • System design • System Security • Systems Engineering & Management • Systemtechnik u. -management • TCP/IP • tristate drivers • UML • USB • wires</p>
ISBN-10 1-119-45755-6 / 1119457556
ISBN-13 978-1-119-45755-8 / 9781119457558
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Adobe DRM)

Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine Adobe-ID sowie eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich