首页>参考读物>电子电工>电子工程

嵌入式系统:硬件、软件及软硬件协同(原书第2版)
作者 : [美] 塔米·诺尔加德(Tammy Noergaard) 著
译者 : 马志欣 苏锐丹 付少锋 译
丛书名 : 计算机科学丛书
出版日期 : 2018-01-23
ISBN : 978-7-111-58887-0
定价 : 119.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 438
开本 : 16
原书名 : Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers, Second Edition
原出版社: Elsevier (Singapore) Pte Ltd
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

这是一本系统讲解嵌入式系统架构的书。讲述了板级和FPGA级两种典型架构。全书分为三个部分,第一部分主要介绍了嵌入式系统。第二部分介绍嵌入式系统的硬件开发。第三部分介绍嵌入式系统的软件开发。第四部分介绍软硬件协同开发。

图书特色

“本书填补了一个空白。大多数书籍都仅涉及嵌入式系统相关的一部分问题。正如书名所示,本书在详尽程度上是独一无二的。我认为它是必读的书。”
—— Jack Ganssle,嵌入式系统书籍作者、讲师、顾问

本书是了解构成嵌入式系统体系结构组件的一本实用性与技术性指南,非常适合作为嵌入式系统的工程师、程序员和设计人员等技术人员的入门书籍,也适合计算机科学、计算机工程和电气工程专业的学生使用。它为刚毕业的工程师提供了一个迫切需要的“全景图”以供他们第一次学习了解实际应用系统的设计,并为专业人士提供了可以领会嵌入式设计的关键要素的系统级视图,为他们获得相关技能提供了坚实的基础。

市场领先的介绍——真正全面覆盖专业人士进入嵌入式设计领域所需了解的所有专题。
用结合实际的方法阐述基础知识以及设计和构建体系结构的过程,使得本书成为对嵌入式系统初级开发人员或新手所喜欢的参考书:如果碰到问题,答案就在这里。
全面更新了关于FPGA、测试、中间件和C语言中的最新编程技术等方面的内容,加上完整的源代码和示例代码、在线参考设计和工具,使其成为完整的学习套装。
访问配套网站http://booksite.elsevier.com/9780123821966以获取源代码、设计实例、数据手册以及其他资料。

上架指导

计算机\嵌入式编程

封底文字

“本书填补了一个空白。大多数书籍都仅涉及嵌入式系统相关的一部分问题。正如书名所示,本书在详尽程度上是独一无二的。我认为它是必读的书。”
——Jack Ganssle,嵌入式系统书籍作者、讲师、顾问

本书是了解构成嵌入式系统体系结构组件的一本实用性与技术性指南,非常适合作为嵌入式系统的工程师、程序员和设计人员等技术人员的入门书籍,也适合计算机科学、计算机工程和电气工程专业的学生使用。它为刚毕业的工程师提供了一个迫切需要的“全景图”以供他们第一次学习了解实际应用系统的设计,并为专业人士提供了可以领会嵌入式设计的关键要素的系统级视图,为他们获得相关技能提供了坚实的基础。

- 市场领先的介绍——真正全面覆盖专业人士进入嵌入式设计领域所需了解的所有专题
- 用结合实际的方法阐述基础知识以及设计和构建体系结构的过程,使得本书成为对嵌入式系统初级开发人员或新手所喜欢的参考书:如果碰到问题,答案就在这里
- 全面更新了关于FPGA、测试、中间件和C语言中的最新编程技术等方面的内容,加上完整的源代码和示例代码、在线参考设计和工具,使其成为完整的学习套装
- 访问配套网站 http://booksite.elsevier.com/9780123821966 以获取源代码、设计实例、数据手册以及其他资料

推荐序

当Tammy Noergaard第一次告诉我她想写一本全方位介绍如何建立嵌入式系统的书时,我试图劝阻过她。该领域如此庞大,需要深入了解电子技术、逻辑电路、计算机设计、软件工程、C语言、汇编语言以及其他种种。但是在我们讨论的时候,她向我描述了这个行业在这方面的文献如何缺乏一本权威著作。我提醒她这个项目太大了。
经过一年多的讨论之后,联邦快递送来了这本书的审校副本。英文原书共有大约700页,几乎有关于这个方面的任何其他著作的两倍厚。你现在拿到的这本书实实在在是“工程师和程序员的综合指南”。当然,其中没有介绍PIC定时器的编程细节,但本书涉及的范围非常广泛而重要。
Tammy从电子技术的基本原理开始,进一步到软件再到昂贵的最终维护阶段。她将硬件和软件作为一个集成的整体来对待,这是符合嵌入式系统的本质的。然而,讽刺的是,开发者却越来越专业化了。没有几个软件人员会了解晶体管,而太多的电子工程师无法准确地详细描述出中间件是什么。我恐怕读者可能会跳过那些与眼前项目不相关的章节。
抵制住任何这样的诱惑!要通过拓宽你的视野,全方位了解这个迷人的领域,从而成为一名真正的大师,一个嵌入式专家。工程师是专业人士,你我都深知这一点。然而,真正的专业人士是那些学习新事物、应用新技术来解决问题的人。想想医生:20世纪40年代,青霉素的发现和生产完全改变了医药行业。任何忽视这种新技术的医生(他们在实践中依旧只使用在大学里学到的技能)突然仿佛变成了屠夫。软件和硬件开发人员面临着同样的情况。我上学的时候还没有C语言。FPGA也尚未发明。使用GOTO语句还很正常。我们学习的是借助原始工具链用机器代码为微处理器编程。而今天,我们知道变化有多么大。
变化总是越来越多,而变化的一阶导数是一个不断升值的正数。专业开发人员应该把这本书完整地读完,并不断寻求其他信息来源。如果你做不到每个月至少浏览几本技术杂志,每年读几本这样的书,那么不需要白垩纪小行星你都要变成恐龙了。
本书有些内容可能会让你感到惊讶。数据手册写了10页?事实上,数据手册是“合同式”承诺材料浓缩版的正式汇编。供应商承诺,只要我们以约定的方式使用这个产品,则它必然能够按照承诺工作。如果违反了任何可能的众多的指标规范,部件会不起作用或不能可靠工作。如果某些部件耗散功率不低于100W,那么即使像热特性那样的参数指标也与设备的指令集一样重要。
Tammy不惜使用大量的示例来阐明那些不易理解的知识点。工程(无论是硬件还是软件)是构建事物和解决问题的艺术。学者可以只研究纯理论,而我们实践开发人员通常是要通过了解事物的工作原理来得到最好的解决方案。因此,关于设备驱动程序的章节解释了构建这些通常较复杂的代码的繁杂程度,但是使用了与大量的实际应用示例相结合的方式来解释这些问题。
最后,Tammy关于嵌入式系统的体系结构业务周期的论点与我有强烈的共鸣。我们不会只是为了让自己心情愉快来建立这些东西(尽管我们当然希望如此),我们的目的是要解决重要的业务问题。我们做出的每一个决定都有其业务含义。功率要求过低和开发成本飙升,有时会导致项目不可行。对问题的糟糕分析(导致你不计成本添加过多闪存)可能会导致成本高到令人无法接受。如果从一个失败的公司选择了某些组件(硬件或软件),你将会因此遭受重大损失。
从这本书中获益,让自己在事业发展中永不过时吧。

Jack Ganssle

图书目录

出版者的话
第1版推荐序
致谢
关于作者
第一部分 嵌入式系统简介
第1章 嵌入式系统设计的系统化方法 2
1.1 什么是嵌入式系统 2
1.2 嵌入式系统的体系结构简介 3
1.3 嵌入式系统模型 5
1.4 为什么使用整体化、体系结构化的系统工程方法?黄金法则是什么 6
1.5 小结 11
习题 11
尾注 13
第2章 了解设计标准 14
2.1 编程语言概述及其标准示例 20
2.1.1 影响嵌入式系统体系结构的编程语言示例:脚本语言、Java和.NET 22
2.1.2 垃圾回收机制 25
2.1.3 处理Java字节码 27
2.2 标准与网络 30
2.2.1 互连设备间的距离 30
2.2.2 物理介质 31
2.2.3 网络架构 33
2.2.4 OSI模型 33
2.3 基于多种标准的设备示例:数字电视(DTV) 43
2.4 小结 55
习题 56
尾注 57
第二部分 嵌入式硬件
第3章 嵌入式硬件的组件和嵌入式系统板 60
3.1 学习硬件的第一节课:学习读懂原理图 60
3.2 嵌入式系统板和冯·诺依曼模型 63
3.3 给硬件供电 65
3.4 基础硬件材料:导体、绝缘体和半导体 67
3.5 电路板上和芯片中常见的无源元件:电阻器、电容器和电感器 70
3.5.1 电阻器 70
3.5.2 电容器 73
3.5.3 电感器 74
3.6 半导体以及处理器和存储器的有源构建模块 75
3.6.1 二极管 75
3.6.2 晶体管 76
3.6.3 从基本的门电路构建出更复杂的电路 80
3.6.4 时序逻辑和时钟 81
3.7 全部整合到一起:集成电路 83
3.8 小结 85
习题 85
尾注 89
第4章 嵌入式处理器 90
4.1 ISA体系结构模型 92
4.1.1 功能 92
4.1.2 ISA模型 97
4.2 处理器内部设计 102
4.2.1 中央处理单元 104
4.2.2 片上存储器 115
4.2.3 处理器I/O 124
4.2.4 处理器总线 141
4.3 处理器性能 142
4.4 阅读处理器的数据手册 144
4.5 小结 153
习题 153
尾注 155
第5章 板载存储器 156
5.1 ROM 159
5.2 RAM 162
5.3 辅助存储器 168
5.4 外部存储器的存储管理 171
5.5 板载存储器及其性能 172
5.6 小结 173
习题 173
尾注 174
第6章 板载 I/O 175
6.1 数据管理:串行I/O与并行I/O 177
6.1.1 串行I/O 177
6.1.2 并行I/O 184
6.2 互连I/O组件 191
6.2.1 互连I/O设备和嵌入式系统板 191
6.2.2 互连I/O控制器和主CPU 193
6.3 I/O与性能 193
6.4 小结 194
习题 194
尾注 197
第7章 板载总线 198
7.1 总线仲裁和时序 199
7.2 将总线与其他板载组件集成 206
7.3 总线性能 207
7.4 小结 207
习题 208
尾注 209
第三部分 嵌入式软件介绍
第8章 设备驱动程序 213
8.1 示例1:中断处理的设备驱动程序 216
8.1.1 中断优先级 218
8.1.2 上下文切换 221
8.1.3 中断设备驱动程序伪代码示例 222
8.1.4 中断处理及其性能 228
8.2 示例2:存储器设备驱动程序 229
8.3 示例3:板载总线设备驱动程序 246
8.4 板载I/O驱动程序示例 251
8.4.1 示例4:初始化以太网驱动程序 251
8.4.2 示例5:初始化RS-232驱动程序 264
8.5 小结 268
习题 268
尾注 270
第9章 嵌入式操作系统 271
9.1 什么是进程 274
9.2 多任务和进程管理 276
9.2.1 进程实现 276
9.2.2 进程调度 285
9.2.3 任务间通信和同步 294
9.3 内存管理 299
9.3.1 用户存储空间 300
9.3.2 内核存储空间 308
9.4 I/O和文件系统管理 309
9.5 操作系统标准示例:POSIX 310
9.6 操作系统性能指南 312
9.7 选择正确的嵌入式操作系统以及BSP 312
9.8 小结 313
习题 314
尾注 316
第10章 中间件和应用软件 317
10.1 什么是中间件 317
10.2 什么是应用程序 319
10.3 中间件示例 319
10.4 应用层软件示例 345
10.4.1 FTP客户端应用软件示例 346
10.4.2 SMTP和电子邮件示例 348
10.4.3 HTTP客户端和服务器示例 352
10.4.4 对应用整合的简要说明 354
10.5 小结 358
习题 358
尾注 360
第四部分 系统整合:设计与开发
第11章 定义系统:创建体系结构和设计文档化 362
11.1 创建嵌入式系统体系结构 363
11.1.1 阶段1:打好坚实的技术基础 364
11.1.2 阶段2:了解嵌入式系统的体系结构业务周期 364
11.1.3 阶段3:详细描述体系结构的模式和参考模型 372
11.1.4 阶段4:创建体系结构的框架 378
11.1.5 阶段5:体系结构的文档化 380
11.1.6 阶段6:对体系结构进行分析和评估 381
11.2 小结 382
习题 383
尾注 384
第12章 嵌入式系统设计的最后阶段:实现和测试 385
12.1 设计的实现 385
12.1.1 主要的软件实用工具:在编辑器或IDE中编写代码 386
12.1.2 CAD和硬件 387
12.1.3 翻译工具:预处理器、解释器、编译器和链接器 388
12.1.4 调试工具 390
12.1.5 系统启动 396
12.2 对设计的质量保证和测试 403
12.3 结论:维护与嵌入式系统及其他 406
习题 406
尾注 407
附录A 项目和练习 408
附录B 原理图符号 423

教学资源推荐
作者: (美)Dick Blandford John Parr 著
作者: 李华 吴建华 王安娜 等编著
作者: Nannapaneni Narayana Rao
作者: (美)Matthew N. O. Sadiku,Sarhan M. Musa,Charles K. Alexander著
参考读物推荐