第1章 嵌入式处理器 1
1.0微控制器 1
1.1微控制器市场 1
1.2数据路径 1
1.3商用微控制器 2
1.4 SoC内核处理器 2
1.5 SoC单元相对销售量 2
1.6超大规模集成电路(VLSI)芯片设计工具 3
1.7 IP核 4
1.8指令集体系结构 4
1.9投资与回报 4
1.10半导体技术的发展 5
参考文献 7
第2章 微控制器体系结构 8
2.0单片计算机 8
2.1约翰·冯·诺依曼 8
2.2计算机体系结构 9
2.3半导体技术 9
2.3.1小规模集成电路 10
2.3.2硬件总线 10
2.3.3智能外围接口 10
2.3.4标准I/0接口 10
2.4 MSI和LSI 11
2.5电子计算器 12
2.6微处理器 12
2.6.1应用型数据处理 13
2.6.2 Intel i4004 13
2.6.3 Intel i8080 13
2.7微处理器外设 14
2.8 Intel i8051微控制器 15
2.9RISC简介 16
2.9.1 RISC处理器 16
2.9.2 RISC的协同作用 16
2.9.3 RISC市场 17
2.10无晶圆半导体公司 17
2.10.1 RISC IP核 17
2.10.2 RISC工艺流程 18
2.11嵌入式控制器IP核 18
2.11.1 CISC IP核 19
2.11.2 RISC IP核 19
2.11.3第三方IP核 19
2.12专用处理器 19
2.13本章小结 20
习题 20
参考文献 21
第3章 嵌入式微控制器技术 22
3.0集成电路 22
3.1摩尔定律 22
3.1.1微处理器的性能 22
3.1.2实现技术 23
3.1.3阿姆达尔定律 24
3.1.4技术融合 24
3.2设计抽象 25
3.2.1指令集体系结构 25
3.2.2处理器家族 26
3.3 RISC和CISC 26
3.3.1处理器技术 26
3.3.2性能评估 26
3.3.3程序指令 27
3.3.4指令成本 27
3.3.5微代码指令 27
3.4存储器技术 28
3.4.1局部性 28
3.4.2存储器分级 29
3.4.3高速缓存 29
3.4.4一级缓存和二级缓存 30
3.4.5数据寄存器 30
3.4.6指令队列 30
3.4.7分支指令 30
3.4.8 存储器访问延迟 31
3.4.9高速缓存模块 31
3.5指令处理 32
3.5.1汇编语言 33
3.5.2程序编译器 33
3.5.3硬编码指令 34
3.6程序设计 34
3.6.1 程序代码大小变化 34
3.6.2CISC指令集 34
3.7统一指令集 35
3.7.1 工业标准软件 35
3.7.2指令集扩展 35
3.8 RISC指令集体系结构 35
3.8.1微代码 36
3.8.2微指令周期 36
3.8.3专用指令 36
3.8.4单周期指令 36
3.9处理器逻辑 37
3.9.1同步逻辑 37
3.9.2寄存器堆 38
3.9.3正交寄存器 38
3.9.4寄存器优化 38
3.9.5载入/存储数据操作 38
3.10处理器功能划分 38
3.10.1指令流水线 39
3.10.2执行单元 39
3.10.3流水线级 39
3.10.4流水线吞吐量 40
3.10.5顺序执行 40
3.10.6分支执行 40
3.11五级流水线 41
3.11.1指令流水线阻塞 42
3.11.3分支预测表 42
3.11.3数据流水线阻塞 42
3.12本章小结 42
习题 43
参考文献 43
第4章 微控制器功能 44
4.0设备功能 44
4.1晶体管工艺 44
4.1.1 CMOS晶体管 44
4.1.2 CMOS功耗 45
4.1.3封装 45
4.1.4 工作温度范围 46
4.2存储器工艺 46
4.2.1 DRAM 46
4.2.2 SRAM 46
4.2.3 NVRWM 47
4.2.4 EEPROM 47
4.2.5 Flash工艺 48
4.2.6 ROM 48
4.3硬件特性 48
4.3.1配置字 48
4.3.2振荡器类型 49
4.3.3复位 49
4.3.4待机模式 50
4.3.5低功耗 50
4.3.6看门狗定时器 50
4.3.7在线编程 51
4.4数据输入/输出 51
4.4.1 并行I/O 51
4.4.2三态I/O引脚 52
4.4.3内存映射I/O 52
4.5同步串行通信 52
习题 53
参考文献 53
第5章 程序设计 54
5.0程序设计 54
5.1轮询程序 54
5.1.1程序流程 54
5.1.2程序时序 55
5.1.3连续任务 55
5.1.4任务时序 56
5.1.5连续多任务 56
5.2中断 57
5.2.1异步时序 57
5.2.2中断允许 57
5.2.3 机器状态 58
5.2.4延时 58
5.2.5 上下文切换 58
5.2.6中断向量 59
5.2.7 中断嵌套 59
5.2.8关键代码 60
5.2.9中断服务程序 61
5.3实时操作系统 61
5.4事件驱动系统 61
5.5内核 62
5.6系统分层 62
5.7风险 62
习题 63
参考文献 63
第6章软/硬件调试 64
6.0软/硬件调试 64
6.1 COTS控制器工具 64
6.2嵌入式控制器工具 65
6.3首款芯片 66
6.4板级探针 66
6.5调试步骤 67
6.5.1软件编辑 67
6.5.2编译 68
6.5.3程序生成 68
6.5.4仿真器 69
6.5.5在线仿真 70
6.6 SoC调试策略 70
6.6.1 SoC软件调试 70
6.6.2内核调试 71
6.6.3 JTAG/EJTAG规范 72
6.7 ARM SoC调试 72
6.8 MIPS SoC调试 73
习题 74
参考文献 75
第7章 串行数据通信 76
7.0串行数据通信 76
7.1 UART 77
7.1.1异步模式 77
7.1.2发送/接收缓冲器 78
7.2串行外围接口 SPI 79
7.3 I2C总线 81
7.3.1 I2C总线如何工作 82
7.3.2 I2C总线术语 84
7.3.3总线传输术语 85
7.4 CAN总线 85
7.5 LIN网络 88
7.6 12S总线 88
7.6.1 I2S串行数据 89
7.6.2 I2S字选择 89
7.6.3 I2S总线时序 90
7.7 IrDA 90
7.8 USB总线 91
7.8.1 USB拓扑 91
7.8.2 USB构架 92
7.8.3 USB物理连接 93
7.8.4 USB接口 93
7.8.5 USB2.0规范 93
7.9蓝牙 95
7.9.1蓝牙构架 95
7.9.2蓝牙频率 95
7.9.3蓝牙网络 96
习题 96
参考文献 97
第8章 模数转换 98
8.0模数转换 98
8.1模数转换概述 98
8.2换能器 99
8.3低通滤波器 100
8.4采样 101
8.5香农采样定理 102
8.6什么是模数转换器 102
8.6.1 ADC的分辨率 103
8.6.2LSB和MSB定义 103
8.6.3量化 103
8.6.4量化误差 104
8.6.5偏置误差 106
8.6.6微分非线性 106
8.6.7丢码 107
8.6.8信噪比 107
8.7模数转化算法 108
8.7.1逐次逼近 109
8.7.2 SAR ADC结构 110
8.7.3 Flash AD 111
8.7.4集成ADC 111
8.7.5流水线ADC 113
8.7.6 Σ-△转换器 114
8.8过采样 114
习题 115
参考文献 116
第9章 数字信号处理 117
9.0数字信号处理 117
9.1什么是DSP 117
9.1.1滤波与合成 118
9.1.2 DSP性能 119
9.1.3模拟信号转换 119
9.2 DSP控制器构架 119
9.3模拟滤波器 121
9.3.1滤波性能测试 122
9.3.2时域响应 123
9.3.3模拟低通滤波器 123
9.3.4有源模拟滤波器 124
9.3.5有源滤波器的比较 124
9.4数字滤波器 125
9.4.1 FIR滤波器 125
9.4.2 FIR滤波器的实现 126
9.4.3卷积 127
9.4.4IIR滤波器 128
9.5信号变换 129
9.5.1相量模型 129
9.5.2傅里叶级数 130
9.5.3离散傅里叶级数 130
9.5.4傅里叶变换 130
9.5.5离散傅里叶变换 130
9.6快速傅里叶变换 132
9.6.1FFT的执行 132
9.6.2DFT蝶形变换 133
9.7表寻址 133
习题 134
参考文献 134
第10章 模糊逻辑 136
10.0模糊逻辑 136
10.1模糊逻辑方法 137
10.2模糊感知 138
10.3模糊逻辑的术语 138
10.4模糊专家系统 139
10.4.1推理过程 140
10.4.2模糊化 140
10.4.3推理 141
10.4.4合成 141
10.4.5去模糊化 142
10.5语言变量 142
10.5.1使用语言变量 143
10.5.2模糊规则剖析 144
10.5.3语言变量的逻辑组合 144
10.6 PID控制器 144
10.6.1时间语言变量 145
10.6.2语言变量比较 145
10.7模糊逻辑应用 146
10.8规则矩阵 147
10.8.1模糊逻辑的实现 147
10.8.2隶属函数 149
10.8.3隶属度输入 151
10.8.4推理 152
10.9去模糊化 152
10.10调整与提升系统性能 153
习题 153
参考文献 154
第11章8位微控制器 155
11.0通用微控制器 155
11.1微芯公司PIC18F4520 156
11.1.1 PIC18F4520 Harvard体系结构 157
11.1.2指令流水线 157
11.1.3特性 158
11.1.4电源管理模式 158
11.1.5振荡器配置 159
11.1.6复位 159
11.1.7存储器组织 160
11.1.8 中断结构 161
11.1.9输入/输出(I/O)端口 162
11.1.10定时器相关的功能 164
11.1.11定时器模块 164
11.1.12采样/比较/PWM功能 167
11.1.13串行通信接口 169
11.1.14模数转换 173
11.1.15模拟比较器 174
11.1.16 CPU特性 174
11.1.17指令集 175
11.1.18电特性 176
11.2 ZiLOG Z8 ENCORE! XP F0830系列 176
11.2.1 eZ8 CPU描述 177
11.2.2 Z8 Encore! CPU体系结构 178
11.2.3地址空间 179
11.2.4外设概述 180
11.2.5复位控制器和停止模式恢复 182
11.2.6低功耗模式 182
11.2.7通用输入/输出 183
11.2.8中断控制器 184
11.2.9定时器 185
11.2.10 Watchdog定时器 189
11.2.11模数转换器 189
11.2.12比较器 190
11.2.13 Flash存储器 191
11.2.14非易失性数据存储 192
11.2.15 片上调试器 192
11.2.16振荡器控制 193
11.2.17 eZ8 CPU指令和编程 194
习题 196
参考文献 196
第12章16位微控制器 197
12.0 16位处理器概述 97
12.1 Freescale S12XD处理器概述 197
12.1.1 XGATE概述 199
12.1.2时钟 203
12.1.3模/数转换器(ATD) 205
12.1.4增强型捕捉定时器(ECT) 206
12.1.5脉宽调制(PWM) 207
12.1.6 I2C总线 209
12.1.7 CAN总线 209
12.1.8串行通信接口(SCI) 211
12.1.9串行外围接口(SPI) 215
12.1.10定时中断定时器(PIT) 217
12.1.11电压调整器(VREG) 217
12.1.12背景调试模块(BDM) 218
12.1.13中断模块(XINT) 219
12.1.14映射存储器控制(MMC) 221
12.1.15调试(DBG) 222
12.1.16外部总线接口 224
12.1.17端口综合模块 224
12.1.18 2K字节EEPROM(EETX2K) 227
12.1.19 512K字节Flash模块(FTX512K4) 229
12.1.20安全性 230
12.2 Texas Instruments MSP430TM系列 231
12.2.1低功耗设计 234
12.2.2灵活的时钟系统 235
12.2.3 MSP430 CPU 235
12.2.4操作模式 236
12.2.5 FLL+时钟模块 237
12.2.6 Flash存储控制器 238
12.2.7硬件多路器 239
12.2.8 DMA控制器 240
12.2.9数字1/O 240
12.2.10 Watchdog定时器 240
12.2.11定时器A和B 241
12.2.12 USART 242
12.2.13 USCI 243
12.2.14 ADC12的功能 246
12.2.15 DAC12模块 248
12.2.16嵌入式仿真模块 248
习题 250
参考文献 250
第13章 知识产权SoC核 251
13.0 SoC概述 251
13.1 SoC设计挑战 252
13.1.1可配置处理器 253
13.1.2 SoC综合 254
13.1.3可扩展处理器 255
13.1.4可扩展处理器替代RTL 256
13.1.5清晰的控制方案 257
13.2 MIPS32 4K处理器核系列 258
13.2.1 4KE系列的主要特点 259
13.2.2执行单元 261
13.2.3乘除单元(MDU) 262
13.2.4内存管理单元(MMU) 263
13.2.5 cache控制器 264
13.2.6总线接口单元(BIU) 264
13.2.7电源管理 265
13.2.8指令cache 265
13.2.9数据cache 266
13.2.10 EJTAG控制器 266
13.2.11系统协处理器 267
13.2.12用户自定义指令(UDI) 267
13.2.13指令流水线 267
13.2.14指令cache失效 269
13.2.15数据cache失效 269
13.2.16乘法/除法操作 270
13.2.17分支延迟 270
13.2.18内存管理 271
13.2.19操作模式 271
13.3 ARM1022E处理器概述 273
13.3.1处理器组成 275
13.3.2寄存器 275
13.3.3整数核 275
13.3.4整数核流水线 277
13.3.5内存管理单元 279
13.3.6 cache和写缓冲 280
13.3.7总线接口 280
13.3.8拓扑结构 281
13.3.9协处理器接口 281
13.3.10协处理器流水线 282
13.3.11调试单元 282
13.3.12挂起模式 283
13.3.13监视器调试模式 283
13.3.14时钟和PLL 283
13.3.15ETM接口逻辑 283
13.3.16工作状态 284
13.3.17状态转换 284
13.3.18在异常处理中切换状态 285
13.3.19工作模式 285
习题 285
参考文献 286
第14章Tensilica可配置IP核 287
14.0简介:再谈摩尔定律 287
14.1芯片设计工艺 288
14.1.1设计错误的芯片 288
14.1.2 SoC设计的基本趋势 289
14.1.3每个系统都采用一个新的SoC实现是不现实的 290
14.1.4纳米技术 290
14.1.5 SoC设计改革 291
14.1.6 SoC 可编程性 292
14.1.7可编程性与效率对比 292
14.1.8 SoC设计成功的关键 295
14.1.9改进的设计方法学用于SoC设计 296
14.1.10可配置处理器作为构建模块 296
14.1.11使用自动生产的处理器快速进行SoC开发 297
14.1.12起点:基本的接口和计算 298
14.1.13并行处理任务 298
14.1.14自动指令集发生的含义 301
14.2 Tensilica Xtensa体系结构概述 301
14.3指令集设计原则 303
14.4 Tensilica Xtensa处理器的独有特性 303
14.5寄存器 304
14.6指令长度 305
14.7复合指令 306
14.8分支 306
14.9指令流水线 308
14.10有限的指令常数宽度 308
14.11短指令格式 309
14.12寄存器窗口 309
14.13 Xtensa 12总结 310
习题 310
参考文献 310
第15章 数字信号处理器 311
15.0 DSP概述 311
15.1 TMS320C55x 311
15.1.1 TMS320C55x的特性 312
15.1.2 C55x的主要特征 313
15.1.3指令集体系结构 313
15.1.4主要功能单元 315
15.1.5特殊属性 322
15.1.6低功耗设计 322
15.1.7处理器片上外设 323
15.1.8仿真和测试 330
15.2 Analog Devices公司ADSP-BF535 Blackfin处理器 331
15.2.1便携低功耗体系结构 331
15.2.2系统集成 331
15.2.3处理器核 332
15.2.4存储器体系结构 335
15.2.5事件处理 337
15.2.6 DMA控制器 339
15.2.7外部存储控制 340
15.2.8异步控制器 341
15.2.9 PCI接口 341
15.2.10 USB设备 342
15.2.11实时时钟 342
15.2.12 Watchdog定时器 343
15.2.13定时器 343
15.2.14串口 344
15.2.15串行外设接口(SPI)端口 345
15.2.16 UART端口 346
15.2.17动态电源管理 346
15.2.18 工作模式和状态 347
习题 347
参考文献 348