第1章 嵌入式微处理器 1
1.1概述 1
1.1.1嵌入式系统的组成 1
1.1.2嵌入式处理器的分类 2
1.1.3嵌入式处理器的评估指标 5
1.2嵌入式微处理器基础 6
1.2.1微处理器设计中的基本概念 6
1.2.2体系结构 9
1.2.3CISC和RISC技术 10
1.2.4流水线技术 11
1.2.5多核技术 15
1.2.6嵌入式处理器发展趋势 17
1.3总线概述 19
1.3.1基本概念 19
1.3.2片内总线 21
1.3.3芯片总线 22
1.3.4系统内总线 22
1.3.5外部总线 24
1.4常见的嵌入式微处理器 25
1.4.1PowerPC处理器 25
1.4.268K/ColdFire处理器 28
1.4.3MIPS处理器 28
1.4.4SPARC处理器 29
1.4.5ARM处理器 30
1.5ARM处理器 35
1.5.1ARM内核 35
1.5.2ARM寄存器 37
1.5.3信息存储的字节顺序 42
1.5.4ARM指令系统 44
1.5.5ARM处理器的中断和异常 48
1.6ARM内核 52
1.6.1ARM7系列 52
1.6.2ARM9系列 53
1.6.3ARM10系列 55
1.6.4ARM11系列 57
1.6.5SecurCore微处理器系列 58
1.6.6StrongARM和XScale系列 58
1.6.7ARM Cortex处理器系列 60
1.7基于ARM核的芯片选择 61
1.7.1ARM内核的选择 61
1.7.2接口控制器的选择 62
1.7.3多核的选择 64
1.7.4国内常用ARM芯片 65
1.7.5选择方案举例 68
习题 69
第2章 嵌入式开发环境 70
2.1硬件设计基础 70
2.1.1电路设计基本流程 70
2.1.2常用的电路设计工具 71
2.1.3接口的作用 72
2.1.4接口设计 75
2.2基于开发板的二次开发 77
2.2.1基于开发板的二次开发概述 77
2.2.2嵌入式最小系统的硬件模块 78
2.2.3嵌入式系统的启动架构 81
2.3电源和复位接口 82
2.3.1电源接口概述 82
2.3.2低功耗设计和电源管理 83
2.3.3电源接口电路 86
2.3.4RST电路 86
2.4调试接口 88
2.4.1嵌入式系统的调试方法 88
2.4.2JTAG调试接口 88
2.5ADS1.2集成开发环境 90
2.5.1Code Warrior IDE 90
2.5.2AXD调试器 92
2.5.3使用ADS开发软件过程 92
2.5.4汇编语言和C语言交互编程 95
习题 98
第3章 嵌入式系统的存储器 99
3.1存储系统概述 99
3.1.1存储器的分类 99
3.1.2存储系统的层次结构 101
3.1.3半导体存储器的主要性能指标 102
3.1.4嵌入式系统存储设备 103
3.2随机存储器RAM 103
3.2.1概述 103
3.2.2静态随机存储器SRAM 104
3.2.3动态随机存储器DRAM 107
3.2.4同步动态随机存储器SDRAM 110
3.2.5双倍速率随机存储器DDRAM 111
3.2.6存储器接口 111
3.2.7存储器接口编程 113
3.3只读存储器ROM 116
3.3.1掩膜ROM 116
3.3.2可编程ROM 117
3.3.3可擦除可编程ROM 117
3.3.4电可擦除可编程ROM 118
3.3.5Flash存储器 119
3.4Nor Flash芯片介绍 123
3.4.1SST39VF160 123
3.4.2SST39VF160的操作命令 124
3.4.3Nor Flash接口电路 128
3.4.4Nor Flash接口编程 129
3.5Nand Flash存储器 134
3.5.1K9F1208UOB概述 134
3.5.2K9F1208UOB的操作命令 137
3.5.3Nand Flash控制器 140
3.5.4Nand Flash接口电路 142
3.5.5Nand Flash接口编程 143
3.6外部存储器 148
3.6.1硬盘 148
3.6.2光盘存储器 150
3.6.3Flash卡 151
习题 154
第4章 基本输入/输出接口 155
4.1输入/输出接口概述 155
4.1.1GPIO的结构与原理 155
4.1.2S3C2410中的GPIO 157
4.2键盘和鼠标接口 160
4.2.1键盘接口 160
4.2.2键盘接口编程 162
4.2.3PS/2接口 164
4.3A/D转换器 167
4.3.1A/D转换器概述 167
4.3.2A/D转换的原理 168
4.3.3D/A转换的方法 173
4.3.4A/D转换电路 175
4.3.5A/D转换接口编程 177
4.4触摸屏接口 179
4.4.1触摸屏的工作原理 179
4.4.2S3C2410触摸屏控制器 182
4.4.3S3C2410触摸屏接口编程 185
4.5显示器接口 188
4.5.1CRT显示器 189
4.5.2LED显示器 192
4.5.3液晶显示器 196
4.6LCD控制器接口与编程 199
4.6.1LCD控制器概述 199
4.6.2控制流程 200
4.6.3LCD接口编程 203
4.7音频接口 206
4.7.1I2S总线概述 206
4.7.2基于I2S接口的硬件设计 209
4.7.3基于I2S接口的软件设计 211
习题 212
第5章 外部总线接口 213
5.1串行与并行接口 213
5.1.1概述 213
5.1.2RS-232-C串行接口 216
5.1.3UART控制器 218
5.1.4串行接口编程 222
5.1.5并行接口 224
5.2USB接口 227
5.2.1概述 227
5.2.2USB通信原理 231
5.2.3S3C2410的USB接口 233
5.2.4USB接口软件设计 235
5.3IEEE1394接口 236
5.3.1概述 236
5.3.2IEEE1394协议结构 238
5.4SPI接口 239
5.4.1概述 239
5.4.2S3C2410中的SPI接口 241
5.4.3SPI接口编程 243
5.5I2C总线接口 244
5.5.1概述 244
5.5.2I2C总线工作原理 245
5.5.3I2C总线接口电路 247
5.5.4I2C总线接口编程 248
5.6PCMCIA接口和PCI总线 250
5.6.1PCMCIA接口 250
5.6.2PCI总线 251
习题 253
第6章 网络接口 254
6.1以太网接口 254
6.1.1概述 254
6.1.2以太网接口工作原理 258
6.1.3以太网接口软件设计 258
6.2CAN总线接口 260
6.2.1概述 260
6.2.2CAN总线工作原理 261
6.2.3CAN总线接口 262
6.2.4CAN总线接口编程 264
6.3常用无线接入技术 267
6.3.1概述 267
6.3.2红外技术 267
6.3.3HomeRF技术 268
6.3.4GPRS/CDMA接入技术 269
6.3.5WLAN技术 270
6.4蓝牙接口 271
6.4.1概述 271
6.4.2蓝牙的基本原理 273
6.4.3蓝牙接口 276
6.5GPRS接口 279
6.5.1概述 279
6.5.2GPRS的基本原理 280
6.5.3GPRS接口 282
6.5.4GPRS接口编程 285
6.6ZigBee技术 286
6.6.1概述 286
6.6.2ZigBee技术的基本原理 288
6.6.3ZigBee接口 290
6.7GPS接口 292
6.7.1概述 292
6.7.2GPS的基本原理 293
6.7.3GPS接口 295
6.7.4GPS接口编程 296
习题 297
第7章 嵌入式系统软件设计 298
7.1嵌入式系统软件结构 298
7.1.1嵌入式软件体系结构 298
7.1.2设备驱动层 299
7.1.3实时操作系统 300
7.1.4中间件层 301
7.1.5应用程序 302
7.2嵌入式操作系统 302
7.2.1操作系统的基本功能 302
7.2.2嵌入式操作系统 303
7.2.3嵌入式操作系统μC/OS-Ⅱ概述 305
7.3μC/OS-Ⅱ的内核结构 305
7.3.1多任务 305
7.3.2任务调度 308
7.3.3中断与时间管理 309
7.3.4μC/OS-Ⅱ的初始化 311
7.3.5μC/OS-Ⅱ的任务通信和同步 312
7.45μC/OS-Ⅱ的原理与移植 314
7.4.1移植μC/OS-Ⅱ基本要求 314
7.4.2主体移植过程 315
7.5基于μC/OS-Ⅱ的应用程序设计 318
7.5.1基于μC/OS-Ⅱ扩展的RTOS体系结构 318
7.5.2基于μC/OS-Ⅱ的应用程序 319
7.5.3基于绘图API的应用程序 320
习题 323
第8章 常用接口实验 324
8.1嵌入式系统开发环境 324
8.2存储器实验 326
8.3矩阵键盘实验 333
8.4A/D转换实验 336
8.5触摸屏实验 338
8.6LCD实验 342
8.7串口实验 343
8.8SPI实验 347
8.9I2C接口实验 349
8.10CAN总线实验 353
8.11GPRS总线实验 355
8.12μC/OS-Ⅱ实验 359
参考文献 363