第1篇 嵌入式系统的基础理论 1
第1章 嵌入式系统简介 1
1.1 嵌入式系统的定义及特点 1
1.2 嵌入式系统的应用 3
1.3 未来的嵌入式系统产业 4
第2章 嵌入式系统的设计与开发过程 6
第3章 嵌入式系统的硬件 10
3.1 嵌入式处理器 11
3.1.1 嵌入式处理器的分类 11
3.1.2 嵌入式处理器的选择原则 15
3.2 微控制器 17
3.2.1 微控制器简介 17
3.2.2 微控制器的发展特点 19
3.2.3 微控制器的选择原则 21
3.3 数字信号处理器 24
3.3.1 数字信号处理器的特点和分类 24
3.3.2 数字信号处理器的应用 25
3.3.3 数字信号处理器的选择原则 26
3.4 ARM微处理器 26
3.4.1 ARM微处理器简介 26
3.4.2 ARM微处理器的应用 28
3.4.3 ARM的体系结构简介 28
3.4.4 ARM微处理器系列产品简介 30
3.4.5 ARM微处理器的选择原则 34
3.5 OMAP微处理器简介 35
3.6 嵌入式系统硬件的设计 36
3.6.1 嵌入式系统硬件电路设计原则 36
3.6.2 嵌入式系统硬件的抗干扰措施 37
第4章 嵌入式系统的软件 42
4.1 嵌入式系统软件的特点 42
4.1.1 嵌入式系统的存储器结构 42
4.1.2 嵌入式系统软件的特点 43
4.2 嵌入式系统的软件设计技术 46
4.3 基于处理器的直接编程 48
4.3.1 前/后台系统的编程方法 49
4.3.2 可抢占式任务调度的前/后台系统的编程方法 49
4.3.3 可抢占式和优先级任务调度的前/后台系统的编程方法 50
4.4 基于嵌入式操作系统的编程 50
4.4.1 嵌入式操作系统环境下的任务 51
4.4.2 嵌入式操作系统的任务调度方式 52
4.4.3 嵌入式操作系统下的任务间通信 53
4.5 编程方法的实时性比较 53
4.6 嵌入式系统软件的抗干扰方法 54
4.6.1 消除模拟输入信号的噪声 54
4.6.2 看门狗定时器 55
4.6.3 其他抗干扰方法 56
4.7 典型嵌入式操作系统简介 57
第5章 嵌入式系统的开发工具 64
5.1 嵌入式系统开发工具的特点 64
5.2 开发嵌入式系统软件的高级语言 65
5.3 指令集模拟器 66
5.4 调试器 67
5.5 ROM仿真器 68
5.6 在线仿真器 69
5.6.1 在线仿真器的原理 69
5.6.2 在线仿真器的连接方法 71
5.6.3 在线仿真器的主要功能 71
5.6.4 在线仿真器使用的限制 72
5.7 片上调试器和在线调试器 72
5.7.1 片上调试器及在线调试器简介 72
5.7.2 常用的片上调试器 73
5.7.3 片上调试器及在线调试器构成的调试系统 76
5.8 开发工具的干扰 77
5.9 示波器、存储示波器和逻辑分析仪 78
第6章 嵌入式系统的集成和软件测试 79
6.1 嵌入式系统的集成 79
6.2 嵌入式系统的软件测试 79
6.2.1 测试的目的 80
6.2.2 何时开始测试 81
6.2.3 测试内容和测试方法 81
6.2.4 正确选择测试用例 83
6.2.5 伺时停止测试 83
6.2.6 测试和维护 83
6.3 覆盖率的测试方法 84
6.3.1 软件插装 84
6.3.2 硬件插装 85
6.4 性能测试的方法 86
6.4.1 性能测试的重要性 86
6.4.2 性能测试的方法 87
第2篇 C8051F微控制器的原理与应用 89
第7章 嵌入式应用中的8051系列8位微控制器 89
7.1 嵌入式应用中的8位单片机 89
7.2 8051的3次技术飞跃 90
第8章 MCS-51系列单片机简介 91
8.1 MCS-51的端口特点和存储器体系结构 91
8.2 MCS-51片外存储器和I/O的扩展 92
8.2.1 几种常见的片外存储器扩展应用 92
8.2.2 片外存储器扩展的应用举例 94
8.2.3 I/O扩展 104
第9章 C8051F微控制器的原理 106
9.1 C8051F微控制器简介 106
9.2 CIP-51内核与指令系统简介 108
9.3 CIP-51片内数据存储器和SFR组 109
9.4 C8051F微控制器的数据存储器 113
9.4.1 对C8051F微控制器的数据存储器的操作 114
9.4.2 C8051F微控制器的片外数据存储器的扩展 115
9.5 C8051F微控制器的程序存储器 117
9.5.1 C8051F微控制器程序存储器的组成和使用 117
9.5.2 C8051F微控制器程序存储器的安全和保密 119
第10章 Cygnal C8051F微控制器的功能模块 122
10.1 C8051F微控制器的ADC 122
10.2 C8051F微控制器的DAC 124
10.2.1 电压输出型DAC 124
10.2.2 电流输出型DAC 126
10.3 C8051F微控制器的电压比较器 126
10.4 C8051F微控制器的基准电压 128
10.5 C8051F微控制器的I/O端口和交叉开关 130
10.5.1 C8051F微控制器的I/O端口 130
10.5.2 C8051F微控制器的交叉开关 133
10.6 C8051F微控制器的计数器/定时器和PCA 140
10.6.1 C8051F微控制器的计数器/定时器 140
10.6.2 C8051F微控制器的PCA 145
10.7 C8051F微控制器的串行I/O接口 149
10.7.1 C8051F微控制器的UART 150
10.7.2 C8051F微控制器的SMBus/I2C 157
10.7.3 C8051F微控制器的SPI 160
10.7.4 C8051F微控制器的USB 164
10.7.5 C8051F微控制器的CAN 169
10.8 C8051F微控制器的复位系统 172
10.9 C8051F微控制器的时钟系统 173
第11章 C51与A51的混合编程 175
第12章 C8051F微控制器的开发工具简介 178
12.1 Cygnal公司/Silicon laboratories的开发工具 178
12.1.1 Cygnal公司/Silicon laboratories的开发工具组成 178
12.1.2 Cygnal公司/Siliconlaboratories集成开发环境的特点 179
12.1.3 C8051F微控制器开发工具的使用 180
12.2 Keil Software 8051开发工具简介 182
12.3 μ Vision2调试器 183
12.3.1 软件仿真 183
12.3.2 实际硬件调试 186
第13章 编程实例 189
13.1 编程说明 189
13.1.1 硬件电路和功能说明 189
13.1.2 程序功能要求和程序开发工具 192
13.2 采用定时器中断方式实现 193
13.2.1 A51小汇编编程实现 193
13.2.2 A51宏汇编编程实现 197
13.2.3 C51编程实现 202
13.2.4 3种编程实现的比较 207
13.2.5 调试过程简介 207
13.3 采用前/后台系统实现(一) 216
13.4 采用前/后台系统实现(二) 221
13.5 采用前/后台系统实现(三) 223
13.6 采用具有可抢占式任务调度的前/后台系统实现 225
13.7 采用具有可抢占式和优先级任务调度的前/后台系统实现 230
13.8 采用RTX51 Tiny实现 230
13.8.1 使用RTX51 Tiny时应注意的问题 230
13.8.2 修改Conf_tny.A51 232
13.8.3 应用程序 232
13.8.4 调试过程简介 236
13.9 采用具有任务抢占式RTX51 Tiny实现(一) 237
13.10 采用具有任务抢占式RTX51 Tiny实现(二) 242
13.10.1 修改Conf_tny.A51 242
13.10.2 应用程序 243
13.11 采用具有任务抢占式RTX51 Tiny实现(三) 244
13.11.1 修改Conf_tny.A51 244
13.11.2 应用程序 245
13.12 采用具有任务抢占式RTX51 Tiny实现(四) 246
13.12.1 修改Conf_tny.A51和os_wait.A51 246
13.12.2 应用程序 248
13.13 不同编程实现的比较 250
第14章 微控制器片上FLASH程序存储器的应用 251
14.1 应用程序的加密 251
14.2 FLASH程序存储器作为非易失性数据存储器 254
14.2.1 用绝对定位的宏定义实现 255
14.2.2 用_at_关键词实现 258
14.2.3 用指针代替数组实现 259
14.2.4 调试过程简介 262
第15章 提供商业应用程序的方法 272
15.1 以库函数方法提供商业应用程序的方法 272
15.2 以OEM方法提供商业应用程序的方法 276
15.2.1 对微处理器的要求 276
15.2.2 编程需要解决的问题 277
15.2.3 用A51实现OEM程序 279
15.2.4 用A51和C51混合编程实现OEM程序 281
15.2.5 OEM程序提供的头文件和引导程序 284
15.2.5 应用程序 285
15.2.6 调试过程简介 294
15.3 在具有OEM程序的RXT51 Tiny环境中的编程 297
15.3.1 具有OEM程序的RXT51 Tiny环境的建立 297
15.3.2 应用程序 298
第16章 USB与RS-485编程实例 304
16.1 通信协议 304
16.1.1 读卡器的通信协议 304
16.1.2 USB的数据传输协议 305
16.2 硬件实现原理 306
16.3 编程实现 308
16.3.1 程序的功能说明 308
16.3.2 PC端的应用程序 308
16.3.3 USB设备端的应用程序 322
第17章 C8051F应用系统设计举例 335
17.1 IC卡的数据存储和数据管理模块 335
17.1.1 模块功能描述 335
17.1.2 模块的硬件设计 336
17.1.3 功能块说明 338
17.1.4 软件设计 342
17.2 机车车载计算机控制模块 343
17.2.1 模块功能描述 343
17.2.2 模块的硬件设计 345
17.2.3 功能块说明 346
17.3 USB-CAN模块 349
17.3.1 USB-CAN模块的硬件设计 349
17.3.2 功能块说明 352
17.4 基于导引服务中心的汽车驾驶导引系统 356
17.4.1 系统功能和指标 356
17.4.2 系统硬件设计 357
第18章 C8051 F微控制器系统设计与开发实验 361
实验1 LED数码显示模块 361
实验2 USB的应用 361
实验3 USB至其他串行接口的转换 362
参考文献 363