本书介绍嵌入式系统应用设计技术,不仅介绍嵌入式系统技术的基本理论和技术概念,而且突破了以往微机原理或单片机原理等技术书籍的体系,将嵌入式系统硬件和操作系统作为统一的技术平台来介绍,完全符合嵌入式技术的基本特点。另外,还提供并分析了多个应用实例,使得本书不仅具有较高的学术参考价值,还具有重要的技术参考价值。
本书是美国加州大学Riverside分校“嵌入式系统入门”课程的教材,先修课程是“逻辑设计”。因此,本书可作为大多数电子和计算机工程/科学本科生、研究生嵌入式系统课程的教材,也可以作为本科生高年级设计课程以及从事嵌入式系统开发的一般工程技术人员的参考资料。
第1章 绪论
1.1 嵌入式系统综述
1.2 设计上的挑战——设计指标的最佳化
1.2.1 常用设计指标
1.2.2 上市时间
1.2.3 NRE与单位成本
1.2.4 性能
1.3 处理器技术
1.3.1 通用处理器——软件
1.3.2 单用途处理器——硬件
1.3.3 专用处理器
1.4 IC技术
1.4.1 全定制/VLSI
1.4.2 半定制ASIC(逻辑门阵列和标准单元)
1.4.3 PLD
1.4.4 发展趋势
1.5 设计技术
1.5.1 编译/综合
1.5.2 库/IP
1.5.3 测试/验证
1.5.4 其他提高效率的方法
1.5.5 发展趋势
1.6 设计方法的取舍
1.7 小结与本书概要
1.8 参考文献
1.9 习题
第2章 定制单用途处理器——硬件
2.1 引言
2.2 组合逻辑
2.2.1 晶体管与逻辑门
2.2.2 基本组合逻辑设计
2.2.3 RTL组合元件
2.3 时序逻辑
2.3.1 触发器
2.3.2 RTL时序元件
2.3.3 时序逻辑设计
2.4 定制单用途处理器的设计
2.5 RTL定制单用途处理器设计
2.6 定制单用途处理器的最佳化
2.6.1 原始程序的最佳化
2.6.2 FSMD的最佳化
2.6.3 数据路径的最佳化
2.6.4 FSM的最佳化
2.7 小结
2.8 参考文献
2.9 习题
第3章 通用处理器——软件
3.1 引言
3.2 基本结构
3.2.1 数据路径
3.2.2 控制单元
3.2.3 存储器
3.3 运算
3.3.1 指令执行
3.3.2 流水线技术
3.3.3 超标量和超长指令字结构
3.4 程序员的观点
3.4.1 指令集
3.4.2 程序和数据存储器空间
3.4.3 寄存器
3.4.4 输入/输出
3.4.5 中断
3.4.6 实例:设备驱动程序的汇编语言编程
3.4.7 操作系统
3.5 开发环境
3.5.1 设计流程和工具
3.5.2 实例:一个简单处理器的指令集仿真程序
3.5.3 测试和调试
3.6 专用指令集处理器
3.6.1 单片机
3.6.2 数字信号处理器
3.6.3 较不通用的ASIP环境
3.7 微处理器的选择
3.8 通用处理器设计
3.9 小结
3.10 参考文献
3.11 习题
第4章 标准单用途处理器——外部设备
4.1 引言
4.2 定时器、计数器与看门狗定时器
4.2.1 定时器和计数器
4.2.2 实例:反应定时器
4.2.3 看门狗定时器
4.2.4 实例:利用看门狗定时器实现自动提款机的计时超时功能
4.3 UART
4.4 脉宽调制器
4.4.1 概述
4.4.2 实例:利用PWM控制直流电机
4.5 LCD控制器
4.5.1 概述
4.5.2 实例:LCD初始化
4.6 键盘控制器
4.7 步进电机控制器
4.7.1 概述
4.7.2 实例:步进电机驱动器的使用
4.7.3 实例:直接控制步进电机
4.8 模数转换器
4.9 实时时钟
4.10 小结
4.11 参考文献
4.12 习题
第5章 存储器
5.1 引言
5.2 存储器写入能力和存储的永久性
5.2.1 写入能力
5.2.2 存储的永久性
5.2.3 选择
5.3 常见存储器类型
5.3.1 只读存储器简介
5.3.2 掩膜编程程序ROM
5.3.3 OPT ROM——一次可编程ROM
5.3.4 EPROM——可擦除的可编程ROM
5.3.5 EEPROM——电擦除的可编程ROM
5.3.6 快闪存储器
5.3.7 随机存取存储器简介
5.3.8 SRAM——静态RAM
5.3.9 DRAM——动态RAM
5.3.10 PSRAM——准静态RAM
5.3.11 NVRAM——非易失性RAM
5.3.12 实例:HM6264和27C256 RAM/ROM器件
5.3.13 实例:TC55V2325FF100存储器件
5.4 存储器的组合
5.5 存储器分级和高速缓冲存储器
5.5.1 高速缓冲存储器映射技术
5.5.2 高速缓冲存储器置换策略
5.5.3 高速缓冲存储器写入技术
5.5.4 高速缓冲存储器对系统性能的影响
5.6 高级RAM
5.6.1 基本DRAM
5.6.2 快速页模式DRAM(FPM DRAM)
5.6.3 扩展数据输出DRAM(EDO DRAM)
5.6.4 同步(S)和增强型同步(ES)DRAM
5.6.5 Rambus DRAM(RDRAM)
5.6.6 DRAM集成问题
5.6.7 存储器管理单元(MMU)
5.7 小结
5.8 参考文献
5.9 习题
第6章 接口
6.1 引言
6.2 通信基础
6.2.1 基本术语
6.2.2 基本协议概念
6.2.3 实例:ISA总线协议——存储器存取
6.3 微处理器接口:I/O寻址
6.3.1 基于端口的I/O和基于总线的I/O
6.3.2 存储器映射I/O和标准I/O
6.3.3 实例:ISA总线协议——标准I/O
6.3.4 实例:一个基本的存储器协议
6.3.5 实例:复杂的存储器协议
6.4 微处理器接口技术:中断
6.5 微处理器接口技术:直接存储器存取(DMA)
6.6 仲裁
6.6.1 优先权仲裁器
6.6.2 菊花链仲裁
6.6.3 面向网络的仲裁方法
6.6.4 实例:使用中断表的向量中断
6.7 多级总线结构
6.8 高级通信原理
6.8.1 并行通信
6.8.2 串行通信
6.8.3 无线通信
6.8.4 分层
6.8.5 检错和纠错
6.9 串行协议
6.9.1 I2C
6.9.2 CAN
6.9.3 Firewire
6.9.4 USB
6.10 并行协议
6.10.1 PCI总线
6.10.2 ARM总线
6.11 无线协议
6.11.1 IrDA
6.11.2 蓝牙
6.11.3 IEEE 802.11
6.12 小结
6.13 参考文献
6.14 习题
第7章 数码相机实例
7.1 引言
7.2 简单数码相机的简介
7.2.1 用户的观点
7.2.2 设计者的观点
7.3 需求规范
7.3.1 非功能要求
7.3.2 非正式的功能规范
7.3.3 精确的功能规范
7.4 设计
7.4.1 实现一:只使用控制器
7.4.2 实现二:单片机和CCDPP
7.4.3 实现三:单片机和CCDPP/定点DCT
7.4.4 实现四:单片机和CCDPP/DCT
7.5 小结
7.6 参考文献
7.7 习题
第8章 状态机与并发进程模型
8.1 引言
8.2 模型与语言、文字与图形
8.2.1 模型与语言
8.2.2 文字语言与图形语言
8.3 一个简单的实例
8.4 一个基本的状态模型: 有限状态机
8.5 具有数据路径的有限状态机模型: FSMD
8.6 状态机的使用
8.6.1 将系统描述为状态机
8.6.2 状态机与时序程序模型的比较
8.6.3 用时序程序语言表达状态机
8.7 HCFSM和状态图表语言
8.8 程序状态机模型(PSM)
8.9 适当模型和语言的角色
8.10 并发进程模型
8.11 并发进程
8.11.1 进程的创建和终止
8.11.2 进程的暂停和恢复
8.11.3 进程的连接
8.12 进程通信
8.12.1 共享存储器
8.12.2 消息传送
8.13 进程同步
8.13.1 条件变量
8.13.2 监视程序
8.14 实现
8.14.1 进程的创建和终止
8.14.2 进程的暂停和恢复
8.14.3 进程的连接
8.14.4 进程的调度
8.15 数据流模型
8.16 实时系统
8.16.1 Windows CE
8.16.2 QNX
8.17 小结
8.18 参考文献
8.19 习题
第9章 控制系统
9.1 引言
9.2 开环和闭环控制系统
9.2.1 概述
9.2.2 实例一: 开环汽车定速控制器
9.2.3 实例二: 闭环汽车定速控制器
9.3 一般控制系统和PID控制器
9.3.1 控制目标
9.3.2 实际物理系统建模
9.3.3 控制器设计
9.4 PID控制器的软件编程
9.5 PID调整
9.6 与基于计算机的控制有关的实际问题
9.6.1 量化和溢出效应
9.6.2 混叠
9.6.3 计算延迟
9.7 基于计算机的控制实现的优点
9.7.1 可重复性、可复制性和稳定性
9.7.2 可编程性
9.8 小结
9.9 参考文献
9.10 习题
第10章 IC技术
10.1 引言
10.2 全定制(VLSI)IC技术
10.3 半定制(ASIC)IC技术
10.3.1 门阵列半定制IC技术
10.3.2 标准单元半定制IC技术
10.4 可编程逻辑器件(PLD)IC技术
10.5 小结
10.6 参考文献
10.7 习题
第11章 设计技术
11.1 引言
11.2 自动化:综合
11.2.1 向上发展:编译和综合的并行发展
11.2.2 综合的级别
11.2.3 逻辑综合
11.2.4 寄存器传输综合
11.2.5 行为综合
11.2.6 系统综合和硬件软件协同设计
11.2.7 时间和空间思考
11.3 验证:硬件软件协同仿真
11.3.1 形式验证和仿真
11.3.2 仿真速度
11.3.3 硬件软件协同仿真
11.3.4 仿真器
11.4 再利用:知识产权核
11.4.1 硬核、软核和固核
11.4.2 核对处理器供应商带来的新挑战
11.4.3 核对处理器用户带来的新挑战
11.5 设计流程模型
11.6 小结
11.7 全书结束语
11.8 参考文献
11.9 习题
附录A 相关资源
A.1 引言
A.2 嵌入式系统设计网页摘要
A.3 实验资源
A.4 关于本书封面
附录B 有关术语的中英文对照表
嵌入式系统不仅是一种新的计算机系统应用技术,更是现代电子系统的核心技术之一。由于嵌入式系统具有功能强大、开发方便的优点,目前已经成为电子信息产品的基本技术。作为嵌入式系统的技术书籍,本书提供了最基本的嵌入式系统技术概念和应用设计方法。
随着嵌入式计算系统的广泛普及,嵌入式系统的复杂度也在迅速增长。复杂度的增加需要具有能跨越传统硬件和软件设计界限的新型设计者,这是嵌入式系统技术与传统单片机和微处理器系统技术的重要区别。
与传统的或人们已经习惯的单片机或微处理器应用系统设计技术不同,嵌入式系统应用设计技术具有如下几方面的特点:
嵌入式是微处理器、单片机和DSP处理器的应用技术,包含硬件系统和操作系统两大部分。因此,嵌入式系统具有系统级应用开发技术的基本特征。而以往的微处理器、单片机和DSP处理器应用设计,则属于器件或芯片级应用开发技术。
硬件系统的功能和技术复杂程度由所使用的CPU器件来决定。嵌入式系统硬件与应用领域和应用目标直接相关,只要能满足应用系统的需要,任何含有CPU的系统都可以作为嵌入式技术中的硬件系统。
以操作系统和硬件系统提供的接口作为应用系统设计的基础,其开发技术与PC机的应用开发颇为相似。在嵌入式系统应用开发中,设计者不必了解很多底层知识和技术,只需要在操作系统之上完成应用系统设计即可。
并不是所有的嵌入式系统都具有相应的硬件和软件复杂性。只要是以CPU为核心的应用硬件系统,并附有相应的操作系统和应用开发平台,则无论使用什么样的处理器,嵌入式系统都必须提供相应的操作系统,以供应用开发。
由于嵌入式应用技术与微处理器、单片机和DSP处理器的应用技术有较大的差别,本书原作者在调查了现有相关课程和教材的适用性之后,提出了“硬件和软件统一”的教学观点。这种“硬件和软件统一”的教学观点突破了以往的微机原理或单片机原理等技术课程的教学体系,把嵌入式系统硬件和操作系统作为统一的技术平台来介绍,完全符合嵌入式技术的基本特点。用原作者的话说,就是“本书没有将软件和硬件看作两个不同的领域,而是视为两个实现选项,随设计需要来选择,如成本、性能、功率、体积和灵活性等。”译者认为,这种新的教学观点可以作为一种重要的借鉴,引入我国的嵌入式技术的教学中;“硬件和软件统一”的观点不仅是教学的概念,也是嵌入式系统的基本特征,以及学习嵌入式系统和应用技术的重要方法。
本书的作者是目前国际嵌入式技术领域中公认的专家,不仅具有渊博的理论知识,更具有相当深厚的技术功底。作者在书中不仅提供了基本的理论和技术概念,还提供并分析了多个应用实例,这就使得本书不仅具有较高的学术参考价值,还具有重要的技术参考价值。
本书前言以及第1~9章由骆丽翻译,第10、11章及附录由张岳强翻译。张梅、李维敏、刘元盛、李晓光、李兵、张姝、罗俊、贾庭兰、杨玲参与了其中部分章节的翻译工作,魏晓燕、卢萧静、何国才、赵俊良、李鹏、张荣君等完成了本书的录入工作,全书由李哲英教授主审。在此,对这些老师和同学为本书所付出的辛勤劳动表示衷心的感谢。
译者骆丽
2004年8月于北京交通大学