选择特殊符号
选择搜索类型
请输入搜索
《嵌入式系统技术与应用》是2002年机械工业出版社出版的图书,作者是许海燕、付炎。
纵观嵌入式系统的发展历程,大致经历了以下四个阶段: 无操作系统阶段 嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能,通常应用于各类工业控制和飞机、等武...
数控技术是数字程序控制数控机械实现自动工作的技术。它广泛用于机械制造和自动化领域,较好地解决多品种、小批量和复杂零件加工以及生产过程自动化问题。随着计算机、自动控制技术的飞速发展,数控技术已广泛地应用...
目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须...
项目驱动教学法在“嵌入式系统技术”课程中的改革探索
项目驱动教学法是以项目任务为教学单元、通过完成项目来开展的一种教学方式。文章将项目驱动教学法的学习模式引入到嵌入式系统技术的教学过程中,为应用型本科院校进一步深化实践教学改革提供参考。
嵌入式系统设计与应用研究
嵌入式系统设计与应用研究
嵌入式系统的定义:
以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗的严格要求的专用计算机系统。
嵌入式系统的特点:
系统内核小:嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多
专用性强:嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植
系统精简:嵌入式系统一般不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于系统安全
实时性操作系统:这是嵌入式软件的基本要求,而且软件要求固化存储,以提高速度,软件代码要求高质量和高可靠性、实时性
专用的开发工具和开发环境。
嵌入式系统的组成:
嵌入式操作系统:
嵌入式系统开发流程:
裸机开发:对于功能简单仅包括应用程序的嵌入式系统一般不使用操作系统,仅有应用程序和设备驱动程序
带操作系统的开发:当设计较复杂的程序时,可能就需要一个操作系统(OS)来管理控制内存、多任务、周边资源等,现代高 性能嵌入式系统应用越来越广泛,操作系统使用成为必然发展趋势
硬件开发--->启动加载程序--->操作系统内核--->根文件系统--->设备驱动--->应用程序
通常基于linux系统的嵌入式开发步骤:
开发目标硬件系统:如选择微处理器、Flash及其它外设等
建立交叉开发环境:安装交叉编译工具链、安装开发调试工具
开发Bootloader:移植uboot,vivi
移植linux内核:如linux2.6.31内核
开发根文件系统:CRAMFS,YAFFS
开发相关硬件的驱动程序:led,adc等驱动
开发上层的应用程序:如QT GUI开发
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成, 嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。
(1)嵌入式微处理器
嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微处理器的体系结构可以采用冯·诺依曼体系或哈佛体系结构;指令系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和复杂指令系统CISC(Complex Instruction Set Computer,CISC)。RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件结构设计变得更为简单。
嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86和SH等。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。
(2)存储器
嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器,其存储结构如图1-2所 示。
1>Cache
Cache是一种容量小、速度快的存储器阵列它位于主存和嵌入式微处理器内核之间,存放的是一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作时,微处理器尽可能的从Cache中读取数据,而不是从主存中读取,这样就大大改善了系统的性能,提高了微处理器和主存之间的数据传输速率。Cache的主要目标就是:减小存储器(如主存和辅助存储器)给微处理器内核造成的存储器访问瓶颈,使处理速度更快,实时性更强。
在嵌入式系统中Cache全部集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache,Cache的大小依不同处理器而定。一般中高档的嵌入式微处理器才会把Cache集成进去。
2>主存
主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。它可以位于微处理器的内部或外部,其容量为256KB~1GB,根据具体的应用而定,一般片内存储器容量小,速度快,片外存储器容量大。
常用作主存的存储器有:
ROM类 NOR Flash、EPROM和PROM等。
RAM类 SRAM、DRAM和SDRAM等。
其中NOR Flash 凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。
3>辅助存储器
辅助存储器用来存放大数据量的程序代码或信息,它的容量大、但读取速度与主存相比就慢的很多,用来长期保存用户的信息。
嵌入式系统中常用的外存有:硬盘、NAND Flash、CF卡、MMC和SD卡等。
(3)通用设备接口和I/O接口
嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。
嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等。
硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP具有以下两个特点。
硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软 件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。
操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。
实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。
第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&muvision3
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 设计案例研究
参考文献