没有合适的资源?快使用搜索试试~ 我知道了~
首页第四版:物联网与安全嵌入系统设计基石
"《计算机作为组件:嵌入式计算系统设计原理》第四版是一个反映嵌入式计算领域最新发展的教程。作者玛丽莲·沃尔夫在撰写本书时回顾了自1999年第一版以来的巨大变化。随着技术的进步,物联网(IoT)和安全与安全问题变得尤为重要。本书在原有内容基础上进行了大幅度更新。 首先,作者新增了一章关于物联网,探讨了物联网应用中的无线网络,并提供了组织物联网系统的模型。物联网不仅基于现有技术,而且已经成为嵌入式计算领域的重要议题。在新的章节中,读者可以学习到OSI和互联网协议的基础,以及针对物联网的独特话题。 其次,以前的高级主题如多处理器系统-on-chip和网络化嵌入式系统在第三版中合并在第八章。第四版将其拆分为三个章节:物联网章节(第八章)除了覆盖网络协议,还专门讨论物联网特有的内容;第九章关注汽车和飞机等交通工具中的网络化嵌入式系统,同时深入探讨了安全和安全相关的例子;第十章则聚焦于多处理器系统及其应用。 书中始终强调实践性,每个章节都配有实例和设计案例,如第一章的模型火车控制器和第三章的数据压缩器设计。作者鼓励读者通过这些实例了解设计过程和核心概念。此外,作者的个人博客<http://embeddedcps.blogspot.com/>提供了丰富的额外资源和实时的嵌入式计算话题讨论。 第四版《计算机作为组件》不仅涵盖了基础知识,如指令集、CPU结构、编程和内存管理,还紧跟时代潮流,探讨了新兴的物联网技术以及关键的安全与隐私问题,使其成为嵌入式系统设计者不可或缺的参考资料。"
资源详情
资源推荐
Preface to the Second Edition
Embedded computing is more important today than it was in 2000, when the first edition of this
book appeared. Embedded processors are in even more products, ranging from toys to airplanes.
Systems-on-chips now use up to hundreds of CPUs. The cell phone is on its way to becoming the
new standard computing platform. As my column in IEEE Computer in September 2006 indicated,
there are at least a half-million embedded systems programmers in the world today, probably
closer to 800,000.
In this edition I have tried to both update and to revamp. One major change is that the book now
uses the TI C55x DSP. I seriously rewrote the discussion of real-time scheduling. I have tried to
expand on performance analysis as a theme at as many levels of abstraction as possible. Given the
importance of multiprocessors in even the most mundane embedded systems, this edition also talks
more generally about hardware/software codesign and multiprocessors.
One of the changes in the field is that this material is taught at lower and lower levels of the
curriculum. What used to be graduate material is now upper-division undergraduate; some of this
material will percolate down to the sophomore level in the foreseeable future. I think that you can
use subsets of this book to cover both more advanced and more basic courses. Some advanced
students may not need the background material of the earlier chapters and you can spend more
time on software performance analysis, scheduling, and multiprocessors. When teaching
introductory courses, software performance analysis is an alternative path to exploring
microprocessor architectures as well as software; such courses can concentrate on the first few
chapters.
The new Website for this book and my other books is http://www.waynewolf.com. On this site,
you can find overheads for the material in this book, suggestions for labs, and links to more
information on embedded systems.
Acknowledgments
I would like to thank a number of people who helped me with this second edition. Cathy Wicks and
Naser Salameh of Texas Instruments gave me invaluable help in figuring out the C55x. Richard
Barry of freeRTOS.org not only graciously allowed me to quote from the source code of his
operating system but also helped clarify the explanation of that code. My editor at Morgan
Kaufmann, Chuck Glaser, knew when to be patient, when to be encouraging, and when to be
cajoling. (He also has great taste in sushi restaurants.) And of course, Nancy and Alec patiently let
me type away. Any problems, small or large, with this book are, of course, solely my responsibility.
Wayne Wolf, Atlanta, GA
16
Preface to the Third Edition
This third edition reflects the continued evolution of my thoughts on embedded computing and the
suggestions of the users of this book. One important goal was expanding the coverage of embedded
computing applications. Learning about topics such as digital still cameras and cars can take a lot of
effort. Hopefully this material will provide some useful insight into the parts of these systems that
most directly affect the design decision faced by embedded computing designers. I also expanded
the range of processors used as examples. I included sophisticated processors including the TI C64x
and advanced ARM extensions. I also included the PIC16F to illustrate the properties of small RISC
embedded processors. Finally, I reorganized the coverage of networks and multiprocessors to
provide a more unified view of these closely related topics. You can find additional material on the
course Website at http://www.marilynwolf.us. The site includes a complete set of overheads,
sample labs, and pointers to additional information.
I would like to thank Nate McFadden, Todd Green, and Andre Cuello for their editorial patience
and care during this revision. I would also like to thank the anonymous reviewers and Prof.
Andrew Pleszkun of the University of Colorado for their insightful comments on drafts. And I have
a special thanks for David Anderson, Phil Koopman, and Bruce Jacob who helped me figure out
some things. I would also like to thank the Atlanta Snowpocalypse of 2011 for giving me a large
block of uninterrupted writing time.
Most important of all, this is the right time to acknowledge the profound debt of gratitude I owe
to my father. He taught me how to work: not just how to do certain things, but how to approach
problems, develop ideas, and bring them to fruition. Along the way, he taught me how to be a
considerate, caring human being. Thanks, Dad.
Marilyn Wolf, Atlanta, GA
December 2011
17
Preface to the Fourth Edition
Preparing this fourth edition of Computers as Components makes me realize just how old I am. I put
together the final draft of the first edition in late 1999. Since that time, embedded computing has
evolved considerably. But the core principles remain. I have made changes throughout the book:
fixing problems, improving presentations, in some cases reordering material to improve the flow of
ideas, and deleting a few small items. Hopefully these changes improve the book.
The two biggest changes are the addition of a chapter on the Internet-of-Things (IoT) and
coverage of safety and security throughout the book. IoT has emerged as an important topic since
the third edition was published but it builds on existing technologies and themes. The new IoT
chapter reviews several wireless networks used in IoT applications. It also gives some models for
the organization of IoT systems. Safety and security have long been important to embedded
computing—the first edition of this book discussed medical device safety—but a series of incidents
have highlighted the critical nature of this topic.
In previous editions, advanced topics were covered in Chapter 8, which covered both
multiprocessor systems-on-chips and networked embedded systems. This material has been
expanded and separated into three chapters: the IoT chapter (Chapter 8) covers the material on OSI
and Internet protocols as well as IoT-specific topics; a chapter on automobiles and airplanes
(Chapter 9) explores networked embedded systems in the context of vehicles as well as covering
several examples in safety and security; and the embedded multiprocessor chapter (Chapter 10)
covers multiprocessor systems-on-chips and their applications.
As always, overheads are available on the book Website at http://www.marilynwolf.us. Some
pointers to outside Web material are also on that Website, but my new blog,
http://embeddedcps.blogspot.com/, provides a stream of posts on topics of interest to embedded
computing people.
I would like to thank my editor Nate McFadden for his help and guidance. Any deficiencies in
the book are of course the result of my own failings.
Marilyn Wolf, Atlanta, GA
November 2015
18
C H A P T E R 1
Embedded Computing
Abstract
In this chapter we set the stage for our study of embedded computing system design. To understand design processes, we first
need to understand how and why microprocessors are used for control, user interface, signal processing, and many other
tasks. The microprocessor has become so common that it is easy to forget how hard some things are to do without it.
Keywords
Design Methodology; Embedded computer; Microprocessor; Performance; Power; Safety; Security
CHAPTER POINTS
• Why we embed microprocessors in systems.
• What is difficult and unique about embedding computing and cyber-physical system design.
• Design methodologies.
• System specification.
• A guided tour of this book.
1.1. Introduction
In this chapter we set the stage for our study of embedded computing system design. To
understand design processes, we first need to understand how and why microprocessors are used
for control, user interface, signal processing, and many other tasks. The microprocessor has become
so common that it is easy to forget how hard some things are to do without it.
We first review the various uses of microprocessors. We then review the major reasons why
microprocessors are used in system design—delivering complex behaviors, fast design turnaround,
and so on. Next, in Section 1.2, we walk through the design of an example system to understand the
major steps in designing a system. Section 1.3 includes an in-depth look at techniques for specifying
embedded systems—we use these specification techniques throughout the book. In Section 1.4, we
use a model train controller as an example for applying these specification techniques. Section 1.5
provides a chapter-by-chapter tour of the book.
1.2. Complex systems and microprocessors
We tend to think of our laptop as a computer, but it is really one of many types of computer
systems. A computer is a stored program machine that fetches and executes instructions from a
memory. We can attach different types of devices to the computer, load it with different types of
software, and build many different types of systems.
So what is an embedded computer system? Loosely defined, it is any device that includes a
programmable computer but is not itself intended to be a general-purpose computer. Thus, a PC is
not itself an embedded computing system. But a fax machine or a clock built from a microprocessor
is an embedded computing system.
This means that embedded computing system design is a useful skill for many types of product
design. Automobiles, cell phones, and even household appliances make extensive use of
microprocessors. Designers in many fields must be able to identify where microprocessors can be
used, design a hardware platform with I/O devices that can support the required tasks, and
19
implement software that performs the required processing. Computer engineering, such as
mechanical design or thermodynamics, is a fundamental discipline that can be applied in many
different domains. Of course, embedded computing system design does not stand alone. Many of
the challenges encountered in the design of an embedded computing system are not computer
engineering—for example, they may be mechanical or analog electrical problems. In this book we
are primarily interested in the embedded computer itself, so we will concentrate on the hardware
and software that enable the desired functions in the final product.
1.2.1. Embedding computers
Computers have been embedded into applications since the earliest days of computing. One
example is the Whirlwind, a computer designed at MIT in the late 1940s and early 1950s. Whirlwind
was also the first computer designed to support real-time operation and was originally conceived
as a mechanism for controlling an aircraft simulator. Even though it was extremely large physically
compared to today's computers (it contained over 4000 vacuum tubes, for example), its complete
design from components to system was attuned to the needs of real-time embedded computing.
The utility of computers in replacing mechanical or human controllers was evident from the very
beginning of the computer era—for example, computers were proposed to control chemical
processes in the late 1940s [Sto95].
A microprocessor is a single-chip CPU. VLSI (very large-scale integration) technology has
allowed us to put a complete CPU on a single chip since the 1970s, but those CPUs were very
simple. The first microprocessor, the Intel 4004, was designed for an embedded application, namely,
a calculator. The calculator was not a general-purpose computer—it merely provided basic
arithmetic functions. However, Ted Hoff of Intel realized that a general-purpose computer
programmed properly could implement the required function and that the computer-on-a-chip
could then be reprogrammed for use in other products as well. Because integrated circuit design
was (and still is) an expensive and time-consuming process, the ability to reuse the hardware design
by changing the software was a key breakthrough. The HP-35 was the first handheld calculator to
perform transcendental functions [Whi72]. It was introduced in 1972, so it used several chips to
implement the CPU, rather than a single-chip microprocessor. However, the ability to write
programs to perform math rather than having to design digital circuits to perform operations such
as trigonometric functions was critical to the successful design of the calculator.
Automobile designers started making use of the microprocessor soon after single-chip CPUs
became available. The most important and sophisticated use of microprocessors in automobiles was
to control the engine: determining when spark plugs fire, controlling the fuel/air mixture, and so on.
There was a trend toward electronics in automobiles in general—electronic devices could be used to
replace the mechanical distributor. But the big push toward microprocessor-based engine control
came from two nearly simultaneous developments: The oil shock of the 1970s caused consumers to
place much higher value on fuel economy and fears of pollution resulted in laws restricting
automobile engine emissions. The combination of low fuel consumption and low emissions is very
difficult to achieve; to meet these goals without compromising engine performance, automobile
manufacturers turned to sophisticated control algorithms that could be implemented only with
microprocessors.
Microprocessors come in many different levels of sophistication; they are usually classified by
their word size. An 8-bit microcontroller is designed for low-cost applications and includes on-
board memory and I/O devices; a 16-bit microcontroller is often used for more sophisticated
applications that may require either longer word lengths or off-chip I/O and memory; and a 32-bit
RISC microprocessor offers very high performance for computation-intensive applications.
Given the wide variety of microprocessor types available, it should be no surprise that
microprocessors are used in many ways. There are many household uses of microprocessors. The
typical microwave oven has at least one microprocessor to control oven operation. Many houses
have advanced thermostat systems, which change the temperature level at various times during the
day. The modern camera is a prime example of the powerful features that can be added under
microprocessor control.
Digital television makes extensive use of embedded processors. In some cases, specialized CPUs
are designed to execute important algorithms—an example is the CPU designed for audio
processing in the SGS Thomson chip set for DirecTV [Lie98]. This processor is designed to
efficiently implement programs for digital audio decoding. A programmable CPU was used rather
20
剩余583页未读,继续阅读
luffzik
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 解决Eclipse配置与导入Java工程常见问题
- 真空发生器:工作原理与抽吸性能分析
- 爱立信RBS6201开站流程详解
- 电脑开机声音解析:故障诊断指南
- JAVA实现贪吃蛇游戏
- 模糊神经网络实现与自学习能力探索
- PID型模糊神经网络控制器设计与学习算法
- 模糊神经网络在自适应PID控制器中的应用
- C++实现的学生成绩管理系统设计
- 802.1D STP 实现与优化:二层交换机中的生成树协议
- 解决Windows无法完成SD卡格式化的九种方法
- 软件测试方法:Beta与Alpha测试详解
- 软件测试周期详解:从需求分析到维护测试
- CMMI模型详解:软件企业能力提升的关键
- 移动Web开发框架选择:jQueryMobile、jQTouch、SenchaTouch对比
- Java程序设计试题与复习指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功