《嵌入式系统原理、设计及开发》介绍嵌入式系统的基础知识、嵌入式硬件与固件的设计与开发步骤(包括硬件与固件的系统集成)以及嵌入式系统开发的生命周期管理知识。第1章~第4章介绍了嵌入式系统的基本知识。第5章~第13章介绍了有关嵌入式硬件与固件设计的进阶知识,对于嵌入式系统的实践工程师来说,这些知识是非常有帮助的。第15章说明了嵌入式系统设计的生命周期,该章的内容对实践工程师和项目经理都是有益的。每章开头列出学习目标,然后使用简明的文字说明以及大量的表格、图例、例题解答来阐明相应概念。每章的末尾列出重要的知识点,其中包括本章小结、重要术语、课后习题(多项选择题)以及复习题。为了方便学生在实验室也能进行相关的实验,本书还在相关章节提供了实验练习题。本书附录介绍了微控制器(具体包括PIC单片机与AVR单片机)与ARM处理器,列举了贴近实际的最新嵌入式设计案例,将使您受益匪浅。
前言
青年学生与实践工程师普遍存在这样一个误解:嵌入式系统设计就是编写C代码。这样的理解是完全错误的,这里必须强调——嵌入式系统设计是指设计嵌入式硬件,并使用C语言或其他支持语言设计嵌入式固件,然后对硬件和固件进行系统集成,并对系统功能进行测试。
嵌入式系统设计是电子工程领域中一个非常专业的分支,该分支集合了电子学的技术优势与机械工程的专业设计技术,将前沿科技和高端产品引进到多个不同的领域,如消费类电子产品、无线电通信、汽车、零售行业以及银行业等。嵌入式系统是计算机硬件与软件的整合体,其中,软件编程用于开发专用的计算机系统,设计执行用户所需的一项或多项特定功能。
嵌入式产业在全球范围提供了大量的工作机会。嵌入式系统设计是一门艺术,需要有能力的人才迎接其设计挑战,并时刻关注产品设计的时间范围。嵌入式产业当今面临的最大挑战就是该领域缺乏拥有熟练技术的人员。虽然电子与计算机科技工程专业的大多数大学毕业生有天赋也有才能,但他们在嵌入式领域缺少正确的培训,往往对嵌入式系统缺乏必需的理解。此外,缺少合适的学习教材与读物也是造成上述危机的主要原因之一。尽管业界已经出版了许多介绍嵌入式技术的书籍,但这些书籍往往并未使用简明易懂的系统化方法向读者普及嵌入式系统基础知识;这些书籍更多是从深奥的专业领域入手,只适用于专业对口的实践工程师。
本书名为《嵌入式系统原理、设计及开发》,是一本入门书籍,向学生全面介绍了嵌入式系统,并且可以作为实践工程师与项目经理的技术指南,开创了此类书籍的先河。本书可以用作计算机科学与工程、信息技术、电气工程、电子学与通信工程、仪表与控制工程等专业的本科教程。也可以作为计算机科学/信息技术/电子学专业的理学学士/理学硕士/工学硕士、计算机应用硕士以及备考印度计算机等级考试(DOEACC)B级的学生的重要参考资料。
本书介绍嵌入式系统的基础知识、嵌入式硬件与固件的设计与开发步骤(包括硬件与固件的系统集成)以及嵌入式系统开发的生命周期管理知识。第1章~第4章介绍了嵌入式系统的基本知识。第5章~第13章介绍了有关嵌入式硬件与固件设计的进阶知识,对于嵌入式系统的实践工程师来说,这些知识是非常有帮助的。第15章说明了嵌入式系统设计的生命周期,该章的内容对实践工程师和项目经理都是有益的。每章开头列出学习目标,然后使用简明的文字说明以及大量的表格、图例、例题解答来阐明相应概念。每章的末尾列出重要的知识点,其中包括本章小结、重要术语、课后习题(多项选择题)以及复习题。为了方便学生在实验室也能进行相关的实验,本书还在相关章节提供了实验练习题。本书附录介绍了微控制器(具体包括PIC单片机与AVR单片机)与ARM处理器,列举了贴近实际的最新嵌入式设计案例,将使您受益匪浅。
本书主要特色如下:
●给出了学习嵌入式系统的全新方法。本书将嵌入式系统看作一个整体,说明其定义、组成结构、注意事项以及嵌入式系统设计的完整过程与方法。
●采用面向设计与面向开发的方法,详细说明Keil Micro Vision(即嵌入式系统/集成开发环境)、ORCAD(PCB设计软件工具)以及PCB(Printed Circuit Board,印刷电路板)制造技术。
●列举实际应用,比如洗衣机、汽车、步进电机以及其他输入/输出设备接口电路。
●基于嵌入式C语言的编程概念,深入研究基础知识,揭示更高级的概念。
●全面描述8051微控制器架构以及汇编语言编程。
●详细说明RTOS内部机理、多任务、任务管理、任务调度、任务通信与同步。对于各种任务调度策略都列举了大量的相关实例。
●全面说明MicroC/OS-II与VxWorks的RTOS内核。
●行文清晰易懂,着重强调实例与图表。
●对于不是很熟悉嵌入式系统及其应用的实践工程师来说,本书是非常有用的参考。
●丰富的教学特色,包括课后习题、实验练习题、例题解答以及复习题。
感兴趣的学生、教师以及专业人员可以进一步访问本书在互联网上的在线学习中心——http://www.mhhe.com/shibu/es1e;注意,该网址末尾部分的字母es与字母e之间有一个数字。该网址提供了与本书相关的有价值的学习资料。
在线学习中心为教师提供了以下资料:
●各章的PowerPoint幻灯片
●有关嵌入式编程语言C++/Java的简要介绍
●除了书中给出的学习案例以外,还新增了一个心跳监测系统的学习案例
●各章的习题参考答案
●小问题与小测验,包括填空题、判断题和多项选择题(共25道),以及附带答案的编程题(共5道,难度级别较高)
●与各章内容相关的重要网址及文字材料的链接
在线学习中心为学生提供了以下资料:
●各章的内容提要
●有关嵌入式编程语言C++/Java的简要介绍
●除了书中给出的学习案例以外,还新增了一个心跳监测系统的学习案例
●本书课后习题与部分复习题的答案,以及各章实验练习题的提示
●小问题与自测题,包括填空题、判断题和多项选择题(共25道),以及附带答案的编程题(共5道,难度级别容易/中等)
●项目概念清单
●与各章内容相关的重要网址及文字材料的链接
本书的编写完全是基于我在嵌入式硬件与固件设计领域多年工作的知识积累,以及在嵌入式系统生命周期管理方面掌握的专业技术。书中使用了一些摘自互联网的文字描述与图像,作者已经事先与相关作者或网站取得联系,并获得了版权许可。
关于器件的设计参考和数据手册(包括本书相关应用实例引用的参数),都是摘自下面的网址。通过访问这些网址,读者可以获得相关设计文章的更新以及更多信息。此外,读者还可以从这些网站订购一些免费的样例,从而方便自己的设计。
www.intel.comIntel公司
www.maxim-ic.comMaxim/Dallas半导体公司
www.atmel.comAtmel公司
www.analog.comAD公司
www.microchip.comMicrochip技术公司
www.ti.comTI公司
www.nxp.comNXP半导体公司
www.national.comNational半导体公司
www.fairchildsemi.comFairchild半导体公司
www.intersil.comIntersil公司
www.freescale.comFreescale半导体公司
www.xilinx.comXilinx公司(提供可编程器件)
www.orcad.comCadence系统公司(提供Orcad工具)
www.keil.comKeil公司(提供Micro Vision 3 IDE)
www.embedded.com在线嵌入式杂志
www.elecdesign.com电子设计杂志
本书编排形式
学习目标
每章开始都会列出学习目标,读者在掌握了该章内容之后,应该能够达到这些学习目标。
例题解答
例题解答出现在各章节合适的位置,有助于读者理解嵌入式硬件与固件设计的基本原理。
照片
重要概念、设计与架构的照片向读者直观展示了相应的实物。
图示说明
准确有效的图示说明向读者展示了嵌入式系统设计中的概念、设计问题及步骤。
小结与重要术语
小结重温该章各主题的要点,重要术语则列出了该章重要的术语说明。
课后习题与复习题
通过以多项选择的方式解答课后习题,读者可以评测自己的学习情况。通过解答复习题,学生可以进一步应用和结合该章的内容。
实验练习题
为了指导学生在实验室更好地开展实验,在相关章节的末尾给出了实验练习题。
研究案例
本书末尾给出了5个研究案例,展示了理论概念的应用。
各种微处理器和控制器系列的附录说明
附录简单介绍了PIC系列微控制器、AVR系列微控制器以及ARM处理器。
Shibu是一位资深技术架构师,拥有十余年嵌入式系统H/W与固件开发经验,在微控制器、实时操作系统(Windows CE/Mobile 7.0、MicroC/OS-II、VxWorks、RTX-51)、设备驱动程序、引导程序和设备接口等领域拥有丰富的知识和深厚的技术积淀。Shibu曾任CDAC高级研究员、Infosys Technologies公司高级技术架构师,目前供职于美国微软公司。
第1部分 理解嵌入式系统的基本概念
第1章 嵌入式系统简介
1.1 嵌入式系统的含义
1.2 对比嵌入式系统与通用计算系统
1.3 嵌入式系统的发展历程
1.4 嵌入式系统的分类
1.4.1 基于时代的分类
1.4.2 基于复杂度和性能的分类
1.5 嵌入式系统的主要应用领域
1.6 嵌入式系统的用途
1.6.1 数据采集、数据存储与数据显示
1.6.2 数据通信
1.6.3 数据(信号)处理
1.6.4 监测
1.6.5 控制
1.6.6 专用用户界面
1.7 adidas公司推出的智能跑鞋——嵌入式技术与生活方式的创新结合
1.8 本章小结
1.9 重要术语
1.10 课后习题
1.11 复习题
第2章 典型的嵌入式系统
2.1 嵌入式系统的内核
2.1.1 通用处理器与专用处理器
2.1.2 专用集成电路
2.1.3 可编程逻辑器件
2.1.4 商用现货
2.2 存储器
2.2.1 程序存储器
2.2.2 读-写存储器/随机存取存储器
2.2.3 基于接口类型的存储器分类
2.2.4 存储器映射
2.2.5 嵌入式系统中的存储器选型
2.3 传感器与激励器
2.3.1 传感器
2.3.2 激励器
2.3.3 i/o子系统
2.4 通信接口
2.4.1 板上通信接口
2.4.2 外部通信接口
2.5 嵌入式固件
2.6 系统其他元件
2.6.1 复位电路
2.6.2 欠压保护电路
2.6.3 振荡器
2.6.4 实时时钟
2.6.5 看门狗定时器
2.7 pcb与无源元件
2.8 本章小结
2.9 重要术语
2.10 课后习题
2.11 复习题
2.12 实验练习题
第3章 嵌入式系统的特征与质量属性
3.1 嵌入式系统的特征
3.1.1 面向特定应用和特定领域
3.1.2 反馈与实时性
3.1.3 能够在恶劣环境中工作
3.1.4 分布式
3.1.5 尺寸小、重量轻
3.1.6 低功耗、节能
3.2 嵌入式系统的质量属性
3.2.1 工作模式下的质量属性
3.2.2 非工作模式下的质量属性
3.3 本章小结
3.4 重要术语
3.5 课后习题
3.6 复习题
第4章 嵌入式系统——面向特定应用与特定领域
4.1 洗衣机—— 面向特定应用的嵌入式系统
4.2 汽车—— 面向特定领域的嵌入式系统
4.2.1 汽车嵌入式系统工作的内部情况
4.2.2 汽车通信总线
4.2.3 汽车嵌入式市场上的主流厂商
4.3 本章小结
4.4 重要术语
4.5 课后习题
4.6 复习题
第5章 使用8位微控制器8051设计嵌入式系统
5.1 控制器选型时需要考虑的因素
5.1.1 功能集合
5.1.2 运行速度
5.1.3 代码存储空间
5.1.4 数据存储空间
5.1.5 开发环境支持
5.1.6 可用性
5.1.7 功耗
5.1.8 成本
5.2 选用8051微控制器的原因
5.3 基于8051的设计
5.3.1 8051的基本架构
5.3.2 存储器结构
5.3.3 寄存器
5.3.4 振荡器
5.3.5 端口
5.3.6 中断
5.3.7 8051中断系统
5.3.8 定时器
5.3.9 串口
5.3.10 复位电路
5.3.11 省电节能模式
5.4 8052微控制器
5.5 8051/52的衍生产品
5.5.1 atmel公司的at89c51rd2/ed2
5.5.2 maxim公司的ds80c320/ds80c323
5.6 本章小结
5.7 重要术语
5.8 课后习题
5.9 复习题
5.10 实验练习题
第6章 基于8051微控制器的编程
6.1 8051支持的各种寻址模式
6.1.1 直接寻址
6.1.2 间接寻址
6.1.3 寄存器寻址
6.1.4 立即寻址
6.1.5 索引寻址
6.2 8051指令集
6.2.1 数据传输指令
6.2.2 算术运算指令
6.2.3 逻辑指令
6.2.4 布尔运算指令
6.2.5 程序控制转移指令
6.3 本章小结
6.4 重要术语
6.5 课后习题
6.6 复习题
6.7 实验练习题
第7章 软硬件协同设计与程序建模
7.1 软硬件协同设计的基本概念
7.2 嵌入式设计的计算模型
7.2.1 数据流程图模型
7.2.2 控制数据流程图
7.2.3 状态机模型
7.2.4 顺序程序模型
7.2.5 并发处理模型/通信处理模型
7.2.6 面向对象模型
7.3 统一建模语言简介
7.3.1 uml构建块
7.3.2 uml工具
7.4 软硬件权衡
7.5 本章小结
7.6 重要术语
7.7 课后习题
7.8 复习题
7.9 实验练习题
第2部分 嵌入式产品的设计与开发
第8章 嵌入式硬件设计与开发
8.1 模拟电子元件
8.2 数字电子元件
8.2.1 集电极开路与三态输出
8.2.2 逻辑门
8.2.3 缓冲器
8.2.4 锁存器
8.2.5 译码器
8.2.6 编码器
8.2.7 多路复用器
8.2.8 多路输出选择器
8.2.9 组合电路
8.2.10 时序电路
8.3 vlsi与集成电路设计
8.4 电子设计自动化工具
8.5 orcad eda工具的用法
8.6 使用orcad的capture cis 工具实现电路图设计
8.6.1 电路图绘制窗口
8.6.2 电路图绘图工具
8.6.3 电路图绘制明细
8.6.4 创建元件编号
8.6.5 设计规则检查
8.6.6 创建材料清单
8.6.7 创建网表
8.7 pcb布局布线设计
8.7.1 布局布线构建块
8.7.2 使用orcad布局布线工具完成布局布线设计
8.7.3 pcb布局布线准则
8.8 印刷电路板制造
8.8.1 各种类型的pcb
8.8.2 pcb制造方法
8.8.3 pcb设计完成后,电路板外形及其调试测试
8.9 本章小结
8.10 重要术语
8.11 课后习题
8.12 复习题
8.13 实验练习题
第9章 嵌入式固件设计与开发
9.1 嵌入式固件设计方法
9.1.1 基于超循环的方法
9.1.2 基于嵌入式操作系统的方法
9.2 嵌入式固件开发语言
9.2.1 基于汇编语言的开发
9.2.2 基于高级语言的开发
9.2.3 汇编语言与高级语言混合编程
9.3 嵌入式c编程
9.3.1 对比c语言与嵌入式c语言
9.3.2 对比编译器与交叉编译器
9.3.3 在嵌入式c编程中使用c语言
9.4 本章小结
9.5 重要术语
9.6 课后习题
9.7 复习题
9.8 实验练习题
第10章 基于实时操作系统的嵌入式系统设计
10.1 操作系统基础知识
10.2 操作系统分类
10.2.1 通用操作系统
10.2.2 实时操作系统
10.3 任务、进程与线程
10.3.1 进程
10.3.2 线程
10.4 多处理与多任务
10.5 任务调度
10.5.1 非抢占式调度
10.5.2 抢占式调度
10.6 结合使用线程、进程与调度
10.7 任务通信
10.7.1 存储器共享
10.7.2 消息传递
10.7.3 远程过程调用与套接字
10.8 任务同步
10.8.1 任务通信/同步问题
10.8.2 任务同步技术
10.9 设备驱动程序
10.10 选择rtos的方法
10.10.1 功能性需求
10.10.2 非功能性需求
10.11 本章小结
10.12 重要术语
10.13 课后习题
10.14 复习题
10.15 实验练习题
第11章 基于vxworks与microc/os-iirtos的嵌入式系统设计简介
11.1 vxworks
11.1.1 任务创建与管理
11.1.2 任务调度
11.1.3 内核服务
11.1.4 任务间通信
11.1.5 任务同步与互斥
11.1.6 中断处理
11.1.7 监控任务执行的看门狗
11.1.8 定时与定时基准
11.1.9 vxworks开发环境
11.2 microc/os-ii
11.2.1 任务创建与管理
11.2.2 内核函数与初始化
11.2.3 任务调度
11.2.4 任务间通信
11.2.5 互斥与任务同步
11.2.6 定时与定时基准
11.2.7 存储器管理
11.2.8 中断处理
11.2.9 microc/os-ii开发环境
11.3 本章小结
11.4 重要术语
11.5 课后习题
11.6 复习题
11.7 实验练习题
第12章 嵌入式硬件与固件的集成与测试
12.1 硬件与固件的集成
12.1.1 离线编程
12.1.2 在系统编程
12.1.3 在应用编程
12.1.4 使用厂家编程芯片
12.1.5 对基于操作系统的器件实现固件加载
12.2 电路板加电
12.3 本章小结
12.4 重要术语
12.5 复习题
第13章 嵌入式系统开发环境
13.1 集成开发环境
13.1.1 基于8051的keilμvision3
13.1.2 嵌入式系统开发ide概述
13.2 交叉编译过程中生成的各种文件
13.2.1 列表文件(.lst)
13.2.2 预处理器输出文件
13.2.3 目标文件(.obj)
13.2.4 map文件(.map)
13.2.5 hex文件(.hex)
13.3 反汇编器与反编译器
13.4 模拟器、仿真器与调试
13.4.1 模拟器
13.4.2 仿真器与调试器
13.5 目标硬件调试
13.5.1 放大镜
13.5.2 万用表
13.5.3 数字cro
13.5.4 逻辑分析仪
13.5.5 函数生成器
13.6 边界扫描
13.7 本章小结
13.8 重要术语
13.9 课后习题
13.10 复习题
13.11 实验练习题
第14章 产品外壳设计与开发
14.1 产品外壳设计工具
14.2 产品外壳开发技术
14.2.1 外壳手工设计
14.2.2 快速原型开发
14.2.3 加工与制模
14.2.4 金属薄板
14.2.5 商用现货外壳
14.3 本章小结
14.4 重要术语
14.5 课后习题
14.6 复习题
第15章 嵌入式产品开发生命周期
15.1 edlc的含义
15.2 edlc的作用
15.3 edlc的目标
15.3.1 保障产品质量
15.3.2 通过管理降低风险并预防缺陷
15.3.3 提高生产效率
15.4 edlc的各个阶段
15.4.1 需求
15.4.2 概念成型
15.4.3 分析
15.4.4 设计
15.4.5 开发与测试
15.4.6 部署
15.4.7 支持
15.4.8 升级
15.4.9 退市
15.5 edlc方法(edlc建模)
15.5.1 线性/瀑布模型
15.5.2 迭代/增量模型(也称为喷泉模型)
15.5.3 原型/演化模型
15.5.4 螺旋模型
15.6 本章小结
15.7 重要术语
15.8 课后习题
15.9 复习题
第16章 嵌入式产业发展趋势
16.1 嵌入式系统处理器发展趋势
16.1.1 片上系统
16.1.2 多核处理器/片上多处理器
16.1.3 可重构处理器
16.2 嵌入式操作系统发展趋势
16.3 开发语言发展趋势
16.3.1 基于java的嵌入式开发
16.3.2 基于.net cf的嵌入式开发
16.4 开放式标准、框架与联盟
16.4.1 开放式移动联盟
16.4.2 开放式手机联盟
16.4.3 android
16.4.4 openmoko
16.5 瓶颈
16.5.1 存储器性能
16.5.2 缺少标准或标准执行力度不够
16.5.3 缺少专业的人力资源
附录a pic系列微控制器、avr系列微控制器、arm处理器简介
附录b 设计案例研究
参考文献