第1章 概述 1
1.1 微机接口技术的基本内容及其层次 1
1.2 微机接口技术的基本概念 2
1.2.1 接口的概念 2
1.2.2 接口的功能 3
1.2.3 接口的组成 4
1.2.4 接口与CPU交换数据的方式 4
1.2.5 分析与设计接口电路的基本方法 4
1.3 微机接口与微机系统 5
1.4 描述微机系统的软件模型方法 6
1.5 I/O信息流在微机接口分析中的应用 7
1.6 32位与16位微机接口技术 7
1.7 微机接口技术的发展概况 7
习题一 9
第2章 32位微处理器的工作模式 10
2.1 实模式 10
2.1.1 实模式的特点 10
2.1.2 32位微处理器在实模式下的状态 11
2.1.3 实模式下的存储器管理 12
2.1.4 实模式下的存储器寻址范围 12
2.2 保护模式 12
2.2.1 保护模式的特点 12
2.2.2 虚拟存储器的概念 13
2.2.3 保护机制 14
2.2.4 保护模式下的存储器管理 14
2.3 虚拟8086模式(V86模式) 16
习题二 17
3.1 微机系统软件模型概述 18
第3章 基于微处理器的微机系统软件模型 18
3.2 实模式下微处理器的寄存器模型 19
3.3 保护模式下微处理器的寄存器模型 22
3.3.1 系统地址寄存器 23
3.3.2 控制寄存器 24
3.3.3 改变功能的寄存器 25
3.3.4 程序不可见寄存器 26
3.4 实模式存储器模型 27
3.4.1 实模式下存储器地址空间和数据组织 27
3.4.2 实模式存储器地址的分段 28
3.4.3 实模式下存储器寻址 29
3.4.4 实模式下存储器物理地址的形成 31
3.5.1 保护模式下虚拟存储器的地址空间 32
3.5.2 保护模式下虚拟地址空间的分段 32
3.5 保护模式存储器模型 32
3.5.3 保护模式下存储器寻址 33
3.5.4 保护模式下段式地址的转换 34
3.5.5 保护模式下存储器地址空间的分页 34
3.6 实模式下I/O地址空间模型 34
3.7 保护模式下I/O地址空间模型 35
习题三 35
第4章 基于微处理器的微机系统的硬件结构 36
4.1 微处理器 36
4.1.1 微处理器在微机系统中的作用 36
4.1.2 微处理器的外部特性 37
4.1.3 微处理器面向存储器和I/O的接口信号 37
4.1.4 微处理器面向外部中断的接口信号 39
4.2 存储器系统 40
4.2.1 存储器的分类 40
4.1.5 微处理器面向DMA的接口信号 40
4.2.2 存储器件的外部特性 41
4.2.3 存储器地址空间的存储体组织 42
4.2.4 存储器地址译码 43
4.2.5 存储器接口 46
4.3 I/O系统 48
4.3.1 I/O系统的地址空间 48
4.3.2 微处理器与I/O系统的接口 49
4.4 总线 50
4.4.1 地址总线 50
4.4.2 数据总线 50
4.4.3 控制总线 51
习题四 51
5.2 段的类型 52
5.2.1 存储段 52
第5章 存储器管理基础 52
5.1 段的定义 52
5.2.2 系统段 53
5.3 段描述符 55
5.3.1 存储段描述符 55
5.3.2 系统段描述符 58
5.3.3 门描述符 59
5.3.4 伪描述符 64
5.4 描述符表 65
5.4.1 描述符表 65
5.4.2 描述符表的初始化 68
5.4.3 描述符表初始化举例 69
5.5.1 段选择子的作用 71
5.5 段选择子 71
5.5.2 段选择子的格式 72
5.6 存储器分页管理机制基础知识 73
5.6.1 页的定义 73
5.6.2 页表项 73
5.6.3 页表 75
5.6.4 页表的初始化 75
5.6.5 页表的初始化举例 76
习题五 80
第6章 存储器管理 82
6.1 存储器的分段管理 82
6.1.1 段的划分 82
6.1.2 对段的描述 82
6.1.4 描述符表寄存器在分段管理中的作用 83
6.1.3 描述符的保存与寻址 83
6.2 存储器的分页管理 85
6.2.1 页的划分 85
6.2.2 对页的描述 86
6.2.3 页表结构 86
6.2.4 控制寄存器在分页管理中的作用 87
6.3 Pentium的存储器管理 88
6.4 保护模式下的地址空间映射和地址转换 88
6.4.1 虚拟地址与物理地址 88
6.4.2 保护模式下地址转换的内容 89
6.4.3 虚拟地址到线性地址的转换 89
6.4.4 线性地址到物理地址的转换 91
6.4.5 虚拟地址到物理地址转换的全过程 94
6.5 存储器的保护机制 94
6.5.1 特权级保护措施 95
6.5.2 条件保护性措施 97
6.5.3 分页管理的保护措施 98
6.5.4 保护措施的实施 99
6.6 存储器分段管理机制在程序指令执行过程中的体现 99
6.7 保护模式程序设计 100
6.7.1 保护模式程序的格式 100
6.7.2 保护模式程序指令集选择 101
6.7.3 保护模式程序编写 101
习题六 106
第7章 总线技术 108
7.1 总线与总线标准 108
7.2 总线的分类与多总线技术 108
7.2.1 总线的分类 108
7.2.2 多总线技术 109
7.3 总线的组成 109
7.4 总线的性能参数 110
7.5 总线传输操作过程及总线传输控制方式 111
7.5.1 总线传输操作过程 111
7.5.2 总线传输控制方式 112
7.6 总线的层次化结构 113
7.6.1 总线的层次 113
7.6.2 总线桥 114
7.7 总线在微机系统中的应用 115
7.7.1 基于PC/XT总线的微机的基本结构 115
7.7.2 基于ISA总线的微机的基本结构 116
7.7.3 基于PCI总线的32位微机的基本结构 116
7.8 总线与接口的关系 117
7.9 ISA总线简介 117
7.9.1 ISA总线的特点 117
7.9.2 ISA总线的信号线定义 118
习题七 119
8.1 中断的概念与类型 120
8.1.1 中断的概念 120
第8章 中断技术 120
8.1.2 中断的类型 121
8.2 中断号 122
8.2.1 中断号 122
8.2.2 32位微处理器的中断号分配 122
8.2.3 16位微处理器的中断号分配 123
8.3.3 中断嵌套 124
8.4 中断向量与中断向量表 124
8.4.1 中断服务程序的人口问题 124
8.3.2 中断的排队方式 124
8.3.1 中断优先级 124
8.3 中断优先级 124
8.4.2 中断向量 125
8.4.3 中断向量表 125
8.4.4 中断向量表的填写 125
8.4.5 中断向量修改 126
8.5.1 中断描述符 127
8.5 中断描述符与中断描述符表 127
8.5.2 中断描述符表 128
8.5.3 中断描述符表的填写 128
8.5.4 中断描述符的修改 129
8.5.5 描述符别名技术 131
8.6 中断/异常处理 131
8.6.1 实模式下中断/异常处理 132
8.6.2 保护模式中断/异常处理 134
8.7.1 82C59A外部特性和内部寄存器 137
8.7 中断控制器 137
8.6.3 对实模式与保护模式下中断处理差异的分析 137
8.7.2 82C59A的工作方式 139
8.7.3 82C59A的编程命令 140
8.7.4 82C59A在微机系统中对中断管理的作用 143
8.7.5 82C59A在32位微机中的应用 143
8.8 实模式下中断应用程序设计 145
8.9 保护模式下中断/异常处理程序设计 149
习题八 157
第9章 DMA技术 159
9.1 DMA传输 159
9.1.1 DMA传输的特点 159
9.1.2 DMA传输的过程 159
9.2 DMA操作 160
9.2.1 DMA操作类型 160
9.3.1 DMA控制器在系统中的工作状态 161
9.2.2 DMA操作方式 161
9.3 DMA控制器 161
9.3.2 DMA控制器与CPU之间的总线控制权转移 162
9.3.3 DMA控制器82C37A的外部特性 162
9.3.4 DMA控制器82C37A寄存器及编程命令 164
9.3.5 DMA控制器82C37A的工作时序 171
9.4 DMA系统 172
9.4.1 DMA控制器与微处理器的接口 172
9.4.2 DMA控制器与I/O电路的接口 173
9.4.3 DMA系统中对存储器和I/O设备的寻址 174
9.4.4 DMA控制器的级联 175
9.5 实模式下DMA应用程序的开发 176
9.5.1 DMA在实模式下的应用 176
9.5.3 DMA编程举例 177
9.5.2 DMA编程的步骤 177
9.6.1 PCI总线的DMA传输 178
9.6 PCI总线的DMA传输 178
9.6.2 PCI总线DMA传输过程 179
习题九 180
第10章 I/O端口地址译码技术 181
10.1 I/O地址空间 181
10.1.1 实模式下的I/O地址空间 181
10.1.2 保护模式下的I/O地址空间 181
10.2 I/O端口 182
10.2.1 什么是I/O端口 182
10.2.2 I/O端口共用技术 182
10.3.1 独立编址 183
10.3.2 统一编址 183
10.3 I/O端口地址编址方式 183
10.4 独立编址方式的I/O端口访问 184
10.4.1 I/O指令 184
10.4.2 I/O端口寻址方式 186
10.4.3 独立编址方式的端口操作 186
10.4.4 I/O指令与读/写控制信号的关系 187
10.5 I/O地址空间的保护 187
10.5.1 I/O特权级保护机制 187
10.5.2 I/O许可位图保护机制 188
10.6 I/O端口地址分配 189
10.6.1 64K I/O地址映像图 189
10.6.2 实模式下I/O地址的分配 189
10.6.3 保护模式I/O地址的分配 190
10.7 I/O端口地址译码 190
10.7.1 I/O地址译码方法 190
10.7.2 I/O地址译码电路 191
10.7.3 I/O地址译码电路设计的几个问题 192
10.8 1 6位微机I/O端口地址译码电路设计 193
10.8.1 IC器件组成的I/O地址译码电路 193
10.8.2 GAL/PAL器件组成的I/O地址译码电路 195
10.9 32位微机I/O端口地址译码电路设计 198
10.10 PCI配置空间对端口地址的重新分配 199
习题十 200
第11章 定时/计数技术 201
11.1 定时与计数 201
11.1.1 定时与计数的关系 201
11.1.2 微机中的定时系统与时序配合 201
11.1.3 外部定时方法及硬件定时器 202
11.2.1 82C54的基本特点 203
11.2.2 82C54的外部连接特性与内部结构 203
11.2 可编程定时/计数器 203
11.2.3 82C54的命令字 205
11.2.4 82C54的工作方式与功能 207
11.2.5 82C54的计数初值(定时常数) 210
11.2.6 82C54的启动方式与中止方式 211
11.2.7 82C54的初始化 212
11.3 定时/计数在微机系统中的应用 212
11.4 定时/计数应用程序的开发 213
11.4.1 开发定时/计数应用程序的途径 213
11.4.2 软件中断INT1CH的应用 214
11.5 定时/计数的应用举例 215
习题十一 229
第12章 接口设计基础 231
12.1 微机系统中的I/O信息流与信息链 231
12.2.1 I/O设备层的作用 232
12.2 I/O设备 232
12.1.1 早期微机系统中的I/O信息链 232
12.1.2 32位微机系统中的I/O信息链 232
12.2.2 I/O设备层的技术问题 233
12.2.3 I/O设备的类型 233
12.2.4 I/O设备的逻辑概念 234
12.3 I/O接口 234
12.3.1 I/O接口层的作用 234
12.3.2 I/O接口层的技术问题 234
12.3.3 I/O接口的基本功能 234
12.3.4 I/O接口的组成 235
12.3.5 I/O接口类型与接口芯片 237
12.3.6 I/O接口与微处理器之间数据交换方式 237
12.3.8 I/O接口标准 239
12.3.7 I/O接口中的I/O端口地址译码 239
12.3.9 分析与设计I/O接口的基本方法 240
12.4 总线 243
12.4.1 总线层的作用 243
12.4.2 总线层的技术问题 243
12.4.3 总线接口 243
12.4.4 ISA与PCI的不同特点 244
12.5 微处理器 245
12.6 I/O信息链中的逻辑环节 245
12.6.1 上层用户程序 245
12.6.2 设备驱动程序的作用 246
12.7 接口设计框架 246
12.7.1 8/16位微机接口设计框架 246
12.7.2 32位微机接口设计框架 246
习题十二 247
第13章 并行接口 248
13.1 并行接口电路 248
13.1.1 采用非可编程IC芯片 248
13.1.2 采用可编程并行接口芯片 248
13.1.3 采用PLD/FPGA器件 248
13.2 可编程并行接口芯片 249
13.2.1 82C55A的外部特性和内部结构 249
13.2.2 82C55A的编程命令 251
13.2.3 82C55A的工作方式 254
13.3 82C55A在微机系统中的应用 255
13.4 82C55A的0方式应用 256
13.5 82C55A的1方式应用 262
13.5.1 1方式下联络信号线的定义 262
13.5.2 1方式的工作时序 264
13.5.3 1方式的状态字 265
13.5.4 1方式并行接口设计 266
13.6 82C55A的2方式应用 269
13.6.1 2方式下联络信号的定义及时序 269
13.6.2 2方式的状态字 270
13.6.3 2方式并行接口设计 271
习题十三 272
第14章 串行通信接口 274
14.1 串行通信的基本概念 274
14.1.1 串行通信的基本特点 274
14.1.2 串行通信接口电路需要解决的问题 274
14.1.3 串行通信传输方向(制式) 274
14.1.4 串行通信中的调制与解调 275
14.1.5 串行通信中的差错控制 276
14.1.6 串行通信中的传输速率控制 277
14.1.7 串行通信中的同步问题 279
14.1.8 串行通信的基本方式 280
14.2 串行通信中的数据格式 280
14.2.1 起止式异步通信数据格式 280
14.2.2 面向字符的同步通信数据格式 281
14.3 串行通信接口标准 282
14.3.1 EIA-RS-232C接口标准 282
14.3.2 RS-485接口标准 286
14.3.3 RS-232C与RS-485的转换 288
14.4 串行通信接口电路 289
14.4.1 串行通信接口的基本任务 289
14.4.2 串行通信接口电路的组成 289
14.5 8251A USART 290
14.5.1 8251A的外部特性 290
14.5.2 8251A内部寄存器及编程命令 291
14.5.3 8251A的初始化内容与顺序 294
14.5.4 8251A的编程 294
14.5.5 RS-232C标准的串行通信接口设计 297
14.5.6 RS-485标准的串行通信接口电路设计 301
14.6 16550 UART 307
14.6.1 16550的外部引脚特性 307
14.6.2 16550的内部寄存器及端口地址 308
14.6.3 16550的编程 312
习题十四 318
第15章 A/D D/A转换器接口 320
15.1 A/D转换器 320
15.1.1 A/D转换器的主要技术指标 320
15.1.2 A/D转换器的外部特性 321
15.2.2 ADC接口电路的结构形式 322
15.2 A/D转换器与微处理器的接口 322
15.2.1 A/D转换器与CPU的连接 322
15.2.3 A/D转换器的数据传输 323
15.2.4 A/D转换器接口控制程序 323
15.2.5 A/D转换器接口控制程序中的在线数据处理 324
15.3 A/D转换器接口设计 324
15.3.1 分析与设计A/D转换器接口的方法 324
15.3.2 A/D转换器接口设计 325
15.4 D/A转换器 340
15.4.1 D/A转换器的主要技术指标 340
15.4.2 D/A转换器的外部特性 341
15.5 D/A转换器与CPU的接口 341
15.5.1 D/A转换器与CPU的连接 341
15.5.2 D/A转换器接口的主要任务 341
15.5.3 分析与设计D/A转换器接口的方法 341
15.6 D/A转换器接口电路设计 342
习题十五 346
第16章 PCI总线接口 347
16.1 PCI总线的特点 347
16.2 PCI总线的信号定义 348
16.3 PCI插槽和引脚分布 352
16.3.1 PCI插槽和PCI扩展卡 352
16.3.2 PCI插槽引脚分布 352
16.4 PCI总线命令 355
16.5 PCI总线协议 357
16.5.1 PCI总线数据的传输机制 357
16.5.2 PCI总线数据的传输控制 357
16.5.3 PCI总线的寻址 358
16.5.4 设备选择 359
16.6.1 PCI总线上的读操作 360
16.6 PCI总线数据传输过程 360
16.5.5 字节对齐 360
16.5.6 PCI总线的驱动与过渡 360
16.6.2 PCI总线上的写操作 361
16.6.3 PCI总线传输的终止过程 362
16.7 PCI总线仲裁 363
16.8 PCI总线配置空间 364
16.8.1 PCI设备和PCI功能 365
16.8.2 PCI配置空间头区域的格式 365
16.8.3 PCI配置空间头区域的功能 365
16.8.4 PCI配置空间的访问 372
16.9 PCI中断 374
16.9.1 PCI中断响应(回答)周期 374
16.9.2 PCI中断的共享 375
16.11.1 PCI接口卡的设计 376
16.11 PCI总线接口设计 376
16.10 PCI的DMA传输 376
16.11.2 基于PCI总线的微机应用系统设计 383
16.11.3 PCI接口卡DMA传输的实现 385
16.11.4 PCI接口卡中断的实现 390
16.12 配置工具PLX MON 391
16.12.1 软件界面 391
16.12.2 功能简介 392
习题十六 393
第17章 设备驱动程序设计 395
17.1 设备驱动程序 395
17.2 Windows 2000的体系结构及与设备驱动程序的关系 395
17.2.1 Windows 2000的体系结构 395
17.3 Windows 2000的驱动程序类型 396
17.2.2 设备驱动程序与Windows 2000的关系 396
17.4.1 WDM驱动程序模型 397
17.4 WDM驱动程序模型和层次结构 397
17.4.2 设备对象和WDM驱动程序的层次结构 398
17.5 设备驱动程序的主要编制技术 399
17.5.1 设备驱动程序对象分析 399
17.5.2 设备驱动程序的基本组成 400
17.5.3 I/O处理 400
17.5.4 PnP处理 401
17.6 驱动程序的开发工具与步骤 402
17.6.1 开发驱动程序的工具软件 402
17.6.2 用DriverStudio开发驱动程序框架 402
17.7.1 设计要求 404
17.7.2 获取PCI接口卡配置空间的配置信息 404
17.7 PCI接口卡驱动程序设计 404
17.7.3 对I/O端口的访问 406
17.7.4 对扩展存储器的访问 407
17.7.5 Win32程序与驱动程序的通信 410
17.7.6 MS-DOS程序与驱动程序的通信 412
17.7.7 MS-DOS应用程序中断的实现 414
17.7.8 PCI设备DMA传输的实现 416
17.8 驱动程序的安装和调试 421
17.8.1 驱动程序的安装 421
17.8.2 驱动程序的调试 422
习题十七 423
第18章 通用串行总线USB 425
18.1 概述 425
18.1.1 USB的发展过程 425
18.1.3 USB接口特性 426
18.1.2 USB的设计目标及特点 426
18.1.4 USB信号定义 428
18.1.5 USB数据编码和解码 428
18.2 USB系统结构 429
18.2.1 总线拓扑结构 429
18.2.2 USB主机 430
18.2.3 USB设备 432
18.2.4 USB的通信模型 433
18.3 USB数据流模型 433
18.3.1 端点 434
18.3.2 管道 434
18.3.3 USB通信数据流 435
18.4 USB协议层 436
18.4.1 包字段格式 436
18.4.2 包格式(Packet Format) 439
18.4.3 事务与传输类型 440
18.4.4 控制传输 441
18.4.5 块传输 442
18.4.6 中断传输 443
18.4.7 同步传输 444
18.5 USB传输管理 444
18.5.1 USB信息转换过程 444
18.5.2 事务的跟踪 446
18.5.3 低速事务 446
18.5.4 分割事务 448
18.6 设备的状态图和总线枚举 451
习题十八 452
参考文献 453